diff --git a/404.html b/404.html index 2d43098..91afc91 100644 --- a/404.html +++ b/404.html @@ -6,4 +6,4 @@
- \ No newline at end of file + \ No newline at end of file diff --git a/assets/0/00547592-griglia1.svg b/assets/0/00547592-griglia1.svg new file mode 100644 index 0000000..f92496e --- /dev/null +++ b/assets/0/00547592-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/0/01317f2e-6-2.svg b/assets/0/01317f2e-6-2.svg new file mode 100644 index 0000000..b8cb77f --- /dev/null +++ b/assets/0/01317f2e-6-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/0/02e7552b-segments2.svg b/assets/0/02e7552b-segments2.svg new file mode 100644 index 0000000..4d1ef34 --- /dev/null +++ b/assets/0/02e7552b-segments2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/0/057f549f-griglie2.svg b/assets/0/057f549f-griglie2.svg new file mode 100644 index 0000000..e0b9713 --- /dev/null +++ b/assets/0/057f549f-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/0/073d8bf8-griglie2.svg b/assets/0/073d8bf8-griglie2.svg new file mode 100644 index 0000000..659bb11 --- /dev/null +++ b/assets/0/073d8bf8-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/0/09b15602-array2.svg b/assets/0/09b15602-array2.svg new file mode 100644 index 0000000..c2a0d29 --- /dev/null +++ b/assets/0/09b15602-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/0/0ab65342-immagine1.svg b/assets/0/0ab65342-immagine1.svg new file mode 100644 index 0000000..86e888a --- /dev/null +++ b/assets/0/0ab65342-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/0/0ac3084f-immagine1_fliprow2.svg b/assets/0/0ac3084f-immagine1_fliprow2.svg new file mode 100644 index 0000000..40412f9 --- /dev/null +++ b/assets/0/0ac3084f-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/0/0fc5866e-immagine1_fliprow2.svg b/assets/0/0fc5866e-immagine1_fliprow2.svg new file mode 100644 index 0000000..ceeb93b --- /dev/null +++ b/assets/0/0fc5866e-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/1/12104166-griglie2.svg b/assets/1/12104166-griglie2.svg new file mode 100644 index 0000000..052226f --- /dev/null +++ b/assets/1/12104166-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/1/141b43ec-array3.svg b/assets/1/141b43ec-array3.svg new file mode 100644 index 0000000..0427a79 --- /dev/null +++ b/assets/1/141b43ec-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/1/190a45f5-immagine1.svg b/assets/1/190a45f5-immagine1.svg new file mode 100644 index 0000000..198e6b2 --- /dev/null +++ b/assets/1/190a45f5-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/1/1b6cf4c4-array2.svg b/assets/1/1b6cf4c4-array2.svg new file mode 100644 index 0000000..871d81c --- /dev/null +++ b/assets/1/1b6cf4c4-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/1/1c14239b-immagine1.svg b/assets/1/1c14239b-immagine1.svg new file mode 100644 index 0000000..968bd05 --- /dev/null +++ b/assets/1/1c14239b-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/1/1edd2d50-immagine1_fliprow2.svg b/assets/1/1edd2d50-immagine1_fliprow2.svg new file mode 100644 index 0000000..e4e1ac8 --- /dev/null +++ b/assets/1/1edd2d50-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/20a2ef5f-2-2.svg b/assets/2/20a2ef5f-2-2.svg new file mode 100644 index 0000000..469a616 --- /dev/null +++ b/assets/2/20a2ef5f-2-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/212c655e-griglia1.svg b/assets/2/212c655e-griglia1.svg new file mode 100644 index 0000000..ffb4707 --- /dev/null +++ b/assets/2/212c655e-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/21da2433-segments2.svg b/assets/2/21da2433-segments2.svg new file mode 100644 index 0000000..b5b72fd --- /dev/null +++ b/assets/2/21da2433-segments2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/244393cd-griglia1.svg b/assets/2/244393cd-griglia1.svg new file mode 100644 index 0000000..bdfa0bc --- /dev/null +++ b/assets/2/244393cd-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/261d6ab2-8-1.svg b/assets/2/261d6ab2-8-1.svg new file mode 100644 index 0000000..4199e88 --- /dev/null +++ b/assets/2/261d6ab2-8-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/271332cc-immagine1.svg b/assets/2/271332cc-immagine1.svg new file mode 100644 index 0000000..63eaaeb --- /dev/null +++ b/assets/2/271332cc-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/2717fa04-array3.svg b/assets/2/2717fa04-array3.svg new file mode 100644 index 0000000..a6555b1 --- /dev/null +++ b/assets/2/2717fa04-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/272b9203-array1.svg b/assets/2/272b9203-array1.svg new file mode 100644 index 0000000..7dbb9f3 --- /dev/null +++ b/assets/2/272b9203-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/273dd251-immagine1_fliprow2.svg b/assets/2/273dd251-immagine1_fliprow2.svg new file mode 100644 index 0000000..1b7ee69 --- /dev/null +++ b/assets/2/273dd251-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/275021f4-immagine1_fliprow2.svg b/assets/2/275021f4-immagine1_fliprow2.svg new file mode 100644 index 0000000..021f878 --- /dev/null +++ b/assets/2/275021f4-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/2834c8a5-array3.svg b/assets/2/2834c8a5-array3.svg new file mode 100644 index 0000000..ca0b75d --- /dev/null +++ b/assets/2/2834c8a5-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/28d7e95a-immagine1_fliprow2.svg b/assets/2/28d7e95a-immagine1_fliprow2.svg new file mode 100644 index 0000000..6133df6 --- /dev/null +++ b/assets/2/28d7e95a-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/29e61b4c-array3.svg b/assets/2/29e61b4c-array3.svg new file mode 100644 index 0000000..e17e2b5 --- /dev/null +++ b/assets/2/29e61b4c-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/2/2ec607dd-number_line.svg b/assets/2/2ec607dd-number_line.svg new file mode 100644 index 0000000..c81d5a3 --- /dev/null +++ b/assets/2/2ec607dd-number_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/3/320e1304-array1.svg b/assets/3/320e1304-array1.svg new file mode 100644 index 0000000..0e6aa74 --- /dev/null +++ b/assets/3/320e1304-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/3/37b6a3c2-array2.svg b/assets/3/37b6a3c2-array2.svg new file mode 100644 index 0000000..974f8ad --- /dev/null +++ b/assets/3/37b6a3c2-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/3/39061848-array3.svg b/assets/3/39061848-array3.svg new file mode 100644 index 0000000..beae227 --- /dev/null +++ b/assets/3/39061848-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/3/3c146e57-array3.svg b/assets/3/3c146e57-array3.svg new file mode 100644 index 0000000..5b7bbf1 --- /dev/null +++ b/assets/3/3c146e57-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/3/3e49bf0c-array2.svg b/assets/3/3e49bf0c-array2.svg new file mode 100644 index 0000000..c4514d3 --- /dev/null +++ b/assets/3/3e49bf0c-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/3/3e5ee27b-array1.svg b/assets/3/3e5ee27b-array1.svg new file mode 100644 index 0000000..aa461e4 --- /dev/null +++ b/assets/3/3e5ee27b-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/3/3f41e32a-array2.svg b/assets/3/3f41e32a-array2.svg new file mode 100644 index 0000000..29c4bbf --- /dev/null +++ b/assets/3/3f41e32a-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/40949216-array2.svg b/assets/4/40949216-array2.svg new file mode 100644 index 0000000..138a253 --- /dev/null +++ b/assets/4/40949216-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/4279823b-griglie2.svg b/assets/4/4279823b-griglie2.svg new file mode 100644 index 0000000..79c02a4 --- /dev/null +++ b/assets/4/4279823b-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/42ecb7a7-immagine1_fliprow2.svg b/assets/4/42ecb7a7-immagine1_fliprow2.svg new file mode 100644 index 0000000..5d17e3a --- /dev/null +++ b/assets/4/42ecb7a7-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/435faeb1-array3.svg b/assets/4/435faeb1-array3.svg new file mode 100644 index 0000000..37d72ef --- /dev/null +++ b/assets/4/435faeb1-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/44cd0057-griglie2.svg b/assets/4/44cd0057-griglie2.svg new file mode 100644 index 0000000..460f858 --- /dev/null +++ b/assets/4/44cd0057-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/45dde564-immagine1.svg b/assets/4/45dde564-immagine1.svg new file mode 100644 index 0000000..2ae5071 --- /dev/null +++ b/assets/4/45dde564-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/45e69dcf-array3.svg b/assets/4/45e69dcf-array3.svg new file mode 100644 index 0000000..0e0e0e4 --- /dev/null +++ b/assets/4/45e69dcf-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/49155d0c-segments2.svg b/assets/4/49155d0c-segments2.svg new file mode 100644 index 0000000..59bda3a --- /dev/null +++ b/assets/4/49155d0c-segments2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/4936ea45-griglie2.svg b/assets/4/4936ea45-griglie2.svg new file mode 100644 index 0000000..3f08f45 --- /dev/null +++ b/assets/4/4936ea45-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/4a203d9b-array1.svg b/assets/4/4a203d9b-array1.svg new file mode 100644 index 0000000..69789e7 --- /dev/null +++ b/assets/4/4a203d9b-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/4/4c43432c-griglia1.svg b/assets/4/4c43432c-griglia1.svg new file mode 100644 index 0000000..0203045 --- /dev/null +++ b/assets/4/4c43432c-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/5/5055c089-segments1.svg b/assets/5/5055c089-segments1.svg new file mode 100644 index 0000000..3cf126f --- /dev/null +++ b/assets/5/5055c089-segments1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/5/505a1941-griglia1.svg b/assets/5/505a1941-griglia1.svg new file mode 100644 index 0000000..69c7e31 --- /dev/null +++ b/assets/5/505a1941-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/5/557c63a2-number_line.svg b/assets/5/557c63a2-number_line.svg new file mode 100644 index 0000000..a20aa78 --- /dev/null +++ b/assets/5/557c63a2-number_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/5/568d6b6b-griglia1.svg b/assets/5/568d6b6b-griglia1.svg new file mode 100644 index 0000000..aed1839 --- /dev/null +++ b/assets/5/568d6b6b-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/5/56992e38-3-2.svg b/assets/5/56992e38-3-2.svg new file mode 100644 index 0000000..0722c4b --- /dev/null +++ b/assets/5/56992e38-3-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/5/5e27bf24-10-2.svg b/assets/5/5e27bf24-10-2.svg new file mode 100644 index 0000000..de6980b --- /dev/null +++ b/assets/5/5e27bf24-10-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/60a1b313-4-2.svg b/assets/6/60a1b313-4-2.svg new file mode 100644 index 0000000..eee07df --- /dev/null +++ b/assets/6/60a1b313-4-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/61a1c039-1-2.svg b/assets/6/61a1c039-1-2.svg new file mode 100644 index 0000000..058708e --- /dev/null +++ b/assets/6/61a1c039-1-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/650897f8-array1.svg b/assets/6/650897f8-array1.svg new file mode 100644 index 0000000..04fb3b4 --- /dev/null +++ b/assets/6/650897f8-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/65198992-immagine1.svg b/assets/6/65198992-immagine1.svg new file mode 100644 index 0000000..15dfc42 --- /dev/null +++ b/assets/6/65198992-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/657b10c9-segments2.svg b/assets/6/657b10c9-segments2.svg new file mode 100644 index 0000000..d86dd8a --- /dev/null +++ b/assets/6/657b10c9-segments2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/684e0ddd-griglia1.svg b/assets/6/684e0ddd-griglia1.svg new file mode 100644 index 0000000..aa15ac8 --- /dev/null +++ b/assets/6/684e0ddd-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/69e56437-immagine1.svg b/assets/6/69e56437-immagine1.svg new file mode 100644 index 0000000..a764f41 --- /dev/null +++ b/assets/6/69e56437-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/69f53abd-number_line.svg b/assets/6/69f53abd-number_line.svg new file mode 100644 index 0000000..c301002 --- /dev/null +++ b/assets/6/69f53abd-number_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/6ba5b81a-immagine1_fliprow2.svg b/assets/6/6ba5b81a-immagine1_fliprow2.svg new file mode 100644 index 0000000..80bf8ca --- /dev/null +++ b/assets/6/6ba5b81a-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/6bb7244a-immagine1.svg b/assets/6/6bb7244a-immagine1.svg new file mode 100644 index 0000000..8798331 --- /dev/null +++ b/assets/6/6bb7244a-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/6/6cbb4be2-array2.svg b/assets/6/6cbb4be2-array2.svg new file mode 100644 index 0000000..395057e --- /dev/null +++ b/assets/6/6cbb4be2-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/725d53e9-array1.svg b/assets/7/725d53e9-array1.svg new file mode 100644 index 0000000..bc1fece --- /dev/null +++ b/assets/7/725d53e9-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/741a6ddd-segments1.svg b/assets/7/741a6ddd-segments1.svg new file mode 100644 index 0000000..c76d401 --- /dev/null +++ b/assets/7/741a6ddd-segments1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/741caee7-griglie2.svg b/assets/7/741caee7-griglie2.svg new file mode 100644 index 0000000..4448a19 --- /dev/null +++ b/assets/7/741caee7-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/742fbaa1-immagine1.svg b/assets/7/742fbaa1-immagine1.svg new file mode 100644 index 0000000..f99cac8 --- /dev/null +++ b/assets/7/742fbaa1-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/756b6fd0-immagine1_fliprow2.svg b/assets/7/756b6fd0-immagine1_fliprow2.svg new file mode 100644 index 0000000..226a380 --- /dev/null +++ b/assets/7/756b6fd0-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/77c8fb87-1-1.svg b/assets/7/77c8fb87-1-1.svg new file mode 100644 index 0000000..e66dd4b --- /dev/null +++ b/assets/7/77c8fb87-1-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/78e8327b-griglie2.svg b/assets/7/78e8327b-griglie2.svg new file mode 100644 index 0000000..7601ea2 --- /dev/null +++ b/assets/7/78e8327b-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/7a60fb8b-griglia1.svg b/assets/7/7a60fb8b-griglia1.svg new file mode 100644 index 0000000..f044275 --- /dev/null +++ b/assets/7/7a60fb8b-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/7d1f788e-array3.svg b/assets/7/7d1f788e-array3.svg new file mode 100644 index 0000000..e5204f4 --- /dev/null +++ b/assets/7/7d1f788e-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/7f290f2f-array3.svg b/assets/7/7f290f2f-array3.svg new file mode 100644 index 0000000..0b79e67 --- /dev/null +++ b/assets/7/7f290f2f-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/7/7f5d9304-5-1.svg b/assets/7/7f5d9304-5-1.svg new file mode 100644 index 0000000..198f9e1 --- /dev/null +++ b/assets/7/7f5d9304-5-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/8/81da0fb3-griglia1.svg b/assets/8/81da0fb3-griglia1.svg new file mode 100644 index 0000000..ad665b6 --- /dev/null +++ b/assets/8/81da0fb3-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/8/86fd02ae-griglia1.svg b/assets/8/86fd02ae-griglia1.svg new file mode 100644 index 0000000..10dca29 --- /dev/null +++ b/assets/8/86fd02ae-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/8/88bccfd3-7-1.svg b/assets/8/88bccfd3-7-1.svg new file mode 100644 index 0000000..016a171 --- /dev/null +++ b/assets/8/88bccfd3-7-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/8/88ed6dd8-array1.svg b/assets/8/88ed6dd8-array1.svg new file mode 100644 index 0000000..9fcc502 --- /dev/null +++ b/assets/8/88ed6dd8-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/8/8915061e-immagine1_fliprow2.svg b/assets/8/8915061e-immagine1_fliprow2.svg new file mode 100644 index 0000000..12346a0 --- /dev/null +++ b/assets/8/8915061e-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/8/8a584c20-segments1.svg b/assets/8/8a584c20-segments1.svg new file mode 100644 index 0000000..16159c3 --- /dev/null +++ b/assets/8/8a584c20-segments1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/8/8bdc9ae4-array1.svg b/assets/8/8bdc9ae4-array1.svg new file mode 100644 index 0000000..9219647 --- /dev/null +++ b/assets/8/8bdc9ae4-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/8/8e2f184e-griglie2.svg b/assets/8/8e2f184e-griglie2.svg new file mode 100644 index 0000000..2242592 --- /dev/null +++ b/assets/8/8e2f184e-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/9032d938-segments2.svg b/assets/9/9032d938-segments2.svg new file mode 100644 index 0000000..73dbaf9 --- /dev/null +++ b/assets/9/9032d938-segments2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/90efa4e0-8-2.svg b/assets/9/90efa4e0-8-2.svg new file mode 100644 index 0000000..acd7ef9 --- /dev/null +++ b/assets/9/90efa4e0-8-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/920491cc-griglie2.svg b/assets/9/920491cc-griglie2.svg new file mode 100644 index 0000000..d43cfbd --- /dev/null +++ b/assets/9/920491cc-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/929fe971-immagine1_fliprow2.svg b/assets/9/929fe971-immagine1_fliprow2.svg new file mode 100644 index 0000000..4a4bbdf --- /dev/null +++ b/assets/9/929fe971-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/934e2fe0-example1.svg b/assets/9/934e2fe0-example1.svg new file mode 100644 index 0000000..4357be1 --- /dev/null +++ b/assets/9/934e2fe0-example1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/935fdd69-array2.svg b/assets/9/935fdd69-array2.svg new file mode 100644 index 0000000..3ec88fe --- /dev/null +++ b/assets/9/935fdd69-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/966ff72c-number_line.svg b/assets/9/966ff72c-number_line.svg new file mode 100644 index 0000000..991c572 --- /dev/null +++ b/assets/9/966ff72c-number_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/96af13ef-griglie2.svg b/assets/9/96af13ef-griglie2.svg new file mode 100644 index 0000000..01e2f07 --- /dev/null +++ b/assets/9/96af13ef-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/96e2df92-array3.svg b/assets/9/96e2df92-array3.svg new file mode 100644 index 0000000..b8cd165 --- /dev/null +++ b/assets/9/96e2df92-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/97354980-griglia1.svg b/assets/9/97354980-griglia1.svg new file mode 100644 index 0000000..0cf254f --- /dev/null +++ b/assets/9/97354980-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/974fbe74-array3.svg b/assets/9/974fbe74-array3.svg new file mode 100644 index 0000000..bfdaf9a --- /dev/null +++ b/assets/9/974fbe74-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/9aeca3c6-immagine1.svg b/assets/9/9aeca3c6-immagine1.svg new file mode 100644 index 0000000..060d577 --- /dev/null +++ b/assets/9/9aeca3c6-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/9b2df944-immagine1_fliprow2.svg b/assets/9/9b2df944-immagine1_fliprow2.svg new file mode 100644 index 0000000..e967ecd --- /dev/null +++ b/assets/9/9b2df944-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/9c6d6a50-array2.svg b/assets/9/9c6d6a50-array2.svg new file mode 100644 index 0000000..2594fc0 --- /dev/null +++ b/assets/9/9c6d6a50-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/9cf4132c-array2.svg b/assets/9/9cf4132c-array2.svg new file mode 100644 index 0000000..47832b6 --- /dev/null +++ b/assets/9/9cf4132c-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/9d47b253-number_line.svg b/assets/9/9d47b253-number_line.svg new file mode 100644 index 0000000..ec3fffe --- /dev/null +++ b/assets/9/9d47b253-number_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/9dfff969-immagine1.svg b/assets/9/9dfff969-immagine1.svg new file mode 100644 index 0000000..31accad --- /dev/null +++ b/assets/9/9dfff969-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/9/9f8385a6-array3.svg b/assets/9/9f8385a6-array3.svg new file mode 100644 index 0000000..3ee963d --- /dev/null +++ b/assets/9/9f8385a6-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/_virtual_quizms-routes-09086dad.js b/assets/_virtual_quizms-routes-e5ffd91c.js similarity index 68% rename from assets/_virtual_quizms-routes-09086dad.js rename to assets/_virtual_quizms-routes-e5ffd91c.js index be872d7..9ec4049 100644 --- a/assets/_virtual_quizms-routes-09086dad.js +++ b/assets/_virtual_quizms-routes-e5ffd91c.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r/ebbb2af3-highlight-UOJF2D5K.js","assets/s/00dd80a9-react-dom.js","assets/v/e5f47ee0-commonjs-helper.js","assets/w/bd90e419-index.js","assets/t/2e60adb4-page.js","assets/u/c68031af-navbar.js","assets/t/8f86b1e7-page.js","assets/g/732b2eb0-score.js","assets/y/339f9ca0-toString.js","assets/t/9baa8f2b-page.js","assets/t/91c36b3e-page.js","assets/t/57dedeea-page.js","assets/w/38364625-chunk-IFWY6GUU.js","assets/t/0aea33bc-zod.js","assets/h/b7b1c18b-katex.js","assets/b/b682b3b3-katex.css","assets/e/ec8127f9-chunk-IFWY6GUU.css","assets/o/853bcfcb-question.js","assets/t/39767590-page.js","assets/o/8dd5c4bd-question.js","assets/t/f17daebf-page.js","assets/o/3c7e1c7c-question.js","assets/i/72d422f6-visualizer.js","assets/t/1e53e485-page.js","assets/o/2b03354b-question.js","assets/t/49119304-page.js","assets/o/5af6cf5f-question.js","assets/t/fce79f69-page.js","assets/t/bdf66f1b-page.js","assets/t/3fd9f578-page.js","assets/t/9e55ea88-page.js","assets/t/8818ea5f-page.js","assets/t/4affd1f1-page.js","assets/t/330b1a00-page.js","assets/t/8d1d003b-page.js","assets/t/b6c284bc-page.js","assets/t/7d9bd7ee-page.js","assets/t/2a9a0c33-page.js","assets/t/6ef07e06-page.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r/b5abcf0a-highlight-UOJF2D5K.js","assets/s/00dd80a9-react-dom.js","assets/v/e5f47ee0-commonjs-helper.js","assets/w/8ebff56a-index.js","assets/t/787fe876-page.js","assets/u/d90f2717-navbar.js","assets/t/7ab051f6-page.js","assets/g/dcc0a6cc-score.js","assets/y/cd55b450-toString.js","assets/t/ed499b05-page.js","assets/t/18fbb7c3-page.js","assets/t/cc08fdd2-page.js","assets/w/c06ec230-chunk-IFWY6GUU.js","assets/t/0aea33bc-zod.js","assets/h/b7b1c18b-katex.js","assets/b/b682b3b3-katex.css","assets/e/ec8127f9-chunk-IFWY6GUU.css","assets/o/3a818107-question.js","assets/t/e57730a0-page.js","assets/o/f700f876-question.js","assets/t/dcfe2ab5-page.js","assets/o/28b451e6-question.js","assets/i/05878499-visualizer.js","assets/t/6e805780-page.js","assets/o/e8898e3c-question.js","assets/t/5d929cb2-page.js","assets/t/90d5a8ec-page.js","assets/o/93ddc3ae-question.js","assets/t/05a24e71-page.js","assets/t/08a91bfc-page.js","assets/t/62a3c4a6-page.js","assets/t/e38b6327-page.js","assets/t/740c717b-page.js","assets/t/0c1e68d5-page.js","assets/t/336549bb-page.js","assets/t/8685fb5b-page.js","assets/t/1c3b9cac-page.js","assets/t/776a2c80-page.js","assets/t/33b6619a-page.js","assets/t/65f1f793-page.js"])))=>i.map(i=>d[i]); /*! For licenses information, see LICENSES.txt */ -import{r as c,_ as se,R as it,c as ct}from"./s/00dd80a9-react-dom.js";import{z as a}from"./t/0aea33bc-zod.js";const lt="modulepreload",ut=function(e){return"/"+e},_e={},p=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");o=Promise.all(n.map(u=>{if(u=ut(u),u in _e)return;_e[u]=!0;const d=u.endsWith(".css"),m=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${m}`))return;const f=document.createElement("link");if(f.rel=d?"stylesheet":lt,d||(f.as="script"),f.crossOrigin="",f.href=u,l&&f.setAttribute("nonce",l),document.head.appendChild(f),d)return new Promise((h,b)=>{f.addEventListener("load",h),f.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${u}`)))})}))}return o.then(()=>t()).catch(i=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i})};var ke={exports:{}},q={};var dt=c,ft=Symbol.for("react.element"),mt=Symbol.for("react.fragment"),ht=Object.prototype.hasOwnProperty,bt=dt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,pt={key:!0,ref:!0,__self:!0,__source:!0};function De(e,t,n){var r,o={},i=null,l=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(l=t.ref);for(r in t)ht.call(t,r)&&!pt.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:ft,type:e,key:i,ref:l,props:o,_owner:bt.current}}q.Fragment=mt;q.jsx=De;q.jsxs=De;ke.exports=q;var s=ke.exports;function Ie(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t=t?e:t)),e}function Bt(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=Y(n),n=n===n?n:0),t!==void 0&&(t=Y(t),t=t===t?t:0),zt(Y(e),t,n)}function D(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ft(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Ae(e,t){const n=+D(e);return Ft(e,n+t)}const Ut=6e4;function qt(e,t){return Ae(e,t*Ut)}function Wt(e,t){return Ae(e,t*1e3)}function Ht(e){return t=>{const n=Math.trunc,r=n(t);return r===0?0:r}}function Me(e,t){return+D(e)-+D(t)}function Kt(e,t,n){const r=Me(e,t)/1e3;return Ht()(r)}function Gt(e,t){const n=D(e),r=D(t);return n.getTime()>r.getTime()}function Yt(e){return+D(e){let d=setInterval(()=>{let m=Date.now();n(m),Gt(m,r)&&clearInterval(d)},100);return()=>clearInterval(d)},[r]);let o=Math.max(Kt(r,t),0);e.duration&&(o=Math.min(o,e.duration*60));let i=Math.floor(o/3600),l=Math.floor(o/60)%60,u=o%60;return i>0?s.jsxs("span",{className:g("countdown font-mono",e.noAnimation&&"[&_*:before]:transition-none"),children:[s.jsx("span",{style:{"--value":i}}),"h",s.jsx("span",{style:{"--value":l}}),"m"]}):s.jsxs("span",{className:g("countdown font-mono",e.noAnimation&&"[&_*:before]:transition-none"),children:[s.jsx("span",{style:{"--value":l}}),"m",s.jsx("span",{style:{"--value":u}}),"s"]})}class Zt extends Error{}Zt.prototype.name="InvalidTokenError";a.object({analytics:a.string(),captcha_enabled:a.boolean(),cookie_domain:a.string(),description:a.string(),forum_url:a.string(),languages:a.string().array(),mail_enabled:a.boolean(),menu:a.object({title:a.string(),icon:a.string()}).array(),name:a.string(),participates:a.boolean(),recaptcha_public_key:a.string(),title:a.string(),top_left_name:a.string()});var Qt=a.object({name:a.string(),digest:a.string()}),W=a.object({id:a.number(),name:a.string()});a.object({regions:W.array()});a.object({provinces:W.array()});a.object({cities:W.array()});a.object({institutes:W.array()});a.object({message:a.string(),type:a.number()});var en=a.object({idx:a.string(),memory:a.number().nullable(),outcome:a.enum(["Correct","Partially correct","Not correct"]),text:a.string(),time:a.number().nullable()}),ve=a.object({idx:a.number().optional(),max_score:a.number(),testcases:en.array()}),tn=a.union([ve.extend({score:a.number()}),ve.extend({score_fraction:a.number()}).transform(({score_fraction:e,...t})=>({...t,score:e*t.max_score}))]),Ve=a.object({compilation_outcome:a.enum(["ok","fail"]).nullable(),evaluation_outcome:a.literal("ok").nullable(),files:Qt.array(),id:a.number(),score:a.number().nullable().optional(),task_id:a.number(),timestamp:a.number().transform(e=>new Date(e*1e3))});Ve.extend({compilation_memory:a.number().nullable(),compilation_time:a.number().nullable(),compilation_stdout:a.string().nullable(),compilation_stderr:a.string().nullable(),score_details:tn.array().nullable(),language:a.string().nullable()});a.object({submissions:Ve.array()});a.object({tags:a.string().array()});var nn=a.tuple([a.string(),a.string()]).transform(([e,t])=>({name:e,digest:t})),rn=a.object({name:a.string(),can_delete:a.boolean()});a.object({attachments:nn.array(),help_available:a.boolean(),id:a.number(),memory_limit:a.number().nullable(),name:a.string(),score_multiplier:a.number(),statements:a.record(a.string()),submission_format:a.string().array(),supported_languages:a.string().array(),tags:rn.array(),task_type:a.enum(["Batch","OutputOnly","Communication"]),time_limit:a.number().nullable(),title:a.string()});var sn=a.object({id:a.number(),name:a.string(),score:a.number().optional(),score_multiplier:a.number(),title:a.string()});a.object({num:a.number(),tasks:sn.array(),tags:a.string().array().optional()});var on=a.object({username:a.string(),time:a.number()});a.object({nsubs:a.number(),nsubscorrect:a.number(),nusers:a.number(),nuserscorrect:a.number(),best:on.array()});var an=a.object({name:a.string(),title:a.string(),score:a.number()}),Q=(e=>(e[e.Admin=0]="Admin",e[e.Monica=1]="Monica",e[e.Tutor=2]="Tutor",e[e.Teacher=3]="Teacher",e[e.Superuser=4]="Superuser",e[e.User=5]="User",e[e.Newbie=6]="Newbie",e[e.Guest=7]="Guest",e))(Q||{}),$e=a.object({username:a.string(),first_name:a.string(),last_name:a.string(),institute:a.union([a.object({id:a.number(),name:a.string(),city:a.string(),province:a.string(),region:a.string()}),a.object({})]).transform(e=>"id"in e?e:void 0),mail_hash:a.string(),join_date:a.number().transform(e=>new Date(e*1e3)),score:a.number(),scores:an.array().optional(),tasks_solved:a.number(),access_level:a.nativeEnum(Q),global_access_level:a.nativeEnum(Q)});a.object({num:a.number(),users:$e.array()});a.object({user:$e});a.object({id:a.number(),username:a.string(),email:a.string(),firstName:a.string(),lastName:a.string(),picture:a.string().transform(e=>`https:${e}`)});const cn="_pre_165zj_1",ln={pre:cn};const un=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ze=(...e)=>e.filter((t,n,r)=>!!t&&r.indexOf(t)===n).join(" ");var dn={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const fn=c.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o="",children:i,iconNode:l,...u},d)=>c.createElement("svg",{ref:d,...dn,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:ze("lucide",o),...u},[...l.map(([m,f])=>c.createElement(m,f)),...Array.isArray(i)?i:[i]]));const H=(e,t)=>{const n=c.forwardRef(({className:r,...o},i)=>c.createElement(fn,{ref:i,iconNode:t,className:ze(`lucide-${un(e)}`,r),...o}));return n.displayName=`${e}`,n};const mn=H("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const hn=H("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);const bn=H("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const Be=H("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),pn="_navbar_1bmiq_1",_n="_navbarMenuIcon_1bmiq_14",yn="_navbarMenu_1bmiq_14",gn="_navbarBrand_1bmiq_23",xn="_navbarContent_1bmiq_28",vn="_navbarSubmenu_1bmiq_33",jn="_navbarSubmenuCheckbox_1bmiq_46",M={navbar:pn,navbarMenuIcon:_n,navbarMenu:yn,navbarBrand:gn,navbarContent:xn,navbarSubmenu:vn,navbarSubmenuCheckbox:jn};function cs({onClick:e,icon:t,disabled:n,className:r,children:o}){let[i,l]=c.useState(!1),u=async()=>{l(!0);try{await e?.()}finally{l(!1)}};return s.jsxs("button",{className:g("btn",r),onClick:u,disabled:i||n,type:"button",children:[i?s.jsx("span",{className:"loading loading-spinner"}):t&&s.jsx(t,{size:22}),o]})}function ls({className:e,children:t}){return s.jsx("div",{className:g("card overflow-hidden sm:card-side",e),children:t})}function us({title:e,children:t}){return s.jsxs("div",{className:"card-body",children:[s.jsx("h2",{className:"card-title",children:e}),t]})}function ds({children:e}){return s.jsx("div",{className:"card-actions mt-2 grow items-end justify-center",children:e})}var En=c.lazy(()=>p(()=>import("./r/ebbb2af3-highlight-UOJF2D5K.js"),__vite__mapDeps([0,1,2])));function fs({lang:e,...t}){return s.jsx(c.Suspense,{fallback:s.jsx(wn,{...t}),children:s.jsx(En,{lang:e,...t})})}function wn({code:e,inline:t,className:n}){return t?s.jsx("code",{className:n,children:e}):s.jsx("div",{className:n,children:s.jsx("pre",{className:ln.pre,children:s.jsx("code",{children:e.split(` -`).map((r,o)=>s.jsxs("span",{className:"line",children:[s.jsx("span",{children:r}),s.jsx("br",{})]},o))})})})}function ms({className:e,children:t}){return s.jsx("div",{className:g("dropdown max-w-full flex-none",e),children:t})}function hs({className:e,children:t,ariaLabel:n}){return s.jsx("div",{tabIndex:0,role:"button",className:g("btn btn-ghost no-animation w-full flex-nowrap",e),"aria-label":n,children:t})}function bs({className:e,children:t}){return s.jsx("ul",{className:g("menu dropdown-content !transition-all",e),children:t})}function ps({children:e}){let t=c.useCallback(n=>{let r=n.target;(r instanceof HTMLAnchorElement||r instanceof HTMLButtonElement)&&r.blur()},[]);return s.jsx("li",{onClick:t,children:e})}var Sn=class extends Error{constructor(e,t){super(t),this.field=e,this.message=t}},oe=c.createContext({state:{},setState:()=>{},globalDisabled:!1,pending:!1});function _s({defaultValue:e,onSubmit:t,disabled:n,className:r,children:o}){let i=c.useRef(null),[l,u]=c.useState(e??{}),[d,m]=c.useState(!1),f=async h=>{if(h.preventDefault(),!!i.current?.checkValidity()){m(!0);try{await t?.(l)}catch(b){if(b instanceof Sn)i.current?.querySelector(`[name="${b.field}"]`)?.setCustomValidity(b.message);else throw b}finally{m(!1)}}};return s.jsx(oe.Provider,{value:{state:l,setState:u,globalDisabled:n??!1,pending:d},children:s.jsx("form",{ref:i,className:g("mx-auto flex w-full max-w-sm flex-col items-center",r),onSubmit:f,children:(Array.isArray(o)?o:[o]).map((h,b)=>typeof h=="function"?s.jsx(c.Fragment,{children:h(l)},b):h)})})}function ys({disabled:e,icon:t,className:n,children:r}){let{globalDisabled:o,pending:i}=c.useContext(oe);return s.jsxs("button",{className:g("btn btn-primary mt-4",n),type:"submit",disabled:e||o||i,children:[i?s.jsx("span",{className:"loading loading-spinner"}):t&&s.jsx(t,{size:22}),r]})}function gs({disabled:e,icon:t,onClick:n,className:r,children:o}){let{globalDisabled:i,pending:l}=c.useContext(oe);return s.jsxs("button",{className:g("btn btn-primary mt-4",r),type:"button",onClick:n,disabled:e||i||l,children:[t&&s.jsx(t,{size:22}),o]})}function Nn({start:e,end:t,children:n}){let r=je(e)??!0,o=je(t)??!1;return r&&!o&&n}function je(e){let t=c.useCallback(()=>e&&Yt(e),[e]),[n,r]=c.useState(t),o=c.useCallback(()=>r(t()),[t]);return c.useEffect(()=>{if(!e){r(void 0);return}let i=Me(e,Date.now());if(r(i<0),i<0)return;let l=setTimeout(o,i+5);return()=>clearTimeout(l)},[e,o]),c.useEffect(()=>(window.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)),[o]),n}var Fe=c.createContext({notify:()=>{}});function Cn({children:e}){let[t,n]=c.useState([]),r=c.useCallback(o=>{n(i=>[...i,{...o,timestamp:Date.now()}])},[]);return c.useEffect(()=>{return window.addEventListener("unhandledrejection",o),()=>window.removeEventListener("unhandledrejection",o);function o(i){r({type:"alert-error",message:i.reason.message})}},[r]),s.jsx(Fe.Provider,{value:{notify:r},children:s.jsxs("div",{className:"flex min-h-dvh w-full flex-col",children:[e,s.jsx("div",{className:"toast left-0 z-50 items-end",children:t.map((o,i)=>c.createElement(On,{...o,key:i}))})]})})}function On({type:e,message:t,timestamp:n}){let r=c.useMemo(()=>Wt(n,10),[n]);return s.jsx(Nn,{end:r,children:s.jsx("div",{className:g("alert max-w-sm",e),children:s.jsxs("div",{className:"flex gap-4",children:[e==="alert-success"?s.jsx(mn,{}):s.jsx(bn,{}),s.jsx("div",{className:"text-wrap",children:t})]})})})}function Pn(){let{notify:e}=c.useContext(Fe),t=c.useCallback(r=>e({type:"alert-success",message:r}),[e]),n=c.useCallback(r=>e({type:"alert-error",message:r.message}),[e]);return{notifySuccess:t,notifyError:n}}function xs({fallback:e,className:t,children:n}){return s.jsxs("ul",{className:g("menu w-full rounded-box bg-base-200",t),children:[n,e&&s.jsx("li",{className:"col-span-full hidden p-2 text-center first:flex",children:e})]})}var vs=c.forwardRef(function({title:e,className:t,children:n},r){return s.jsxs("dialog",{ref:r,className:"modal",children:[s.jsxs("div",{className:g("modal-box",t),children:[s.jsx("form",{method:"dialog",children:s.jsx("button",{className:"btn btn-circle btn-ghost btn-sm absolute right-2 top-2","aria-label":"Chiudi",type:"submit",children:s.jsx(Be,{})})}),s.jsx("h1",{className:"mb-3 mt-0 text-lg font-bold",children:e}),n]}),s.jsx("form",{method:"dialog",className:"modal-backdrop",children:s.jsx("button",{type:"submit",children:"Chiudi"})})]})});function js({color:e,children:t}){let[n,r]=c.useState(!1),o=c.useCallback(i=>{let l=i.target;(l instanceof HTMLAnchorElement||l instanceof HTMLButtonElement)&&r(!1)},[]);return s.jsx("div",{className:g(M.navbar,e),children:s.jsxs("div",{onClick:o,children:[s.jsxs("label",{className:g(M.navbarMenuIcon,"btn btn-ghost swap swap-rotate"),onClick:i=>i.stopPropagation(),children:[s.jsx("input",{type:"checkbox",checked:n,onChange:i=>r(i.target.checked),"aria-label":"Mostra menu"}),s.jsx(hn,{className:"swap-off"}),s.jsx(Be,{className:"swap-on"})]}),t]})})}function Es({children:e}){return s.jsx("div",{className:M.navbarBrand,children:e})}function ws({children:e}){return s.jsx("div",{className:M.navbarMenu,children:s.jsx("div",{children:s.jsx("ul",{className:"menu md:menu-horizontal",children:e})})})}function Ss({children:e}){return s.jsx("li",{children:e})}function Ns({children:e}){return s.jsx("div",{className:M.navbarContent,children:e})}var Ue={exports:{}},qe={};var I=c;function Tn(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Rn=typeof Object.is=="function"?Object.is:Tn,kn=I.useState,Dn=I.useEffect,In=I.useLayoutEffect,Ln=I.useDebugValue;function An(e,t){var n=t(),r=kn({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return In(function(){o.value=n,o.getSnapshot=t,J(o)&&i({inst:o})},[e,n,t]),Dn(function(){return J(o)&&i({inst:o}),e(function(){J(o)&&i({inst:o})})},[e]),Ln(n),n}function J(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Rn(e,n)}catch{return!0}}function Mn(e,t){return t()}var Vn=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Mn:An;qe.useSyncExternalStore=I.useSyncExternalStore!==void 0?I.useSyncExternalStore:Vn;Ue.exports=qe;var $n=Ue.exports;const R=()=>{},v=R(),F=Object,S=e=>e===v,P=e=>typeof e=="function",k=(e,t)=>({...e,...t}),zn=e=>P(e.then),z=new WeakMap;let Bn=0;const V=e=>{const t=typeof e,n=e&&e.constructor,r=n==Date;let o,i;if(F(e)===e&&!r&&n!=RegExp){if(o=z.get(e),o)return o;if(o=++Bn+"~",z.set(e,o),n==Array){for(o="@",i=0;i{const n=T.get(e);return[()=>!S(t)&&e.get(t)||X,r=>{if(!S(t)){const o=e.get(t);t in B||(B[t]=o),n[5](t,k(o,r),o||X)}},n[6],()=>!S(t)&&t in B?B[t]:!S(t)&&e.get(t)||X]};let te=!0;const Un=()=>te,[ne,re]=ae&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[R,R],qn=()=>{const e=ee&&document.visibilityState;return S(e)||e!=="hidden"},Wn=e=>(ee&&document.addEventListener("visibilitychange",e),ne("focus",e),()=>{ee&&document.removeEventListener("visibilitychange",e),re("focus",e)}),Hn=e=>{const t=()=>{te=!0,e()},n=()=>{te=!1};return ne("online",t),ne("offline",n),()=>{re("online",t),re("offline",n)}},Kn={isOnline:Un,isVisible:qn},Gn={initFocus:Wn,initReconnect:Hn};se.useId;const ie=!ae||"Deno"in window,Yn=ie?c.useEffect:c.useLayoutEffect,Z=typeof navigator<"u"&&navigator.connection,Ee=!ie&&Z&&(["slow-2g","2g"].includes(Z.effectiveType)||Z.saveData),He=e=>{if(P(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?V(e):"",[e,t]};let Jn=0;const we=()=>++Jn,Xn=0,Zn=1,Qn=2;async function er(...e){const[t,n,r,o]=e,i=k({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let l=i.populateCache;const u=i.rollbackOnError;let d=i.optimisticData;const m=b=>typeof u=="function"?u(b):u!==!1,f=i.throwOnError;if(P(n)){const b=n,x=[],E=t.keys();for(const j of E)!/^\$(inf|sub)\$/.test(j)&&b(t.get(j)._k)&&x.push(j);return Promise.all(x.map(h))}return h(n);async function h(b){const[x]=He(b);if(!x)return;const[E,j]=Fn(t,x),[N,G,ot,at]=T.get(t),de=()=>{const O=N[x];return(P(i.revalidate)?i.revalidate(E().data,b):i.revalidate!==!1)&&(delete ot[x],delete at[x],O&&O[0])?O[0](Qn).then(()=>E().data):E().data};if(e.length<3)return de();let w=r,C;const fe=we();G[x]=[fe,0];const me=!S(d),he=E(),be=he.data,pe=he._c,L=S(pe)?be:pe;if(me&&(d=P(d)?d(L,be):d,j({data:d,_c:L})),P(w))try{w=w(L)}catch(O){C=O}if(w&&zn(w))if(w=await w.catch(O=>{C=O}),fe!==G[x][0]){if(C)throw C;return w}else C&&me&&m(C)&&(l=!0,j({data:L,_c:v}));if(l&&!C)if(P(l)){const O=l(w,L);j({data:O,error:v,_c:v})}else j({data:w,error:v,_c:v});if(G[x][1]=we(),Promise.resolve(de()).then(()=>{j({_c:v})}),C){if(f)throw C;return}return w}}const Se=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},Ke=(e,t)=>{if(!T.has(e)){const n=k(Gn,t),r={},o=er.bind(v,e);let i=R;const l={},u=(f,h)=>{const b=l[f]||[];return l[f]=b,b.push(h),()=>b.splice(b.indexOf(h),1)},d=(f,h,b)=>{e.set(f,h);const x=l[f];if(x)for(const E of x)E(h,b)},m=()=>{if(!T.has(e)&&(T.set(e,[r,{},{},{},o,d,u]),!ie)){const f=n.initFocus(setTimeout.bind(v,Se.bind(v,r,Xn))),h=n.initReconnect(setTimeout.bind(v,Se.bind(v,r,Zn)));i=()=>{f&&f(),h&&h(),T.delete(e)}}};return m(),[e,o,m,i]}return[e,T.get(e)[4]]},tr=(e,t,n,r,o)=>{const i=n.errorRetryCount,l=o.retryCount,u=~~((Math.random()+.5)*(1<<(l<8?l:8)))*n.errorRetryInterval;!S(i)&&l>i||setTimeout(r,u,o)},nr=(e,t)=>V(e)==V(t),[ce,rr]=Ke(new Map),sr=k({onLoadingSlow:R,onSuccess:R,onError:R,onErrorRetry:tr,onDiscarded:R,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Ee?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Ee?5e3:3e3,compare:nr,isPaused:()=>!1,cache:ce,mutate:rr,fallback:{}},Kn),or=(e,t)=>{const n=k(e,t);if(t){const{use:r,fallback:o}=e,{use:i,fallback:l}=t;r&&i&&(n.use=r.concat(i)),o&&l&&(n.fallback=k(o,l))}return n},Ne=c.createContext({}),ar=e=>{const{value:t}=e,n=c.useContext(Ne),r=P(t),o=c.useMemo(()=>r?t(n):t,[r,n,t]),i=c.useMemo(()=>r?o:or(n,o),[r,n,o]),l=o&&o.provider,u=c.useRef(v);l&&!u.current&&(u.current=Ke(l(i.cache||ce),o));const d=u.current;return d&&(i.cache=d[0],i.mutate=d[1]),Yn(()=>{if(d)return d[2]&&d[2](),d[3]},[]),c.createElement(Ne.Provider,k(e,{value:i}))},ir="$inf$",Ge=ae&&window.__SWR_DEVTOOLS_USE__,cr=Ge?window.__SWR_DEVTOOLS_USE__:[],lr=()=>{Ge&&(window.__SWR_DEVTOOLS_REACT__=se)},ur=e=>(t,n,r)=>e(t,n&&((...i)=>{const[l]=He(t),[,,,u]=T.get(ce);if(l.startsWith(ir))return n(...i);const d=u[l];return S(d)?n(...i):(delete u[l],d)}),r);cr.concat(ur);lr();se.use;const dr=F.defineProperty(ar,"defaultValue",{value:sr});function fr(e,t){if(e instanceof RegExp)return{keys:!1,pattern:e};var n,r,o,i,l=[],u="",d=e.split("/");for(d[0]||d.shift();o=d.shift();)n=o[0],n==="*"?(l.push(n),u+=o[1]==="?"?"(?:/(.*))?":"/(.*)"):n===":"?(r=o.indexOf("?",1),i=o.indexOf(".",1),l.push(o.substring(1,~r?r:~i?i:o.length)),u+=~r&&!~i?"(?:/([^/]+?))?":"/([^/]+?)",~i&&(u+=(~r?"?":"")+"\\"+o.substring(i))):u+="/"+o;return{keys:l,pattern:new RegExp("^"+u+(t?"(?=$|/)":"/?$"),"i")}}const mr=it.useInsertionEffect,hr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",br=hr?c.useLayoutEffect:c.useEffect,pr=mr||br,Ye=e=>{const t=c.useRef([e,(...n)=>t[0](...n)]).current;return pr(()=>{t[0]=e}),t[1]},_r="popstate",le="pushState",ue="replaceState",yr="hashchange",Ce=[_r,le,ue,yr],gr=e=>{for(const t of Ce)addEventListener(t,e);return()=>{for(const t of Ce)removeEventListener(t,e)}},Je=(e,t)=>$n.useSyncExternalStore(gr,e,t),xr=()=>location.search,vr=({ssrSearch:e=""}={})=>Je(xr,()=>e),Oe=()=>location.pathname,jr=({ssrPath:e}={})=>Je(Oe,e?()=>e:Oe),Er=(e,{replace:t=!1,state:n=null}={})=>history[t?ue:le](n,"",e),wr=(e={})=>[jr(e),Er],Pe=Symbol.for("wouter_v3");if(typeof history<"u"&&typeof window[Pe]>"u"){for(const e of[le,ue]){const t=history[e];history[e]=function(){const n=t.apply(this,arguments),r=new Event(e);return r.arguments=arguments,dispatchEvent(r),n}}Object.defineProperty(window,Pe,{value:!0})}const Sr=(e,t)=>t.toLowerCase().indexOf(e.toLowerCase())?"~"+t:t.slice(e.length)||"/",Xe=(e="")=>e==="/"?"":e,Nr=(e,t)=>e[0]==="~"?e.slice(1):Xe(t)+e,Cr=(e="",t)=>Sr(Te(Xe(e)),Te(t)),Te=e=>{try{return decodeURI(e)}catch{return e}},Ze={hook:wr,searchHook:vr,parser:fr,base:"",ssrPath:void 0,ssrSearch:void 0,hrefs:e=>e},Qe=c.createContext(Ze),$=()=>c.useContext(Qe),et={},tt=c.createContext(et),Or=()=>c.useContext(tt),K=e=>{const[t,n]=e.hook(e);return[Cr(e.base,t),Ye((r,o)=>n(Nr(r,e.base),o))]},Pr=()=>K($()),nt=(e,t,n,r)=>{const{pattern:o,keys:i}=t instanceof RegExp?{keys:!1,pattern:t}:e(t||"*",r),l=o.exec(n)||[],[u,...d]=l;return u!==void 0?[!0,(()=>{const m=i!==!1?Object.fromEntries(i.map((h,b)=>[h,d[b]])):l.groups;let f={...d};return m&&Object.assign(f,m),f})(),...r?[u]:[]]:[!1,null]},rt=({children:e,...t})=>{const n=$(),r=t.hook?Ze:n;let o=r;const[i,l]=t.ssrPath?.split("?")??[];l&&(t.ssrSearch=l,t.ssrPath=i),t.hrefs=t.hrefs??t.hook?.hrefs;let u=c.useRef({}),d=u.current,m=d;for(let f in r){const h=f==="base"?r[f]+(t[f]||""):t[f]||r[f];d===m&&h!==m[f]&&(u.current=m={...m}),m[f]=h,h!==r[f]&&(o=m)}return c.createElement(Qe.Provider,{value:o,children:e})},Re=({children:e,component:t},n)=>t?c.createElement(t,{params:n}):typeof e=="function"?e(n):e,Tr=e=>{let t=c.useRef(et),n=t.current;for(const r in e)e[r]!==n[r]&&(n=e);return Object.keys(e).length===0&&(n=e),t.current=n},_=({path:e,nest:t,match:n,...r})=>{const o=$(),[i]=K(o),[l,u,d]=n??nt(o.parser,e,i,t),m=Tr({...Or(),...u});if(!l)return null;const f=d?c.createElement(rt,{base:d},Re(r,m)):Re(r,m);return c.createElement(tt.Provider,{value:m,children:f})},Cs=c.forwardRef((e,t)=>{const n=$(),[r,o]=K(n),{to:i="",href:l=i,onClick:u,asChild:d,children:m,className:f,replace:h,state:b,...x}=e,E=Ye(N=>{N.ctrlKey||N.metaKey||N.altKey||N.shiftKey||N.button!==0||(u?.(N),N.defaultPrevented||(N.preventDefault(),o(l,e)))}),j=n.hrefs(l[0]==="~"?l.slice(1):n.base+l,n);return d&&c.isValidElement(m)?c.cloneElement(m,{onClick:E,href:j}):c.createElement("a",{...x,onClick:E,href:j,className:f?.call?f(r===l):f,children:m,ref:t})}),st=e=>Array.isArray(e)?e.flatMap(t=>st(t&&t.type===c.Fragment?t.props.children:t)):[e],Rr=({children:e,location:t})=>{const n=$(),[r]=K(n);for(const o of st(e)){let i=0;if(c.isValidElement(o)&&(i=nt(n.parser,o.props.path,t||r,o.props.nest))[0])return c.cloneElement(o,{match:i})}return null};function kr({children:e}){let[t,n]=Pr(),r=c.useDeferredValue(t);return s.jsx(Cn,{children:s.jsx(Dr,{children:s.jsx(c.Suspense,{fallback:s.jsx(Xt,{}),children:s.jsx(rt,{hook:()=>[r,n],children:s.jsx(Rr,{children:e})})})})})}function Dr({children:e}){let{notifyError:t}=Pn();return s.jsx(dr,{value:{onError:t},children:e})}async function y(e){let{default:t,metadata:n}=await e;return{default:()=>s.jsx(Ir,{metadata:n,children:s.jsx(t,{})})}}function Ir({metadata:e,children:t}){return c.useEffect(()=>{let n=e?.title;n&&(document.title=n)},[e]),t}const Lr=c.lazy(()=>p(()=>import("./w/bd90e419-index.js"),__vite__mapDeps([3,1,2]))),Ar=c.lazy(()=>y(p(()=>import("./t/2e60adb4-page.js"),__vite__mapDeps([4,5])))),Mr=c.lazy(()=>y(p(()=>import("./t/8f86b1e7-page.js"),__vite__mapDeps([6,5,7,8])))),Vr=c.lazy(()=>y(p(()=>import("./t/9baa8f2b-page.js"),__vite__mapDeps([9,5,7,8])))),$r=c.lazy(()=>y(p(()=>import("./t/91c36b3e-page.js"),__vite__mapDeps([10,5,7,8])))),zr=c.lazy(()=>y(p(()=>import("./t/57dedeea-page.js"),__vite__mapDeps([11,12,1,2,13,8,14,15,16,17])))),Br=c.lazy(()=>y(p(()=>import("./t/39767590-page.js"),__vite__mapDeps([18,12,1,2,13,8,14,15,16,19])))),Fr=c.lazy(()=>y(p(()=>import("./t/f17daebf-page.js"),__vite__mapDeps([20,12,1,2,13,8,14,15,16,21,22])))),Ur=c.lazy(()=>y(p(()=>import("./t/1e53e485-page.js"),__vite__mapDeps([23,12,1,2,13,8,14,15,16,24,22])))),qr=c.lazy(()=>y(p(()=>import("./t/49119304-page.js"),__vite__mapDeps([25,12,1,2,13,8,14,15,16,26])))),Wr=c.lazy(()=>y(p(()=>import("./t/fce79f69-page.js"),__vite__mapDeps([27,12,1,2,13,8,14,15,16,17])))),Hr=c.lazy(()=>y(p(()=>import("./t/bdf66f1b-page.js"),__vite__mapDeps([28,12,1,2,13,8,14,15,16,19])))),Kr=c.lazy(()=>y(p(()=>import("./t/3fd9f578-page.js"),__vite__mapDeps([29,12,1,2,13,8,14,15,16,21,22])))),Gr=c.lazy(()=>y(p(()=>import("./t/9e55ea88-page.js"),__vite__mapDeps([30,12,1,2,13,8,14,15,16,24,22])))),Yr=c.lazy(()=>y(p(()=>import("./t/8818ea5f-page.js"),__vite__mapDeps([31,12,1,2,13,8,14,15,16,22])))),Jr=c.lazy(()=>y(p(()=>import("./t/4affd1f1-page.js"),__vite__mapDeps([32,12,1,2,13,8,14,15,16,26])))),Xr=c.lazy(()=>y(p(()=>import("./t/330b1a00-page.js"),__vite__mapDeps([33,12,1,2,13,8,14,15,16])))),Zr=c.lazy(()=>y(p(()=>import("./t/8d1d003b-page.js"),__vite__mapDeps([34,12,1,2,13,8,14,15,16])))),Qr=c.lazy(()=>y(p(()=>import("./t/b6c284bc-page.js"),__vite__mapDeps([35,12,1,2,13,8,14,15,16])))),es=c.lazy(()=>y(p(()=>import("./t/7d9bd7ee-page.js"),__vite__mapDeps([36,12,1,2,13,8,14,15,16])))),ts=c.lazy(()=>y(p(()=>import("./t/2a9a0c33-page.js"),__vite__mapDeps([37,12,1,2,13,8,14,15,16])))),ns=c.lazy(()=>y(p(()=>import("./t/6ef07e06-page.js"),__vite__mapDeps([38,12,1,2,13,8,14,15,16,19]))));ct(document.getElementById("app")).render(s.jsx(c.StrictMode,{children:s.jsxs(kr,{children:[s.jsx(_,{path:"/__blockly_iframe",children:s.jsx(Lr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2023-seconda-fase-demo",nest:!0,children:s.jsx(Gr,{})}),s.jsx(_,{path:"/fibonacci-primarie/2023-seconda-fase-demo",nest:!0,children:s.jsx(Ur,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2023-seconda-fase",nest:!0,children:s.jsx(Kr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2024-prima-fase",nest:!0,children:s.jsx(Jr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2023-terza-fase",nest:!0,children:s.jsx(Yr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2023-prima-fase",nest:!0,children:s.jsx(Hr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2022-prima-fase",nest:!0,children:s.jsx(Wr,{})}),s.jsx(_,{path:"/fibonacci-primarie/2023-seconda-fase",nest:!0,children:s.jsx(Fr,{})}),s.jsx(_,{path:"/fibonacci-primarie/2024-prima-fase",nest:!0,children:s.jsx(qr,{})}),s.jsx(_,{path:"/fibonacci-primarie/2023-prima-fase",nest:!0,children:s.jsx(Br,{})}),s.jsx(_,{path:"/fibonacci-primarie/2022-prima-fase",nest:!0,children:s.jsx(zr,{})}),s.jsx(_,{path:"/scolastiche/2022-demo",nest:!0,children:s.jsx(ts,{})}),s.jsx(_,{path:"/fibonacci-secondarie",nest:!0,children:s.jsx(Vr,{})}),s.jsx(_,{path:"/fibonacci-primarie",nest:!0,children:s.jsx(Mr,{})}),s.jsx(_,{path:"/scolastiche/2023",nest:!0,children:s.jsx(ns,{})}),s.jsx(_,{path:"/scolastiche/2022",nest:!0,children:s.jsx(es,{})}),s.jsx(_,{path:"/scolastiche/2021",nest:!0,children:s.jsx(Qr,{})}),s.jsx(_,{path:"/scolastiche/2020",nest:!0,children:s.jsx(Zr,{})}),s.jsx(_,{path:"/scolastiche/2019",nest:!0,children:s.jsx(Xr,{})}),s.jsx(_,{path:"/scolastiche",nest:!0,children:s.jsx($r,{})}),s.jsx(_,{path:"/",nest:!0,children:s.jsx(Ar,{})})]})}));export{Es as $,Xt as B,ls as D,cs as E,_s as H,ds as I,Ns as K,Cs as L,ys as R,U as S,bn as T,ws as U,js as V,ms as Y,hs as Z,as as _,Y as a,Ot as b,g as c,Pt as d,Rt as e,_t as f,H as g,vs as h,ge as i,s as j,us as k,gs as l,Jt as m,is as n,bs as o,ps as p,fs as q,gt as r,je as s,D as t,qt as u,p as v,xs as w,ln as x,Ss as z}; -//# sourceMappingURL=_virtual_quizms-routes-09086dad.js.map +import{r as c,_ as se,R as it,c as ct}from"./s/00dd80a9-react-dom.js";import{z as a}from"./t/0aea33bc-zod.js";const lt="modulepreload",ut=function(e){return"/"+e},_e={},p=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");o=Promise.all(n.map(u=>{if(u=ut(u),u in _e)return;_e[u]=!0;const d=u.endsWith(".css"),m=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${m}`))return;const f=document.createElement("link");if(f.rel=d?"stylesheet":lt,d||(f.as="script"),f.crossOrigin="",f.href=u,l&&f.setAttribute("nonce",l),document.head.appendChild(f),d)return new Promise((h,b)=>{f.addEventListener("load",h),f.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${u}`)))})}))}return o.then(()=>t()).catch(i=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i})};var De={exports:{}},q={};var dt=c,ft=Symbol.for("react.element"),mt=Symbol.for("react.fragment"),ht=Object.prototype.hasOwnProperty,bt=dt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,pt={key:!0,ref:!0,__self:!0,__source:!0};function ke(e,t,n){var r,o={},i=null,l=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(l=t.ref);for(r in t)ht.call(t,r)&&!pt.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:ft,type:e,key:i,ref:l,props:o,_owner:bt.current}}q.Fragment=mt;q.jsx=ke;q.jsxs=ke;De.exports=q;var s=De.exports;function Ie(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t=t?e:t)),e}function Bt(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=Y(n),n=n===n?n:0),t!==void 0&&(t=Y(t),t=t===t?t:0),zt(Y(e),t,n)}function k(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ft(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Ae(e,t){const n=+k(e);return Ft(e,n+t)}const Ut=6e4;function qt(e,t){return Ae(e,t*Ut)}function Wt(e,t){return Ae(e,t*1e3)}function Ht(e){return t=>{const n=Math.trunc,r=n(t);return r===0?0:r}}function Me(e,t){return+k(e)-+k(t)}function Kt(e,t,n){const r=Me(e,t)/1e3;return Ht()(r)}function Gt(e,t){const n=k(e),r=k(t);return n.getTime()>r.getTime()}function Yt(e){return+k(e){let d=setInterval(()=>{let m=Date.now();n(m),Gt(m,r)&&clearInterval(d)},100);return()=>clearInterval(d)},[r]);let o=Math.max(Kt(r,t),0);e.duration&&(o=Math.min(o,e.duration*60));let i=Math.floor(o/3600),l=Math.floor(o/60)%60,u=o%60;return i>0?s.jsxs("span",{className:g("countdown font-mono",e.noAnimation&&"[&_*:before]:transition-none"),children:[s.jsx("span",{style:{"--value":i}}),"h",s.jsx("span",{style:{"--value":l}}),"m"]}):s.jsxs("span",{className:g("countdown font-mono",e.noAnimation&&"[&_*:before]:transition-none"),children:[s.jsx("span",{style:{"--value":l}}),"m",s.jsx("span",{style:{"--value":u}}),"s"]})}class Zt extends Error{}Zt.prototype.name="InvalidTokenError";a.object({analytics:a.string(),captcha_enabled:a.boolean(),cookie_domain:a.string(),description:a.string(),forum_url:a.string(),languages:a.string().array(),mail_enabled:a.boolean(),menu:a.object({title:a.string(),icon:a.string()}).array(),name:a.string(),participates:a.boolean(),recaptcha_public_key:a.string(),title:a.string(),top_left_name:a.string()});var Qt=a.object({name:a.string(),digest:a.string()}),W=a.object({id:a.number(),name:a.string()});a.object({regions:W.array()});a.object({provinces:W.array()});a.object({cities:W.array()});a.object({institutes:W.array()});a.object({message:a.string(),type:a.number()});var en=a.object({idx:a.string(),memory:a.number().nullable(),outcome:a.enum(["Correct","Partially correct","Not correct"]),text:a.string(),time:a.number().nullable()}),ve=a.object({idx:a.number().optional(),max_score:a.number(),testcases:en.array()}),tn=a.union([ve.extend({score:a.number()}),ve.extend({score_fraction:a.number()}).transform(({score_fraction:e,...t})=>({...t,score:e*t.max_score}))]),Ve=a.object({compilation_outcome:a.enum(["ok","fail"]).nullable(),evaluation_outcome:a.literal("ok").nullable(),files:Qt.array(),id:a.number(),score:a.number().nullable().optional(),task_id:a.number(),timestamp:a.number().transform(e=>new Date(e*1e3))});Ve.extend({compilation_memory:a.number().nullable(),compilation_time:a.number().nullable(),compilation_stdout:a.string().nullable(),compilation_stderr:a.string().nullable(),score_details:tn.array().nullable(),language:a.string().nullable()});a.object({submissions:Ve.array()});a.object({tags:a.string().array()});var nn=a.tuple([a.string(),a.string()]).transform(([e,t])=>({name:e,digest:t})),rn=a.object({name:a.string(),can_delete:a.boolean()});a.object({attachments:nn.array(),help_available:a.boolean(),id:a.number(),memory_limit:a.number().nullable(),name:a.string(),score_multiplier:a.number(),statements:a.record(a.string()),submission_format:a.string().array(),supported_languages:a.string().array(),tags:rn.array(),task_type:a.enum(["Batch","OutputOnly","Communication"]),time_limit:a.number().nullable(),title:a.string()});var sn=a.object({id:a.number(),name:a.string(),score:a.number().optional(),score_multiplier:a.number(),title:a.string()});a.object({num:a.number(),tasks:sn.array(),tags:a.string().array().optional()});var on=a.object({username:a.string(),time:a.number()});a.object({nsubs:a.number(),nsubscorrect:a.number(),nusers:a.number(),nuserscorrect:a.number(),best:on.array()});var an=a.object({name:a.string(),title:a.string(),score:a.number()}),Q=(e=>(e[e.Admin=0]="Admin",e[e.Monica=1]="Monica",e[e.Tutor=2]="Tutor",e[e.Teacher=3]="Teacher",e[e.Superuser=4]="Superuser",e[e.User=5]="User",e[e.Newbie=6]="Newbie",e[e.Guest=7]="Guest",e))(Q||{}),$e=a.object({username:a.string(),first_name:a.string(),last_name:a.string(),institute:a.union([a.object({id:a.number(),name:a.string(),city:a.string(),province:a.string(),region:a.string()}),a.object({})]).transform(e=>"id"in e?e:void 0),mail_hash:a.string(),join_date:a.number().transform(e=>new Date(e*1e3)),score:a.number(),scores:an.array().optional(),tasks_solved:a.number(),access_level:a.nativeEnum(Q),global_access_level:a.nativeEnum(Q)});a.object({num:a.number(),users:$e.array()});a.object({user:$e});a.object({id:a.number(),username:a.string(),email:a.string(),firstName:a.string(),lastName:a.string(),picture:a.string().transform(e=>`https:${e}`)});const cn="_pre_165zj_1",ln={pre:cn};const un=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ze=(...e)=>e.filter((t,n,r)=>!!t&&r.indexOf(t)===n).join(" ");var dn={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const fn=c.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o="",children:i,iconNode:l,...u},d)=>c.createElement("svg",{ref:d,...dn,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:ze("lucide",o),...u},[...l.map(([m,f])=>c.createElement(m,f)),...Array.isArray(i)?i:[i]]));const H=(e,t)=>{const n=c.forwardRef(({className:r,...o},i)=>c.createElement(fn,{ref:i,iconNode:t,className:ze(`lucide-${un(e)}`,r),...o}));return n.displayName=`${e}`,n};const mn=H("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const hn=H("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);const bn=H("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const Be=H("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),pn="_navbar_1bmiq_1",_n="_navbarMenuIcon_1bmiq_14",yn="_navbarMenu_1bmiq_14",gn="_navbarBrand_1bmiq_23",xn="_navbarContent_1bmiq_28",vn="_navbarSubmenu_1bmiq_33",jn="_navbarSubmenuCheckbox_1bmiq_46",M={navbar:pn,navbarMenuIcon:_n,navbarMenu:yn,navbarBrand:gn,navbarContent:xn,navbarSubmenu:vn,navbarSubmenuCheckbox:jn};function ls({onClick:e,icon:t,disabled:n,className:r,children:o}){let[i,l]=c.useState(!1),u=async()=>{l(!0);try{await e?.()}finally{l(!1)}};return s.jsxs("button",{className:g("btn",r),onClick:u,disabled:i||n,type:"button",children:[i?s.jsx("span",{className:"loading loading-spinner"}):t&&s.jsx(t,{size:22}),o]})}function us({className:e,children:t}){return s.jsx("div",{className:g("card overflow-hidden sm:card-side",e),children:t})}function ds({title:e,children:t}){return s.jsxs("div",{className:"card-body",children:[s.jsx("h2",{className:"card-title",children:e}),t]})}function fs({children:e}){return s.jsx("div",{className:"card-actions mt-2 grow items-end justify-center",children:e})}var En=c.lazy(()=>p(()=>import("./r/b5abcf0a-highlight-UOJF2D5K.js"),__vite__mapDeps([0,1,2])));function ms({lang:e,...t}){return s.jsx(c.Suspense,{fallback:s.jsx(wn,{...t}),children:s.jsx(En,{lang:e,...t})})}function wn({code:e,inline:t,className:n}){return t?s.jsx("code",{className:n,children:e}):s.jsx("div",{className:n,children:s.jsx("pre",{className:ln.pre,children:s.jsx("code",{children:e.split(` +`).map((r,o)=>s.jsxs("span",{className:"line",children:[s.jsx("span",{children:r}),s.jsx("br",{})]},o))})})})}function hs({className:e,children:t}){return s.jsx("div",{className:g("dropdown max-w-full flex-none",e),children:t})}function bs({className:e,children:t,ariaLabel:n}){return s.jsx("div",{tabIndex:0,role:"button",className:g("btn btn-ghost no-animation w-full flex-nowrap",e),"aria-label":n,children:t})}function ps({className:e,children:t}){return s.jsx("ul",{className:g("menu dropdown-content !transition-all",e),children:t})}function _s({children:e}){let t=c.useCallback(n=>{let r=n.target;(r instanceof HTMLAnchorElement||r instanceof HTMLButtonElement)&&r.blur()},[]);return s.jsx("li",{onClick:t,children:e})}var Sn=class extends Error{constructor(e,t){super(t),this.field=e,this.message=t}},oe=c.createContext({state:{},setState:()=>{},globalDisabled:!1,pending:!1});function ys({defaultValue:e,onSubmit:t,disabled:n,className:r,children:o}){let i=c.useRef(null),[l,u]=c.useState(e??{}),[d,m]=c.useState(!1),f=async h=>{if(h.preventDefault(),!!i.current?.checkValidity()){m(!0);try{await t?.(l)}catch(b){if(b instanceof Sn)i.current?.querySelector(`[name="${b.field}"]`)?.setCustomValidity(b.message);else throw b}finally{m(!1)}}};return s.jsx(oe.Provider,{value:{state:l,setState:u,globalDisabled:n??!1,pending:d},children:s.jsx("form",{ref:i,className:g("mx-auto flex w-full max-w-sm flex-col items-center",r),onSubmit:f,children:(Array.isArray(o)?o:[o]).map((h,b)=>typeof h=="function"?s.jsx(c.Fragment,{children:h(l)},b):h)})})}function gs({disabled:e,icon:t,className:n,children:r}){let{globalDisabled:o,pending:i}=c.useContext(oe);return s.jsxs("button",{className:g("btn btn-primary mt-4",n),type:"submit",disabled:e||o||i,children:[i?s.jsx("span",{className:"loading loading-spinner"}):t&&s.jsx(t,{size:22}),r]})}function xs({disabled:e,icon:t,onClick:n,className:r,children:o}){let{globalDisabled:i,pending:l}=c.useContext(oe);return s.jsxs("button",{className:g("btn btn-primary mt-4",r),type:"button",onClick:n,disabled:e||i||l,children:[t&&s.jsx(t,{size:22}),o]})}function Nn({start:e,end:t,children:n}){let r=je(e)??!0,o=je(t)??!1;return r&&!o&&n}function je(e){let t=c.useCallback(()=>e&&Yt(e),[e]),[n,r]=c.useState(t),o=c.useCallback(()=>r(t()),[t]);return c.useEffect(()=>{if(!e){r(void 0);return}let i=Me(e,Date.now());if(r(i<0),i<0)return;let l=setTimeout(o,i+5);return()=>clearTimeout(l)},[e,o]),c.useEffect(()=>(window.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)),[o]),n}var Fe=c.createContext({notify:()=>{}});function Pn({children:e}){let[t,n]=c.useState([]),r=c.useCallback(o=>{n(i=>[...i,{...o,timestamp:Date.now()}])},[]);return c.useEffect(()=>{return window.addEventListener("unhandledrejection",o),()=>window.removeEventListener("unhandledrejection",o);function o(i){r({type:"alert-error",message:i.reason.message})}},[r]),s.jsx(Fe.Provider,{value:{notify:r},children:s.jsxs("div",{className:"flex min-h-dvh w-full flex-col",children:[e,s.jsx("div",{className:"toast left-0 z-50 items-end",children:t.map((o,i)=>c.createElement(Cn,{...o,key:i}))})]})})}function Cn({type:e,message:t,timestamp:n}){let r=c.useMemo(()=>Wt(n,10),[n]);return s.jsx(Nn,{end:r,children:s.jsx("div",{className:g("alert max-w-sm",e),children:s.jsxs("div",{className:"flex gap-4",children:[e==="alert-success"?s.jsx(mn,{}):s.jsx(bn,{}),s.jsx("div",{className:"text-wrap",children:t})]})})})}function On(){let{notify:e}=c.useContext(Fe),t=c.useCallback(r=>e({type:"alert-success",message:r}),[e]),n=c.useCallback(r=>e({type:"alert-error",message:r.message}),[e]);return{notifySuccess:t,notifyError:n}}function vs({fallback:e,className:t,children:n}){return s.jsxs("ul",{className:g("menu w-full rounded-box bg-base-200",t),children:[n,e&&s.jsx("li",{className:"col-span-full hidden p-2 text-center first:flex",children:e})]})}var js=c.forwardRef(function({title:e,className:t,children:n},r){return s.jsxs("dialog",{ref:r,className:"modal",children:[s.jsxs("div",{className:g("modal-box",t),children:[s.jsx("form",{method:"dialog",children:s.jsx("button",{className:"btn btn-circle btn-ghost btn-sm absolute right-2 top-2","aria-label":"Chiudi",type:"submit",children:s.jsx(Be,{})})}),s.jsx("h1",{className:"mb-3 mt-0 text-lg font-bold",children:e}),n]}),s.jsx("form",{method:"dialog",className:"modal-backdrop",children:s.jsx("button",{type:"submit",children:"Chiudi"})})]})});function Es({color:e,children:t}){let[n,r]=c.useState(!1),o=c.useCallback(i=>{let l=i.target;(l instanceof HTMLAnchorElement||l instanceof HTMLButtonElement)&&r(!1)},[]);return s.jsx("div",{className:g(M.navbar,e),children:s.jsxs("div",{onClick:o,children:[s.jsxs("label",{className:g(M.navbarMenuIcon,"btn btn-ghost swap swap-rotate"),onClick:i=>i.stopPropagation(),children:[s.jsx("input",{type:"checkbox",checked:n,onChange:i=>r(i.target.checked),"aria-label":"Mostra menu"}),s.jsx(hn,{className:"swap-off"}),s.jsx(Be,{className:"swap-on"})]}),t]})})}function ws({children:e}){return s.jsx("div",{className:M.navbarBrand,children:e})}function Ss({children:e}){return s.jsx("div",{className:M.navbarMenu,children:s.jsx("div",{children:s.jsx("ul",{className:"menu md:menu-horizontal",children:e})})})}function Ns({children:e}){return s.jsx("li",{children:e})}function Ps({children:e}){return s.jsx("div",{className:M.navbarContent,children:e})}var Ue={exports:{}},qe={};var I=c;function Tn(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Rn=typeof Object.is=="function"?Object.is:Tn,Dn=I.useState,kn=I.useEffect,In=I.useLayoutEffect,Ln=I.useDebugValue;function An(e,t){var n=t(),r=Dn({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return In(function(){o.value=n,o.getSnapshot=t,J(o)&&i({inst:o})},[e,n,t]),kn(function(){return J(o)&&i({inst:o}),e(function(){J(o)&&i({inst:o})})},[e]),Ln(n),n}function J(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Rn(e,n)}catch{return!0}}function Mn(e,t){return t()}var Vn=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Mn:An;qe.useSyncExternalStore=I.useSyncExternalStore!==void 0?I.useSyncExternalStore:Vn;Ue.exports=qe;var $n=Ue.exports;const R=()=>{},v=R(),F=Object,S=e=>e===v,O=e=>typeof e=="function",D=(e,t)=>({...e,...t}),zn=e=>O(e.then),z=new WeakMap;let Bn=0;const V=e=>{const t=typeof e,n=e&&e.constructor,r=n==Date;let o,i;if(F(e)===e&&!r&&n!=RegExp){if(o=z.get(e),o)return o;if(o=++Bn+"~",z.set(e,o),n==Array){for(o="@",i=0;i{const n=T.get(e);return[()=>!S(t)&&e.get(t)||X,r=>{if(!S(t)){const o=e.get(t);t in B||(B[t]=o),n[5](t,D(o,r),o||X)}},n[6],()=>!S(t)&&t in B?B[t]:!S(t)&&e.get(t)||X]};let te=!0;const Un=()=>te,[ne,re]=ae&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[R,R],qn=()=>{const e=ee&&document.visibilityState;return S(e)||e!=="hidden"},Wn=e=>(ee&&document.addEventListener("visibilitychange",e),ne("focus",e),()=>{ee&&document.removeEventListener("visibilitychange",e),re("focus",e)}),Hn=e=>{const t=()=>{te=!0,e()},n=()=>{te=!1};return ne("online",t),ne("offline",n),()=>{re("online",t),re("offline",n)}},Kn={isOnline:Un,isVisible:qn},Gn={initFocus:Wn,initReconnect:Hn};se.useId;const ie=!ae||"Deno"in window,Yn=ie?c.useEffect:c.useLayoutEffect,Z=typeof navigator<"u"&&navigator.connection,Ee=!ie&&Z&&(["slow-2g","2g"].includes(Z.effectiveType)||Z.saveData),He=e=>{if(O(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?V(e):"",[e,t]};let Jn=0;const we=()=>++Jn,Xn=0,Zn=1,Qn=2;async function er(...e){const[t,n,r,o]=e,i=D({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let l=i.populateCache;const u=i.rollbackOnError;let d=i.optimisticData;const m=b=>typeof u=="function"?u(b):u!==!1,f=i.throwOnError;if(O(n)){const b=n,x=[],E=t.keys();for(const j of E)!/^\$(inf|sub)\$/.test(j)&&b(t.get(j)._k)&&x.push(j);return Promise.all(x.map(h))}return h(n);async function h(b){const[x]=He(b);if(!x)return;const[E,j]=Fn(t,x),[N,G,ot,at]=T.get(t),de=()=>{const C=N[x];return(O(i.revalidate)?i.revalidate(E().data,b):i.revalidate!==!1)&&(delete ot[x],delete at[x],C&&C[0])?C[0](Qn).then(()=>E().data):E().data};if(e.length<3)return de();let w=r,P;const fe=we();G[x]=[fe,0];const me=!S(d),he=E(),be=he.data,pe=he._c,L=S(pe)?be:pe;if(me&&(d=O(d)?d(L,be):d,j({data:d,_c:L})),O(w))try{w=w(L)}catch(C){P=C}if(w&&zn(w))if(w=await w.catch(C=>{P=C}),fe!==G[x][0]){if(P)throw P;return w}else P&&me&&m(P)&&(l=!0,j({data:L,_c:v}));if(l&&!P)if(O(l)){const C=l(w,L);j({data:C,error:v,_c:v})}else j({data:w,error:v,_c:v});if(G[x][1]=we(),Promise.resolve(de()).then(()=>{j({_c:v})}),P){if(f)throw P;return}return w}}const Se=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},Ke=(e,t)=>{if(!T.has(e)){const n=D(Gn,t),r={},o=er.bind(v,e);let i=R;const l={},u=(f,h)=>{const b=l[f]||[];return l[f]=b,b.push(h),()=>b.splice(b.indexOf(h),1)},d=(f,h,b)=>{e.set(f,h);const x=l[f];if(x)for(const E of x)E(h,b)},m=()=>{if(!T.has(e)&&(T.set(e,[r,{},{},{},o,d,u]),!ie)){const f=n.initFocus(setTimeout.bind(v,Se.bind(v,r,Xn))),h=n.initReconnect(setTimeout.bind(v,Se.bind(v,r,Zn)));i=()=>{f&&f(),h&&h(),T.delete(e)}}};return m(),[e,o,m,i]}return[e,T.get(e)[4]]},tr=(e,t,n,r,o)=>{const i=n.errorRetryCount,l=o.retryCount,u=~~((Math.random()+.5)*(1<<(l<8?l:8)))*n.errorRetryInterval;!S(i)&&l>i||setTimeout(r,u,o)},nr=(e,t)=>V(e)==V(t),[ce,rr]=Ke(new Map),sr=D({onLoadingSlow:R,onSuccess:R,onError:R,onErrorRetry:tr,onDiscarded:R,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Ee?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Ee?5e3:3e3,compare:nr,isPaused:()=>!1,cache:ce,mutate:rr,fallback:{}},Kn),or=(e,t)=>{const n=D(e,t);if(t){const{use:r,fallback:o}=e,{use:i,fallback:l}=t;r&&i&&(n.use=r.concat(i)),o&&l&&(n.fallback=D(o,l))}return n},Ne=c.createContext({}),ar=e=>{const{value:t}=e,n=c.useContext(Ne),r=O(t),o=c.useMemo(()=>r?t(n):t,[r,n,t]),i=c.useMemo(()=>r?o:or(n,o),[r,n,o]),l=o&&o.provider,u=c.useRef(v);l&&!u.current&&(u.current=Ke(l(i.cache||ce),o));const d=u.current;return d&&(i.cache=d[0],i.mutate=d[1]),Yn(()=>{if(d)return d[2]&&d[2](),d[3]},[]),c.createElement(Ne.Provider,D(e,{value:i}))},ir="$inf$",Ge=ae&&window.__SWR_DEVTOOLS_USE__,cr=Ge?window.__SWR_DEVTOOLS_USE__:[],lr=()=>{Ge&&(window.__SWR_DEVTOOLS_REACT__=se)},ur=e=>(t,n,r)=>e(t,n&&((...i)=>{const[l]=He(t),[,,,u]=T.get(ce);if(l.startsWith(ir))return n(...i);const d=u[l];return S(d)?n(...i):(delete u[l],d)}),r);cr.concat(ur);lr();se.use;const dr=F.defineProperty(ar,"defaultValue",{value:sr});function fr(e,t){if(e instanceof RegExp)return{keys:!1,pattern:e};var n,r,o,i,l=[],u="",d=e.split("/");for(d[0]||d.shift();o=d.shift();)n=o[0],n==="*"?(l.push(n),u+=o[1]==="?"?"(?:/(.*))?":"/(.*)"):n===":"?(r=o.indexOf("?",1),i=o.indexOf(".",1),l.push(o.substring(1,~r?r:~i?i:o.length)),u+=~r&&!~i?"(?:/([^/]+?))?":"/([^/]+?)",~i&&(u+=(~r?"?":"")+"\\"+o.substring(i))):u+="/"+o;return{keys:l,pattern:new RegExp("^"+u+(t?"(?=$|/)":"/?$"),"i")}}const mr=it.useInsertionEffect,hr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",br=hr?c.useLayoutEffect:c.useEffect,pr=mr||br,Ye=e=>{const t=c.useRef([e,(...n)=>t[0](...n)]).current;return pr(()=>{t[0]=e}),t[1]},_r="popstate",le="pushState",ue="replaceState",yr="hashchange",Pe=[_r,le,ue,yr],gr=e=>{for(const t of Pe)addEventListener(t,e);return()=>{for(const t of Pe)removeEventListener(t,e)}},Je=(e,t)=>$n.useSyncExternalStore(gr,e,t),xr=()=>location.search,vr=({ssrSearch:e=""}={})=>Je(xr,()=>e),Ce=()=>location.pathname,jr=({ssrPath:e}={})=>Je(Ce,e?()=>e:Ce),Er=(e,{replace:t=!1,state:n=null}={})=>history[t?ue:le](n,"",e),wr=(e={})=>[jr(e),Er],Oe=Symbol.for("wouter_v3");if(typeof history<"u"&&typeof window[Oe]>"u"){for(const e of[le,ue]){const t=history[e];history[e]=function(){const n=t.apply(this,arguments),r=new Event(e);return r.arguments=arguments,dispatchEvent(r),n}}Object.defineProperty(window,Oe,{value:!0})}const Sr=(e,t)=>t.toLowerCase().indexOf(e.toLowerCase())?"~"+t:t.slice(e.length)||"/",Xe=(e="")=>e==="/"?"":e,Nr=(e,t)=>e[0]==="~"?e.slice(1):Xe(t)+e,Pr=(e="",t)=>Sr(Te(Xe(e)),Te(t)),Te=e=>{try{return decodeURI(e)}catch{return e}},Ze={hook:wr,searchHook:vr,parser:fr,base:"",ssrPath:void 0,ssrSearch:void 0,hrefs:e=>e},Qe=c.createContext(Ze),$=()=>c.useContext(Qe),et={},tt=c.createContext(et),Cr=()=>c.useContext(tt),K=e=>{const[t,n]=e.hook(e);return[Pr(e.base,t),Ye((r,o)=>n(Nr(r,e.base),o))]},Or=()=>K($()),nt=(e,t,n,r)=>{const{pattern:o,keys:i}=t instanceof RegExp?{keys:!1,pattern:t}:e(t||"*",r),l=o.exec(n)||[],[u,...d]=l;return u!==void 0?[!0,(()=>{const m=i!==!1?Object.fromEntries(i.map((h,b)=>[h,d[b]])):l.groups;let f={...d};return m&&Object.assign(f,m),f})(),...r?[u]:[]]:[!1,null]},rt=({children:e,...t})=>{const n=$(),r=t.hook?Ze:n;let o=r;const[i,l]=t.ssrPath?.split("?")??[];l&&(t.ssrSearch=l,t.ssrPath=i),t.hrefs=t.hrefs??t.hook?.hrefs;let u=c.useRef({}),d=u.current,m=d;for(let f in r){const h=f==="base"?r[f]+(t[f]||""):t[f]||r[f];d===m&&h!==m[f]&&(u.current=m={...m}),m[f]=h,h!==r[f]&&(o=m)}return c.createElement(Qe.Provider,{value:o,children:e})},Re=({children:e,component:t},n)=>t?c.createElement(t,{params:n}):typeof e=="function"?e(n):e,Tr=e=>{let t=c.useRef(et),n=t.current;for(const r in e)e[r]!==n[r]&&(n=e);return Object.keys(e).length===0&&(n=e),t.current=n},_=({path:e,nest:t,match:n,...r})=>{const o=$(),[i]=K(o),[l,u,d]=n??nt(o.parser,e,i,t),m=Tr({...Cr(),...u});if(!l)return null;const f=d?c.createElement(rt,{base:d},Re(r,m)):Re(r,m);return c.createElement(tt.Provider,{value:m,children:f})},Cs=c.forwardRef((e,t)=>{const n=$(),[r,o]=K(n),{to:i="",href:l=i,onClick:u,asChild:d,children:m,className:f,replace:h,state:b,...x}=e,E=Ye(N=>{N.ctrlKey||N.metaKey||N.altKey||N.shiftKey||N.button!==0||(u?.(N),N.defaultPrevented||(N.preventDefault(),o(l,e)))}),j=n.hrefs(l[0]==="~"?l.slice(1):n.base+l,n);return d&&c.isValidElement(m)?c.cloneElement(m,{onClick:E,href:j}):c.createElement("a",{...x,onClick:E,href:j,className:f?.call?f(r===l):f,children:m,ref:t})}),st=e=>Array.isArray(e)?e.flatMap(t=>st(t&&t.type===c.Fragment?t.props.children:t)):[e],Rr=({children:e,location:t})=>{const n=$(),[r]=K(n);for(const o of st(e)){let i=0;if(c.isValidElement(o)&&(i=nt(n.parser,o.props.path,t||r,o.props.nest))[0])return c.cloneElement(o,{match:i})}return null};function Dr({children:e}){let[t,n]=Or(),r=c.useDeferredValue(t);return s.jsx(Pn,{children:s.jsx(kr,{children:s.jsx(c.Suspense,{fallback:s.jsx(Xt,{}),children:s.jsx(rt,{hook:()=>[r,n],children:s.jsx(Rr,{children:e})})})})})}function kr({children:e}){let{notifyError:t}=On();return s.jsx(dr,{value:{onError:t},children:e})}async function y(e){let{default:t,metadata:n}=await e;return{default:()=>s.jsx(Ir,{metadata:n,children:s.jsx(t,{})})}}function Ir({metadata:e,children:t}){return c.useEffect(()=>{let n=e?.title;n&&(document.title=n)},[e]),t}const Lr=c.lazy(()=>p(()=>import("./w/8ebff56a-index.js"),__vite__mapDeps([3,1,2]))),Ar=c.lazy(()=>y(p(()=>import("./t/787fe876-page.js"),__vite__mapDeps([4,5])))),Mr=c.lazy(()=>y(p(()=>import("./t/7ab051f6-page.js"),__vite__mapDeps([6,5,7,8])))),Vr=c.lazy(()=>y(p(()=>import("./t/ed499b05-page.js"),__vite__mapDeps([9,5,7,8])))),$r=c.lazy(()=>y(p(()=>import("./t/18fbb7c3-page.js"),__vite__mapDeps([10,5,7,8])))),zr=c.lazy(()=>y(p(()=>import("./t/cc08fdd2-page.js"),__vite__mapDeps([11,12,1,2,13,8,14,15,16,17])))),Br=c.lazy(()=>y(p(()=>import("./t/e57730a0-page.js"),__vite__mapDeps([18,12,1,2,13,8,14,15,16,19])))),Fr=c.lazy(()=>y(p(()=>import("./t/dcfe2ab5-page.js"),__vite__mapDeps([20,12,1,2,13,8,14,15,16,21,22])))),Ur=c.lazy(()=>y(p(()=>import("./t/6e805780-page.js"),__vite__mapDeps([23,12,1,2,13,8,14,15,16,24,22])))),qr=c.lazy(()=>y(p(()=>import("./t/5d929cb2-page.js"),__vite__mapDeps([25,12,1,2,13,8,14,15,16,22])))),Wr=c.lazy(()=>y(p(()=>import("./t/90d5a8ec-page.js"),__vite__mapDeps([26,12,1,2,13,8,14,15,16,27])))),Hr=c.lazy(()=>y(p(()=>import("./t/05a24e71-page.js"),__vite__mapDeps([28,12,1,2,13,8,14,15,16,17])))),Kr=c.lazy(()=>y(p(()=>import("./t/08a91bfc-page.js"),__vite__mapDeps([29,12,1,2,13,8,14,15,16,19])))),Gr=c.lazy(()=>y(p(()=>import("./t/62a3c4a6-page.js"),__vite__mapDeps([30,12,1,2,13,8,14,15,16,21,22])))),Yr=c.lazy(()=>y(p(()=>import("./t/e38b6327-page.js"),__vite__mapDeps([31,12,1,2,13,8,14,15,16,24,22])))),Jr=c.lazy(()=>y(p(()=>import("./t/740c717b-page.js"),__vite__mapDeps([32,12,1,2,13,8,14,15,16,27])))),Xr=c.lazy(()=>y(p(()=>import("./t/0c1e68d5-page.js"),__vite__mapDeps([33,12,1,2,13,8,14,15,16])))),Zr=c.lazy(()=>y(p(()=>import("./t/336549bb-page.js"),__vite__mapDeps([34,12,1,2,13,8,14,15,16])))),Qr=c.lazy(()=>y(p(()=>import("./t/8685fb5b-page.js"),__vite__mapDeps([35,12,1,2,13,8,14,15,16])))),es=c.lazy(()=>y(p(()=>import("./t/1c3b9cac-page.js"),__vite__mapDeps([36,12,1,2,13,8,14,15,16])))),ts=c.lazy(()=>y(p(()=>import("./t/776a2c80-page.js"),__vite__mapDeps([37,12,1,2,13,8,14,15,16])))),ns=c.lazy(()=>y(p(()=>import("./t/33b6619a-page.js"),__vite__mapDeps([38,12,1,2,13,8,14,15,16,19])))),rs=c.lazy(()=>y(p(()=>import("./t/65f1f793-page.js"),__vite__mapDeps([39,12,1,2,13,8,14,15,16]))));ct(document.getElementById("app")).render(s.jsx(c.StrictMode,{children:s.jsxs(Dr,{children:[s.jsx(_,{path:"/__blockly_iframe",children:s.jsx(Lr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2023-seconda-fase-demo",nest:!0,children:s.jsx(Ur,{})}),s.jsx(_,{path:"/fibonacci-primarie/2023-seconda-fase-demo",nest:!0,children:s.jsx(Yr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2023-seconda-fase",nest:!0,children:s.jsx(Fr,{})}),s.jsx(_,{path:"/fibonacci-primarie/2023-seconda-fase",nest:!0,children:s.jsx(Gr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2024-prima-fase",nest:!0,children:s.jsx(Wr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2023-terza-fase",nest:!0,children:s.jsx(qr,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2023-prima-fase",nest:!0,children:s.jsx(Br,{})}),s.jsx(_,{path:"/fibonacci-secondarie/2022-prima-fase",nest:!0,children:s.jsx(zr,{})}),s.jsx(_,{path:"/fibonacci-primarie/2024-prima-fase",nest:!0,children:s.jsx(Jr,{})}),s.jsx(_,{path:"/fibonacci-primarie/2023-prima-fase",nest:!0,children:s.jsx(Kr,{})}),s.jsx(_,{path:"/fibonacci-primarie/2022-prima-fase",nest:!0,children:s.jsx(Hr,{})}),s.jsx(_,{path:"/scolastiche/2022-demo",nest:!0,children:s.jsx(ts,{})}),s.jsx(_,{path:"/fibonacci-secondarie",nest:!0,children:s.jsx(Mr,{})}),s.jsx(_,{path:"/fibonacci-primarie",nest:!0,children:s.jsx(Vr,{})}),s.jsx(_,{path:"/scolastiche/2024",nest:!0,children:s.jsx(rs,{})}),s.jsx(_,{path:"/scolastiche/2023",nest:!0,children:s.jsx(ns,{})}),s.jsx(_,{path:"/scolastiche/2022",nest:!0,children:s.jsx(es,{})}),s.jsx(_,{path:"/scolastiche/2021",nest:!0,children:s.jsx(Qr,{})}),s.jsx(_,{path:"/scolastiche/2020",nest:!0,children:s.jsx(Zr,{})}),s.jsx(_,{path:"/scolastiche/2019",nest:!0,children:s.jsx(Xr,{})}),s.jsx(_,{path:"/scolastiche",nest:!0,children:s.jsx($r,{})}),s.jsx(_,{path:"/",nest:!0,children:s.jsx(Ar,{})})]})}));export{ws as $,Xt as B,us as D,ls as E,ys as H,fs as I,Ps as K,Cs as L,gs as R,U as S,bn as T,Ss as U,Es as V,hs as Y,bs as Z,is as _,Y as a,Ct as b,g as c,Ot as d,Rt as e,_t as f,H as g,js as h,ge as i,s as j,ds as k,xs as l,Jt as m,cs as n,ps as o,_s as p,ms as q,gt as r,je as s,k as t,qt as u,p as v,vs as w,ln as x,Ns as z}; +//# sourceMappingURL=_virtual_quizms-routes-e5ffd91c.js.map diff --git a/assets/_virtual_quizms-routes-09086dad.js.map b/assets/_virtual_quizms-routes-e5ffd91c.js.map similarity index 99% rename from assets/_virtual_quizms-routes-09086dad.js.map rename to assets/_virtual_quizms-routes-e5ffd91c.js.map index e6dbd8f..a5c3097 100644 --- a/assets/_virtual_quizms-routes-09086dad.js.map +++ b/assets/_virtual_quizms-routes-e5ffd91c.js.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min","jsxRuntimeModule","r","clsx","freeGlobal","freeSelf","root","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","reWhitespace","trimmedEndIndex","string","index","reTrimStart","baseTrim","isObject","type","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","baseClamp","number","lower","upper","clamp","toDate","argument","argStr","constructFrom","date","addMilliseconds","amount","timestamp","millisecondsInMinute","addMinutes","addSeconds","getRoundingMethod","method","round","differenceInMilliseconds","dateLeft","dateRight","differenceInSeconds","options","diff","isAfter","dateToCompare","_date","_dateToCompare","isPast","o","x","B","s","_","N","H","T","P","y","w","v","u","InvalidTokenError","z","j","M","E","t","S","K","V","Y","tt","toKebabCase","mergeClasses","classes","className","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","attrs","createLucideIcon","iconName","Component","props","Check","Menu","TriangleAlert","X","Et","ye","Fe","he","Q","Dt","I","Pe","kt","Se","It","Ee","we","__vitePreload","Vt","Ce","Me","Te","Re","Yt","Zt","_t","jt","Le","R","ke","He","Be","A","i","De","Ro","te","ne","oe","Lo","de","se","ie","_e","Ye","le","Ze","ce","je","yn","nt","me","dt","st","ot","at","rt","lt","it","hn","et","wn","pt","ct","mt","Dn","ut","pe","ft","bt","Vn","ue","F","D","xt","Nt","$n","Un","zn","Kn","useSyncExternalStoreShim_production_min","shimModule","noop","UNDEFINED","OBJECT","isUndefined","isFunction","mergeObjects","isPromiseLike","table","counter","stableHash","arg","constructor","isDate","keys","SWRGlobalState","EMPTY_CACHE","INITIAL_CACHE","STR_UNDEFINED","isWindowDefined","isDocumentDefined","createCacheHelper","cache","key","state","info","prev","online","isOnline","onWindowEvent","offWindowEvent","isVisible","visibilityState","initFocus","callback","initReconnect","onOnline","onOffline","preset","defaultConfigOptions","React","IS_SERVER","useIsomorphicLayoutEffect","useEffect","useLayoutEffect","navigatorConnection","slowConnection","serialize","args","__timestamp","getTimestamp","FOCUS_EVENT","RECONNECT_EVENT","MUTATE_EVENT","internalMutate","_key","_data","_opts","populateCache","rollbackOnErrorOption","optimisticData","rollbackOnError","error","throwOnError","keyFilter","matchedKeys","mutateByKey","_k","get","set","EVENT_REVALIDATORS","MUTATION","FETCH","PRELOAD","startRevalidate","revalidators","data","beforeMutationTs","hasOptimisticData","displayedData","currentData","committedData","err","populateCachedData","revalidateAllKeys","initCache","provider","opts","mutate","unmount","subscriptions","subscribe","subs","setter","fn","initProvider","releaseFocus","releaseReconnect","onErrorRetry","__","config","revalidate","maxRetryCount","currentRetryCount","timeout","compare","newData","defaultConfig","mergeConfigs","u1","f1","u2","f2","SWRConfigContext","createContext","SWRConfig","parentConfig","useContext","isFunctionalConfig","useMemo","extendedConfig","cacheContextRef","useRef","cacheContext","INFINITE_PREFIX","enableDevtools","use","setupDevTools","middleware","useSWRNext","key_","fetcher_","req","ReactExports","SWRConfig$1","parse","input","loose","tmp","ext","pattern","arr","useBuiltinInsertionEffect","canUseDOM","React.useLayoutEffect","React.useEffect","useInsertionEffect","useEvent","React.useRef","eventPopstate","eventPushState","eventReplaceState","eventHashchange","events","subscribeToLocationUpdates","event","useLocationProperty","ssrFn","useSyncExternalStore","currentSearch","useSearch","ssrSearch","currentPathname","usePathname","ssrPath","navigate","to","replace","useBrowserLocation","patchKey","original","_relativePath","base","path","baseDefaults","absolutePath","relativePath","unescape","str","defaultRouter","useSearch$1","RouterCtx","useRouter","Params0","ParamsCtx","useParams","useLocationFromRouter","router","location","navOpts","useLocation","matchRoute","parser","route","$base","matches","groups","obj","Router","parent_","parent","search","next","option","h_route","component","params","useCachedParams","curr","Route","nest","match","renderProps","routeParams","Link","currentPath","targetPath","_onClick","asChild","cls","restProps","onClick","href","isValidElement","cloneElement","flattenChildren","Fragment","Switch","originalLocation","element","L"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"sources":["../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/_trimmedEndIndex.js","../../node_modules/lodash-es/_baseTrim.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/toNumber.js","../../node_modules/lodash-es/_baseClamp.js","../../node_modules/lodash-es/clamp.js","../../node_modules/date-fns/toDate.mjs","../../node_modules/date-fns/constructFrom.mjs","../../node_modules/date-fns/addMilliseconds.mjs","../../node_modules/date-fns/constants.mjs","../../node_modules/date-fns/addMinutes.mjs","../../node_modules/date-fns/addSeconds.mjs","../../node_modules/date-fns/_lib/getRoundingMethod.mjs","../../node_modules/date-fns/differenceInMilliseconds.mjs","../../node_modules/date-fns/differenceInSeconds.mjs","../../node_modules/date-fns/isAfter.mjs","../../node_modules/date-fns/isPast.mjs","../../node_modules/@olinfo/quizms/dist/chunk-CMPWNUBJ.js","../../node_modules/jwt-decode/build/esm/index.js","../../node_modules/@olinfo/training-api/dist/index.js","../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/check.js","../../node_modules/lucide-react/dist/esm/icons/menu.js","../../node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../../node_modules/lucide-react/dist/esm/icons/x.js","../../node_modules/@olinfo/react-components/dist/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/swr/dist/_internal/index.mjs","../../node_modules/swr/dist/core/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/wouter/esm/react-deps.js","../../node_modules/wouter/esm/use-browser-location.js","../../node_modules/wouter/esm/index.js","../../node_modules/@olinfo/quizms/dist/internal/index.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nexport default baseClamp;\n","import baseClamp from './_baseClamp.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nexport default clamp;\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount) {\n const timestamp = +toDate(date);\n return constructFrom(date, timestamp + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { addMilliseconds } from \"./addMilliseconds.mjs\";\nimport { millisecondsInMinute } from \"./constants.mjs\";\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport function addMinutes(date, amount) {\n return addMilliseconds(date, amount * millisecondsInMinute);\n}\n\n// Fallback for modularized imports:\nexport default addMinutes;\n","import { addMilliseconds } from \"./addMilliseconds.mjs\";\n\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of seconds to be added.\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nexport function addSeconds(date, amount) {\n return addMilliseconds(date, amount * 1000);\n}\n\n// Fallback for modularized imports:\nexport default addSeconds;\n","export function getRoundingMethod(method) {\n return (number) => {\n const round = method ? Math[method] : Math.trunc;\n const result = round(number);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n };\n}\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport function differenceInMilliseconds(dateLeft, dateRight) {\n return +toDate(dateLeft) - +toDate(dateRight);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMilliseconds;\n","import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport function differenceInSeconds(dateLeft, dateRight, options) {\n const diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInSeconds;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isPast\n * @category Common Helpers\n * @summary Is the given date in the past?\n * @pure false\n *\n * @description\n * Is the given date in the past?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in the past\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * const result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\nexport function isPast(date) {\n return +toDate(date) < Date.now();\n}\n\n// Fallback for modularized imports:\nexport default isPast;\n","// src/web/components/progress.tsx\nimport b from \"clsx\";\nimport { clamp as g } from \"lodash-es\";\nimport { jsx as l, jsxs as x } from \"react/jsx-runtime\";\nfunction f({ percentage: e, className: t, children: a }) {\n let o = e === void 0 ? void 0 : Math.round(e);\n return o !== void 0 && (o = Number.isNaN(o) ? void 0 : g(o, 0, 100)), /* @__PURE__ */ x(\"div\", { className: b(\"relative p-2 pt-0 text-center\", t), children: [\n /* @__PURE__ */ l(\"div\", { className: \"relative z-10\", children: a }),\n /* @__PURE__ */ l(\"progress\", { className: \"progress progress-info absolute inset-x-0\", value: o, max: \"100\" })\n ] });\n}\n\n// src/web/components/loading.tsx\nimport { jsx as s } from \"react/jsx-runtime\";\nfunction B() {\n return /* @__PURE__ */ s(\"div\", { className: \"not-prose flex grow items-center justify-center\", children: /* @__PURE__ */ s(f, { children: /* @__PURE__ */ s(\"p\", { className: \"pb-1\", children: \"Caricamento in corso...\" }) }) });\n}\n\n// src/web/components/prose.tsx\nimport N from \"clsx\";\nimport { jsx as h } from \"react/jsx-runtime\";\nfunction _({ children: e }) {\n return /* @__PURE__ */ h(\n \"div\",\n {\n className: N(\n \"prose prose-lg max-w-full\",\n \"has-[img]:prose-p:flex has-[img]:prose-p:justify-center prose-img:m-0\",\n \"prose-table:mx-auto prose-table:w-auto prose-table:text-center\",\n \"print:prose-sm print:prose-headings:mt-2 print:prose-hr:my-4\",\n \"prose-headings:break-inside-avoid prose-headings:break-after-avoid\",\n \"prose-p:break-inside-avoid prose-ul:break-before-avoid prose-ul:break-inside-avoid\"\n ),\n children: e\n }\n );\n}\n\n// src/web/components/timer.tsx\nimport { useEffect as y, useState as T } from \"react\";\nimport c from \"clsx\";\nimport { addMinutes as P, differenceInSeconds as w, isAfter as k } from \"date-fns\";\nimport { jsx as n, jsxs as u } from \"react/jsx-runtime\";\nfunction H(e) {\n let [t, a] = T(Date.now()), o = e.endTime ?? P(e.startTime, e.duration);\n y(() => {\n let d = setInterval(() => {\n let p = Date.now();\n a(p), k(p, o) && clearInterval(d);\n }, 100);\n return () => clearInterval(d);\n }, [o]);\n let r = Math.max(w(o, t), 0);\n e.duration && (r = Math.min(r, e.duration * 60));\n let i = Math.floor(r / 3600), m = Math.floor(r / 60) % 60, v = r % 60;\n return i > 0 ? /* @__PURE__ */ u(\n \"span\",\n {\n className: c(\"countdown font-mono\", e.noAnimation && \"[&_*:before]:transition-none\"),\n children: [\n /* @__PURE__ */ n(\"span\", { style: { \"--value\": i } }),\n \"h\",\n /* @__PURE__ */ n(\"span\", { style: { \"--value\": m } }),\n \"m\"\n ]\n }\n ) : /* @__PURE__ */ u(\n \"span\",\n {\n className: c(\"countdown font-mono\", e.noAnimation && \"[&_*:before]:transition-none\"),\n children: [\n /* @__PURE__ */ n(\"span\", { style: { \"--value\": m } }),\n \"m\",\n /* @__PURE__ */ n(\"span\", { style: { \"--value\": v } }),\n \"s\"\n ]\n }\n );\n}\n\nexport {\n f as a,\n B as b,\n _ as c,\n H as d\n};\n//# sourceMappingURL=chunk-CMPWNUBJ.js.map","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import m from\"zod\";import y from\"zod\";import{fromZodError as O}from\"zod-validation-error\";var k=process.env.TRAINING_API_URL??process.env.NEXT_PUBLIC_TRAINING_API_URL??\"https://training.olinfo.it/api\";async function e(t,r,i){let c=await fetch(`${k}/${t}`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(r)});if(!c.ok)throw new Error(`Error ${c.status}: ${c.statusText}`);let b=await c.json(),f;try{f=y.discriminatedUnion(\"success\",[i.strict().extend({success:y.literal(1)}),y.object({success:y.literal(0),error:y.string()})]).parse(b)}catch(h){throw console.error(h),O(h)}if(f.success===0)throw new Error(f.error);return f}var Z=m.object({analytics:m.string(),captcha_enabled:m.boolean(),cookie_domain:m.string(),description:m.string(),forum_url:m.string(),languages:m.string().array(),mail_enabled:m.boolean(),menu:m.object({title:m.string(),icon:m.string()}).array(),name:m.string(),participates:m.boolean(),recaptcha_public_key:m.string(),title:m.string(),top_left_name:m.string()});function pt(){return e(\"contest\",{action:\"get\"},Z)}import j from\"zod\";var z=j.object({name:j.string(),digest:j.string()});function B(t){return`${k}/files/${t.digest}/${t.name}`}import l from\"zod\";var x=l.object({id:l.number(),name:l.string()}),C=l.object({regions:x.array()}),$=l.object({provinces:x.array()}),F=l.object({cities:x.array()}),I=l.object({institutes:x.array()});async function xt(){let{regions:t}=await e(\"location\",{action:\"listregions\"},C);return t}async function dt(t){let{provinces:r}=await e(\"location\",{action:\"listprovinces\",id:t},$);return r}async function St(t){let{cities:r}=await e(\"location\",{action:\"listcities\",id:t},F);return r}async function _t(t){let{institutes:r}=await e(\"location\",{action:\"listinstitutes\",id:t},I);return r}import U from\"zod\";async function Tt(t,r,i){await e(\"user\",{action:\"login\",username:t,password:r,keep_signed:i},U.object({}))}async function Pt(){await e(\"user\",{action:\"logout\"},U.object({}))}import d from\"zod\";async function Rt(t){await e(\"user\",{action:\"update\",email:t},d.object({}))}async function vt(t,r){await e(\"user\",{action:\"update\",email:\"\",old_password:t,password:r},d.object({token:d.string()}))}async function Ot(t){await e(\"user\",{action:\"update\",institute:t},d.object({}))}import w from\"zod\";var N=w.object({message:w.string(),type:w.number()});async function D(t,r){await e(\"user\",{action:\"recover\",email:t,code:r},N)}async function $t(t){await D(t,\"\")}import G from\"zod\";async function Dt(t,r,i,c,b,f,h){await e(\"user\",{action:\"new\",email:t,email2:t,username:r,password:i,password2:i,firstname:c,lastname:b,institute:f,recaptcha_response:h},G.object({}))}import o from\"zod\";var M=o.object({idx:o.string(),memory:o.number().nullable(),outcome:o.enum([\"Correct\",\"Partially correct\",\"Not correct\"]),text:o.string(),time:o.number().nullable()}),E=o.object({idx:o.number().optional(),max_score:o.number(),testcases:M.array()}),q=o.union([E.extend({score:o.number()}),E.extend({score_fraction:o.number()}).transform(({score_fraction:t,...r})=>({...r,score:t*r.max_score}))]),S=o.object({compilation_outcome:o.enum([\"ok\",\"fail\"]).nullable(),evaluation_outcome:o.literal(\"ok\").nullable(),files:z.array(),id:o.number(),score:o.number().nullable().optional(),task_id:o.number(),timestamp:o.number().transform(t=>new Date(t*1e3))}),J=S.extend({compilation_memory:o.number().nullable(),compilation_time:o.number().nullable(),compilation_stdout:o.string().nullable(),compilation_stderr:o.string().nullable(),score_details:q.array().nullable(),language:o.string().nullable()}),L=o.object({submissions:S.array()});async function Lt(t){return(await e(\"submission\",{action:\"list\",task_name:t},L)).submissions}function Xt(t){return e(\"submission\",{action:\"details\",id:t},J)}async function Ht(t,r,i){return e(\"submission\",{action:\"new\",task_name:t.name,files:{[t.submission_format[0]]:{data:await R(i),filename:i.name,language:r}}},S)}async function Kt(t,r){let i=await Promise.all(t.submission_format.map(async c=>[c,{data:await R(r[c]),filename:r[c].name}]));return e(\"submission\",{action:\"new\",task_name:t.name,files:Object.fromEntries(i)},S)}function Qt(t){return t.compilation_outcome===null?!0:t.compilation_outcome===\"fail\"?!1:t.evaluation_outcome===null}async function R(t){let r=await t.arrayBuffer(),i=new Uint8Array(r);return btoa(String.fromCodePoint(...i))}import _ from\"zod\";var X=_.object({tags:_.string().array()});async function v(t){return(await e(\"tag\",{action:\"list\",filter:t},X)).tags}function At(){return v(\"techniques\")}function tr(){return v(\"events\")}async function rr(t,r){await e(\"tag\",{action:\"add\",task:t,tag:r},_.object({}))}async function er(t,r){await e(\"tag\",{action:\"remove\",task:t,tag:r},_.object({}))}import s from\"zod\";var H=s.tuple([s.string(),s.string()]).transform(([t,r])=>({name:t,digest:r})),K=s.object({name:s.string(),can_delete:s.boolean()}),Q=s.object({attachments:H.array(),help_available:s.boolean(),id:s.number(),memory_limit:s.number().nullable(),name:s.string(),score_multiplier:s.number(),statements:s.record(s.string()),submission_format:s.string().array(),supported_languages:s.string().array(),tags:K.array(),task_type:s.enum([\"Batch\",\"OutputOnly\",\"Communication\"]),time_limit:s.number().nullable(),title:s.string()});function sr(t){return e(\"task\",{action:\"get\",name:t},Q)}import u from\"zod\";var V=u.object({id:u.number(),name:u.string(),score:u.number().optional(),score_multiplier:u.number(),title:u.string()}),W=u.object({num:u.number(),tasks:V.array(),tags:u.string().array().optional()});function ur(t,r=20,i){let c=(t-1)*r,b=c+r;return e(\"task\",{action:\"list\",first:c,last:b,...i},W)}import p from\"zod\";var Y=p.object({username:p.string(),time:p.number()}),A=p.object({nsubs:p.number(),nsubscorrect:p.number(),nusers:p.number(),nuserscorrect:p.number(),best:Y.array()});function fr(t){return e(\"task\",{action:\"stats\",name:t},A)}import n from\"zod\";var tt=n.object({name:n.string(),title:n.string(),score:n.number()}),T=(a=>(a[a.Admin=0]=\"Admin\",a[a.Monica=1]=\"Monica\",a[a.Tutor=2]=\"Tutor\",a[a.Teacher=3]=\"Teacher\",a[a.Superuser=4]=\"Superuser\",a[a.User=5]=\"User\",a[a.Newbie=6]=\"Newbie\",a[a.Guest=7]=\"Guest\",a))(T||{}),P=n.object({username:n.string(),first_name:n.string(),last_name:n.string(),institute:n.union([n.object({id:n.number(),name:n.string(),city:n.string(),province:n.string(),region:n.string()}),n.object({})]).transform(t=>\"id\"in t?t:void 0),mail_hash:n.string(),join_date:n.number().transform(t=>new Date(t*1e3)),score:n.number(),scores:tt.array().optional(),tasks_solved:n.number(),access_level:n.nativeEnum(T),global_access_level:n.nativeEnum(T)}),rt=n.object({num:n.number(),users:P.array()}),et=n.object({user:P});async function xr(){return(await e(\"user\",{action:\"me\"},et)).user}function dr(t){return e(\"user\",{action:\"get\",username:t},P)}function Sr(t,r=20){let i=(t-1)*r,c=i+r;return e(\"user\",{action:\"list\",first:i,last:c},rt)}function _r(t){return`https://gravatar.com/avatar/${t.mail_hash}?d=identicon`}import{jwtDecode as ot}from\"jwt-decode\";import g from\"zod\";import{fromZodError as nt}from\"zod-validation-error\";var it=g.object({id:g.number(),username:g.string(),email:g.string(),firstName:g.string(),lastName:g.string(),picture:g.string().transform(t=>`https:${t}`)});function Pr(t){let r=ot(t);try{return it.parse(r)}catch(i){throw nt(i)}}export{T as AccessLevel,rr as addTag,Rt as changeEmail,vt as changePassword,Ot as changeSchool,B as fileUrl,St as getCities,pt as getContest,tr as getEventTags,_t as getInstitutes,xr as getMe,Pr as getMeSync,dt as getProvinces,Sr as getRanking,xt as getRegions,Xt as getSubmission,v as getTags,sr as getTask,ur as getTaskList,fr as getTaskStats,Lt as getTaskSubmissions,At as getTechniqueTags,dr as getUser,Qt as isEvaluating,Tt as login,Pt as logout,D as recoverPassword,er as removeTag,$t as sendRecoverCode,Dt as signup,Ht as submitBatch,Kt as submitOutputOnly,_r as userPictureUrl};\n//# sourceMappingURL=index.js.map","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n}).join(\" \");\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Menu = createLucideIcon(\"Menu\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"12\", y2: \"12\", key: \"1e0a9i\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"6\", y2: \"6\", key: \"1owob3\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"18\", y2: \"18\", key: \"yk5zj1\" }]\n]);\n\nexport { Menu as default };\n//# sourceMappingURL=menu.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"TriangleAlert\", [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst X = createLucideIcon(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\nexport { X as default };\n//# sourceMappingURL=x.js.map\n","\"use client\";\nimport\"./global-XEUPADUR.css\";import{userPictureUrl as xe}from\"@olinfo/training-api\";import Ne from\"clsx\";import{jsx as k}from\"react/jsx-runtime\";function Pt({user:e,size:t,className:n}){let o=\"picture\"in e?e.picture:xe(e);return k(\"div\",{className:Ne(\"avatar max-h-full max-w-full\",n),children:k(\"div\",{className:\"rounded\",style:{width:t,height:t},children:k(\"img\",{src:`${o}&s=${t}`,srcSet:[1,2,3].map(r=>`${o}&s=${t*r} ${r}x`).join(\", \"),width:t,height:t,alt:`Foto profilo di ${e.username}`,className:\"skeleton rounded-none\"})})})}import{useState as ye}from\"react\";import he from\"clsx\";import{jsx as Q,jsxs as Fe}from\"react/jsx-runtime\";function Et({onClick:e,icon:t,disabled:n,className:o,children:r}){let[a,l]=ye(!1),c=async()=>{l(!0);try{await e?.()}finally{l(!1)}};return Fe(\"button\",{className:he(\"btn\",o),onClick:c,disabled:a||n,type:\"button\",children:[a?Q(\"span\",{className:\"loading loading-spinner\"}):t&&Q(t,{size:22}),r]})}import Pe from\"clsx\";import{jsx as I,jsxs as Se}from\"react/jsx-runtime\";function Dt({className:e,children:t}){return I(\"div\",{className:Pe(\"card overflow-hidden sm:card-side\",e),children:t})}function kt({title:e,children:t}){return Se(\"div\",{className:\"card-body\",children:[I(\"h2\",{className:\"card-title\",children:e}),t]})}function It({children:e}){return I(\"div\",{className:\"card-actions mt-2 grow items-end justify-center\",children:e})}import{Suspense as Ce,lazy as we}from\"react\";import Te from\"./code.module-EGKDOBO5.module.css\";import{jsx as v,jsxs as Re}from\"react/jsx-runtime\";var Ee=we(()=>import(\"./highlight-UOJF2D5K.js\"));function Vt({lang:e,...t}){return v(Ce,{fallback:v(Me,{...t}),children:v(Ee,{lang:e,...t})})}function Me({code:e,inline:t,className:n}){return t?v(\"code\",{className:n,children:e}):v(\"div\",{className:n,children:v(\"pre\",{className:Te.pre,children:v(\"code\",{children:e.split(`\n`).map((o,r)=>Re(\"span\",{className:\"line\",children:[v(\"span\",{children:o}),v(\"br\",{})]},r))})})})}import X from\"clsx\";import{intlFormat as G,intlFormatDistance as J}from\"date-fns\";import{jsx as Z}from\"react/jsx-runtime\";function Y(e,t){return{dateStyle:e===\"hidden\"?void 0:e,timeStyle:t===\"hidden\"?void 0:t}}function Kt({date:e,dateStyle:t=\"medium\",timeStyle:n=\"short\",className:o}){let r=G(e,Y(t,n)),a=J(e,new Date);return Z(\"abbr\",{title:a,className:X(o),children:r})}function Wt({date:e,dateStyle:t=\"medium\",timeStyle:n=\"short\",className:o}){let r=G(e,Y(t,n)),a=J(e,new Date);return Z(\"abbr\",{title:r,className:X(o),children:a})}import{useCallback as Le}from\"react\";import B from\"clsx\";import{jsx as M}from\"react/jsx-runtime\";function Yt({className:e,children:t}){return M(\"div\",{className:B(\"dropdown max-w-full flex-none\",e),children:t})}function Zt({className:e,children:t,ariaLabel:n}){return M(\"div\",{tabIndex:0,role:\"button\",className:B(\"btn btn-ghost no-animation w-full flex-nowrap\",e),\"aria-label\":n,children:t})}function _t({className:e,children:t}){return M(\"ul\",{className:B(\"menu dropdown-content !transition-all\",e),children:t})}function jt({children:e}){let t=Le(n=>{let o=n.target;(o instanceof HTMLAnchorElement||o instanceof HTMLButtonElement)&&o.blur()},[]);return M(\"li\",{onClick:t,children:e})}import{AtSign as Ue,KeyRound as qe,UserRound as ze}from\"lucide-react\";import{useState as Oe}from\"react\";import{formatISO as Ve}from\"date-fns\";import{Fragment as De,createContext as ke,useContext as Ie,useEffect as _,useRef as Be,useState as A}from\"react\";import H from\"clsx\";import{CircleAlert as Ae}from\"lucide-react\";var R=class extends Error{constructor(n,o){super(o);this.field=n;this.message=o}};import{jsx as N,jsxs as j}from\"react/jsx-runtime\";var T=ke({state:{},setState:()=>{},globalDisabled:!1,pending:!1});function He({defaultValue:e,onSubmit:t,disabled:n,className:o,children:r}){let a=Be(null),[l,c]=A(e??{}),[s,i]=A(!1),d=async m=>{if(m.preventDefault(),!!a.current?.checkValidity()){i(!0);try{await t?.(l)}catch(p){if(p instanceof R)a.current?.querySelector(`[name=\"${p.field}\"]`)?.setCustomValidity(p.message);else throw p}finally{i(!1)}}};return N(T.Provider,{value:{state:l,setState:c,globalDisabled:n??!1,pending:s},children:N(\"form\",{ref:a,className:H(\"mx-auto flex w-full max-w-sm flex-col items-center\",o),onSubmit:d,children:(Array.isArray(r)?r:[r]).map((m,p)=>typeof m==\"function\"?N(De,{children:m(l)},p):m)})})}function b(e,t,n){let[o,r]=A(),{state:a,setState:l,globalDisabled:c,pending:s}=Ie(T);return _(()=>t?.setCustomValidity(o??\"\"),[t,o]),_(()=>{return t?.addEventListener(\"invalid\",i),()=>t?.removeEventListener(\"invalid\",i);function i(d){let m=d.currentTarget;for(let[p,f]of Object.entries(n?.validationErrorMap??{}))if(m.validity[p]){r(f);return}r(m.validationMessage)}},[t,n?.validationErrorMap]),{value:a[e],setValue:i=>{l(d=>({...d,[e]:i})),r(i===void 0?void 0:n?.validate?.(i))},validation:o,globalDisabled:c,pending:s}}function x({label:e,validation:t,children:n}){return j(\"label\",{className:\"form-control mb-1 w-full\",children:[N(\"div\",{className:\"label\",children:N(\"span\",{className:\"label-text\",children:e})}),N(\"div\",{className:H(t&&\"*:input-error\"),children:n}),t&&j(\"div\",{className:H(\"m-1 flex items-center gap-1 text-sm\",t&&\"text-error\"),children:[N(Ae,{size:14,className:\"flex-none\"}),\" \",t]})]})}import{jsx as S,jsxs as $e}from\"react/jsx-runtime\";function O({field:e,type:t,label:n,icon:o,fromString:r,toString:a,validate:l,disabled:c,optional:s,min:i,max:d,validationErrorMap:m,autoComplete:p,...f}){let[g,P]=Oe(null),{value:K,setValue:fe,validation:be,globalDisabled:ge,pending:ve}=b(e,g,{validate:l,validationErrorMap:m});return S(x,{label:n,validation:be,children:$e(\"div\",{className:\"input input-bordered flex w-full items-center gap-4\",children:[o&&S(o,{size:18,className:\"flex-none\"}),S(\"input\",{ref:P,className:\"w-full placeholder:italic placeholder:text-base-content/40\",type:t??\"text\",name:e,value:K===void 0?\"\":a(K),onChange:W=>fe(W.target.value===\"\"?void 0:r(W.target.value)),min:i===void 0?void 0:a(i),max:d===void 0?void 0:a(d),disabled:c||ge||ve,required:!s,autoComplete:p??\"off\",...f})]})})}function C(e){return S(O,{...e,maxLength:128,fromString:t=>t,toString:t=>t})}function uo(e){return S(O,{...e,type:\"number\",fromString:Number,toString:String})}function fo(e){return S(O,{...e,type:\"date\",fromString:t=>new Date(t),toString:t=>Ve(t,{representation:\"date\"})})}import{jsx as y}from\"react/jsx-runtime\";function No(e){return y(C,{...e,label:e.label??\"Username\",placeholder:\"Inserisci il tuo username\",autoComplete:\"username\",icon:ze})}function yo(e){return y(C,{...e,type:\"email\",label:e.label??\"Email\",placeholder:\"Inserisci la tua email\",autoComplete:\"email\",icon:Ue})}function ee(e){return y(C,{...e,label:e.label??\"Password\",type:\"password\",icon:qe})}function ho(e){return y(ee,{...e,placeholder:\"Crea una password\",autoComplete:\"new-password\",minLength:e.minLength??8})}function Fo(e){return y(ee,{...e,placeholder:\"Inserisci la tua password\",autoComplete:\"current-password\"})}function Po(e){return y(C,{...e,label:e.label??\"Nome\",placeholder:\"Inserisci il tuo nome\",autoComplete:\"given-name\"})}function So(e){return y(C,{...e,label:e.label??\"Cognome\",placeholder:\"Inserisci il tuo cognome\",autoComplete:\"family-name\"})}import{useContext as te}from\"react\";import oe from\"clsx\";import{jsx as V,jsxs as ne}from\"react/jsx-runtime\";function Ro({disabled:e,icon:t,className:n,children:o}){let{globalDisabled:r,pending:a}=te(T);return ne(\"button\",{className:oe(\"btn btn-primary mt-4\",n),type:\"submit\",disabled:e||r||a,children:[a?V(\"span\",{className:\"loading loading-spinner\"}):t&&V(t,{size:22}),o]})}function Lo({disabled:e,icon:t,onClick:n,className:o,children:r}){let{globalDisabled:a,pending:l}=te(T);return ne(\"button\",{className:oe(\"btn btn-primary mt-4\",o),type:\"button\",onClick:n,disabled:e||a||l,children:[t&&V(t,{size:22}),r]})}import{useState as Ke}from\"react\";import{jsx as $,jsxs as We}from\"react/jsx-runtime\";function Ao({field:e,label:t,disabled:n,optional:o}){let[r,a]=Ke(null),{value:l,setValue:c,globalDisabled:s,pending:i}=b(e,r);return $(\"div\",{className:\"form-control w-full\",children:We(\"label\",{className:\"label cursor-pointer\",children:[$(\"span\",{className:\"label-text\",children:t}),$(\"input\",{ref:a,className:\"checkbox\",type:\"checkbox\",name:e,checked:l??!1,onChange:d=>c(d.target.checked),disabled:n||s||i,required:!o})]})})}import{useState as re}from\"react\";import{jsx as L}from\"react/jsx-runtime\";function Uo({field:e,label:t,accept:n,validate:o,disabled:r,optional:a}){let[l,c]=re(null),{setValue:s,validation:i,globalDisabled:d,pending:m}=b(e,l,{validate:o});return L(x,{label:t,validation:i,children:L(\"input\",{ref:c,type:\"file\",className:\"file-input file-input-bordered w-full\",onChange:p=>s(p.target.files?.[0]),accept:n,disabled:r||d||m,required:!a})})}function qo({field:e,label:t,accept:n,validate:o,disabled:r,optional:a}){let[l,c]=re(null),{setValue:s,validation:i,globalDisabled:d,pending:m}=b(e,l,{validate:o});return L(x,{label:t,validation:i,children:L(\"input\",{ref:c,type:\"file\",className:\"file-input file-input-bordered w-full\",onChange:f=>{let g=f.target.files?Object.fromEntries(Array.from(f.target.files,P=>[P.name,P])):void 0;s(g)},multiple:!0,accept:n,disabled:r||d||m,required:!a})})}import{useEffect as Qe,useState as Xe}from\"react\";import{jsx as U,jsxs as Ge}from\"react/jsx-runtime\";function Xo({field:e,label:t,options:n,placeholder:o,validate:r,disabled:a,optional:l}){let[c,s]=Xe(null),{value:i,setValue:d,validation:m,globalDisabled:p,pending:f}=b(e,c,{validate:r});return Qe(()=>{i&&!(i in n)&&d(o?void 0:Object.keys(n)[0])},[i,d,n,o]),U(x,{label:t,validation:m,children:Ge(\"select\",{ref:s,name:e,className:\"select select-bordered w-full\",value:i??\"\",onChange:g=>d(g.target.value),disabled:a||p||f,required:!l,children:[o&&U(\"option\",{disabled:!0,value:\"\",children:o}),Object.entries(n).map(([g,P])=>U(\"option\",{value:g,children:P},g))]})})}import{useState as Je}from\"react\";import{jsx as ae}from\"react/jsx-runtime\";function _o({field:e,label:t,rows:n,placeholder:o,validate:r,disabled:a,optional:l}){let[c,s]=Je(null),{value:i,setValue:d,validation:m,globalDisabled:p,pending:f}=b(e,c,{validate:r});return ae(x,{label:t,validation:m,children:ae(\"textarea\",{ref:s,name:e,className:\"textarea textarea-bordered w-full placeholder:italic placeholder:text-base-content/40\",value:i??\"\",onChange:g=>d(g.target.value),disabled:a||p||f,required:!l,placeholder:o,rows:n})})}import{createContext as je,useCallback as q,useContext as et,useEffect as tt,useMemo as ot,useState as nt}from\"react\";import rt from\"clsx\";import{addSeconds as at}from\"date-fns\";import{AlertTriangle as it,Check as lt}from\"lucide-react\";import{useCallback as ie,useEffect as le,useState as Ye}from\"react\";import{differenceInMilliseconds as Ze,isPast as _e}from\"date-fns\";function de({start:e,end:t,children:n}){let o=se(e)??!0,r=se(t)??!1;return o&&!r&&n}function se(e){let t=ie(()=>e&&_e(e),[e]),[n,o]=Ye(t),r=ie(()=>o(t()),[t]);return le(()=>{if(!e){o(void 0);return}let a=Ze(e,Date.now());if(o(a<0),a<0)return;let l=setTimeout(r,a+5);return()=>clearTimeout(l)},[e,r]),le(()=>(window.addEventListener(\"visibilitychange\",r),()=>window.removeEventListener(\"visibilitychange\",r)),[r]),n}import{jsx as h,jsxs as me}from\"react/jsx-runtime\";import{createElement as dt}from\"react\";var ce=je({notify:()=>{}});function yn({children:e}){let[t,n]=nt([]),o=q(r=>{n(a=>[...a,{...r,timestamp:Date.now()}])},[]);return tt(()=>{return window.addEventListener(\"unhandledrejection\",r),()=>window.removeEventListener(\"unhandledrejection\",r);function r(a){o({type:\"alert-error\",message:a.reason.message})}},[o]),h(ce.Provider,{value:{notify:o},children:me(\"div\",{className:\"flex min-h-dvh w-full flex-col\",children:[e,h(\"div\",{className:\"toast left-0 z-50 items-end\",children:t.map((r,a)=>dt(st,{...r,key:a}))})]})})}function st({type:e,message:t,timestamp:n}){let o=ot(()=>at(n,10),[n]);return h(de,{end:o,children:h(\"div\",{className:rt(\"alert max-w-sm\",e),children:me(\"div\",{className:\"flex gap-4\",children:[e===\"alert-success\"?h(lt,{}):h(it,{}),h(\"div\",{className:\"text-wrap\",children:t})]})})})}function hn(){let{notify:e}=et(ce),t=q(o=>e({type:\"alert-success\",message:o}),[e]),n=q(o=>e({type:\"alert-error\",message:o.message}),[e]);return{notifySuccess:t,notifyError:n}}import ct from\"clsx\";import{jsx as mt,jsxs as pt}from\"react/jsx-runtime\";function wn({fallback:e,className:t,children:n}){return pt(\"ul\",{className:ct(\"menu w-full rounded-box bg-base-200\",t),children:[n,e&&mt(\"li\",{className:\"col-span-full hidden p-2 text-center first:flex\",children:e})]})}import{forwardRef as ut}from\"react\";import ft from\"clsx\";import{X as bt}from\"lucide-react\";import{jsx as w,jsxs as pe}from\"react/jsx-runtime\";var Dn=ut(function({title:t,className:n,children:o},r){return pe(\"dialog\",{ref:r,className:\"modal\",children:[pe(\"div\",{className:ft(\"modal-box\",n),children:[w(\"form\",{method:\"dialog\",children:w(\"button\",{className:\"btn btn-circle btn-ghost btn-sm absolute right-2 top-2\",\"aria-label\":\"Chiudi\",type:\"submit\",children:w(bt,{})})}),w(\"h1\",{className:\"mb-3 mt-0 text-lg font-bold\",children:t}),o]}),w(\"form\",{method:\"dialog\",className:\"modal-backdrop\",children:w(\"button\",{type:\"submit\",children:\"Chiudi\"})})]})});import{useCallback as ue,useDeferredValue as gt,useEffect as vt,useState as z}from\"react\";import E from\"clsx\";import{Menu as xt,X as Nt}from\"lucide-react\";import F from\"./navbar.module-DNV5JNPN.module.css\";import{jsx as u,jsxs as D}from\"react/jsx-runtime\";function Vn({color:e,children:t}){let[n,o]=z(!1),r=ue(a=>{let l=a.target;(l instanceof HTMLAnchorElement||l instanceof HTMLButtonElement)&&o(!1)},[]);return u(\"div\",{className:E(F.navbar,e),children:D(\"div\",{onClick:r,children:[D(\"label\",{className:E(F.navbarMenuIcon,\"btn btn-ghost swap swap-rotate\"),onClick:a=>a.stopPropagation(),children:[u(\"input\",{type:\"checkbox\",checked:n,onChange:a=>o(a.target.checked),\"aria-label\":\"Mostra menu\"}),u(xt,{className:\"swap-off\"}),u(Nt,{className:\"swap-on\"})]}),t]})})}function $n({children:e}){return u(\"div\",{className:F.navbarBrand,children:e})}function Un({children:e}){return u(\"div\",{className:F.navbarMenu,children:u(\"div\",{children:u(\"ul\",{className:\"menu md:menu-horizontal\",children:e})})})}function qn({title:e,children:t}){let[n,o]=z(!1),r=ue(s=>{let i=s.target;(i instanceof HTMLAnchorElement||i instanceof HTMLButtonElement)&&(o(!1),i.blur())},[]),[a,l]=z();vt(()=>{let s=window.matchMedia(\"(min-width: 768px)\");return l(s.matches),s.addEventListener(\"change\",i),()=>s.removeEventListener(\"change\",i);function i(d){l(d.matches)}},[]);let c=gt(a);return D(\"li\",{className:E(F.navbarSubmenu,\"md:dropdown\"),children:[u(\"div\",{tabIndex:0,role:\"button\",className:E(\"menu-dropdown-toggle\",n&&!a&&\"menu-dropdown-show\"),onClick:s=>s.stopPropagation(),children:D(\"label\",{children:[u(\"div\",{children:e}),u(\"input\",{type:\"checkbox\",checked:n,onChange:s=>o(s.target.checked),className:F.navbarSubmenuCheckbox})]})}),u(\"ul\",{className:E(\"md:menu\",a&&\"dropdown-content\",!c&&\"md:hidden\"),onClick:r,children:t})]})}function zn({children:e}){return u(\"li\",{children:e})}function Kn({children:e}){return u(\"div\",{className:F.navbarContent,children:e})}import{jsx as yt}from\"react/jsx-runtime\";function Xn({children:e}){return yt(\"div\",{role:\"tablist\",className:\"tabs-boxed tabs mx-auto flex w-fit flex-wrap justify-center\",children:e})}export{Pt as Avatar,Et as Button,Dt as Card,It as CardActions,kt as CardBody,Ao as CheckboxField,Vt as Code,Fo as CurrentPasswordField,Wt as DateDistance,fo as DateField,Kt as DateTime,Yt as Dropdown,Zt as DropdownButton,jt as DropdownItem,_t as DropdownMenu,yo as EmailField,Po as FirstNameField,He as Form,Lo as FormButton,R as FormFieldError,So as LastNameField,yn as Layout,wn as Menu,Dn as Modal,qo as MultipleFileField,Vn as Navbar,$n as NavbarBrand,Kn as NavbarContent,Un as NavbarMenu,zn as NavbarMenuItem,qn as NavbarSubmenu,ho as NewPasswordField,uo as NumberField,Xo as SelectField,Uo as SingleFileField,Ro as SubmitButton,Xn as Tabs,_o as TextAreaField,C as TextField,No as UsernameField,de as WithinTimeRange,se as useIsAfter,hn as useNotifications};\n//# sourceMappingURL=index.js.map","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import React, { useEffect, useLayoutEffect, createContext, useContext, useMemo, useRef, createElement } from 'react';\n\n// Shared state between server components and client components\nconst noop = ()=>{};\n// Using noop() as the undefined value as undefined can be replaced\n// by something else. Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\nconst UNDEFINED = /*#__NOINLINE__*/ noop();\nconst OBJECT = Object;\nconst isUndefined = (v)=>v === UNDEFINED;\nconst isFunction = (v)=>typeof v == 'function';\nconst mergeObjects = (a, b)=>({\n ...a,\n ...b\n });\nconst isPromiseLike = (x)=>isFunction(x.then);\n\n// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nconst table = new WeakMap();\n// counter of the key\nlet counter = 0;\n// A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsable.\nconst stableHash = (arg)=>{\n const type = typeof arg;\n const constructor = arg && arg.constructor;\n const isDate = constructor == Date;\n let result;\n let index;\n if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n // If it's already hashed, directly return the result.\n result = table.get(arg);\n if (result) return result;\n // Store the hash first for circular reference detection before entering the\n // recursive `stableHash` calls.\n // For other objects like set and map, we use this id directly as the hash.\n result = ++counter + '~';\n table.set(arg, result);\n if (constructor == Array) {\n // Array.\n result = '@';\n for(index = 0; index < arg.length; index++){\n result += stableHash(arg[index]) + ',';\n }\n table.set(arg, result);\n }\n if (constructor == OBJECT) {\n // Object, sort keys.\n result = '#';\n const keys = OBJECT.keys(arg).sort();\n while(!isUndefined(index = keys.pop())){\n if (!isUndefined(arg[index])) {\n result += index + ':' + stableHash(arg[index]) + ',';\n }\n }\n table.set(arg, result);\n }\n } else {\n result = isDate ? arg.toJSON() : type == 'symbol' ? arg.toString() : type == 'string' ? JSON.stringify(arg) : '' + arg;\n }\n return result;\n};\n\n// Global state used to deduplicate requests and store listeners\nconst SWRGlobalState = new WeakMap();\n\nconst EMPTY_CACHE = {};\nconst INITIAL_CACHE = {};\nconst STR_UNDEFINED = 'undefined';\n// NOTE: Use the function to guarantee it's re-evaluated between jsdom and node runtime for tests.\nconst isWindowDefined = typeof window != STR_UNDEFINED;\nconst isDocumentDefined = typeof document != STR_UNDEFINED;\nconst hasRequestAnimationFrame = ()=>isWindowDefined && typeof window['requestAnimationFrame'] != STR_UNDEFINED;\nconst createCacheHelper = (cache, key)=>{\n const state = SWRGlobalState.get(cache);\n return [\n // Getter\n ()=>!isUndefined(key) && cache.get(key) || EMPTY_CACHE,\n // Setter\n (info)=>{\n if (!isUndefined(key)) {\n const prev = cache.get(key);\n // Before writing to the store, we keep the value in the initial cache\n // if it's not there yet.\n if (!(key in INITIAL_CACHE)) {\n INITIAL_CACHE[key] = prev;\n }\n state[5](key, mergeObjects(prev, info), prev || EMPTY_CACHE);\n }\n },\n // Subscriber\n state[6],\n // Get server cache snapshot\n ()=>{\n if (!isUndefined(key)) {\n // If the cache was updated on the client, we return the stored initial value.\n if (key in INITIAL_CACHE) return INITIAL_CACHE[key];\n }\n // If we haven't done any client-side updates, we return the current value.\n return !isUndefined(key) && cache.get(key) || EMPTY_CACHE;\n }\n ];\n} // export { UNDEFINED, OBJECT, isUndefined, isFunction, mergeObjects, isPromiseLike }\n;\n\n/**\n * Due to the bug https://bugs.chromium.org/p/chromium/issues/detail?id=678075,\n * it's not reliable to detect if the browser is currently online or offline\n * based on `navigator.onLine`.\n * As a workaround, we always assume it's online on the first load, and change\n * the status upon `online` or `offline` events.\n */ let online = true;\nconst isOnline = ()=>online;\n// For node and React Native, `add/removeEventListener` doesn't exist on window.\nconst [onWindowEvent, offWindowEvent] = isWindowDefined && window.addEventListener ? [\n window.addEventListener.bind(window),\n window.removeEventListener.bind(window)\n] : [\n noop,\n noop\n];\nconst isVisible = ()=>{\n const visibilityState = isDocumentDefined && document.visibilityState;\n return isUndefined(visibilityState) || visibilityState !== 'hidden';\n};\nconst initFocus = (callback)=>{\n // focus revalidate\n if (isDocumentDefined) {\n document.addEventListener('visibilitychange', callback);\n }\n onWindowEvent('focus', callback);\n return ()=>{\n if (isDocumentDefined) {\n document.removeEventListener('visibilitychange', callback);\n }\n offWindowEvent('focus', callback);\n };\n};\nconst initReconnect = (callback)=>{\n // revalidate on reconnected\n const onOnline = ()=>{\n online = true;\n callback();\n };\n // nothing to revalidate, just update the status\n const onOffline = ()=>{\n online = false;\n };\n onWindowEvent('online', onOnline);\n onWindowEvent('offline', onOffline);\n return ()=>{\n offWindowEvent('online', onOnline);\n offWindowEvent('offline', onOffline);\n };\n};\nconst preset = {\n isOnline,\n isVisible\n};\nconst defaultConfigOptions = {\n initFocus,\n initReconnect\n};\n\nconst IS_REACT_LEGACY = !React.useId;\nconst IS_SERVER = !isWindowDefined || 'Deno' in window;\n// Polyfill requestAnimationFrame\nconst rAF = (f)=>hasRequestAnimationFrame() ? window['requestAnimationFrame'](f) : setTimeout(f, 1);\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nconst useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// This assignment is to extend the Navigator type to use effectiveType.\nconst navigatorConnection = typeof navigator !== 'undefined' && navigator.connection;\n// Adjust the config based on slow connection status (<= 70Kbps).\nconst slowConnection = !IS_SERVER && navigatorConnection && ([\n 'slow-2g',\n '2g'\n].includes(navigatorConnection.effectiveType) || navigatorConnection.saveData);\n\nconst serialize = (key)=>{\n if (isFunction(key)) {\n try {\n key = key();\n } catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n // Use the original key as the argument of fetcher. This can be a string or an\n // array of values.\n const args = key;\n // If key is not falsy, or not an empty array, hash it.\n key = typeof key == 'string' ? key : (Array.isArray(key) ? key.length : key) ? stableHash(key) : '';\n return [\n key,\n args\n ];\n};\n\n// Global timestamp.\nlet __timestamp = 0;\nconst getTimestamp = ()=>++__timestamp;\n\nconst FOCUS_EVENT = 0;\nconst RECONNECT_EVENT = 1;\nconst MUTATE_EVENT = 2;\nconst ERROR_REVALIDATE_EVENT = 3;\n\nvar events = {\n __proto__: null,\n ERROR_REVALIDATE_EVENT: ERROR_REVALIDATE_EVENT,\n FOCUS_EVENT: FOCUS_EVENT,\n MUTATE_EVENT: MUTATE_EVENT,\n RECONNECT_EVENT: RECONNECT_EVENT\n};\n\nasync function internalMutate(...args) {\n const [cache, _key, _data, _opts] = args;\n // When passing as a boolean, it's explicitly used to disable/enable\n // revalidation.\n const options = mergeObjects({\n populateCache: true,\n throwOnError: true\n }, typeof _opts === 'boolean' ? {\n revalidate: _opts\n } : _opts || {});\n let populateCache = options.populateCache;\n const rollbackOnErrorOption = options.rollbackOnError;\n let optimisticData = options.optimisticData;\n const rollbackOnError = (error)=>{\n return typeof rollbackOnErrorOption === 'function' ? rollbackOnErrorOption(error) : rollbackOnErrorOption !== false;\n };\n const throwOnError = options.throwOnError;\n // If the second argument is a key filter, return the mutation results for all\n // filtered keys.\n if (isFunction(_key)) {\n const keyFilter = _key;\n const matchedKeys = [];\n const it = cache.keys();\n for (const key of it){\n if (// Skip the special useSWRInfinite and useSWRSubscription keys.\n !/^\\$(inf|sub)\\$/.test(key) && keyFilter(cache.get(key)._k)) {\n matchedKeys.push(key);\n }\n }\n return Promise.all(matchedKeys.map(mutateByKey));\n }\n return mutateByKey(_key);\n async function mutateByKey(_k) {\n // Serialize key\n const [key] = serialize(_k);\n if (!key) return;\n const [get, set] = createCacheHelper(cache, key);\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = SWRGlobalState.get(cache);\n const startRevalidate = ()=>{\n const revalidators = EVENT_REVALIDATORS[key];\n const revalidate = isFunction(options.revalidate) ? options.revalidate(get().data, _k) : options.revalidate !== false;\n if (revalidate) {\n // Invalidate the key by deleting the concurrent request markers so new\n // requests will not be deduped.\n delete FETCH[key];\n delete PRELOAD[key];\n if (revalidators && revalidators[0]) {\n return revalidators[0](MUTATE_EVENT).then(()=>get().data);\n }\n }\n return get().data;\n };\n // If there is no new data provided, revalidate the key with current state.\n if (args.length < 3) {\n // Revalidate and broadcast state.\n return startRevalidate();\n }\n let data = _data;\n let error;\n // Update global timestamps.\n const beforeMutationTs = getTimestamp();\n MUTATION[key] = [\n beforeMutationTs,\n 0\n ];\n const hasOptimisticData = !isUndefined(optimisticData);\n const state = get();\n // `displayedData` is the current value on screen. It could be the optimistic value\n // that is going to be overridden by a `committedData`, or get reverted back.\n // `committedData` is the validated value that comes from a fetch or mutation.\n const displayedData = state.data;\n const currentData = state._c;\n const committedData = isUndefined(currentData) ? displayedData : currentData;\n // Do optimistic data update.\n if (hasOptimisticData) {\n optimisticData = isFunction(optimisticData) ? optimisticData(committedData, displayedData) : optimisticData;\n // When we set optimistic data, backup the current committedData data in `_c`.\n set({\n data: optimisticData,\n _c: committedData\n });\n }\n if (isFunction(data)) {\n // `data` is a function, call it passing current cache value.\n try {\n data = data(committedData);\n } catch (err) {\n // If it throws an error synchronously, we shouldn't update the cache.\n error = err;\n }\n }\n // `data` is a promise/thenable, resolve the final data first.\n if (data && isPromiseLike(data)) {\n // This means that the mutation is async, we need to check timestamps to\n // avoid race conditions.\n data = await data.catch((err)=>{\n error = err;\n });\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n if (beforeMutationTs !== MUTATION[key][0]) {\n if (error) throw error;\n return data;\n } else if (error && hasOptimisticData && rollbackOnError(error)) {\n // Rollback. Always populate the cache in this case but without\n // transforming the data.\n populateCache = true;\n // Reset data to be the latest committed data, and clear the `_c` value.\n set({\n data: committedData,\n _c: UNDEFINED\n });\n }\n }\n // If we should write back the cache after request.\n if (populateCache) {\n if (!error) {\n // Transform the result into data.\n if (isFunction(populateCache)) {\n const populateCachedData = populateCache(data, committedData);\n set({\n data: populateCachedData,\n error: UNDEFINED,\n _c: UNDEFINED\n });\n } else {\n // Only update cached data and reset the error if there's no error. Data can be `undefined` here.\n set({\n data,\n error: UNDEFINED,\n _c: UNDEFINED\n });\n }\n }\n }\n // Reset the timestamp to mark the mutation has ended.\n MUTATION[key][1] = getTimestamp();\n // Update existing SWR Hooks' internal states:\n Promise.resolve(startRevalidate()).then(()=>{\n // The mutation and revalidation are ended, we can clear it since the data is\n // not an optimistic value anymore.\n set({\n _c: UNDEFINED\n });\n });\n // Throw error or return data\n if (error) {\n if (throwOnError) throw error;\n return;\n }\n return data;\n }\n}\n\nconst revalidateAllKeys = (revalidators, type)=>{\n for(const key in revalidators){\n if (revalidators[key][0]) revalidators[key][0](type);\n }\n};\nconst initCache = (provider, options)=>{\n // The global state for a specific provider will be used to deduplicate\n // requests and store listeners. As well as a mutate function that is bound to\n // the cache.\n // The provider's global state might be already initialized. Let's try to get the\n // global state associated with the provider first.\n if (!SWRGlobalState.has(provider)) {\n const opts = mergeObjects(defaultConfigOptions, options);\n // If there's no global state bound to the provider, create a new one with the\n // new mutate function.\n const EVENT_REVALIDATORS = {};\n const mutate = internalMutate.bind(UNDEFINED, provider);\n let unmount = noop;\n const subscriptions = {};\n const subscribe = (key, callback)=>{\n const subs = subscriptions[key] || [];\n subscriptions[key] = subs;\n subs.push(callback);\n return ()=>subs.splice(subs.indexOf(callback), 1);\n };\n const setter = (key, value, prev)=>{\n provider.set(key, value);\n const subs = subscriptions[key];\n if (subs) {\n for (const fn of subs){\n fn(value, prev);\n }\n }\n };\n const initProvider = ()=>{\n if (!SWRGlobalState.has(provider)) {\n // Update the state if it's new, or if the provider has been extended.\n SWRGlobalState.set(provider, [\n EVENT_REVALIDATORS,\n {},\n {},\n {},\n mutate,\n setter,\n subscribe\n ]);\n if (!IS_SERVER) {\n // When listening to the native events for auto revalidations,\n // we intentionally put a delay (setTimeout) here to make sure they are\n // fired after immediate JavaScript executions, which can be\n // React's state updates.\n // This avoids some unnecessary revalidations such as\n // https://github.com/vercel/swr/issues/1680.\n const releaseFocus = opts.initFocus(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, FOCUS_EVENT)));\n const releaseReconnect = opts.initReconnect(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, RECONNECT_EVENT)));\n unmount = ()=>{\n releaseFocus && releaseFocus();\n releaseReconnect && releaseReconnect();\n // When un-mounting, we need to remove the cache provider from the state\n // storage too because it's a side-effect. Otherwise, when re-mounting we\n // will not re-register those event listeners.\n SWRGlobalState.delete(provider);\n };\n }\n }\n };\n initProvider();\n // This is a new provider, we need to initialize it and setup DOM events\n // listeners for `focus` and `reconnect` actions.\n // We might want to inject an extra layer on top of `provider` in the future,\n // such as key serialization, auto GC, etc.\n // For now, it's just a `Map` interface without any modifications.\n return [\n provider,\n mutate,\n initProvider,\n unmount\n ];\n }\n return [\n provider,\n SWRGlobalState.get(provider)[4]\n ];\n};\n\n// error retry\nconst onErrorRetry = (_, __, config, revalidate, opts)=>{\n const maxRetryCount = config.errorRetryCount;\n const currentRetryCount = opts.retryCount;\n // Exponential backoff\n const timeout = ~~((Math.random() + 0.5) * (1 << (currentRetryCount < 8 ? currentRetryCount : 8))) * config.errorRetryInterval;\n if (!isUndefined(maxRetryCount) && currentRetryCount > maxRetryCount) {\n return;\n }\n setTimeout(revalidate, timeout, opts);\n};\nconst compare = (currentData, newData)=>stableHash(currentData) == stableHash(newData);\n// Default cache provider\nconst [cache, mutate] = initCache(new Map());\n// Default config\nconst defaultConfig = mergeObjects({\n // events\n onLoadingSlow: noop,\n onSuccess: noop,\n onError: noop,\n onErrorRetry,\n onDiscarded: noop,\n // switches\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n revalidateIfStale: true,\n shouldRetryOnError: true,\n // timeouts\n errorRetryInterval: slowConnection ? 10000 : 5000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: slowConnection ? 5000 : 3000,\n // providers\n compare,\n isPaused: ()=>false,\n cache,\n mutate,\n fallback: {}\n}, // use web preset by default\npreset);\n\nconst mergeConfigs = (a, b)=>{\n // Need to create a new object to avoid mutating the original here.\n const v = mergeObjects(a, b);\n // If two configs are provided, merge their `use` and `fallback` options.\n if (b) {\n const { use: u1, fallback: f1 } = a;\n const { use: u2, fallback: f2 } = b;\n if (u1 && u2) {\n v.use = u1.concat(u2);\n }\n if (f1 && f2) {\n v.fallback = mergeObjects(f1, f2);\n }\n }\n return v;\n};\n\nconst SWRConfigContext = createContext({});\nconst SWRConfig = (props)=>{\n const { value } = props;\n const parentConfig = useContext(SWRConfigContext);\n const isFunctionalConfig = isFunction(value);\n const config = useMemo(()=>isFunctionalConfig ? value(parentConfig) : value, [\n isFunctionalConfig,\n parentConfig,\n value\n ]);\n // Extend parent context values and middleware.\n const extendedConfig = useMemo(()=>isFunctionalConfig ? config : mergeConfigs(parentConfig, config), [\n isFunctionalConfig,\n parentConfig,\n config\n ]);\n // Should not use the inherited provider.\n const provider = config && config.provider;\n // initialize the cache only on first access.\n const cacheContextRef = useRef(UNDEFINED);\n if (provider && !cacheContextRef.current) {\n cacheContextRef.current = initCache(provider(extendedConfig.cache || cache), config);\n }\n const cacheContext = cacheContextRef.current;\n // Override the cache if a new provider is given.\n if (cacheContext) {\n extendedConfig.cache = cacheContext[0];\n extendedConfig.mutate = cacheContext[1];\n }\n // Unsubscribe events.\n useIsomorphicLayoutEffect(()=>{\n if (cacheContext) {\n cacheContext[2] && cacheContext[2]();\n return cacheContext[3];\n }\n }, []);\n return createElement(SWRConfigContext.Provider, mergeObjects(props, {\n value: extendedConfig\n }));\n};\n\nconst INFINITE_PREFIX = '$inf$';\n\n// @ts-expect-error\nconst enableDevtools = isWindowDefined && window.__SWR_DEVTOOLS_USE__;\nconst use = enableDevtools ? window.__SWR_DEVTOOLS_USE__ : [];\nconst setupDevTools = ()=>{\n if (enableDevtools) {\n // @ts-expect-error\n window.__SWR_DEVTOOLS_REACT__ = React;\n }\n};\n\nconst normalize = (args)=>{\n return isFunction(args[1]) ? [\n args[0],\n args[1],\n args[2] || {}\n ] : [\n args[0],\n null,\n (args[1] === null ? args[2] : args[1]) || {}\n ];\n};\n\nconst useSWRConfig = ()=>{\n return mergeObjects(defaultConfig, useContext(SWRConfigContext));\n};\n\nconst preload = (key_, fetcher)=>{\n const [key, fnArg] = serialize(key_);\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n // Prevent preload to be called multiple times before used.\n if (PRELOAD[key]) return PRELOAD[key];\n const req = fetcher(fnArg);\n PRELOAD[key] = req;\n return req;\n};\nconst middleware = (useSWRNext)=>(key_, fetcher_, config)=>{\n // fetcher might be a sync function, so this should not be an async function\n const fetcher = fetcher_ && ((...args)=>{\n const [key] = serialize(key_);\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n if (key.startsWith(INFINITE_PREFIX)) {\n // we want the infinite fetcher to be called.\n // handling of the PRELOAD cache happens there.\n return fetcher_(...args);\n }\n const req = PRELOAD[key];\n if (isUndefined(req)) return fetcher_(...args);\n delete PRELOAD[key];\n return req;\n });\n return useSWRNext(key_, fetcher, config);\n };\n\nconst BUILT_IN_MIDDLEWARE = use.concat(middleware);\n\n// It's tricky to pass generic types as parameters, so we just directly override\n// the types here.\nconst withArgs = (hook)=>{\n return function useSWRArgs(...args) {\n // Get the default and inherited configuration.\n const fallbackConfig = useSWRConfig();\n // Normalize arguments.\n const [key, fn, _config] = normalize(args);\n // Merge configurations.\n const config = mergeConfigs(fallbackConfig, _config);\n // Apply middleware\n let next = hook;\n const { use } = config;\n const middleware = (use || []).concat(BUILT_IN_MIDDLEWARE);\n for(let i = middleware.length; i--;){\n next = middleware[i](next);\n }\n return next(key, fn || config.fetcher || null, config);\n };\n};\n\n// Add a callback function to a list of keyed callback functions and return\n// the unsubscribe function.\nconst subscribeCallback = (key, callbacks, callback)=>{\n const keyedRevalidators = callbacks[key] || (callbacks[key] = []);\n keyedRevalidators.push(callback);\n return ()=>{\n const index = keyedRevalidators.indexOf(callback);\n if (index >= 0) {\n // O(1): faster than splice\n keyedRevalidators[index] = keyedRevalidators[keyedRevalidators.length - 1];\n keyedRevalidators.pop();\n }\n };\n};\n\n// Create a custom hook with a middleware\nconst withMiddleware = (useSWR, middleware)=>{\n return (...args)=>{\n const [key, fn, config] = normalize(args);\n const uses = (config.use || []).concat(middleware);\n return useSWR(key, fn, {\n ...config,\n use: uses\n });\n };\n};\n\nsetupDevTools();\n\nexport { INFINITE_PREFIX, IS_REACT_LEGACY, IS_SERVER, OBJECT, SWRConfig, SWRGlobalState, UNDEFINED, cache, compare, createCacheHelper, defaultConfig, defaultConfigOptions, getTimestamp, hasRequestAnimationFrame, initCache, internalMutate, isDocumentDefined, isFunction, isPromiseLike, isUndefined, isWindowDefined, mergeConfigs, mergeObjects, mutate, noop, normalize, preload, preset, rAF, events as revalidateEvents, serialize, slowConnection, stableHash, subscribeCallback, useIsomorphicLayoutEffect, useSWRConfig, withArgs, withMiddleware };\n","import 'client-only';\nimport ReactExports, { useRef, useMemo, useCallback, useDebugValue } from 'react';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\nimport { serialize, OBJECT, SWRConfig as SWRConfig$1, defaultConfig, withArgs, SWRGlobalState, createCacheHelper, isUndefined, getTimestamp, UNDEFINED, isFunction, revalidateEvents, internalMutate, useIsomorphicLayoutEffect, subscribeCallback, IS_SERVER, rAF, IS_REACT_LEGACY, mergeObjects } from 'swr/_internal';\nexport { mutate, preload, useSWRConfig } from 'swr/_internal';\n\nconst unstable_serialize = (key)=>serialize(key)[0];\n\n/// \nconst use = ReactExports.use || ((promise)=>{\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then((v)=>{\n promise.status = 'fulfilled';\n promise.value = v;\n }, (e)=>{\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n});\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache, compare, suspense, fallbackData, revalidateOnMount, revalidateIfStale, refreshInterval, refreshWhenHidden, refreshWhenOffline, keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR internal state,\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n // All of them are derived from `_key`.\n const [key, fnArg] = serialize(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = useRef(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = useRef(false);\n // Refs to keep the key and config.\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = createCacheHelper(cache, key);\n const stateDependencies = useRef({}).current;\n const fallback = isUndefined(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(prev[t], current[t])) {\n if (!isUndefined(prev[t])) {\n return false;\n }\n if (!compare(returnedData, current[t])) {\n return false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n return false;\n }\n }\n }\n return true;\n };\n const getSnapshot = useMemo(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!isUndefined(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = mergeObjects(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n const cachedData = getCache();\n const initialData = getInitialCache();\n const clientSnapshot = getSelectedCache(cachedData);\n const serverSnapshot = cachedData === initialData ? clientSnapshot : getSelectedCache(initialData);\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = clientSnapshot;\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n const compareResult = isEqual(newSnapshot, memorizedSnapshot);\n if (compareResult) {\n // Mentally, we should always return the `memorizedSnapshot` here\n // as there's no change between the new and old snapshots.\n // However, since the `isEqual` function only compares selected fields,\n // the values of the unselected fields might be changed. That's\n // simply because we didn't track them.\n // To support the case in https://github.com/vercel/swr/pull/2576,\n // we need to update these fields in the `memorizedSnapshot` too\n // with direct mutations to ensure the snapshot is always up-to-date\n // even for the unselected fields, but only trigger re-renders when\n // the selected fields are changed.\n memorizedSnapshot.data = newSnapshot.data;\n memorizedSnapshot.isLoading = newSnapshot.isLoading;\n memorizedSnapshot.isValidating = newSnapshot.isValidating;\n memorizedSnapshot.error = newSnapshot.error;\n return memorizedSnapshot;\n } else {\n memorizedSnapshot = newSnapshot;\n return newSnapshot;\n }\n },\n ()=>serverSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = useSyncExternalStore(useCallback((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = isUndefined(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = useRef(data);\n const returnedData = keepPreviousData ? isUndefined(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !isUndefined(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return isUndefined(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return isUndefined(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = isUndefined(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = isUndefined(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = useCallback(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if (isUndefined(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && isUndefined(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n getTimestamp()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!isUndefined(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || isFunction(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (!getConfig().revalidateOnFocus || !getConfig().revalidateOnReconnect || isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, (_opts)=>{\n const revalidators = EVENT_REVALIDATORS[key];\n if (revalidators && revalidators[0]) {\n revalidators[0](revalidateEvents.ERROR_REVALIDATE_EVENT, _opts);\n }\n }, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n const boundMutate = useCallback(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return internalMutate(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n useIsomorphicLayoutEffect(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!isUndefined(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n useIsomorphicLayoutEffect(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type, opts = {})=>{\n if (type == revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n } else if (type == revalidateEvents.ERROR_REVALIDATE_EVENT) {\n return revalidate(opts);\n }\n return;\n };\n const unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation\n if (shouldDoInitialRevalidation) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n useIsomorphicLayoutEffect(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = isFunction(refreshInterval) ? refreshInterval(getCache().data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n useDebugValue(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && isUndefined(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!IS_REACT_LEGACY && IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n const req = PRELOAD[key];\n if (!isUndefined(req)) {\n const promise = boundMutate(req);\n use(promise);\n }\n if (isUndefined(error)) {\n const promise = revalidate(WITH_DEDUPE);\n if (!isUndefined(returnedData)) {\n promise.status = 'fulfilled';\n promise.value = true;\n }\n use(promise);\n } else {\n throw error;\n }\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nconst SWRConfig = OBJECT.defineProperty(SWRConfig$1, 'defaultValue', {\n value: defaultConfig\n});\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error, isLoading } = useSWR('/api/user', fetcher)\n * if (error) return
failed to load
\n * if (isLoading) return
loading...
\n * return
hello {data.name}!
\n * }\n * ```\n */ const useSWR = withArgs(useSWRHandler);\n\nexport { SWRConfig, useSWR as default, unstable_serialize };\n","/**\n * @param {string|RegExp} input The route pattern\n * @param {boolean} [loose] Allow open-ended matching. Ignored with `RegExp` input.\n */\nexport function parse(input, loose) {\n\tif (input instanceof RegExp) return { keys:false, pattern:input };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = input.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push(c);\n\t\t\tpattern += tmp[1] === '?' ? '(?:/(.*))?' : '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? key : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","import * as React from 'react';\nexport { Fragment, cloneElement, createContext, createElement, forwardRef, isValidElement, useContext, useRef, useState } from 'react';\nexport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\n\n// React.useInsertionEffect is not available in React <18\n// This hack fixes a transpilation issue on some apps\nconst useBuiltinInsertionEffect = React[\"useInsertion\" + \"Effect\"];\n\n// Copied from:\n// https://github.com/facebook/react/blob/main/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\n\n// Copied from:\n// https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.ts\n// \"React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\"\nconst useIsomorphicLayoutEffect = canUseDOM\n ? React.useLayoutEffect\n : React.useEffect;\n\n// useInsertionEffect is already a noop on the server.\n// See: https://github.com/facebook/react/blob/main/packages/react-server/src/ReactFizzHooks.js\nconst useInsertionEffect =\n useBuiltinInsertionEffect || useIsomorphicLayoutEffect;\n\n// Userland polyfill while we wait for the forthcoming\n// https://github.com/reactjs/rfcs/blob/useevent/text/0000-useevent.md\n// Note: \"A high-fidelity polyfill for useEvent is not possible because\n// there is no lifecycle or Hook in React that we can use to switch\n// .current at the right timing.\"\n// So we will have to make do with this \"close enough\" approach for now.\nconst useEvent = (fn) => {\n const ref = React.useRef([fn, (...args) => ref[0](...args)]).current;\n // Per Dan Abramov: useInsertionEffect executes marginally closer to the\n // correct timing for ref synchronization than useLayoutEffect on React 18.\n // See: https://github.com/facebook/react/pull/25881#issuecomment-1356244360\n useInsertionEffect(() => {\n ref[0] = fn;\n });\n return ref[1];\n};\n\nexport { useEvent, useInsertionEffect, useIsomorphicLayoutEffect };\n","import { useSyncExternalStore } from './react-deps.js';\n\n/**\n * History API docs @see https://developer.mozilla.org/en-US/docs/Web/API/History\n */\nconst eventPopstate = \"popstate\";\nconst eventPushState = \"pushState\";\nconst eventReplaceState = \"replaceState\";\nconst eventHashchange = \"hashchange\";\nconst events = [\n eventPopstate,\n eventPushState,\n eventReplaceState,\n eventHashchange,\n];\n\nconst subscribeToLocationUpdates = (callback) => {\n for (const event of events) {\n addEventListener(event, callback);\n }\n return () => {\n for (const event of events) {\n removeEventListener(event, callback);\n }\n };\n};\n\nconst useLocationProperty = (fn, ssrFn) =>\n useSyncExternalStore(subscribeToLocationUpdates, fn, ssrFn);\n\nconst currentSearch = () => location.search;\n\nconst useSearch = ({ ssrSearch = \"\" } = {}) =>\n useLocationProperty(currentSearch, () => ssrSearch);\n\nconst currentPathname = () => location.pathname;\n\nconst usePathname = ({ ssrPath } = {}) =>\n useLocationProperty(\n currentPathname,\n ssrPath ? () => ssrPath : currentPathname\n );\n\nconst currentHistoryState = () => history.state;\nconst useHistoryState = () =>\n useLocationProperty(currentHistoryState, () => null);\n\nconst navigate = (to, { replace = false, state = null } = {}) =>\n history[replace ? eventReplaceState : eventPushState](state, \"\", to);\n\n// the 2nd argument of the `useBrowserLocation` return value is a function\n// that allows to perform a navigation.\nconst useBrowserLocation = (opts = {}) => [usePathname(opts), navigate];\n\nconst patchKey = Symbol.for(\"wouter_v3\");\n\n// While History API does have `popstate` event, the only\n// proper way to listen to changes via `push/replaceState`\n// is to monkey-patch these methods.\n//\n// See https://stackoverflow.com/a/4585031\nif (typeof history !== \"undefined\" && typeof window[patchKey] === \"undefined\") {\n for (const type of [eventPushState, eventReplaceState]) {\n const original = history[type];\n // TODO: we should be using unstable_batchedUpdates to avoid multiple re-renders,\n // however that will require an additional peer dependency on react-dom.\n // See: https://github.com/reactwg/react-18/discussions/86#discussioncomment-1567149\n history[type] = function () {\n const result = original.apply(this, arguments);\n const event = new Event(type);\n event.arguments = arguments;\n\n dispatchEvent(event);\n return result;\n };\n }\n\n // patch history object only once\n // See: https://github.com/molefrog/wouter/issues/167\n Object.defineProperty(window, patchKey, { value: true });\n}\n\nexport { navigate, useBrowserLocation, useHistoryState, useLocationProperty, usePathname, useSearch };\n","import { parse } from 'regexparam';\nimport { useBrowserLocation, useSearch as useSearch$1 } from './use-browser-location.js';\nimport { createContext, forwardRef, useEvent, isValidElement, cloneElement, createElement, useContext, useRef, useIsomorphicLayoutEffect, Fragment } from './react-deps.js';\n\n/*\n * Transforms `path` into its relative `base` version\n * If base isn't part of the path provided returns absolute path e.g. `~/app`\n */\nconst _relativePath = (base, path) =>\n !path.toLowerCase().indexOf(base.toLowerCase())\n ? path.slice(base.length) || \"/\"\n : \"~\" + path;\n\n/**\n * When basepath is `undefined` or '/' it is ignored (we assume it's empty string)\n */\nconst baseDefaults = (base = \"\") => (base === \"/\" ? \"\" : base);\n\nconst absolutePath = (to, base) =>\n to[0] === \"~\" ? to.slice(1) : baseDefaults(base) + to;\n\nconst relativePath = (base = \"\", path) =>\n _relativePath(unescape(baseDefaults(base)), unescape(path));\n\n/*\n * Removes leading question mark\n */\nconst stripQm = (str) => (str[0] === \"?\" ? str.slice(1) : str);\n\n/*\n * decodes escape sequences such as %20\n */\nconst unescape = (str) => {\n try {\n return decodeURI(str);\n } catch (_e) {\n // fail-safe mode: if string can't be decoded do nothing\n return str;\n }\n};\n\nconst sanitizeSearch = (search) => unescape(stripQm(search));\n\n/*\n * Router and router context. Router is a lightweight object that represents the current\n * routing options: how location is managed, base path etc.\n *\n * There is a default router present for most of the use cases, however it can be overridden\n * via the component.\n */\n\nconst defaultRouter = {\n hook: useBrowserLocation,\n searchHook: useSearch$1,\n parser: parse,\n base: \"\",\n // this option is used to override the current location during SSR\n ssrPath: undefined,\n ssrSearch: undefined,\n // customizes how `href` props are transformed for \n hrefs: (x) => x,\n};\n\nconst RouterCtx = createContext(defaultRouter);\n\n// gets the closest parent router from the context\nconst useRouter = () => useContext(RouterCtx);\n\n/**\n * Parameters context. Used by `useParams()` to get the\n * matched params from the innermost `Route` component.\n */\n\nconst Params0 = {},\n ParamsCtx = createContext(Params0);\n\nconst useParams = () => useContext(ParamsCtx);\n\n/*\n * Part 1, Hooks API: useRoute and useLocation\n */\n\n// Internal version of useLocation to avoid redundant useRouter calls\n\nconst useLocationFromRouter = (router) => {\n const [location, navigate] = router.hook(router);\n\n // the function reference should stay the same between re-renders, so that\n // it can be passed down as an element prop without any performance concerns.\n // (This is achieved via `useEvent`.)\n return [\n relativePath(router.base, location),\n useEvent((to, navOpts) => navigate(absolutePath(to, router.base), navOpts)),\n ];\n};\n\nconst useLocation = () => useLocationFromRouter(useRouter());\n\nconst useSearch = () => {\n const router = useRouter();\n return sanitizeSearch(router.searchHook(router));\n};\n\nconst matchRoute = (parser, route, path, loose) => {\n // if the input is a regexp, skip parsing\n const { pattern, keys } =\n route instanceof RegExp\n ? { keys: false, pattern: route }\n : parser(route || \"*\", loose);\n\n // array destructuring loses keys, so this is done in two steps\n const result = pattern.exec(path) || [];\n\n // when parser is in \"loose\" mode, `$base` is equal to the\n // first part of the route that matches the pattern\n // (e.g. for pattern `/a/:b` and path `/a/1/2/3` the `$base` is `a/1`)\n // we use this for route nesting\n const [$base, ...matches] = result;\n\n return $base !== undefined\n ? [\n true,\n\n (() => {\n // for regex paths, `keys` will always be false\n\n // an object with parameters matched, e.g. { foo: \"bar\" } for \"/:foo\"\n // we \"zip\" two arrays here to construct the object\n // [\"foo\"], [\"bar\"] → { foo: \"bar\" }\n const groups =\n keys !== false\n ? Object.fromEntries(keys.map((key, i) => [key, matches[i]]))\n : result.groups;\n\n // convert the array to an instance of object\n // this makes it easier to integrate with the existing param implementation\n let obj = { ...matches };\n\n // merge named capture groups with matches array\n groups && Object.assign(obj, groups);\n\n return obj;\n })(),\n\n // the third value if only present when parser is in \"loose\" mode,\n // so that we can extract the base path for nested routes\n ...(loose ? [$base] : []),\n ]\n : [false, null];\n};\n\nconst useRoute = (pattern) =>\n matchRoute(useRouter().parser, pattern, useLocation()[0]);\n\n/*\n * Part 2, Low Carb Router API: Router, Route, Link, Switch\n */\n\nconst Router = ({ children, ...props }) => {\n // the router we will inherit from - it is the closest router in the tree,\n // unless the custom `hook` is provided (in that case it's the default one)\n const parent_ = useRouter();\n const parent = props.hook ? defaultRouter : parent_;\n\n // holds to the context value: the router object\n let value = parent;\n\n // when `ssrPath` contains a `?` character, we can extract the search from it\n const [path, search] = props.ssrPath?.split(\"?\") ?? [];\n if (search) (props.ssrSearch = search), (props.ssrPath = path);\n\n // hooks can define their own `href` formatter (e.g. for hash location)\n props.hrefs = props.hrefs ?? props.hook?.hrefs;\n\n // what is happening below: to avoid unnecessary rerenders in child components,\n // we ensure that the router object reference is stable, unless there are any\n // changes that require reload (e.g. `base` prop changes -> all components that\n // get the router from the context should rerender, even if the component is memoized).\n // the expected behaviour is:\n //\n // 1) when the resulted router is no different from the parent, use parent\n // 2) if the custom `hook` prop is provided, we always inherit from the\n // default router instead. this resets all previously overridden options.\n // 3) when the router is customized here, it should stay stable between renders\n let ref = useRef({}),\n prev = ref.current,\n next = prev;\n\n for (let k in parent) {\n const option =\n k === \"base\"\n ? /* base is special case, it is appended to the parent's base */\n parent[k] + (props[k] || \"\")\n : props[k] || parent[k];\n\n if (prev === next && option !== next[k]) {\n ref.current = next = { ...next };\n }\n\n next[k] = option;\n\n // the new router is no different from the parent, use parent\n if (option !== parent[k]) value = next;\n }\n\n return createElement(RouterCtx.Provider, { value, children });\n};\n\nconst h_route = ({ children, component }, params) => {\n // React-Router style `component` prop\n if (component) return createElement(component, { params });\n\n // support render prop or plain children\n return typeof children === \"function\" ? children(params) : children;\n};\n\n// a hook to cache the params object between renders (if they are shallow equal)\nconst useCachedParams = (value) => {\n let prev = useRef(Params0),\n curr = prev.current;\n\n for (const k in value) if (value[k] !== curr[k]) curr = value;\n if (Object.keys(value).length === 0) curr = value;\n return (prev.current = curr);\n};\n\nconst Route = ({ path, nest, match, ...renderProps }) => {\n const router = useRouter();\n const [location] = useLocationFromRouter(router);\n\n const [matches, routeParams, base] =\n // `match` is a special prop to give up control to the parent,\n // it is used by the `Switch` to avoid double matching\n match ?? matchRoute(router.parser, path, location, nest);\n\n // when `routeParams` is `null` (there was no match), the argument\n // below becomes {...null} = {}, see the Object Spread specs\n // https://tc39.es/proposal-object-rest-spread/#AbstractOperations-CopyDataProperties\n const params = useCachedParams({ ...useParams(), ...routeParams });\n\n if (!matches) return null;\n\n const children = base\n ? createElement(Router, { base }, h_route(renderProps, params))\n : h_route(renderProps, params);\n\n return createElement(ParamsCtx.Provider, { value: params, children });\n};\n\nconst Link = forwardRef((props, ref) => {\n const router = useRouter();\n const [currentPath, navigate] = useLocationFromRouter(router);\n\n const {\n to = \"\",\n href: targetPath = to,\n onClick: _onClick,\n asChild,\n children,\n className: cls,\n /* eslint-disable no-unused-vars */\n replace /* ignore nav props */,\n state /* ignore nav props */,\n /* eslint-enable no-unused-vars */\n\n ...restProps\n } = props;\n\n const onClick = useEvent((event) => {\n // ignores the navigation when clicked using right mouse button or\n // by holding a special modifier key: ctrl, command, win, alt, shift\n if (\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n\n _onClick?.(event);\n if (!event.defaultPrevented) {\n event.preventDefault();\n navigate(targetPath, props);\n }\n });\n\n // handle nested routers and absolute paths\n const href = router.hrefs(\n targetPath[0] === \"~\" ? targetPath.slice(1) : router.base + targetPath,\n router // pass router as a second argument for convinience\n );\n\n return asChild && isValidElement(children)\n ? cloneElement(children, { onClick, href })\n : createElement(\"a\", {\n ...restProps,\n onClick,\n href,\n // `className` can be a function to apply the class if this link is active\n className: cls?.call ? cls(currentPath === targetPath) : cls,\n children,\n ref,\n });\n});\n\nconst flattenChildren = (children) =>\n Array.isArray(children)\n ? children.flatMap((c) =>\n flattenChildren(c && c.type === Fragment ? c.props.children : c)\n )\n : [children];\n\nconst Switch = ({ children, location }) => {\n const router = useRouter();\n const [originalLocation] = useLocationFromRouter(router);\n\n for (const element of flattenChildren(children)) {\n let match = 0;\n\n if (\n isValidElement(element) &&\n // we don't require an element to be of type Route,\n // but we do require it to contain a truthy `path` prop.\n // this allows to use different components that wrap Route\n // inside of a switch, for example .\n (match = matchRoute(\n router.parser,\n element.props.path,\n location || originalLocation,\n element.props.nest\n ))[0]\n )\n return cloneElement(element, { match });\n }\n\n return null;\n};\n\nconst Redirect = (props) => {\n const { to, href = to } = props;\n const [, navigate] = useLocation();\n const redirect = useEvent(() => navigate(to || href, props));\n\n // redirect is guaranteed to be stable since it is returned from useEvent\n useIsomorphicLayoutEffect(() => {\n redirect();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport { Link, Redirect, Route, Router, Switch, matchRoute, useLocation, useParams, useRoute, useRouter, useSearch };\n","import {\n b as r\n} from \"../chunk-CMPWNUBJ.js\";\nimport \"../chunk-WYS6J5ZY.js\";\n\n// src/web/internal/layout.tsx\nimport { Suspense as c, useDeferredValue as p } from \"react\";\nimport { Layout as u, useNotifications as d } from \"@olinfo/react-components\";\nimport { SWRConfig as f } from \"swr\";\nimport { Router as s, Switch as m, useLocation as l } from \"wouter\";\nimport \"../index-TPYH25Z2.css\";\nimport { jsx as e } from \"react/jsx-runtime\";\nfunction P({ children: o }) {\n let [t, a] = l(), i = p(t);\n return /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(y, { children: /* @__PURE__ */ e(c, { fallback: /* @__PURE__ */ e(r, {}), children: /* @__PURE__ */ e(s, { hook: () => [i, a], children: /* @__PURE__ */ e(m, { children: o }) }) }) }) });\n}\nfunction y({ children: o }) {\n let { notifyError: t } = d();\n return /* @__PURE__ */ e(f, { value: { onError: t }, children: o });\n}\n\n// src/web/internal/page.tsx\nimport { useEffect as L } from \"react\";\nimport { jsx as n } from \"react/jsx-runtime\";\nasync function E(o) {\n let { default: t, metadata: a } = await o;\n return {\n default: () => /* @__PURE__ */ n(g, { metadata: a, children: /* @__PURE__ */ n(t, {}) })\n };\n}\nfunction g({ metadata: o, children: t }) {\n return L(() => {\n let a = o?.title;\n a && (document.title = a);\n }, [o]), t;\n}\nexport {\n P as BaseLayout,\n E as page\n};\n//# sourceMappingURL=index.js.map"],"file":"assets/_virtual_quizms-routes-09086dad.js"} \ No newline at end of file +{"version":3,"mappings":"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","names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min","jsxRuntimeModule","r","clsx","freeGlobal","freeSelf","root","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","reWhitespace","trimmedEndIndex","string","index","reTrimStart","baseTrim","isObject","type","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","baseClamp","number","lower","upper","clamp","toDate","argument","argStr","constructFrom","date","addMilliseconds","amount","timestamp","millisecondsInMinute","addMinutes","addSeconds","getRoundingMethod","method","round","differenceInMilliseconds","dateLeft","dateRight","differenceInSeconds","options","diff","isAfter","dateToCompare","_date","_dateToCompare","isPast","o","x","B","s","_","N","H","T","P","y","w","v","u","InvalidTokenError","z","j","M","E","t","S","K","V","Y","tt","toKebabCase","mergeClasses","classes","className","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","attrs","createLucideIcon","iconName","Component","props","Check","Menu","TriangleAlert","X","Et","ye","Fe","he","Q","Dt","I","Pe","kt","Se","It","Ee","we","__vitePreload","Vt","Ce","Me","Te","Re","Yt","Zt","_t","jt","Le","R","ke","He","Be","A","i","De","Ro","te","ne","oe","Lo","de","se","ie","_e","Ye","le","Ze","ce","je","yn","nt","me","dt","st","ot","at","rt","lt","it","hn","et","wn","pt","ct","mt","Dn","ut","pe","ft","bt","Vn","ue","F","D","xt","Nt","$n","Un","zn","Kn","useSyncExternalStoreShim_production_min","shimModule","noop","UNDEFINED","OBJECT","isUndefined","isFunction","mergeObjects","isPromiseLike","table","counter","stableHash","arg","constructor","isDate","keys","SWRGlobalState","EMPTY_CACHE","INITIAL_CACHE","STR_UNDEFINED","isWindowDefined","isDocumentDefined","createCacheHelper","cache","key","state","info","prev","online","isOnline","onWindowEvent","offWindowEvent","isVisible","visibilityState","initFocus","callback","initReconnect","onOnline","onOffline","preset","defaultConfigOptions","React","IS_SERVER","useIsomorphicLayoutEffect","useEffect","useLayoutEffect","navigatorConnection","slowConnection","serialize","args","__timestamp","getTimestamp","FOCUS_EVENT","RECONNECT_EVENT","MUTATE_EVENT","internalMutate","_key","_data","_opts","populateCache","rollbackOnErrorOption","optimisticData","rollbackOnError","error","throwOnError","keyFilter","matchedKeys","mutateByKey","_k","get","set","EVENT_REVALIDATORS","MUTATION","FETCH","PRELOAD","startRevalidate","revalidators","data","beforeMutationTs","hasOptimisticData","displayedData","currentData","committedData","err","populateCachedData","revalidateAllKeys","initCache","provider","opts","mutate","unmount","subscriptions","subscribe","subs","setter","fn","initProvider","releaseFocus","releaseReconnect","onErrorRetry","__","config","revalidate","maxRetryCount","currentRetryCount","timeout","compare","newData","defaultConfig","mergeConfigs","u1","f1","u2","f2","SWRConfigContext","createContext","SWRConfig","parentConfig","useContext","isFunctionalConfig","useMemo","extendedConfig","cacheContextRef","useRef","cacheContext","INFINITE_PREFIX","enableDevtools","use","setupDevTools","middleware","useSWRNext","key_","fetcher_","req","ReactExports","SWRConfig$1","parse","input","loose","tmp","ext","pattern","arr","useBuiltinInsertionEffect","canUseDOM","React.useLayoutEffect","React.useEffect","useInsertionEffect","useEvent","React.useRef","eventPopstate","eventPushState","eventReplaceState","eventHashchange","events","subscribeToLocationUpdates","event","useLocationProperty","ssrFn","useSyncExternalStore","currentSearch","useSearch","ssrSearch","currentPathname","usePathname","ssrPath","navigate","to","replace","useBrowserLocation","patchKey","original","_relativePath","base","path","baseDefaults","absolutePath","relativePath","unescape","str","defaultRouter","useSearch$1","RouterCtx","useRouter","Params0","ParamsCtx","useParams","useLocationFromRouter","router","location","navOpts","useLocation","matchRoute","parser","route","$base","matches","groups","obj","Router","parent_","parent","search","next","option","h_route","component","params","useCachedParams","curr","Route","nest","match","renderProps","routeParams","Link","currentPath","targetPath","_onClick","asChild","cls","restProps","onClick","href","isValidElement","cloneElement","flattenChildren","Fragment","Switch","originalLocation","element","L"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"sources":["../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/_trimmedEndIndex.js","../../node_modules/lodash-es/_baseTrim.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/toNumber.js","../../node_modules/lodash-es/_baseClamp.js","../../node_modules/lodash-es/clamp.js","../../node_modules/date-fns/toDate.mjs","../../node_modules/date-fns/constructFrom.mjs","../../node_modules/date-fns/addMilliseconds.mjs","../../node_modules/date-fns/constants.mjs","../../node_modules/date-fns/addMinutes.mjs","../../node_modules/date-fns/addSeconds.mjs","../../node_modules/date-fns/_lib/getRoundingMethod.mjs","../../node_modules/date-fns/differenceInMilliseconds.mjs","../../node_modules/date-fns/differenceInSeconds.mjs","../../node_modules/date-fns/isAfter.mjs","../../node_modules/date-fns/isPast.mjs","../../node_modules/@olinfo/quizms/dist/chunk-CMPWNUBJ.js","../../node_modules/jwt-decode/build/esm/index.js","../../node_modules/@olinfo/training-api/dist/index.js","../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/check.js","../../node_modules/lucide-react/dist/esm/icons/menu.js","../../node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../../node_modules/lucide-react/dist/esm/icons/x.js","../../node_modules/@olinfo/react-components/dist/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/swr/dist/_internal/index.mjs","../../node_modules/swr/dist/core/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/wouter/esm/react-deps.js","../../node_modules/wouter/esm/use-browser-location.js","../../node_modules/wouter/esm/index.js","../../node_modules/@olinfo/quizms/dist/internal/index.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nexport default baseClamp;\n","import baseClamp from './_baseClamp.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nexport default clamp;\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount) {\n const timestamp = +toDate(date);\n return constructFrom(date, timestamp + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { addMilliseconds } from \"./addMilliseconds.mjs\";\nimport { millisecondsInMinute } from \"./constants.mjs\";\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport function addMinutes(date, amount) {\n return addMilliseconds(date, amount * millisecondsInMinute);\n}\n\n// Fallback for modularized imports:\nexport default addMinutes;\n","import { addMilliseconds } from \"./addMilliseconds.mjs\";\n\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of seconds to be added.\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nexport function addSeconds(date, amount) {\n return addMilliseconds(date, amount * 1000);\n}\n\n// Fallback for modularized imports:\nexport default addSeconds;\n","export function getRoundingMethod(method) {\n return (number) => {\n const round = method ? Math[method] : Math.trunc;\n const result = round(number);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n };\n}\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport function differenceInMilliseconds(dateLeft, dateRight) {\n return +toDate(dateLeft) - +toDate(dateRight);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMilliseconds;\n","import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport function differenceInSeconds(dateLeft, dateRight, options) {\n const diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInSeconds;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isPast\n * @category Common Helpers\n * @summary Is the given date in the past?\n * @pure false\n *\n * @description\n * Is the given date in the past?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in the past\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * const result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\nexport function isPast(date) {\n return +toDate(date) < Date.now();\n}\n\n// Fallback for modularized imports:\nexport default isPast;\n","// src/web/components/progress.tsx\nimport b from \"clsx\";\nimport { clamp as g } from \"lodash-es\";\nimport { jsx as l, jsxs as x } from \"react/jsx-runtime\";\nfunction f({ percentage: e, className: t, children: a }) {\n let o = e === void 0 ? void 0 : Math.round(e);\n return o !== void 0 && (o = Number.isNaN(o) ? void 0 : g(o, 0, 100)), /* @__PURE__ */ x(\"div\", { className: b(\"relative p-2 pt-0 text-center\", t), children: [\n /* @__PURE__ */ l(\"div\", { className: \"relative z-10\", children: a }),\n /* @__PURE__ */ l(\"progress\", { className: \"progress progress-info absolute inset-x-0\", value: o, max: \"100\" })\n ] });\n}\n\n// src/web/components/loading.tsx\nimport { jsx as s } from \"react/jsx-runtime\";\nfunction B() {\n return /* @__PURE__ */ s(\"div\", { className: \"not-prose flex grow items-center justify-center\", children: /* @__PURE__ */ s(f, { children: /* @__PURE__ */ s(\"p\", { className: \"pb-1\", children: \"Caricamento in corso...\" }) }) });\n}\n\n// src/web/components/prose.tsx\nimport N from \"clsx\";\nimport { jsx as h } from \"react/jsx-runtime\";\nfunction _({ children: e }) {\n return /* @__PURE__ */ h(\n \"div\",\n {\n className: N(\n \"prose prose-lg max-w-full\",\n \"has-[img]:prose-p:flex has-[img]:prose-p:justify-center prose-img:m-0\",\n \"prose-table:mx-auto prose-table:w-auto prose-table:text-center\",\n \"print:prose-sm print:prose-headings:mt-2 print:prose-hr:my-4\",\n \"prose-headings:break-inside-avoid prose-headings:break-after-avoid\",\n \"prose-p:break-inside-avoid prose-ul:break-before-avoid prose-ul:break-inside-avoid\"\n ),\n children: e\n }\n );\n}\n\n// src/web/components/timer.tsx\nimport { useEffect as y, useState as T } from \"react\";\nimport c from \"clsx\";\nimport { addMinutes as P, differenceInSeconds as w, isAfter as k } from \"date-fns\";\nimport { jsx as n, jsxs as u } from \"react/jsx-runtime\";\nfunction H(e) {\n let [t, a] = T(Date.now()), o = e.endTime ?? P(e.startTime, e.duration);\n y(() => {\n let d = setInterval(() => {\n let p = Date.now();\n a(p), k(p, o) && clearInterval(d);\n }, 100);\n return () => clearInterval(d);\n }, [o]);\n let r = Math.max(w(o, t), 0);\n e.duration && (r = Math.min(r, e.duration * 60));\n let i = Math.floor(r / 3600), m = Math.floor(r / 60) % 60, v = r % 60;\n return i > 0 ? /* @__PURE__ */ u(\n \"span\",\n {\n className: c(\"countdown font-mono\", e.noAnimation && \"[&_*:before]:transition-none\"),\n children: [\n /* @__PURE__ */ n(\"span\", { style: { \"--value\": i } }),\n \"h\",\n /* @__PURE__ */ n(\"span\", { style: { \"--value\": m } }),\n \"m\"\n ]\n }\n ) : /* @__PURE__ */ u(\n \"span\",\n {\n className: c(\"countdown font-mono\", e.noAnimation && \"[&_*:before]:transition-none\"),\n children: [\n /* @__PURE__ */ n(\"span\", { style: { \"--value\": m } }),\n \"m\",\n /* @__PURE__ */ n(\"span\", { style: { \"--value\": v } }),\n \"s\"\n ]\n }\n );\n}\n\nexport {\n f as a,\n B as b,\n _ as c,\n H as d\n};\n//# sourceMappingURL=chunk-CMPWNUBJ.js.map","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import m from\"zod\";import y from\"zod\";import{fromZodError as O}from\"zod-validation-error\";var k=process.env.TRAINING_API_URL??process.env.NEXT_PUBLIC_TRAINING_API_URL??\"https://training.olinfo.it/api\";async function e(t,r,i){let c=await fetch(`${k}/${t}`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(r)});if(!c.ok)throw new Error(`Error ${c.status}: ${c.statusText}`);let b=await c.json(),f;try{f=y.discriminatedUnion(\"success\",[i.strict().extend({success:y.literal(1)}),y.object({success:y.literal(0),error:y.string()})]).parse(b)}catch(h){throw console.error(h),O(h)}if(f.success===0)throw new Error(f.error);return f}var Z=m.object({analytics:m.string(),captcha_enabled:m.boolean(),cookie_domain:m.string(),description:m.string(),forum_url:m.string(),languages:m.string().array(),mail_enabled:m.boolean(),menu:m.object({title:m.string(),icon:m.string()}).array(),name:m.string(),participates:m.boolean(),recaptcha_public_key:m.string(),title:m.string(),top_left_name:m.string()});function pt(){return e(\"contest\",{action:\"get\"},Z)}import j from\"zod\";var z=j.object({name:j.string(),digest:j.string()});function B(t){return`${k}/files/${t.digest}/${t.name}`}import l from\"zod\";var x=l.object({id:l.number(),name:l.string()}),C=l.object({regions:x.array()}),$=l.object({provinces:x.array()}),F=l.object({cities:x.array()}),I=l.object({institutes:x.array()});async function xt(){let{regions:t}=await e(\"location\",{action:\"listregions\"},C);return t}async function dt(t){let{provinces:r}=await e(\"location\",{action:\"listprovinces\",id:t},$);return r}async function St(t){let{cities:r}=await e(\"location\",{action:\"listcities\",id:t},F);return r}async function _t(t){let{institutes:r}=await e(\"location\",{action:\"listinstitutes\",id:t},I);return r}import U from\"zod\";async function Tt(t,r,i){await e(\"user\",{action:\"login\",username:t,password:r,keep_signed:i},U.object({}))}async function Pt(){await e(\"user\",{action:\"logout\"},U.object({}))}import d from\"zod\";async function Rt(t){await e(\"user\",{action:\"update\",email:t},d.object({}))}async function vt(t,r){await e(\"user\",{action:\"update\",email:\"\",old_password:t,password:r},d.object({token:d.string()}))}async function Ot(t){await e(\"user\",{action:\"update\",institute:t},d.object({}))}import w from\"zod\";var N=w.object({message:w.string(),type:w.number()});async function D(t,r){await e(\"user\",{action:\"recover\",email:t,code:r},N)}async function $t(t){await D(t,\"\")}import G from\"zod\";async function Dt(t,r,i,c,b,f,h){await e(\"user\",{action:\"new\",email:t,email2:t,username:r,password:i,password2:i,firstname:c,lastname:b,institute:f,recaptcha_response:h},G.object({}))}import o from\"zod\";var M=o.object({idx:o.string(),memory:o.number().nullable(),outcome:o.enum([\"Correct\",\"Partially correct\",\"Not correct\"]),text:o.string(),time:o.number().nullable()}),E=o.object({idx:o.number().optional(),max_score:o.number(),testcases:M.array()}),q=o.union([E.extend({score:o.number()}),E.extend({score_fraction:o.number()}).transform(({score_fraction:t,...r})=>({...r,score:t*r.max_score}))]),S=o.object({compilation_outcome:o.enum([\"ok\",\"fail\"]).nullable(),evaluation_outcome:o.literal(\"ok\").nullable(),files:z.array(),id:o.number(),score:o.number().nullable().optional(),task_id:o.number(),timestamp:o.number().transform(t=>new Date(t*1e3))}),J=S.extend({compilation_memory:o.number().nullable(),compilation_time:o.number().nullable(),compilation_stdout:o.string().nullable(),compilation_stderr:o.string().nullable(),score_details:q.array().nullable(),language:o.string().nullable()}),L=o.object({submissions:S.array()});async function Lt(t){return(await e(\"submission\",{action:\"list\",task_name:t},L)).submissions}function Xt(t){return e(\"submission\",{action:\"details\",id:t},J)}async function Ht(t,r,i){return e(\"submission\",{action:\"new\",task_name:t.name,files:{[t.submission_format[0]]:{data:await R(i),filename:i.name,language:r}}},S)}async function Kt(t,r){let i=await Promise.all(t.submission_format.map(async c=>[c,{data:await R(r[c]),filename:r[c].name}]));return e(\"submission\",{action:\"new\",task_name:t.name,files:Object.fromEntries(i)},S)}function Qt(t){return t.compilation_outcome===null?!0:t.compilation_outcome===\"fail\"?!1:t.evaluation_outcome===null}async function R(t){let r=await t.arrayBuffer(),i=new Uint8Array(r);return btoa(String.fromCodePoint(...i))}import _ from\"zod\";var X=_.object({tags:_.string().array()});async function v(t){return(await e(\"tag\",{action:\"list\",filter:t},X)).tags}function At(){return v(\"techniques\")}function tr(){return v(\"events\")}async function rr(t,r){await e(\"tag\",{action:\"add\",task:t,tag:r},_.object({}))}async function er(t,r){await e(\"tag\",{action:\"remove\",task:t,tag:r},_.object({}))}import s from\"zod\";var H=s.tuple([s.string(),s.string()]).transform(([t,r])=>({name:t,digest:r})),K=s.object({name:s.string(),can_delete:s.boolean()}),Q=s.object({attachments:H.array(),help_available:s.boolean(),id:s.number(),memory_limit:s.number().nullable(),name:s.string(),score_multiplier:s.number(),statements:s.record(s.string()),submission_format:s.string().array(),supported_languages:s.string().array(),tags:K.array(),task_type:s.enum([\"Batch\",\"OutputOnly\",\"Communication\"]),time_limit:s.number().nullable(),title:s.string()});function sr(t){return e(\"task\",{action:\"get\",name:t},Q)}import u from\"zod\";var V=u.object({id:u.number(),name:u.string(),score:u.number().optional(),score_multiplier:u.number(),title:u.string()}),W=u.object({num:u.number(),tasks:V.array(),tags:u.string().array().optional()});function ur(t,r=20,i){let c=(t-1)*r,b=c+r;return e(\"task\",{action:\"list\",first:c,last:b,...i},W)}import p from\"zod\";var Y=p.object({username:p.string(),time:p.number()}),A=p.object({nsubs:p.number(),nsubscorrect:p.number(),nusers:p.number(),nuserscorrect:p.number(),best:Y.array()});function fr(t){return e(\"task\",{action:\"stats\",name:t},A)}import n from\"zod\";var tt=n.object({name:n.string(),title:n.string(),score:n.number()}),T=(a=>(a[a.Admin=0]=\"Admin\",a[a.Monica=1]=\"Monica\",a[a.Tutor=2]=\"Tutor\",a[a.Teacher=3]=\"Teacher\",a[a.Superuser=4]=\"Superuser\",a[a.User=5]=\"User\",a[a.Newbie=6]=\"Newbie\",a[a.Guest=7]=\"Guest\",a))(T||{}),P=n.object({username:n.string(),first_name:n.string(),last_name:n.string(),institute:n.union([n.object({id:n.number(),name:n.string(),city:n.string(),province:n.string(),region:n.string()}),n.object({})]).transform(t=>\"id\"in t?t:void 0),mail_hash:n.string(),join_date:n.number().transform(t=>new Date(t*1e3)),score:n.number(),scores:tt.array().optional(),tasks_solved:n.number(),access_level:n.nativeEnum(T),global_access_level:n.nativeEnum(T)}),rt=n.object({num:n.number(),users:P.array()}),et=n.object({user:P});async function xr(){return(await e(\"user\",{action:\"me\"},et)).user}function dr(t){return e(\"user\",{action:\"get\",username:t},P)}function Sr(t,r=20){let i=(t-1)*r,c=i+r;return e(\"user\",{action:\"list\",first:i,last:c},rt)}function _r(t){return`https://gravatar.com/avatar/${t.mail_hash}?d=identicon`}import{jwtDecode as ot}from\"jwt-decode\";import g from\"zod\";import{fromZodError as nt}from\"zod-validation-error\";var it=g.object({id:g.number(),username:g.string(),email:g.string(),firstName:g.string(),lastName:g.string(),picture:g.string().transform(t=>`https:${t}`)});function Pr(t){let r=ot(t);try{return it.parse(r)}catch(i){throw nt(i)}}export{T as AccessLevel,rr as addTag,Rt as changeEmail,vt as changePassword,Ot as changeSchool,B as fileUrl,St as getCities,pt as getContest,tr as getEventTags,_t as getInstitutes,xr as getMe,Pr as getMeSync,dt as getProvinces,Sr as getRanking,xt as getRegions,Xt as getSubmission,v as getTags,sr as getTask,ur as getTaskList,fr as getTaskStats,Lt as getTaskSubmissions,At as getTechniqueTags,dr as getUser,Qt as isEvaluating,Tt as login,Pt as logout,D as recoverPassword,er as removeTag,$t as sendRecoverCode,Dt as signup,Ht as submitBatch,Kt as submitOutputOnly,_r as userPictureUrl};\n//# sourceMappingURL=index.js.map","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n}).join(\" \");\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Menu = createLucideIcon(\"Menu\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"12\", y2: \"12\", key: \"1e0a9i\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"6\", y2: \"6\", key: \"1owob3\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"18\", y2: \"18\", key: \"yk5zj1\" }]\n]);\n\nexport { Menu as default };\n//# sourceMappingURL=menu.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"TriangleAlert\", [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","/**\n * @license lucide-react v0.439.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst X = createLucideIcon(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\nexport { X as default };\n//# sourceMappingURL=x.js.map\n","\"use client\";\nimport\"./global-XEUPADUR.css\";import{userPictureUrl as xe}from\"@olinfo/training-api\";import Ne from\"clsx\";import{jsx as k}from\"react/jsx-runtime\";function Pt({user:e,size:t,className:n}){let o=\"picture\"in e?e.picture:xe(e);return k(\"div\",{className:Ne(\"avatar max-h-full max-w-full\",n),children:k(\"div\",{className:\"rounded\",style:{width:t,height:t},children:k(\"img\",{src:`${o}&s=${t}`,srcSet:[1,2,3].map(r=>`${o}&s=${t*r} ${r}x`).join(\", \"),width:t,height:t,alt:`Foto profilo di ${e.username}`,className:\"skeleton rounded-none\"})})})}import{useState as ye}from\"react\";import he from\"clsx\";import{jsx as Q,jsxs as Fe}from\"react/jsx-runtime\";function Et({onClick:e,icon:t,disabled:n,className:o,children:r}){let[a,l]=ye(!1),c=async()=>{l(!0);try{await e?.()}finally{l(!1)}};return Fe(\"button\",{className:he(\"btn\",o),onClick:c,disabled:a||n,type:\"button\",children:[a?Q(\"span\",{className:\"loading loading-spinner\"}):t&&Q(t,{size:22}),r]})}import Pe from\"clsx\";import{jsx as I,jsxs as Se}from\"react/jsx-runtime\";function Dt({className:e,children:t}){return I(\"div\",{className:Pe(\"card overflow-hidden sm:card-side\",e),children:t})}function kt({title:e,children:t}){return Se(\"div\",{className:\"card-body\",children:[I(\"h2\",{className:\"card-title\",children:e}),t]})}function It({children:e}){return I(\"div\",{className:\"card-actions mt-2 grow items-end justify-center\",children:e})}import{Suspense as Ce,lazy as we}from\"react\";import Te from\"./code.module-EGKDOBO5.module.css\";import{jsx as v,jsxs as Re}from\"react/jsx-runtime\";var Ee=we(()=>import(\"./highlight-UOJF2D5K.js\"));function Vt({lang:e,...t}){return v(Ce,{fallback:v(Me,{...t}),children:v(Ee,{lang:e,...t})})}function Me({code:e,inline:t,className:n}){return t?v(\"code\",{className:n,children:e}):v(\"div\",{className:n,children:v(\"pre\",{className:Te.pre,children:v(\"code\",{children:e.split(`\n`).map((o,r)=>Re(\"span\",{className:\"line\",children:[v(\"span\",{children:o}),v(\"br\",{})]},r))})})})}import X from\"clsx\";import{intlFormat as G,intlFormatDistance as J}from\"date-fns\";import{jsx as Z}from\"react/jsx-runtime\";function Y(e,t){return{dateStyle:e===\"hidden\"?void 0:e,timeStyle:t===\"hidden\"?void 0:t}}function Kt({date:e,dateStyle:t=\"medium\",timeStyle:n=\"short\",className:o}){let r=G(e,Y(t,n)),a=J(e,new Date);return Z(\"abbr\",{title:a,className:X(o),children:r})}function Wt({date:e,dateStyle:t=\"medium\",timeStyle:n=\"short\",className:o}){let r=G(e,Y(t,n)),a=J(e,new Date);return Z(\"abbr\",{title:r,className:X(o),children:a})}import{useCallback as Le}from\"react\";import B from\"clsx\";import{jsx as M}from\"react/jsx-runtime\";function Yt({className:e,children:t}){return M(\"div\",{className:B(\"dropdown max-w-full flex-none\",e),children:t})}function Zt({className:e,children:t,ariaLabel:n}){return M(\"div\",{tabIndex:0,role:\"button\",className:B(\"btn btn-ghost no-animation w-full flex-nowrap\",e),\"aria-label\":n,children:t})}function _t({className:e,children:t}){return M(\"ul\",{className:B(\"menu dropdown-content !transition-all\",e),children:t})}function jt({children:e}){let t=Le(n=>{let o=n.target;(o instanceof HTMLAnchorElement||o instanceof HTMLButtonElement)&&o.blur()},[]);return M(\"li\",{onClick:t,children:e})}import{AtSign as Ue,KeyRound as qe,UserRound as ze}from\"lucide-react\";import{useState as Oe}from\"react\";import{formatISO as Ve}from\"date-fns\";import{Fragment as De,createContext as ke,useContext as Ie,useEffect as _,useRef as Be,useState as A}from\"react\";import H from\"clsx\";import{CircleAlert as Ae}from\"lucide-react\";var R=class extends Error{constructor(n,o){super(o);this.field=n;this.message=o}};import{jsx as N,jsxs as j}from\"react/jsx-runtime\";var T=ke({state:{},setState:()=>{},globalDisabled:!1,pending:!1});function He({defaultValue:e,onSubmit:t,disabled:n,className:o,children:r}){let a=Be(null),[l,c]=A(e??{}),[s,i]=A(!1),d=async m=>{if(m.preventDefault(),!!a.current?.checkValidity()){i(!0);try{await t?.(l)}catch(p){if(p instanceof R)a.current?.querySelector(`[name=\"${p.field}\"]`)?.setCustomValidity(p.message);else throw p}finally{i(!1)}}};return N(T.Provider,{value:{state:l,setState:c,globalDisabled:n??!1,pending:s},children:N(\"form\",{ref:a,className:H(\"mx-auto flex w-full max-w-sm flex-col items-center\",o),onSubmit:d,children:(Array.isArray(r)?r:[r]).map((m,p)=>typeof m==\"function\"?N(De,{children:m(l)},p):m)})})}function b(e,t,n){let[o,r]=A(),{state:a,setState:l,globalDisabled:c,pending:s}=Ie(T);return _(()=>t?.setCustomValidity(o??\"\"),[t,o]),_(()=>{return t?.addEventListener(\"invalid\",i),()=>t?.removeEventListener(\"invalid\",i);function i(d){let m=d.currentTarget;for(let[p,f]of Object.entries(n?.validationErrorMap??{}))if(m.validity[p]){r(f);return}r(m.validationMessage)}},[t,n?.validationErrorMap]),{value:a[e],setValue:i=>{l(d=>({...d,[e]:i})),r(i===void 0?void 0:n?.validate?.(i))},validation:o,globalDisabled:c,pending:s}}function x({label:e,validation:t,children:n}){return j(\"label\",{className:\"form-control mb-1 w-full\",children:[N(\"div\",{className:\"label\",children:N(\"span\",{className:\"label-text\",children:e})}),N(\"div\",{className:H(t&&\"*:input-error\"),children:n}),t&&j(\"div\",{className:H(\"m-1 flex items-center gap-1 text-sm\",t&&\"text-error\"),children:[N(Ae,{size:14,className:\"flex-none\"}),\" \",t]})]})}import{jsx as S,jsxs as $e}from\"react/jsx-runtime\";function O({field:e,type:t,label:n,icon:o,fromString:r,toString:a,validate:l,disabled:c,optional:s,min:i,max:d,validationErrorMap:m,autoComplete:p,...f}){let[g,P]=Oe(null),{value:K,setValue:fe,validation:be,globalDisabled:ge,pending:ve}=b(e,g,{validate:l,validationErrorMap:m});return S(x,{label:n,validation:be,children:$e(\"div\",{className:\"input input-bordered flex w-full items-center gap-4\",children:[o&&S(o,{size:18,className:\"flex-none\"}),S(\"input\",{ref:P,className:\"w-full placeholder:italic placeholder:text-base-content/40\",type:t??\"text\",name:e,value:K===void 0?\"\":a(K),onChange:W=>fe(W.target.value===\"\"?void 0:r(W.target.value)),min:i===void 0?void 0:a(i),max:d===void 0?void 0:a(d),disabled:c||ge||ve,required:!s,autoComplete:p??\"off\",...f})]})})}function C(e){return S(O,{...e,maxLength:128,fromString:t=>t,toString:t=>t})}function uo(e){return S(O,{...e,type:\"number\",fromString:Number,toString:String})}function fo(e){return S(O,{...e,type:\"date\",fromString:t=>new Date(t),toString:t=>Ve(t,{representation:\"date\"})})}import{jsx as y}from\"react/jsx-runtime\";function No(e){return y(C,{...e,label:e.label??\"Username\",placeholder:\"Inserisci il tuo username\",autoComplete:\"username\",icon:ze})}function yo(e){return y(C,{...e,type:\"email\",label:e.label??\"Email\",placeholder:\"Inserisci la tua email\",autoComplete:\"email\",icon:Ue})}function ee(e){return y(C,{...e,label:e.label??\"Password\",type:\"password\",icon:qe})}function ho(e){return y(ee,{...e,placeholder:\"Crea una password\",autoComplete:\"new-password\",minLength:e.minLength??8})}function Fo(e){return y(ee,{...e,placeholder:\"Inserisci la tua password\",autoComplete:\"current-password\"})}function Po(e){return y(C,{...e,label:e.label??\"Nome\",placeholder:\"Inserisci il tuo nome\",autoComplete:\"given-name\"})}function So(e){return y(C,{...e,label:e.label??\"Cognome\",placeholder:\"Inserisci il tuo cognome\",autoComplete:\"family-name\"})}import{useContext as te}from\"react\";import oe from\"clsx\";import{jsx as V,jsxs as ne}from\"react/jsx-runtime\";function Ro({disabled:e,icon:t,className:n,children:o}){let{globalDisabled:r,pending:a}=te(T);return ne(\"button\",{className:oe(\"btn btn-primary mt-4\",n),type:\"submit\",disabled:e||r||a,children:[a?V(\"span\",{className:\"loading loading-spinner\"}):t&&V(t,{size:22}),o]})}function Lo({disabled:e,icon:t,onClick:n,className:o,children:r}){let{globalDisabled:a,pending:l}=te(T);return ne(\"button\",{className:oe(\"btn btn-primary mt-4\",o),type:\"button\",onClick:n,disabled:e||a||l,children:[t&&V(t,{size:22}),r]})}import{useState as Ke}from\"react\";import{jsx as $,jsxs as We}from\"react/jsx-runtime\";function Ao({field:e,label:t,disabled:n,optional:o}){let[r,a]=Ke(null),{value:l,setValue:c,globalDisabled:s,pending:i}=b(e,r);return $(\"div\",{className:\"form-control w-full\",children:We(\"label\",{className:\"label cursor-pointer\",children:[$(\"span\",{className:\"label-text\",children:t}),$(\"input\",{ref:a,className:\"checkbox\",type:\"checkbox\",name:e,checked:l??!1,onChange:d=>c(d.target.checked),disabled:n||s||i,required:!o})]})})}import{useState as re}from\"react\";import{jsx as L}from\"react/jsx-runtime\";function Uo({field:e,label:t,accept:n,validate:o,disabled:r,optional:a}){let[l,c]=re(null),{setValue:s,validation:i,globalDisabled:d,pending:m}=b(e,l,{validate:o});return L(x,{label:t,validation:i,children:L(\"input\",{ref:c,type:\"file\",className:\"file-input file-input-bordered w-full\",onChange:p=>s(p.target.files?.[0]),accept:n,disabled:r||d||m,required:!a})})}function qo({field:e,label:t,accept:n,validate:o,disabled:r,optional:a}){let[l,c]=re(null),{setValue:s,validation:i,globalDisabled:d,pending:m}=b(e,l,{validate:o});return L(x,{label:t,validation:i,children:L(\"input\",{ref:c,type:\"file\",className:\"file-input file-input-bordered w-full\",onChange:f=>{let g=f.target.files?Object.fromEntries(Array.from(f.target.files,P=>[P.name,P])):void 0;s(g)},multiple:!0,accept:n,disabled:r||d||m,required:!a})})}import{useEffect as Qe,useState as Xe}from\"react\";import{jsx as U,jsxs as Ge}from\"react/jsx-runtime\";function Xo({field:e,label:t,options:n,placeholder:o,validate:r,disabled:a,optional:l}){let[c,s]=Xe(null),{value:i,setValue:d,validation:m,globalDisabled:p,pending:f}=b(e,c,{validate:r});return Qe(()=>{i&&!(i in n)&&d(o?void 0:Object.keys(n)[0])},[i,d,n,o]),U(x,{label:t,validation:m,children:Ge(\"select\",{ref:s,name:e,className:\"select select-bordered w-full\",value:i??\"\",onChange:g=>d(g.target.value),disabled:a||p||f,required:!l,children:[o&&U(\"option\",{disabled:!0,value:\"\",children:o}),Object.entries(n).map(([g,P])=>U(\"option\",{value:g,children:P},g))]})})}import{useState as Je}from\"react\";import{jsx as ae}from\"react/jsx-runtime\";function _o({field:e,label:t,rows:n,placeholder:o,validate:r,disabled:a,optional:l}){let[c,s]=Je(null),{value:i,setValue:d,validation:m,globalDisabled:p,pending:f}=b(e,c,{validate:r});return ae(x,{label:t,validation:m,children:ae(\"textarea\",{ref:s,name:e,className:\"textarea textarea-bordered w-full placeholder:italic placeholder:text-base-content/40\",value:i??\"\",onChange:g=>d(g.target.value),disabled:a||p||f,required:!l,placeholder:o,rows:n})})}import{createContext as je,useCallback as q,useContext as et,useEffect as tt,useMemo as ot,useState as nt}from\"react\";import rt from\"clsx\";import{addSeconds as at}from\"date-fns\";import{AlertTriangle as it,Check as lt}from\"lucide-react\";import{useCallback as ie,useEffect as le,useState as Ye}from\"react\";import{differenceInMilliseconds as Ze,isPast as _e}from\"date-fns\";function de({start:e,end:t,children:n}){let o=se(e)??!0,r=se(t)??!1;return o&&!r&&n}function se(e){let t=ie(()=>e&&_e(e),[e]),[n,o]=Ye(t),r=ie(()=>o(t()),[t]);return le(()=>{if(!e){o(void 0);return}let a=Ze(e,Date.now());if(o(a<0),a<0)return;let l=setTimeout(r,a+5);return()=>clearTimeout(l)},[e,r]),le(()=>(window.addEventListener(\"visibilitychange\",r),()=>window.removeEventListener(\"visibilitychange\",r)),[r]),n}import{jsx as h,jsxs as me}from\"react/jsx-runtime\";import{createElement as dt}from\"react\";var ce=je({notify:()=>{}});function yn({children:e}){let[t,n]=nt([]),o=q(r=>{n(a=>[...a,{...r,timestamp:Date.now()}])},[]);return tt(()=>{return window.addEventListener(\"unhandledrejection\",r),()=>window.removeEventListener(\"unhandledrejection\",r);function r(a){o({type:\"alert-error\",message:a.reason.message})}},[o]),h(ce.Provider,{value:{notify:o},children:me(\"div\",{className:\"flex min-h-dvh w-full flex-col\",children:[e,h(\"div\",{className:\"toast left-0 z-50 items-end\",children:t.map((r,a)=>dt(st,{...r,key:a}))})]})})}function st({type:e,message:t,timestamp:n}){let o=ot(()=>at(n,10),[n]);return h(de,{end:o,children:h(\"div\",{className:rt(\"alert max-w-sm\",e),children:me(\"div\",{className:\"flex gap-4\",children:[e===\"alert-success\"?h(lt,{}):h(it,{}),h(\"div\",{className:\"text-wrap\",children:t})]})})})}function hn(){let{notify:e}=et(ce),t=q(o=>e({type:\"alert-success\",message:o}),[e]),n=q(o=>e({type:\"alert-error\",message:o.message}),[e]);return{notifySuccess:t,notifyError:n}}import ct from\"clsx\";import{jsx as mt,jsxs as pt}from\"react/jsx-runtime\";function wn({fallback:e,className:t,children:n}){return pt(\"ul\",{className:ct(\"menu w-full rounded-box bg-base-200\",t),children:[n,e&&mt(\"li\",{className:\"col-span-full hidden p-2 text-center first:flex\",children:e})]})}import{forwardRef as ut}from\"react\";import ft from\"clsx\";import{X as bt}from\"lucide-react\";import{jsx as w,jsxs as pe}from\"react/jsx-runtime\";var Dn=ut(function({title:t,className:n,children:o},r){return pe(\"dialog\",{ref:r,className:\"modal\",children:[pe(\"div\",{className:ft(\"modal-box\",n),children:[w(\"form\",{method:\"dialog\",children:w(\"button\",{className:\"btn btn-circle btn-ghost btn-sm absolute right-2 top-2\",\"aria-label\":\"Chiudi\",type:\"submit\",children:w(bt,{})})}),w(\"h1\",{className:\"mb-3 mt-0 text-lg font-bold\",children:t}),o]}),w(\"form\",{method:\"dialog\",className:\"modal-backdrop\",children:w(\"button\",{type:\"submit\",children:\"Chiudi\"})})]})});import{useCallback as ue,useDeferredValue as gt,useEffect as vt,useState as z}from\"react\";import E from\"clsx\";import{Menu as xt,X as Nt}from\"lucide-react\";import F from\"./navbar.module-DNV5JNPN.module.css\";import{jsx as u,jsxs as D}from\"react/jsx-runtime\";function Vn({color:e,children:t}){let[n,o]=z(!1),r=ue(a=>{let l=a.target;(l instanceof HTMLAnchorElement||l instanceof HTMLButtonElement)&&o(!1)},[]);return u(\"div\",{className:E(F.navbar,e),children:D(\"div\",{onClick:r,children:[D(\"label\",{className:E(F.navbarMenuIcon,\"btn btn-ghost swap swap-rotate\"),onClick:a=>a.stopPropagation(),children:[u(\"input\",{type:\"checkbox\",checked:n,onChange:a=>o(a.target.checked),\"aria-label\":\"Mostra menu\"}),u(xt,{className:\"swap-off\"}),u(Nt,{className:\"swap-on\"})]}),t]})})}function $n({children:e}){return u(\"div\",{className:F.navbarBrand,children:e})}function Un({children:e}){return u(\"div\",{className:F.navbarMenu,children:u(\"div\",{children:u(\"ul\",{className:\"menu md:menu-horizontal\",children:e})})})}function qn({title:e,children:t}){let[n,o]=z(!1),r=ue(s=>{let i=s.target;(i instanceof HTMLAnchorElement||i instanceof HTMLButtonElement)&&(o(!1),i.blur())},[]),[a,l]=z();vt(()=>{let s=window.matchMedia(\"(min-width: 768px)\");return l(s.matches),s.addEventListener(\"change\",i),()=>s.removeEventListener(\"change\",i);function i(d){l(d.matches)}},[]);let c=gt(a);return D(\"li\",{className:E(F.navbarSubmenu,\"md:dropdown\"),children:[u(\"div\",{tabIndex:0,role:\"button\",className:E(\"menu-dropdown-toggle\",n&&!a&&\"menu-dropdown-show\"),onClick:s=>s.stopPropagation(),children:D(\"label\",{children:[u(\"div\",{children:e}),u(\"input\",{type:\"checkbox\",checked:n,onChange:s=>o(s.target.checked),className:F.navbarSubmenuCheckbox})]})}),u(\"ul\",{className:E(\"md:menu\",a&&\"dropdown-content\",!c&&\"md:hidden\"),onClick:r,children:t})]})}function zn({children:e}){return u(\"li\",{children:e})}function Kn({children:e}){return u(\"div\",{className:F.navbarContent,children:e})}import{jsx as yt}from\"react/jsx-runtime\";function Xn({children:e}){return yt(\"div\",{role:\"tablist\",className:\"tabs-boxed tabs mx-auto flex w-fit flex-wrap justify-center\",children:e})}export{Pt as Avatar,Et as Button,Dt as Card,It as CardActions,kt as CardBody,Ao as CheckboxField,Vt as Code,Fo as CurrentPasswordField,Wt as DateDistance,fo as DateField,Kt as DateTime,Yt as Dropdown,Zt as DropdownButton,jt as DropdownItem,_t as DropdownMenu,yo as EmailField,Po as FirstNameField,He as Form,Lo as FormButton,R as FormFieldError,So as LastNameField,yn as Layout,wn as Menu,Dn as Modal,qo as MultipleFileField,Vn as Navbar,$n as NavbarBrand,Kn as NavbarContent,Un as NavbarMenu,zn as NavbarMenuItem,qn as NavbarSubmenu,ho as NewPasswordField,uo as NumberField,Xo as SelectField,Uo as SingleFileField,Ro as SubmitButton,Xn as Tabs,_o as TextAreaField,C as TextField,No as UsernameField,de as WithinTimeRange,se as useIsAfter,hn as useNotifications};\n//# sourceMappingURL=index.js.map","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import React, { useEffect, useLayoutEffect, createContext, useContext, useMemo, useRef, createElement } from 'react';\n\n// Shared state between server components and client components\nconst noop = ()=>{};\n// Using noop() as the undefined value as undefined can be replaced\n// by something else. Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\nconst UNDEFINED = /*#__NOINLINE__*/ noop();\nconst OBJECT = Object;\nconst isUndefined = (v)=>v === UNDEFINED;\nconst isFunction = (v)=>typeof v == 'function';\nconst mergeObjects = (a, b)=>({\n ...a,\n ...b\n });\nconst isPromiseLike = (x)=>isFunction(x.then);\n\n// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nconst table = new WeakMap();\n// counter of the key\nlet counter = 0;\n// A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsable.\nconst stableHash = (arg)=>{\n const type = typeof arg;\n const constructor = arg && arg.constructor;\n const isDate = constructor == Date;\n let result;\n let index;\n if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n // If it's already hashed, directly return the result.\n result = table.get(arg);\n if (result) return result;\n // Store the hash first for circular reference detection before entering the\n // recursive `stableHash` calls.\n // For other objects like set and map, we use this id directly as the hash.\n result = ++counter + '~';\n table.set(arg, result);\n if (constructor == Array) {\n // Array.\n result = '@';\n for(index = 0; index < arg.length; index++){\n result += stableHash(arg[index]) + ',';\n }\n table.set(arg, result);\n }\n if (constructor == OBJECT) {\n // Object, sort keys.\n result = '#';\n const keys = OBJECT.keys(arg).sort();\n while(!isUndefined(index = keys.pop())){\n if (!isUndefined(arg[index])) {\n result += index + ':' + stableHash(arg[index]) + ',';\n }\n }\n table.set(arg, result);\n }\n } else {\n result = isDate ? arg.toJSON() : type == 'symbol' ? arg.toString() : type == 'string' ? JSON.stringify(arg) : '' + arg;\n }\n return result;\n};\n\n// Global state used to deduplicate requests and store listeners\nconst SWRGlobalState = new WeakMap();\n\nconst EMPTY_CACHE = {};\nconst INITIAL_CACHE = {};\nconst STR_UNDEFINED = 'undefined';\n// NOTE: Use the function to guarantee it's re-evaluated between jsdom and node runtime for tests.\nconst isWindowDefined = typeof window != STR_UNDEFINED;\nconst isDocumentDefined = typeof document != STR_UNDEFINED;\nconst hasRequestAnimationFrame = ()=>isWindowDefined && typeof window['requestAnimationFrame'] != STR_UNDEFINED;\nconst createCacheHelper = (cache, key)=>{\n const state = SWRGlobalState.get(cache);\n return [\n // Getter\n ()=>!isUndefined(key) && cache.get(key) || EMPTY_CACHE,\n // Setter\n (info)=>{\n if (!isUndefined(key)) {\n const prev = cache.get(key);\n // Before writing to the store, we keep the value in the initial cache\n // if it's not there yet.\n if (!(key in INITIAL_CACHE)) {\n INITIAL_CACHE[key] = prev;\n }\n state[5](key, mergeObjects(prev, info), prev || EMPTY_CACHE);\n }\n },\n // Subscriber\n state[6],\n // Get server cache snapshot\n ()=>{\n if (!isUndefined(key)) {\n // If the cache was updated on the client, we return the stored initial value.\n if (key in INITIAL_CACHE) return INITIAL_CACHE[key];\n }\n // If we haven't done any client-side updates, we return the current value.\n return !isUndefined(key) && cache.get(key) || EMPTY_CACHE;\n }\n ];\n} // export { UNDEFINED, OBJECT, isUndefined, isFunction, mergeObjects, isPromiseLike }\n;\n\n/**\n * Due to the bug https://bugs.chromium.org/p/chromium/issues/detail?id=678075,\n * it's not reliable to detect if the browser is currently online or offline\n * based on `navigator.onLine`.\n * As a workaround, we always assume it's online on the first load, and change\n * the status upon `online` or `offline` events.\n */ let online = true;\nconst isOnline = ()=>online;\n// For node and React Native, `add/removeEventListener` doesn't exist on window.\nconst [onWindowEvent, offWindowEvent] = isWindowDefined && window.addEventListener ? [\n window.addEventListener.bind(window),\n window.removeEventListener.bind(window)\n] : [\n noop,\n noop\n];\nconst isVisible = ()=>{\n const visibilityState = isDocumentDefined && document.visibilityState;\n return isUndefined(visibilityState) || visibilityState !== 'hidden';\n};\nconst initFocus = (callback)=>{\n // focus revalidate\n if (isDocumentDefined) {\n document.addEventListener('visibilitychange', callback);\n }\n onWindowEvent('focus', callback);\n return ()=>{\n if (isDocumentDefined) {\n document.removeEventListener('visibilitychange', callback);\n }\n offWindowEvent('focus', callback);\n };\n};\nconst initReconnect = (callback)=>{\n // revalidate on reconnected\n const onOnline = ()=>{\n online = true;\n callback();\n };\n // nothing to revalidate, just update the status\n const onOffline = ()=>{\n online = false;\n };\n onWindowEvent('online', onOnline);\n onWindowEvent('offline', onOffline);\n return ()=>{\n offWindowEvent('online', onOnline);\n offWindowEvent('offline', onOffline);\n };\n};\nconst preset = {\n isOnline,\n isVisible\n};\nconst defaultConfigOptions = {\n initFocus,\n initReconnect\n};\n\nconst IS_REACT_LEGACY = !React.useId;\nconst IS_SERVER = !isWindowDefined || 'Deno' in window;\n// Polyfill requestAnimationFrame\nconst rAF = (f)=>hasRequestAnimationFrame() ? window['requestAnimationFrame'](f) : setTimeout(f, 1);\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nconst useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// This assignment is to extend the Navigator type to use effectiveType.\nconst navigatorConnection = typeof navigator !== 'undefined' && navigator.connection;\n// Adjust the config based on slow connection status (<= 70Kbps).\nconst slowConnection = !IS_SERVER && navigatorConnection && ([\n 'slow-2g',\n '2g'\n].includes(navigatorConnection.effectiveType) || navigatorConnection.saveData);\n\nconst serialize = (key)=>{\n if (isFunction(key)) {\n try {\n key = key();\n } catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n // Use the original key as the argument of fetcher. This can be a string or an\n // array of values.\n const args = key;\n // If key is not falsy, or not an empty array, hash it.\n key = typeof key == 'string' ? key : (Array.isArray(key) ? key.length : key) ? stableHash(key) : '';\n return [\n key,\n args\n ];\n};\n\n// Global timestamp.\nlet __timestamp = 0;\nconst getTimestamp = ()=>++__timestamp;\n\nconst FOCUS_EVENT = 0;\nconst RECONNECT_EVENT = 1;\nconst MUTATE_EVENT = 2;\nconst ERROR_REVALIDATE_EVENT = 3;\n\nvar events = {\n __proto__: null,\n ERROR_REVALIDATE_EVENT: ERROR_REVALIDATE_EVENT,\n FOCUS_EVENT: FOCUS_EVENT,\n MUTATE_EVENT: MUTATE_EVENT,\n RECONNECT_EVENT: RECONNECT_EVENT\n};\n\nasync function internalMutate(...args) {\n const [cache, _key, _data, _opts] = args;\n // When passing as a boolean, it's explicitly used to disable/enable\n // revalidation.\n const options = mergeObjects({\n populateCache: true,\n throwOnError: true\n }, typeof _opts === 'boolean' ? {\n revalidate: _opts\n } : _opts || {});\n let populateCache = options.populateCache;\n const rollbackOnErrorOption = options.rollbackOnError;\n let optimisticData = options.optimisticData;\n const rollbackOnError = (error)=>{\n return typeof rollbackOnErrorOption === 'function' ? rollbackOnErrorOption(error) : rollbackOnErrorOption !== false;\n };\n const throwOnError = options.throwOnError;\n // If the second argument is a key filter, return the mutation results for all\n // filtered keys.\n if (isFunction(_key)) {\n const keyFilter = _key;\n const matchedKeys = [];\n const it = cache.keys();\n for (const key of it){\n if (// Skip the special useSWRInfinite and useSWRSubscription keys.\n !/^\\$(inf|sub)\\$/.test(key) && keyFilter(cache.get(key)._k)) {\n matchedKeys.push(key);\n }\n }\n return Promise.all(matchedKeys.map(mutateByKey));\n }\n return mutateByKey(_key);\n async function mutateByKey(_k) {\n // Serialize key\n const [key] = serialize(_k);\n if (!key) return;\n const [get, set] = createCacheHelper(cache, key);\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = SWRGlobalState.get(cache);\n const startRevalidate = ()=>{\n const revalidators = EVENT_REVALIDATORS[key];\n const revalidate = isFunction(options.revalidate) ? options.revalidate(get().data, _k) : options.revalidate !== false;\n if (revalidate) {\n // Invalidate the key by deleting the concurrent request markers so new\n // requests will not be deduped.\n delete FETCH[key];\n delete PRELOAD[key];\n if (revalidators && revalidators[0]) {\n return revalidators[0](MUTATE_EVENT).then(()=>get().data);\n }\n }\n return get().data;\n };\n // If there is no new data provided, revalidate the key with current state.\n if (args.length < 3) {\n // Revalidate and broadcast state.\n return startRevalidate();\n }\n let data = _data;\n let error;\n // Update global timestamps.\n const beforeMutationTs = getTimestamp();\n MUTATION[key] = [\n beforeMutationTs,\n 0\n ];\n const hasOptimisticData = !isUndefined(optimisticData);\n const state = get();\n // `displayedData` is the current value on screen. It could be the optimistic value\n // that is going to be overridden by a `committedData`, or get reverted back.\n // `committedData` is the validated value that comes from a fetch or mutation.\n const displayedData = state.data;\n const currentData = state._c;\n const committedData = isUndefined(currentData) ? displayedData : currentData;\n // Do optimistic data update.\n if (hasOptimisticData) {\n optimisticData = isFunction(optimisticData) ? optimisticData(committedData, displayedData) : optimisticData;\n // When we set optimistic data, backup the current committedData data in `_c`.\n set({\n data: optimisticData,\n _c: committedData\n });\n }\n if (isFunction(data)) {\n // `data` is a function, call it passing current cache value.\n try {\n data = data(committedData);\n } catch (err) {\n // If it throws an error synchronously, we shouldn't update the cache.\n error = err;\n }\n }\n // `data` is a promise/thenable, resolve the final data first.\n if (data && isPromiseLike(data)) {\n // This means that the mutation is async, we need to check timestamps to\n // avoid race conditions.\n data = await data.catch((err)=>{\n error = err;\n });\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n if (beforeMutationTs !== MUTATION[key][0]) {\n if (error) throw error;\n return data;\n } else if (error && hasOptimisticData && rollbackOnError(error)) {\n // Rollback. Always populate the cache in this case but without\n // transforming the data.\n populateCache = true;\n // Reset data to be the latest committed data, and clear the `_c` value.\n set({\n data: committedData,\n _c: UNDEFINED\n });\n }\n }\n // If we should write back the cache after request.\n if (populateCache) {\n if (!error) {\n // Transform the result into data.\n if (isFunction(populateCache)) {\n const populateCachedData = populateCache(data, committedData);\n set({\n data: populateCachedData,\n error: UNDEFINED,\n _c: UNDEFINED\n });\n } else {\n // Only update cached data and reset the error if there's no error. Data can be `undefined` here.\n set({\n data,\n error: UNDEFINED,\n _c: UNDEFINED\n });\n }\n }\n }\n // Reset the timestamp to mark the mutation has ended.\n MUTATION[key][1] = getTimestamp();\n // Update existing SWR Hooks' internal states:\n Promise.resolve(startRevalidate()).then(()=>{\n // The mutation and revalidation are ended, we can clear it since the data is\n // not an optimistic value anymore.\n set({\n _c: UNDEFINED\n });\n });\n // Throw error or return data\n if (error) {\n if (throwOnError) throw error;\n return;\n }\n return data;\n }\n}\n\nconst revalidateAllKeys = (revalidators, type)=>{\n for(const key in revalidators){\n if (revalidators[key][0]) revalidators[key][0](type);\n }\n};\nconst initCache = (provider, options)=>{\n // The global state for a specific provider will be used to deduplicate\n // requests and store listeners. As well as a mutate function that is bound to\n // the cache.\n // The provider's global state might be already initialized. Let's try to get the\n // global state associated with the provider first.\n if (!SWRGlobalState.has(provider)) {\n const opts = mergeObjects(defaultConfigOptions, options);\n // If there's no global state bound to the provider, create a new one with the\n // new mutate function.\n const EVENT_REVALIDATORS = {};\n const mutate = internalMutate.bind(UNDEFINED, provider);\n let unmount = noop;\n const subscriptions = {};\n const subscribe = (key, callback)=>{\n const subs = subscriptions[key] || [];\n subscriptions[key] = subs;\n subs.push(callback);\n return ()=>subs.splice(subs.indexOf(callback), 1);\n };\n const setter = (key, value, prev)=>{\n provider.set(key, value);\n const subs = subscriptions[key];\n if (subs) {\n for (const fn of subs){\n fn(value, prev);\n }\n }\n };\n const initProvider = ()=>{\n if (!SWRGlobalState.has(provider)) {\n // Update the state if it's new, or if the provider has been extended.\n SWRGlobalState.set(provider, [\n EVENT_REVALIDATORS,\n {},\n {},\n {},\n mutate,\n setter,\n subscribe\n ]);\n if (!IS_SERVER) {\n // When listening to the native events for auto revalidations,\n // we intentionally put a delay (setTimeout) here to make sure they are\n // fired after immediate JavaScript executions, which can be\n // React's state updates.\n // This avoids some unnecessary revalidations such as\n // https://github.com/vercel/swr/issues/1680.\n const releaseFocus = opts.initFocus(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, FOCUS_EVENT)));\n const releaseReconnect = opts.initReconnect(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, RECONNECT_EVENT)));\n unmount = ()=>{\n releaseFocus && releaseFocus();\n releaseReconnect && releaseReconnect();\n // When un-mounting, we need to remove the cache provider from the state\n // storage too because it's a side-effect. Otherwise, when re-mounting we\n // will not re-register those event listeners.\n SWRGlobalState.delete(provider);\n };\n }\n }\n };\n initProvider();\n // This is a new provider, we need to initialize it and setup DOM events\n // listeners for `focus` and `reconnect` actions.\n // We might want to inject an extra layer on top of `provider` in the future,\n // such as key serialization, auto GC, etc.\n // For now, it's just a `Map` interface without any modifications.\n return [\n provider,\n mutate,\n initProvider,\n unmount\n ];\n }\n return [\n provider,\n SWRGlobalState.get(provider)[4]\n ];\n};\n\n// error retry\nconst onErrorRetry = (_, __, config, revalidate, opts)=>{\n const maxRetryCount = config.errorRetryCount;\n const currentRetryCount = opts.retryCount;\n // Exponential backoff\n const timeout = ~~((Math.random() + 0.5) * (1 << (currentRetryCount < 8 ? currentRetryCount : 8))) * config.errorRetryInterval;\n if (!isUndefined(maxRetryCount) && currentRetryCount > maxRetryCount) {\n return;\n }\n setTimeout(revalidate, timeout, opts);\n};\nconst compare = (currentData, newData)=>stableHash(currentData) == stableHash(newData);\n// Default cache provider\nconst [cache, mutate] = initCache(new Map());\n// Default config\nconst defaultConfig = mergeObjects({\n // events\n onLoadingSlow: noop,\n onSuccess: noop,\n onError: noop,\n onErrorRetry,\n onDiscarded: noop,\n // switches\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n revalidateIfStale: true,\n shouldRetryOnError: true,\n // timeouts\n errorRetryInterval: slowConnection ? 10000 : 5000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: slowConnection ? 5000 : 3000,\n // providers\n compare,\n isPaused: ()=>false,\n cache,\n mutate,\n fallback: {}\n}, // use web preset by default\npreset);\n\nconst mergeConfigs = (a, b)=>{\n // Need to create a new object to avoid mutating the original here.\n const v = mergeObjects(a, b);\n // If two configs are provided, merge their `use` and `fallback` options.\n if (b) {\n const { use: u1, fallback: f1 } = a;\n const { use: u2, fallback: f2 } = b;\n if (u1 && u2) {\n v.use = u1.concat(u2);\n }\n if (f1 && f2) {\n v.fallback = mergeObjects(f1, f2);\n }\n }\n return v;\n};\n\nconst SWRConfigContext = createContext({});\nconst SWRConfig = (props)=>{\n const { value } = props;\n const parentConfig = useContext(SWRConfigContext);\n const isFunctionalConfig = isFunction(value);\n const config = useMemo(()=>isFunctionalConfig ? value(parentConfig) : value, [\n isFunctionalConfig,\n parentConfig,\n value\n ]);\n // Extend parent context values and middleware.\n const extendedConfig = useMemo(()=>isFunctionalConfig ? config : mergeConfigs(parentConfig, config), [\n isFunctionalConfig,\n parentConfig,\n config\n ]);\n // Should not use the inherited provider.\n const provider = config && config.provider;\n // initialize the cache only on first access.\n const cacheContextRef = useRef(UNDEFINED);\n if (provider && !cacheContextRef.current) {\n cacheContextRef.current = initCache(provider(extendedConfig.cache || cache), config);\n }\n const cacheContext = cacheContextRef.current;\n // Override the cache if a new provider is given.\n if (cacheContext) {\n extendedConfig.cache = cacheContext[0];\n extendedConfig.mutate = cacheContext[1];\n }\n // Unsubscribe events.\n useIsomorphicLayoutEffect(()=>{\n if (cacheContext) {\n cacheContext[2] && cacheContext[2]();\n return cacheContext[3];\n }\n }, []);\n return createElement(SWRConfigContext.Provider, mergeObjects(props, {\n value: extendedConfig\n }));\n};\n\nconst INFINITE_PREFIX = '$inf$';\n\n// @ts-expect-error\nconst enableDevtools = isWindowDefined && window.__SWR_DEVTOOLS_USE__;\nconst use = enableDevtools ? window.__SWR_DEVTOOLS_USE__ : [];\nconst setupDevTools = ()=>{\n if (enableDevtools) {\n // @ts-expect-error\n window.__SWR_DEVTOOLS_REACT__ = React;\n }\n};\n\nconst normalize = (args)=>{\n return isFunction(args[1]) ? [\n args[0],\n args[1],\n args[2] || {}\n ] : [\n args[0],\n null,\n (args[1] === null ? args[2] : args[1]) || {}\n ];\n};\n\nconst useSWRConfig = ()=>{\n return mergeObjects(defaultConfig, useContext(SWRConfigContext));\n};\n\nconst preload = (key_, fetcher)=>{\n const [key, fnArg] = serialize(key_);\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n // Prevent preload to be called multiple times before used.\n if (PRELOAD[key]) return PRELOAD[key];\n const req = fetcher(fnArg);\n PRELOAD[key] = req;\n return req;\n};\nconst middleware = (useSWRNext)=>(key_, fetcher_, config)=>{\n // fetcher might be a sync function, so this should not be an async function\n const fetcher = fetcher_ && ((...args)=>{\n const [key] = serialize(key_);\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n if (key.startsWith(INFINITE_PREFIX)) {\n // we want the infinite fetcher to be called.\n // handling of the PRELOAD cache happens there.\n return fetcher_(...args);\n }\n const req = PRELOAD[key];\n if (isUndefined(req)) return fetcher_(...args);\n delete PRELOAD[key];\n return req;\n });\n return useSWRNext(key_, fetcher, config);\n };\n\nconst BUILT_IN_MIDDLEWARE = use.concat(middleware);\n\n// It's tricky to pass generic types as parameters, so we just directly override\n// the types here.\nconst withArgs = (hook)=>{\n return function useSWRArgs(...args) {\n // Get the default and inherited configuration.\n const fallbackConfig = useSWRConfig();\n // Normalize arguments.\n const [key, fn, _config] = normalize(args);\n // Merge configurations.\n const config = mergeConfigs(fallbackConfig, _config);\n // Apply middleware\n let next = hook;\n const { use } = config;\n const middleware = (use || []).concat(BUILT_IN_MIDDLEWARE);\n for(let i = middleware.length; i--;){\n next = middleware[i](next);\n }\n return next(key, fn || config.fetcher || null, config);\n };\n};\n\n// Add a callback function to a list of keyed callback functions and return\n// the unsubscribe function.\nconst subscribeCallback = (key, callbacks, callback)=>{\n const keyedRevalidators = callbacks[key] || (callbacks[key] = []);\n keyedRevalidators.push(callback);\n return ()=>{\n const index = keyedRevalidators.indexOf(callback);\n if (index >= 0) {\n // O(1): faster than splice\n keyedRevalidators[index] = keyedRevalidators[keyedRevalidators.length - 1];\n keyedRevalidators.pop();\n }\n };\n};\n\n// Create a custom hook with a middleware\nconst withMiddleware = (useSWR, middleware)=>{\n return (...args)=>{\n const [key, fn, config] = normalize(args);\n const uses = (config.use || []).concat(middleware);\n return useSWR(key, fn, {\n ...config,\n use: uses\n });\n };\n};\n\nsetupDevTools();\n\nexport { INFINITE_PREFIX, IS_REACT_LEGACY, IS_SERVER, OBJECT, SWRConfig, SWRGlobalState, UNDEFINED, cache, compare, createCacheHelper, defaultConfig, defaultConfigOptions, getTimestamp, hasRequestAnimationFrame, initCache, internalMutate, isDocumentDefined, isFunction, isPromiseLike, isUndefined, isWindowDefined, mergeConfigs, mergeObjects, mutate, noop, normalize, preload, preset, rAF, events as revalidateEvents, serialize, slowConnection, stableHash, subscribeCallback, useIsomorphicLayoutEffect, useSWRConfig, withArgs, withMiddleware };\n","import 'client-only';\nimport ReactExports, { useRef, useMemo, useCallback, useDebugValue } from 'react';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\nimport { serialize, OBJECT, SWRConfig as SWRConfig$1, defaultConfig, withArgs, SWRGlobalState, createCacheHelper, isUndefined, getTimestamp, UNDEFINED, isFunction, revalidateEvents, internalMutate, useIsomorphicLayoutEffect, subscribeCallback, IS_SERVER, rAF, IS_REACT_LEGACY, mergeObjects } from 'swr/_internal';\nexport { mutate, preload, useSWRConfig } from 'swr/_internal';\n\nconst unstable_serialize = (key)=>serialize(key)[0];\n\n/// \nconst use = ReactExports.use || ((promise)=>{\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then((v)=>{\n promise.status = 'fulfilled';\n promise.value = v;\n }, (e)=>{\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n});\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache, compare, suspense, fallbackData, revalidateOnMount, revalidateIfStale, refreshInterval, refreshWhenHidden, refreshWhenOffline, keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR internal state,\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n // All of them are derived from `_key`.\n const [key, fnArg] = serialize(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = useRef(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = useRef(false);\n // Refs to keep the key and config.\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = createCacheHelper(cache, key);\n const stateDependencies = useRef({}).current;\n const fallback = isUndefined(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(prev[t], current[t])) {\n if (!isUndefined(prev[t])) {\n return false;\n }\n if (!compare(returnedData, current[t])) {\n return false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n return false;\n }\n }\n }\n return true;\n };\n const getSnapshot = useMemo(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!isUndefined(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = mergeObjects(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n const cachedData = getCache();\n const initialData = getInitialCache();\n const clientSnapshot = getSelectedCache(cachedData);\n const serverSnapshot = cachedData === initialData ? clientSnapshot : getSelectedCache(initialData);\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = clientSnapshot;\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n const compareResult = isEqual(newSnapshot, memorizedSnapshot);\n if (compareResult) {\n // Mentally, we should always return the `memorizedSnapshot` here\n // as there's no change between the new and old snapshots.\n // However, since the `isEqual` function only compares selected fields,\n // the values of the unselected fields might be changed. That's\n // simply because we didn't track them.\n // To support the case in https://github.com/vercel/swr/pull/2576,\n // we need to update these fields in the `memorizedSnapshot` too\n // with direct mutations to ensure the snapshot is always up-to-date\n // even for the unselected fields, but only trigger re-renders when\n // the selected fields are changed.\n memorizedSnapshot.data = newSnapshot.data;\n memorizedSnapshot.isLoading = newSnapshot.isLoading;\n memorizedSnapshot.isValidating = newSnapshot.isValidating;\n memorizedSnapshot.error = newSnapshot.error;\n return memorizedSnapshot;\n } else {\n memorizedSnapshot = newSnapshot;\n return newSnapshot;\n }\n },\n ()=>serverSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = useSyncExternalStore(useCallback((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = isUndefined(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = useRef(data);\n const returnedData = keepPreviousData ? isUndefined(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !isUndefined(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return isUndefined(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return isUndefined(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = isUndefined(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = isUndefined(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = useCallback(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if (isUndefined(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && isUndefined(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n getTimestamp()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!isUndefined(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || isFunction(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (!getConfig().revalidateOnFocus || !getConfig().revalidateOnReconnect || isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, (_opts)=>{\n const revalidators = EVENT_REVALIDATORS[key];\n if (revalidators && revalidators[0]) {\n revalidators[0](revalidateEvents.ERROR_REVALIDATE_EVENT, _opts);\n }\n }, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n const boundMutate = useCallback(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return internalMutate(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n useIsomorphicLayoutEffect(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!isUndefined(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n useIsomorphicLayoutEffect(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type, opts = {})=>{\n if (type == revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n } else if (type == revalidateEvents.ERROR_REVALIDATE_EVENT) {\n return revalidate(opts);\n }\n return;\n };\n const unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation\n if (shouldDoInitialRevalidation) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n useIsomorphicLayoutEffect(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = isFunction(refreshInterval) ? refreshInterval(getCache().data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n useDebugValue(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && isUndefined(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!IS_REACT_LEGACY && IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n const req = PRELOAD[key];\n if (!isUndefined(req)) {\n const promise = boundMutate(req);\n use(promise);\n }\n if (isUndefined(error)) {\n const promise = revalidate(WITH_DEDUPE);\n if (!isUndefined(returnedData)) {\n promise.status = 'fulfilled';\n promise.value = true;\n }\n use(promise);\n } else {\n throw error;\n }\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nconst SWRConfig = OBJECT.defineProperty(SWRConfig$1, 'defaultValue', {\n value: defaultConfig\n});\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error, isLoading } = useSWR('/api/user', fetcher)\n * if (error) return
failed to load
\n * if (isLoading) return
loading...
\n * return
hello {data.name}!
\n * }\n * ```\n */ const useSWR = withArgs(useSWRHandler);\n\nexport { SWRConfig, useSWR as default, unstable_serialize };\n","/**\n * @param {string|RegExp} input The route pattern\n * @param {boolean} [loose] Allow open-ended matching. Ignored with `RegExp` input.\n */\nexport function parse(input, loose) {\n\tif (input instanceof RegExp) return { keys:false, pattern:input };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = input.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push(c);\n\t\t\tpattern += tmp[1] === '?' ? '(?:/(.*))?' : '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? key : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","import * as React from 'react';\nexport { Fragment, cloneElement, createContext, createElement, forwardRef, isValidElement, useContext, useRef, useState } from 'react';\nexport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\n\n// React.useInsertionEffect is not available in React <18\n// This hack fixes a transpilation issue on some apps\nconst useBuiltinInsertionEffect = React[\"useInsertion\" + \"Effect\"];\n\n// Copied from:\n// https://github.com/facebook/react/blob/main/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\n\n// Copied from:\n// https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.ts\n// \"React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\"\nconst useIsomorphicLayoutEffect = canUseDOM\n ? React.useLayoutEffect\n : React.useEffect;\n\n// useInsertionEffect is already a noop on the server.\n// See: https://github.com/facebook/react/blob/main/packages/react-server/src/ReactFizzHooks.js\nconst useInsertionEffect =\n useBuiltinInsertionEffect || useIsomorphicLayoutEffect;\n\n// Userland polyfill while we wait for the forthcoming\n// https://github.com/reactjs/rfcs/blob/useevent/text/0000-useevent.md\n// Note: \"A high-fidelity polyfill for useEvent is not possible because\n// there is no lifecycle or Hook in React that we can use to switch\n// .current at the right timing.\"\n// So we will have to make do with this \"close enough\" approach for now.\nconst useEvent = (fn) => {\n const ref = React.useRef([fn, (...args) => ref[0](...args)]).current;\n // Per Dan Abramov: useInsertionEffect executes marginally closer to the\n // correct timing for ref synchronization than useLayoutEffect on React 18.\n // See: https://github.com/facebook/react/pull/25881#issuecomment-1356244360\n useInsertionEffect(() => {\n ref[0] = fn;\n });\n return ref[1];\n};\n\nexport { useEvent, useInsertionEffect, useIsomorphicLayoutEffect };\n","import { useSyncExternalStore } from './react-deps.js';\n\n/**\n * History API docs @see https://developer.mozilla.org/en-US/docs/Web/API/History\n */\nconst eventPopstate = \"popstate\";\nconst eventPushState = \"pushState\";\nconst eventReplaceState = \"replaceState\";\nconst eventHashchange = \"hashchange\";\nconst events = [\n eventPopstate,\n eventPushState,\n eventReplaceState,\n eventHashchange,\n];\n\nconst subscribeToLocationUpdates = (callback) => {\n for (const event of events) {\n addEventListener(event, callback);\n }\n return () => {\n for (const event of events) {\n removeEventListener(event, callback);\n }\n };\n};\n\nconst useLocationProperty = (fn, ssrFn) =>\n useSyncExternalStore(subscribeToLocationUpdates, fn, ssrFn);\n\nconst currentSearch = () => location.search;\n\nconst useSearch = ({ ssrSearch = \"\" } = {}) =>\n useLocationProperty(currentSearch, () => ssrSearch);\n\nconst currentPathname = () => location.pathname;\n\nconst usePathname = ({ ssrPath } = {}) =>\n useLocationProperty(\n currentPathname,\n ssrPath ? () => ssrPath : currentPathname\n );\n\nconst currentHistoryState = () => history.state;\nconst useHistoryState = () =>\n useLocationProperty(currentHistoryState, () => null);\n\nconst navigate = (to, { replace = false, state = null } = {}) =>\n history[replace ? eventReplaceState : eventPushState](state, \"\", to);\n\n// the 2nd argument of the `useBrowserLocation` return value is a function\n// that allows to perform a navigation.\nconst useBrowserLocation = (opts = {}) => [usePathname(opts), navigate];\n\nconst patchKey = Symbol.for(\"wouter_v3\");\n\n// While History API does have `popstate` event, the only\n// proper way to listen to changes via `push/replaceState`\n// is to monkey-patch these methods.\n//\n// See https://stackoverflow.com/a/4585031\nif (typeof history !== \"undefined\" && typeof window[patchKey] === \"undefined\") {\n for (const type of [eventPushState, eventReplaceState]) {\n const original = history[type];\n // TODO: we should be using unstable_batchedUpdates to avoid multiple re-renders,\n // however that will require an additional peer dependency on react-dom.\n // See: https://github.com/reactwg/react-18/discussions/86#discussioncomment-1567149\n history[type] = function () {\n const result = original.apply(this, arguments);\n const event = new Event(type);\n event.arguments = arguments;\n\n dispatchEvent(event);\n return result;\n };\n }\n\n // patch history object only once\n // See: https://github.com/molefrog/wouter/issues/167\n Object.defineProperty(window, patchKey, { value: true });\n}\n\nexport { navigate, useBrowserLocation, useHistoryState, useLocationProperty, usePathname, useSearch };\n","import { parse } from 'regexparam';\nimport { useBrowserLocation, useSearch as useSearch$1 } from './use-browser-location.js';\nimport { createContext, forwardRef, useEvent, isValidElement, cloneElement, createElement, useContext, useRef, useIsomorphicLayoutEffect, Fragment } from './react-deps.js';\n\n/*\n * Transforms `path` into its relative `base` version\n * If base isn't part of the path provided returns absolute path e.g. `~/app`\n */\nconst _relativePath = (base, path) =>\n !path.toLowerCase().indexOf(base.toLowerCase())\n ? path.slice(base.length) || \"/\"\n : \"~\" + path;\n\n/**\n * When basepath is `undefined` or '/' it is ignored (we assume it's empty string)\n */\nconst baseDefaults = (base = \"\") => (base === \"/\" ? \"\" : base);\n\nconst absolutePath = (to, base) =>\n to[0] === \"~\" ? to.slice(1) : baseDefaults(base) + to;\n\nconst relativePath = (base = \"\", path) =>\n _relativePath(unescape(baseDefaults(base)), unescape(path));\n\n/*\n * Removes leading question mark\n */\nconst stripQm = (str) => (str[0] === \"?\" ? str.slice(1) : str);\n\n/*\n * decodes escape sequences such as %20\n */\nconst unescape = (str) => {\n try {\n return decodeURI(str);\n } catch (_e) {\n // fail-safe mode: if string can't be decoded do nothing\n return str;\n }\n};\n\nconst sanitizeSearch = (search) => unescape(stripQm(search));\n\n/*\n * Router and router context. Router is a lightweight object that represents the current\n * routing options: how location is managed, base path etc.\n *\n * There is a default router present for most of the use cases, however it can be overridden\n * via the component.\n */\n\nconst defaultRouter = {\n hook: useBrowserLocation,\n searchHook: useSearch$1,\n parser: parse,\n base: \"\",\n // this option is used to override the current location during SSR\n ssrPath: undefined,\n ssrSearch: undefined,\n // customizes how `href` props are transformed for \n hrefs: (x) => x,\n};\n\nconst RouterCtx = createContext(defaultRouter);\n\n// gets the closest parent router from the context\nconst useRouter = () => useContext(RouterCtx);\n\n/**\n * Parameters context. Used by `useParams()` to get the\n * matched params from the innermost `Route` component.\n */\n\nconst Params0 = {},\n ParamsCtx = createContext(Params0);\n\nconst useParams = () => useContext(ParamsCtx);\n\n/*\n * Part 1, Hooks API: useRoute and useLocation\n */\n\n// Internal version of useLocation to avoid redundant useRouter calls\n\nconst useLocationFromRouter = (router) => {\n const [location, navigate] = router.hook(router);\n\n // the function reference should stay the same between re-renders, so that\n // it can be passed down as an element prop without any performance concerns.\n // (This is achieved via `useEvent`.)\n return [\n relativePath(router.base, location),\n useEvent((to, navOpts) => navigate(absolutePath(to, router.base), navOpts)),\n ];\n};\n\nconst useLocation = () => useLocationFromRouter(useRouter());\n\nconst useSearch = () => {\n const router = useRouter();\n return sanitizeSearch(router.searchHook(router));\n};\n\nconst matchRoute = (parser, route, path, loose) => {\n // if the input is a regexp, skip parsing\n const { pattern, keys } =\n route instanceof RegExp\n ? { keys: false, pattern: route }\n : parser(route || \"*\", loose);\n\n // array destructuring loses keys, so this is done in two steps\n const result = pattern.exec(path) || [];\n\n // when parser is in \"loose\" mode, `$base` is equal to the\n // first part of the route that matches the pattern\n // (e.g. for pattern `/a/:b` and path `/a/1/2/3` the `$base` is `a/1`)\n // we use this for route nesting\n const [$base, ...matches] = result;\n\n return $base !== undefined\n ? [\n true,\n\n (() => {\n // for regex paths, `keys` will always be false\n\n // an object with parameters matched, e.g. { foo: \"bar\" } for \"/:foo\"\n // we \"zip\" two arrays here to construct the object\n // [\"foo\"], [\"bar\"] → { foo: \"bar\" }\n const groups =\n keys !== false\n ? Object.fromEntries(keys.map((key, i) => [key, matches[i]]))\n : result.groups;\n\n // convert the array to an instance of object\n // this makes it easier to integrate with the existing param implementation\n let obj = { ...matches };\n\n // merge named capture groups with matches array\n groups && Object.assign(obj, groups);\n\n return obj;\n })(),\n\n // the third value if only present when parser is in \"loose\" mode,\n // so that we can extract the base path for nested routes\n ...(loose ? [$base] : []),\n ]\n : [false, null];\n};\n\nconst useRoute = (pattern) =>\n matchRoute(useRouter().parser, pattern, useLocation()[0]);\n\n/*\n * Part 2, Low Carb Router API: Router, Route, Link, Switch\n */\n\nconst Router = ({ children, ...props }) => {\n // the router we will inherit from - it is the closest router in the tree,\n // unless the custom `hook` is provided (in that case it's the default one)\n const parent_ = useRouter();\n const parent = props.hook ? defaultRouter : parent_;\n\n // holds to the context value: the router object\n let value = parent;\n\n // when `ssrPath` contains a `?` character, we can extract the search from it\n const [path, search] = props.ssrPath?.split(\"?\") ?? [];\n if (search) (props.ssrSearch = search), (props.ssrPath = path);\n\n // hooks can define their own `href` formatter (e.g. for hash location)\n props.hrefs = props.hrefs ?? props.hook?.hrefs;\n\n // what is happening below: to avoid unnecessary rerenders in child components,\n // we ensure that the router object reference is stable, unless there are any\n // changes that require reload (e.g. `base` prop changes -> all components that\n // get the router from the context should rerender, even if the component is memoized).\n // the expected behaviour is:\n //\n // 1) when the resulted router is no different from the parent, use parent\n // 2) if the custom `hook` prop is provided, we always inherit from the\n // default router instead. this resets all previously overridden options.\n // 3) when the router is customized here, it should stay stable between renders\n let ref = useRef({}),\n prev = ref.current,\n next = prev;\n\n for (let k in parent) {\n const option =\n k === \"base\"\n ? /* base is special case, it is appended to the parent's base */\n parent[k] + (props[k] || \"\")\n : props[k] || parent[k];\n\n if (prev === next && option !== next[k]) {\n ref.current = next = { ...next };\n }\n\n next[k] = option;\n\n // the new router is no different from the parent, use parent\n if (option !== parent[k]) value = next;\n }\n\n return createElement(RouterCtx.Provider, { value, children });\n};\n\nconst h_route = ({ children, component }, params) => {\n // React-Router style `component` prop\n if (component) return createElement(component, { params });\n\n // support render prop or plain children\n return typeof children === \"function\" ? children(params) : children;\n};\n\n// a hook to cache the params object between renders (if they are shallow equal)\nconst useCachedParams = (value) => {\n let prev = useRef(Params0),\n curr = prev.current;\n\n for (const k in value) if (value[k] !== curr[k]) curr = value;\n if (Object.keys(value).length === 0) curr = value;\n return (prev.current = curr);\n};\n\nconst Route = ({ path, nest, match, ...renderProps }) => {\n const router = useRouter();\n const [location] = useLocationFromRouter(router);\n\n const [matches, routeParams, base] =\n // `match` is a special prop to give up control to the parent,\n // it is used by the `Switch` to avoid double matching\n match ?? matchRoute(router.parser, path, location, nest);\n\n // when `routeParams` is `null` (there was no match), the argument\n // below becomes {...null} = {}, see the Object Spread specs\n // https://tc39.es/proposal-object-rest-spread/#AbstractOperations-CopyDataProperties\n const params = useCachedParams({ ...useParams(), ...routeParams });\n\n if (!matches) return null;\n\n const children = base\n ? createElement(Router, { base }, h_route(renderProps, params))\n : h_route(renderProps, params);\n\n return createElement(ParamsCtx.Provider, { value: params, children });\n};\n\nconst Link = forwardRef((props, ref) => {\n const router = useRouter();\n const [currentPath, navigate] = useLocationFromRouter(router);\n\n const {\n to = \"\",\n href: targetPath = to,\n onClick: _onClick,\n asChild,\n children,\n className: cls,\n /* eslint-disable no-unused-vars */\n replace /* ignore nav props */,\n state /* ignore nav props */,\n /* eslint-enable no-unused-vars */\n\n ...restProps\n } = props;\n\n const onClick = useEvent((event) => {\n // ignores the navigation when clicked using right mouse button or\n // by holding a special modifier key: ctrl, command, win, alt, shift\n if (\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n\n _onClick?.(event);\n if (!event.defaultPrevented) {\n event.preventDefault();\n navigate(targetPath, props);\n }\n });\n\n // handle nested routers and absolute paths\n const href = router.hrefs(\n targetPath[0] === \"~\" ? targetPath.slice(1) : router.base + targetPath,\n router // pass router as a second argument for convinience\n );\n\n return asChild && isValidElement(children)\n ? cloneElement(children, { onClick, href })\n : createElement(\"a\", {\n ...restProps,\n onClick,\n href,\n // `className` can be a function to apply the class if this link is active\n className: cls?.call ? cls(currentPath === targetPath) : cls,\n children,\n ref,\n });\n});\n\nconst flattenChildren = (children) =>\n Array.isArray(children)\n ? children.flatMap((c) =>\n flattenChildren(c && c.type === Fragment ? c.props.children : c)\n )\n : [children];\n\nconst Switch = ({ children, location }) => {\n const router = useRouter();\n const [originalLocation] = useLocationFromRouter(router);\n\n for (const element of flattenChildren(children)) {\n let match = 0;\n\n if (\n isValidElement(element) &&\n // we don't require an element to be of type Route,\n // but we do require it to contain a truthy `path` prop.\n // this allows to use different components that wrap Route\n // inside of a switch, for example .\n (match = matchRoute(\n router.parser,\n element.props.path,\n location || originalLocation,\n element.props.nest\n ))[0]\n )\n return cloneElement(element, { match });\n }\n\n return null;\n};\n\nconst Redirect = (props) => {\n const { to, href = to } = props;\n const [, navigate] = useLocation();\n const redirect = useEvent(() => navigate(to || href, props));\n\n // redirect is guaranteed to be stable since it is returned from useEvent\n useIsomorphicLayoutEffect(() => {\n redirect();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport { Link, Redirect, Route, Router, Switch, matchRoute, useLocation, useParams, useRoute, useRouter, useSearch };\n","import {\n b as r\n} from \"../chunk-CMPWNUBJ.js\";\nimport \"../chunk-WYS6J5ZY.js\";\n\n// src/web/internal/layout.tsx\nimport { Suspense as c, useDeferredValue as p } from \"react\";\nimport { Layout as u, useNotifications as d } from \"@olinfo/react-components\";\nimport { SWRConfig as f } from \"swr\";\nimport { Router as s, Switch as m, useLocation as l } from \"wouter\";\nimport \"../index-TPYH25Z2.css\";\nimport { jsx as e } from \"react/jsx-runtime\";\nfunction P({ children: o }) {\n let [t, a] = l(), i = p(t);\n return /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(y, { children: /* @__PURE__ */ e(c, { fallback: /* @__PURE__ */ e(r, {}), children: /* @__PURE__ */ e(s, { hook: () => [i, a], children: /* @__PURE__ */ e(m, { children: o }) }) }) }) });\n}\nfunction y({ children: o }) {\n let { notifyError: t } = d();\n return /* @__PURE__ */ e(f, { value: { onError: t }, children: o });\n}\n\n// src/web/internal/page.tsx\nimport { useEffect as L } from \"react\";\nimport { jsx as n } from \"react/jsx-runtime\";\nasync function E(o) {\n let { default: t, metadata: a } = await o;\n return {\n default: () => /* @__PURE__ */ n(g, { metadata: a, children: /* @__PURE__ */ n(t, {}) })\n };\n}\nfunction g({ metadata: o, children: t }) {\n return L(() => {\n let a = o?.title;\n a && (document.title = a);\n }, [o]), t;\n}\nexport {\n P as BaseLayout,\n E as page\n};\n//# sourceMappingURL=index.js.map"],"file":"assets/_virtual_quizms-routes-e5ffd91c.js"} \ No newline at end of file diff --git a/assets/a/ae952ae7-immagine1_fliprow2.svg b/assets/a/ae952ae7-immagine1_fliprow2.svg new file mode 100644 index 0000000..c329aae --- /dev/null +++ b/assets/a/ae952ae7-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/a/aff00399-immagine1.svg b/assets/a/aff00399-immagine1.svg new file mode 100644 index 0000000..bbe0ab5 --- /dev/null +++ b/assets/a/aff00399-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b0645c23-array2.svg b/assets/b/b0645c23-array2.svg new file mode 100644 index 0000000..4e94952 --- /dev/null +++ b/assets/b/b0645c23-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b111bffa-immagine1_fliprow2.svg b/assets/b/b111bffa-immagine1_fliprow2.svg new file mode 100644 index 0000000..b6066fb --- /dev/null +++ b/assets/b/b111bffa-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b1d53116-griglie2.svg b/assets/b/b1d53116-griglie2.svg new file mode 100644 index 0000000..ce9fed1 --- /dev/null +++ b/assets/b/b1d53116-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b4a7a793-array3.svg b/assets/b/b4a7a793-array3.svg new file mode 100644 index 0000000..582da60 --- /dev/null +++ b/assets/b/b4a7a793-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b55026b0-immagine1.svg b/assets/b/b55026b0-immagine1.svg new file mode 100644 index 0000000..0ce740d --- /dev/null +++ b/assets/b/b55026b0-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b5717a1d-immagine1_fliprow2.svg b/assets/b/b5717a1d-immagine1_fliprow2.svg new file mode 100644 index 0000000..8f6f22b --- /dev/null +++ b/assets/b/b5717a1d-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b5a73406-esempio.svg b/assets/b/b5a73406-esempio.svg new file mode 100644 index 0000000..98105c4 --- /dev/null +++ b/assets/b/b5a73406-esempio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b5b0bf32-griglie2.svg b/assets/b/b5b0bf32-griglie2.svg new file mode 100644 index 0000000..5a669a4 --- /dev/null +++ b/assets/b/b5b0bf32-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b6877e06-array1.svg b/assets/b/b6877e06-array1.svg new file mode 100644 index 0000000..a687602 --- /dev/null +++ b/assets/b/b6877e06-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b7a22da9-griglia1.svg b/assets/b/b7a22da9-griglia1.svg new file mode 100644 index 0000000..476f543 --- /dev/null +++ b/assets/b/b7a22da9-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b7d6d3cc-immagine1_fliprow2.svg b/assets/b/b7d6d3cc-immagine1_fliprow2.svg new file mode 100644 index 0000000..ac9250e --- /dev/null +++ b/assets/b/b7d6d3cc-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b7f95f49-immagine1.svg b/assets/b/b7f95f49-immagine1.svg new file mode 100644 index 0000000..1044e4d --- /dev/null +++ b/assets/b/b7f95f49-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b874a9de-griglia1.svg b/assets/b/b874a9de-griglia1.svg new file mode 100644 index 0000000..0e48d92 --- /dev/null +++ b/assets/b/b874a9de-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/b9cda95b-array3.svg b/assets/b/b9cda95b-array3.svg new file mode 100644 index 0000000..6058877 --- /dev/null +++ b/assets/b/b9cda95b-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/ba6510d1-array2.svg b/assets/b/ba6510d1-array2.svg new file mode 100644 index 0000000..bbd4855 --- /dev/null +++ b/assets/b/ba6510d1-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/bb177004-9-2.svg b/assets/b/bb177004-9-2.svg new file mode 100644 index 0000000..b7a4e99 --- /dev/null +++ b/assets/b/bb177004-9-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/bbd4117a-immagine1_fliprow2.svg b/assets/b/bbd4117a-immagine1_fliprow2.svg new file mode 100644 index 0000000..e6b25c7 --- /dev/null +++ b/assets/b/bbd4117a-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/b/bbd70fb3-segments1.svg b/assets/b/bbd70fb3-segments1.svg new file mode 100644 index 0000000..20e584b --- /dev/null +++ b/assets/b/bbd70fb3-segments1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c13ac412-5-2.svg b/assets/c/c13ac412-5-2.svg new file mode 100644 index 0000000..8590b1a --- /dev/null +++ b/assets/c/c13ac412-5-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c1c8bce6-array2.svg b/assets/c/c1c8bce6-array2.svg new file mode 100644 index 0000000..9ceb641 --- /dev/null +++ b/assets/c/c1c8bce6-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c2d1f770-array1.svg b/assets/c/c2d1f770-array1.svg new file mode 100644 index 0000000..bffbe38 --- /dev/null +++ b/assets/c/c2d1f770-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c384b855-array2.svg b/assets/c/c384b855-array2.svg new file mode 100644 index 0000000..47129cb --- /dev/null +++ b/assets/c/c384b855-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c457febb-array1.svg b/assets/c/c457febb-array1.svg new file mode 100644 index 0000000..2d52b77 --- /dev/null +++ b/assets/c/c457febb-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c6360aca-griglie2.svg b/assets/c/c6360aca-griglie2.svg new file mode 100644 index 0000000..c5f6973 --- /dev/null +++ b/assets/c/c6360aca-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c6c5917e-segments1.svg b/assets/c/c6c5917e-segments1.svg new file mode 100644 index 0000000..80aed99 --- /dev/null +++ b/assets/c/c6c5917e-segments1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c76b92b4-number_line.svg b/assets/c/c76b92b4-number_line.svg new file mode 100644 index 0000000..262e5c9 --- /dev/null +++ b/assets/c/c76b92b4-number_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c8cfc68c-griglia1.svg b/assets/c/c8cfc68c-griglia1.svg new file mode 100644 index 0000000..43925ce --- /dev/null +++ b/assets/c/c8cfc68c-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c8fee300-3-1.svg b/assets/c/c8fee300-3-1.svg new file mode 100644 index 0000000..073f451 --- /dev/null +++ b/assets/c/c8fee300-3-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c9c643b0-6-1.svg b/assets/c/c9c643b0-6-1.svg new file mode 100644 index 0000000..62f959a --- /dev/null +++ b/assets/c/c9c643b0-6-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/c9e77903-9-1.svg b/assets/c/c9e77903-9-1.svg new file mode 100644 index 0000000..addf03e --- /dev/null +++ b/assets/c/c9e77903-9-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/cafcca89-immagine1.svg b/assets/c/cafcca89-immagine1.svg new file mode 100644 index 0000000..852ea4c --- /dev/null +++ b/assets/c/cafcca89-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/cc18d0f8-array3.svg b/assets/c/cc18d0f8-array3.svg new file mode 100644 index 0000000..068e73b --- /dev/null +++ b/assets/c/cc18d0f8-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/c/cd790265-griglia1.svg b/assets/c/cd790265-griglia1.svg new file mode 100644 index 0000000..88a16be --- /dev/null +++ b/assets/c/cd790265-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/d38b1e6b-7-2.svg b/assets/d/d38b1e6b-7-2.svg new file mode 100644 index 0000000..ffa4fca --- /dev/null +++ b/assets/d/d38b1e6b-7-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/d38c6296-segments2.svg b/assets/d/d38c6296-segments2.svg new file mode 100644 index 0000000..59d33d3 --- /dev/null +++ b/assets/d/d38c6296-segments2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/d4c4dc61-griglia1.svg b/assets/d/d4c4dc61-griglia1.svg new file mode 100644 index 0000000..fcb34fc --- /dev/null +++ b/assets/d/d4c4dc61-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/d5f058a6-griglie2.svg b/assets/d/d5f058a6-griglie2.svg new file mode 100644 index 0000000..c1d84db --- /dev/null +++ b/assets/d/d5f058a6-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/d66f8181-array2.svg b/assets/d/d66f8181-array2.svg new file mode 100644 index 0000000..9476416 --- /dev/null +++ b/assets/d/d66f8181-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/d6911b99-array2.svg b/assets/d/d6911b99-array2.svg new file mode 100644 index 0000000..0b2d01e --- /dev/null +++ b/assets/d/d6911b99-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/d7df67d3-2-1.svg b/assets/d/d7df67d3-2-1.svg new file mode 100644 index 0000000..f4bec86 --- /dev/null +++ b/assets/d/d7df67d3-2-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/d8444052-griglia1.svg b/assets/d/d8444052-griglia1.svg new file mode 100644 index 0000000..870077b --- /dev/null +++ b/assets/d/d8444052-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/da65ca8d-griglie2.svg b/assets/d/da65ca8d-griglie2.svg new file mode 100644 index 0000000..fb1b54a --- /dev/null +++ b/assets/d/da65ca8d-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/dbd04e43-array1.svg b/assets/d/dbd04e43-array1.svg new file mode 100644 index 0000000..66efefb --- /dev/null +++ b/assets/d/dbd04e43-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/dc30991c-array1.svg b/assets/d/dc30991c-array1.svg new file mode 100644 index 0000000..ca03935 --- /dev/null +++ b/assets/d/dc30991c-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/dccef4ee-array1.svg b/assets/d/dccef4ee-array1.svg new file mode 100644 index 0000000..2383980 --- /dev/null +++ b/assets/d/dccef4ee-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/ddabc911-immagine1.svg b/assets/d/ddabc911-immagine1.svg new file mode 100644 index 0000000..9535311 --- /dev/null +++ b/assets/d/ddabc911-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/d/ddc3f94b-10-1.svg b/assets/d/ddc3f94b-10-1.svg new file mode 100644 index 0000000..e388625 --- /dev/null +++ b/assets/d/ddc3f94b-10-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e0619b41-griglie2.svg b/assets/e/e0619b41-griglie2.svg new file mode 100644 index 0000000..a75dc15 --- /dev/null +++ b/assets/e/e0619b41-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e0944d28-example2.svg b/assets/e/e0944d28-example2.svg new file mode 100644 index 0000000..6687824 --- /dev/null +++ b/assets/e/e0944d28-example2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e1a3a39e-array2.svg b/assets/e/e1a3a39e-array2.svg new file mode 100644 index 0000000..34bc864 --- /dev/null +++ b/assets/e/e1a3a39e-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e2519c08-4-1.svg b/assets/e/e2519c08-4-1.svg new file mode 100644 index 0000000..98d521e --- /dev/null +++ b/assets/e/e2519c08-4-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e3eaf256-array1.svg b/assets/e/e3eaf256-array1.svg new file mode 100644 index 0000000..a2025f1 --- /dev/null +++ b/assets/e/e3eaf256-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e73326f6-immagine1_fliprow2.svg b/assets/e/e73326f6-immagine1_fliprow2.svg new file mode 100644 index 0000000..0e1f13a --- /dev/null +++ b/assets/e/e73326f6-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e83f2913-immagine1_fliprow2.svg b/assets/e/e83f2913-immagine1_fliprow2.svg new file mode 100644 index 0000000..653d7a4 --- /dev/null +++ b/assets/e/e83f2913-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e88bf9c7-array1.svg b/assets/e/e88bf9c7-array1.svg new file mode 100644 index 0000000..6afd8f3 --- /dev/null +++ b/assets/e/e88bf9c7-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/e8b658ec-array3.svg b/assets/e/e8b658ec-array3.svg new file mode 100644 index 0000000..578e259 --- /dev/null +++ b/assets/e/e8b658ec-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/ea79d06e-griglia1.svg b/assets/e/ea79d06e-griglia1.svg new file mode 100644 index 0000000..6992096 --- /dev/null +++ b/assets/e/ea79d06e-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/eaf88ce3-array1.svg b/assets/e/eaf88ce3-array1.svg new file mode 100644 index 0000000..65f7703 --- /dev/null +++ b/assets/e/eaf88ce3-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/eb23ab03-array2.svg b/assets/e/eb23ab03-array2.svg new file mode 100644 index 0000000..79052fd --- /dev/null +++ b/assets/e/eb23ab03-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/ed92e79b-immagine1.svg b/assets/e/ed92e79b-immagine1.svg new file mode 100644 index 0000000..fcdfc4c --- /dev/null +++ b/assets/e/ed92e79b-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/ed96f1ce-immagine1_fliprow2.svg b/assets/e/ed96f1ce-immagine1_fliprow2.svg new file mode 100644 index 0000000..60d6a59 --- /dev/null +++ b/assets/e/ed96f1ce-immagine1_fliprow2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/ee2c5f31-griglia1.svg b/assets/e/ee2c5f31-griglia1.svg new file mode 100644 index 0000000..9af41b5 --- /dev/null +++ b/assets/e/ee2c5f31-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/eea933cb-array1.svg b/assets/e/eea933cb-array1.svg new file mode 100644 index 0000000..6930d64 --- /dev/null +++ b/assets/e/eea933cb-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/e/eeccf3ba-array3.svg b/assets/e/eeccf3ba-array3.svg new file mode 100644 index 0000000..aefddf4 --- /dev/null +++ b/assets/e/eeccf3ba-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f0e5f97b-immagine1.svg b/assets/f/f0e5f97b-immagine1.svg new file mode 100644 index 0000000..69b5e9f --- /dev/null +++ b/assets/f/f0e5f97b-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f1822c7d-array3.svg b/assets/f/f1822c7d-array3.svg new file mode 100644 index 0000000..ed420ea --- /dev/null +++ b/assets/f/f1822c7d-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f1c71828-array1.svg b/assets/f/f1c71828-array1.svg new file mode 100644 index 0000000..016e5e7 --- /dev/null +++ b/assets/f/f1c71828-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f3aa098e-array2.svg b/assets/f/f3aa098e-array2.svg new file mode 100644 index 0000000..e411a3c --- /dev/null +++ b/assets/f/f3aa098e-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f4349c5e-segments1.svg b/assets/f/f4349c5e-segments1.svg new file mode 100644 index 0000000..7c6af59 --- /dev/null +++ b/assets/f/f4349c5e-segments1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f4e38851-griglie2.svg b/assets/f/f4e38851-griglie2.svg new file mode 100644 index 0000000..051e063 --- /dev/null +++ b/assets/f/f4e38851-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f59392df-array1.svg b/assets/f/f59392df-array1.svg new file mode 100644 index 0000000..4579234 --- /dev/null +++ b/assets/f/f59392df-array1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f59f9a8d-griglie2.svg b/assets/f/f59f9a8d-griglie2.svg new file mode 100644 index 0000000..2c07d51 --- /dev/null +++ b/assets/f/f59f9a8d-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f6ef21a0-griglia1.svg b/assets/f/f6ef21a0-griglia1.svg new file mode 100644 index 0000000..987981f --- /dev/null +++ b/assets/f/f6ef21a0-griglia1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f7136347-immagine1.svg b/assets/f/f7136347-immagine1.svg new file mode 100644 index 0000000..867ffea --- /dev/null +++ b/assets/f/f7136347-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f7a7ad9e-array2.svg b/assets/f/f7a7ad9e-array2.svg new file mode 100644 index 0000000..d37f5ff --- /dev/null +++ b/assets/f/f7a7ad9e-array2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/f943ee20-array3.svg b/assets/f/f943ee20-array3.svg new file mode 100644 index 0000000..80c5fcc --- /dev/null +++ b/assets/f/f943ee20-array3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/ff26b269-immagine1.svg b/assets/f/ff26b269-immagine1.svg new file mode 100644 index 0000000..de87dda --- /dev/null +++ b/assets/f/ff26b269-immagine1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/f/ff910222-griglie2.svg b/assets/f/ff910222-griglie2.svg new file mode 100644 index 0000000..bc16dd0 --- /dev/null +++ b/assets/f/ff910222-griglie2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/g/732b2eb0-score.js b/assets/g/dcc0a6cc-score.js similarity index 96% rename from assets/g/732b2eb0-score.js rename to assets/g/dcc0a6cc-score.js index 175f38e..e490ce7 100644 --- a/assets/g/732b2eb0-score.js +++ b/assets/g/dcc0a6cc-score.js @@ -1,3 +1,3 @@ /*! For licenses information, see LICENSES.txt */ -import{t as E,j as x,c as L}from"../_virtual_quizms-routes-09086dad.js";import{t as i}from"../y/339f9ca0-toString.js";function M(u,e,r,a){for(var n=-1,t=u==null?0:u.length;++nDate.now()}function O0({edition:u}){const e=`${window.location.pathname}${R0(u)}/`,r=JSON.parse(localStorage.getItem("quizms")??"{}")[e];if(!r)return;if(r.finishedAt&&A0(r.finishedAt))return x.jsx("div",{className:"rounded-lg px-2 text-sm bg-warning text-warning-content",children:"in corso..."});const a=r.score,n=r.maxScore;if(!a||!n)return;const U=["bg-red-400 text-error-content","bg-orange-400 text-warning-content","bg-yellow-400 text-warning-content","bg-lime-400 text-warning-content","bg-green-400 text-success-content"][Math.floor(a/n*4)];return x.jsxs("div",{className:L("rounded-lg px-2 text-sm",U),children:[Math.round(a)," ",n&&x.jsxs(x.Fragment,{children:["/ ",n]})]})}export{O0 as S,R0 as k}; -//# sourceMappingURL=732b2eb0-score.js.map +import{t as E,j as x,c as L}from"../_virtual_quizms-routes-e5ffd91c.js";import{t as i}from"../y/cd55b450-toString.js";function M(u,e,r,a){for(var n=-1,t=u==null?0:u.length;++nDate.now()}function O0({edition:u}){const e=`${window.location.pathname}${R0(u)}/`,r=JSON.parse(localStorage.getItem("quizms")??"{}")[e];if(!r)return;if(r.finishedAt&&A0(r.finishedAt))return x.jsx("div",{className:"rounded-lg px-2 text-sm bg-warning text-warning-content",children:"in corso..."});const a=r.score,n=r.maxScore;if(!a||!n)return;const U=["bg-red-400 text-error-content","bg-orange-400 text-warning-content","bg-yellow-400 text-warning-content","bg-lime-400 text-warning-content","bg-green-400 text-success-content"][Math.floor(a/n*4)];return x.jsxs("div",{className:L("rounded-lg px-2 text-sm",U),children:[Math.round(a)," ",n&&x.jsxs(x.Fragment,{children:["/ ",n]})]})}export{O0 as S,R0 as k}; +//# sourceMappingURL=dcc0a6cc-score.js.map diff --git a/assets/g/732b2eb0-score.js.map b/assets/g/dcc0a6cc-score.js.map similarity index 99% rename from assets/g/732b2eb0-score.js.map rename to assets/g/dcc0a6cc-score.js.map index e0105d3..a60eaaf 100644 --- a/assets/g/732b2eb0-score.js.map +++ b/assets/g/dcc0a6cc-score.js.map @@ -1 +1 @@ -{"version":3,"file":"732b2eb0-score.js","sources":["../../../node_modules/lodash-es/_arrayReduce.js","../../../node_modules/lodash-es/_basePropertyOf.js","../../../node_modules/lodash-es/_deburrLetter.js","../../../node_modules/lodash-es/deburr.js","../../../node_modules/lodash-es/_asciiWords.js","../../../node_modules/lodash-es/_hasUnicodeWord.js","../../../node_modules/lodash-es/_unicodeWords.js","../../../node_modules/lodash-es/words.js","../../../node_modules/lodash-es/_createCompounder.js","../../../node_modules/lodash-es/kebabCase.js","../../../node_modules/date-fns/isFuture.mjs","../../../src/utils/score.tsx"],"sourcesContent":["/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isFuture\n * @category Common Helpers\n * @summary Is the given date in the future?\n * @pure false\n *\n * @description\n * Is the given date in the future?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in the future\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * const result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\nexport function isFuture(date) {\n return +toDate(date) > Date.now();\n}\n\n// Fallback for modularized imports:\nexport default isFuture;\n","import type { Student } from \"@olinfo/quizms/student\";\nimport clsx from \"clsx\";\nimport { isFuture } from \"date-fns\";\nimport { kebabCase } from \"lodash-es\";\n\nexport function Score({ edition }: { edition: string }) {\n const key = `${window.location.pathname}${kebabCase(edition)}/`;\n const student: Student | undefined = JSON.parse(localStorage.getItem(\"quizms\") ?? \"{}\")[key];\n if (!student) return;\n\n if (student.finishedAt && isFuture(student.finishedAt)) {\n return (\n
in corso...
\n );\n }\n\n const score = student.score;\n const maxScore = student.maxScore;\n if (!score || !maxScore) return;\n\n const colors = [\n \"bg-red-400 text-error-content\",\n \"bg-orange-400 text-warning-content\",\n \"bg-yellow-400 text-warning-content\",\n \"bg-lime-400 text-warning-content\",\n \"bg-green-400 text-success-content\",\n ];\n\n const color = colors[Math.floor((score / maxScore) * 4)];\n\n return (\n
\n {Math.round(score)} {maxScore && <>/ {maxScore}}\n
\n );\n}\n"],"names":["arrayReduce","array","iteratee","accumulator","initAccum","index","length","basePropertyOf","object","key","deburredLetters","deburrLetter","reLatin","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsCombo","reComboMark","deburr","string","toString","reAsciiWord","asciiWords","reHasUnicodeWord","hasUnicodeWord","rsAstralRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","reUnicodeWord","unicodeWords","words","pattern","guard","reApos","createCompounder","callback","kebabCase","result","word","isFuture","date","toDate","Score","edition","student","jsx","score","maxScore","color","clsx","jsxs","Fragment"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]} \ No newline at end of file +{"version":3,"file":"dcc0a6cc-score.js","sources":["../../../node_modules/lodash-es/_arrayReduce.js","../../../node_modules/lodash-es/_basePropertyOf.js","../../../node_modules/lodash-es/_deburrLetter.js","../../../node_modules/lodash-es/deburr.js","../../../node_modules/lodash-es/_asciiWords.js","../../../node_modules/lodash-es/_hasUnicodeWord.js","../../../node_modules/lodash-es/_unicodeWords.js","../../../node_modules/lodash-es/words.js","../../../node_modules/lodash-es/_createCompounder.js","../../../node_modules/lodash-es/kebabCase.js","../../../node_modules/date-fns/isFuture.mjs","../../../src/utils/score.tsx"],"sourcesContent":["/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isFuture\n * @category Common Helpers\n * @summary Is the given date in the future?\n * @pure false\n *\n * @description\n * Is the given date in the future?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in the future\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * const result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\nexport function isFuture(date) {\n return +toDate(date) > Date.now();\n}\n\n// Fallback for modularized imports:\nexport default isFuture;\n","import type { Student } from \"@olinfo/quizms/student\";\nimport clsx from \"clsx\";\nimport { isFuture } from \"date-fns\";\nimport { kebabCase } from \"lodash-es\";\n\nexport function Score({ edition }: { edition: string }) {\n const key = `${window.location.pathname}${kebabCase(edition)}/`;\n const student: Student | undefined = JSON.parse(localStorage.getItem(\"quizms\") ?? \"{}\")[key];\n if (!student) return;\n\n if (student.finishedAt && isFuture(student.finishedAt)) {\n return (\n
in corso...
\n );\n }\n\n const score = student.score;\n const maxScore = student.maxScore;\n if (!score || !maxScore) return;\n\n const colors = [\n \"bg-red-400 text-error-content\",\n \"bg-orange-400 text-warning-content\",\n \"bg-yellow-400 text-warning-content\",\n \"bg-lime-400 text-warning-content\",\n \"bg-green-400 text-success-content\",\n ];\n\n const color = colors[Math.floor((score / maxScore) * 4)];\n\n return (\n
\n {Math.round(score)} {maxScore && <>/ {maxScore}}\n
\n );\n}\n"],"names":["arrayReduce","array","iteratee","accumulator","initAccum","index","length","basePropertyOf","object","key","deburredLetters","deburrLetter","reLatin","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsCombo","reComboMark","deburr","string","toString","reAsciiWord","asciiWords","reHasUnicodeWord","hasUnicodeWord","rsAstralRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","reUnicodeWord","unicodeWords","words","pattern","guard","reApos","createCompounder","callback","kebabCase","result","word","isFuture","date","toDate","Score","edition","student","jsx","score","maxScore","color","clsx","jsxs","Fragment"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]} \ No newline at end of file diff --git a/assets/i/72d422f6-visualizer.js b/assets/i/05878499-visualizer.js similarity index 95% rename from assets/i/72d422f6-visualizer.js rename to assets/i/05878499-visualizer.js index 6792378..cbd96ce 100644 --- a/assets/i/72d422f6-visualizer.js +++ b/assets/i/05878499-visualizer.js @@ -1,3 +1,3 @@ /*! For licenses information, see LICENSES.txt */ -"use client";import{j as u,c as w}from"../_virtual_quizms-routes-09086dad.js";import{r}from"../s/00dd80a9-react-dom.js";const p=r.createContext({gravity:"top",scale:1,setBoundingBox:()=>{}});function v({gravity:i="top",scale:x=1,children:e}){const[s,h]=r.useState({}),m=r.useCallback((c,d)=>{h(t=>({...t,[c]:d}))},[]),o=r.useMemo(()=>{let c=0,d=0,t=0,l=0;for(const{x:n,y:a,width:g,height:f}of Object.values(s))c=Math.min(c,n),d=Math.max(d,n+g),t=Math.min(t,a),l=Math.max(l,a+f);return i==="bottom"&&([t,l]=[-l,-t]),{wMin:c,wMax:d,hMin:t,hMax:l}},[s,i]);return u.jsx(p.Provider,{value:{gravity:i,scale:x,setBoundingBox:m},children:u.jsx("div",{className:"m-8",style:{width:o.wMax-o.wMin,height:o.hMax-o.hMin},children:u.jsx("div",{className:"relative",style:{transform:`translate(${-o.wMin}px, ${-o.hMin}px)`},children:e})})})}function $({src:i,alt:x,x:e=0,y:s=0,rotation:h=0,scaleX:m=1,scaleY:o=1,follow:c,className:d}){const t=r.useId(),l=r.useRef(null),{gravity:n,scale:a,setBoundingBox:g}=r.useContext(p);r.useEffect(()=>(g(t,{x:e*a,width:+i.width,y:s*a,height:+i.height}),()=>g(t,{x:0,width:0,y:0,height:0})),[e,s,i,a,t,g]);const f=r.useRef({x:e,y:s,changed:!1});return r.useEffect(()=>{if((e!==f.current.x||s!==f.current.y)&&(f.current={x:e,y:s,changed:!0}),!f.current.changed||!c)return;const b=setTimeout(()=>{l.current?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},160);return()=>clearTimeout(b)},[c,e,s]),u.jsx("img",{ref:l,...i,alt:x,className:w("absolute transition-all transform",d),style:{[n]:`${s*a}px`,left:`${e*a}px`,"--tw-rotate":`${h}turn`,"--tw-scale-x":m,"--tw-scale-y":o}})}function N({color:i="white",borderColor:x="black",height:e,width:s,x:h=0,y:m=0,rotation:o=0,className:c="",children:d}){const t=r.useId(),{gravity:l,scale:n,setBoundingBox:a}=r.useContext(p);return r.useEffect(()=>(a(t,{x:h*n,width:s*n,y:m*n,height:e*n}),()=>a(t,{x:0,width:0,y:0,height:0})),[h,m,s,e,n,t,a]),u.jsx("div",{className:w("absolute transition-all transform",c),style:{backgroundColor:i,border:`2px solid ${x}`,height:`${e*n}px`,width:`${s*n}px`,[l]:`${m*n}px`,left:`${h*n}px`,"--tw-rotate":`${o}turn`},children:d})}function B({variables:i}){return u.jsx("div",{className:"m-4 grid max-w-sm grid-cols-2 gap-y-2 text-slate-950 *:bg-orange-400 *:px-4 *:py-1.5",children:Object.entries(i).map(([x,e])=>u.jsxs(r.Fragment,{children:[u.jsx("div",{className:"rounded-l-2xl",children:x}),u.jsx("div",{className:"rounded-r-2xl",children:u.jsx("div",{className:"rounded-lg bg-white px-2",children:Number.isFinite(e)?e:"-"})})]},x))})}export{v as C,N as R,$ as S,B as V}; -//# sourceMappingURL=72d422f6-visualizer.js.map +"use client";import{j as u,c as w}from"../_virtual_quizms-routes-e5ffd91c.js";import{r}from"../s/00dd80a9-react-dom.js";const p=r.createContext({gravity:"top",scale:1,setBoundingBox:()=>{}});function v({gravity:i="top",scale:x=1,children:e}){const[s,h]=r.useState({}),m=r.useCallback((c,d)=>{h(t=>({...t,[c]:d}))},[]),o=r.useMemo(()=>{let c=0,d=0,t=0,l=0;for(const{x:n,y:a,width:g,height:f}of Object.values(s))c=Math.min(c,n),d=Math.max(d,n+g),t=Math.min(t,a),l=Math.max(l,a+f);return i==="bottom"&&([t,l]=[-l,-t]),{wMin:c,wMax:d,hMin:t,hMax:l}},[s,i]);return u.jsx(p.Provider,{value:{gravity:i,scale:x,setBoundingBox:m},children:u.jsx("div",{className:"m-8",style:{width:o.wMax-o.wMin,height:o.hMax-o.hMin},children:u.jsx("div",{className:"relative",style:{transform:`translate(${-o.wMin}px, ${-o.hMin}px)`},children:e})})})}function $({src:i,alt:x,x:e=0,y:s=0,rotation:h=0,scaleX:m=1,scaleY:o=1,follow:c,className:d}){const t=r.useId(),l=r.useRef(null),{gravity:n,scale:a,setBoundingBox:g}=r.useContext(p);r.useEffect(()=>(g(t,{x:e*a,width:+i.width,y:s*a,height:+i.height}),()=>g(t,{x:0,width:0,y:0,height:0})),[e,s,i,a,t,g]);const f=r.useRef({x:e,y:s,changed:!1});return r.useEffect(()=>{if((e!==f.current.x||s!==f.current.y)&&(f.current={x:e,y:s,changed:!0}),!f.current.changed||!c)return;const b=setTimeout(()=>{l.current?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},160);return()=>clearTimeout(b)},[c,e,s]),u.jsx("img",{ref:l,...i,alt:x,className:w("absolute transition-all transform",d),style:{[n]:`${s*a}px`,left:`${e*a}px`,"--tw-rotate":`${h}turn`,"--tw-scale-x":m,"--tw-scale-y":o}})}function N({color:i="white",borderColor:x="black",height:e,width:s,x:h=0,y:m=0,rotation:o=0,className:c="",children:d}){const t=r.useId(),{gravity:l,scale:n,setBoundingBox:a}=r.useContext(p);return r.useEffect(()=>(a(t,{x:h*n,width:s*n,y:m*n,height:e*n}),()=>a(t,{x:0,width:0,y:0,height:0})),[h,m,s,e,n,t,a]),u.jsx("div",{className:w("absolute transition-all transform",c),style:{backgroundColor:i,border:`2px solid ${x}`,height:`${e*n}px`,width:`${s*n}px`,[l]:`${m*n}px`,left:`${h*n}px`,"--tw-rotate":`${o}turn`},children:d})}function B({variables:i}){return u.jsx("div",{className:"m-4 grid max-w-sm grid-cols-2 gap-y-2 text-slate-950 *:bg-orange-400 *:px-4 *:py-1.5",children:Object.entries(i).map(([x,e])=>u.jsxs(r.Fragment,{children:[u.jsx("div",{className:"rounded-l-2xl",children:x}),u.jsx("div",{className:"rounded-r-2xl",children:u.jsx("div",{className:"rounded-lg bg-white px-2",children:Number.isFinite(e)?e:"-"})})]},x))})}export{v as C,N as R,$ as S,B as V}; +//# sourceMappingURL=05878499-visualizer.js.map diff --git a/assets/i/72d422f6-visualizer.js.map b/assets/i/05878499-visualizer.js.map similarity index 99% rename from assets/i/72d422f6-visualizer.js.map rename to assets/i/05878499-visualizer.js.map index 620e74a..b25150a 100644 --- a/assets/i/72d422f6-visualizer.js.map +++ b/assets/i/05878499-visualizer.js.map @@ -1 +1 @@ -{"version":3,"file":"72d422f6-visualizer.js","sources":["../../../src/utils/visualizer.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type CSSProperties,\n Fragment,\n type ReactNode,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport clsx from \"clsx\";\n\ntype BoundingBox = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\ntype ContextProps = {\n gravity: \"top\" | \"bottom\";\n scale: number;\n setBoundingBox: (id: string, box: BoundingBox) => void;\n};\n\nconst VisualizerContext = createContext({\n gravity: \"top\",\n scale: 1,\n setBoundingBox: () => {},\n});\n\ntype CanvasProps = {\n gravity?: \"top\" | \"bottom\";\n scale?: number;\n children: ReactNode;\n};\n\nexport function Canvas({ gravity = \"top\", scale = 1, children }: CanvasProps) {\n const [objects, setObjects] = useState>({});\n\n const setBoundingBox = useCallback((id: string, box: BoundingBox) => {\n setObjects((prev) => ({ ...prev, [id]: box }));\n }, []);\n\n const size = useMemo(() => {\n let wMin = 0;\n let wMax = 0;\n let hMin = 0;\n let hMax = 0;\n for (const { x, y, width, height } of Object.values(objects)) {\n wMin = Math.min(wMin, x);\n wMax = Math.max(wMax, x + width);\n hMin = Math.min(hMin, y);\n hMax = Math.max(hMax, y + height);\n }\n\n if (gravity === \"bottom\") {\n [hMin, hMax] = [-hMax, -hMin];\n }\n\n return { wMin, wMax, hMin, hMax };\n }, [objects, gravity]);\n\n return (\n \n
\n \n {children}\n
\n \n
\n );\n}\n\ntype SpriteProps = {\n src: { src: string; width: string; height: string };\n alt: string;\n x?: number;\n y?: number;\n rotation?: number;\n scaleX?: number;\n scaleY?: number;\n follow?: boolean;\n className?: string;\n};\n\nexport function Sprite({\n src,\n alt,\n x = 0,\n y = 0,\n rotation = 0,\n scaleX = 1,\n scaleY = 1,\n follow,\n className,\n}: SpriteProps) {\n const id = useId();\n\n const ref = useRef(null);\n const { gravity, scale, setBoundingBox } = useContext(VisualizerContext);\n useEffect(() => {\n setBoundingBox(id, { x: x * scale, width: +src.width, y: y * scale, height: +src.height });\n return () => setBoundingBox(id, { x: 0, width: 0, y: 0, height: 0 });\n }, [x, y, src, scale, id, setBoundingBox]);\n\n const pos = useRef({ x, y, changed: false });\n useEffect(() => {\n if (x !== pos.current.x || y !== pos.current.y) {\n pos.current = { x, y, changed: true };\n }\n\n if (!pos.current.changed || !follow) return;\n const id = setTimeout(() => {\n ref.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"center\",\n });\n }, 160);\n return () => clearTimeout(id);\n }, [follow, x, y]);\n\n return (\n \n );\n}\n\ntype RectangleProps = {\n color?: string;\n borderColor?: string;\n height: number;\n width: number;\n x?: number;\n y?: number;\n rotation?: number;\n className?: string;\n children?: ReactNode;\n};\n\nexport function Rectangle({\n color = \"white\",\n borderColor = \"black\",\n height,\n width,\n x = 0,\n y = 0,\n rotation = 0,\n className = \"\",\n children,\n}: RectangleProps) {\n const id = useId();\n const { gravity, scale, setBoundingBox } = useContext(VisualizerContext);\n\n useEffect(() => {\n setBoundingBox(id, {\n x: x * scale,\n width: width * scale,\n y: y * scale,\n height: height * scale,\n });\n return () => setBoundingBox(id, { x: 0, width: 0, y: 0, height: 0 });\n }, [x, y, width, height, scale, id, setBoundingBox]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function Variables({ variables }: { variables: Record }) {\n return (\n
\n {Object.entries(variables).map(([name, value]) => (\n \n
{name}
\n
\n
{Number.isFinite(value) ? value : \"-\"}
\n
\n
\n ))}\n
\n );\n}\n"],"names":["VisualizerContext","createContext","Canvas","gravity","scale","children","objects","setObjects","useState","setBoundingBox","useCallback","id","box","prev","size","useMemo","wMin","wMax","hMin","hMax","x","y","width","height","jsx","Sprite","src","alt","rotation","scaleX","scaleY","follow","className","useId","ref","useRef","useContext","useEffect","pos","clsx","Rectangle","color","borderColor","Variables","variables","name","value","Fragment"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"05878499-visualizer.js","sources":["../../../src/utils/visualizer.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type CSSProperties,\n Fragment,\n type ReactNode,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport clsx from \"clsx\";\n\ntype BoundingBox = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\ntype ContextProps = {\n gravity: \"top\" | \"bottom\";\n scale: number;\n setBoundingBox: (id: string, box: BoundingBox) => void;\n};\n\nconst VisualizerContext = createContext({\n gravity: \"top\",\n scale: 1,\n setBoundingBox: () => {},\n});\n\ntype CanvasProps = {\n gravity?: \"top\" | \"bottom\";\n scale?: number;\n children: ReactNode;\n};\n\nexport function Canvas({ gravity = \"top\", scale = 1, children }: CanvasProps) {\n const [objects, setObjects] = useState>({});\n\n const setBoundingBox = useCallback((id: string, box: BoundingBox) => {\n setObjects((prev) => ({ ...prev, [id]: box }));\n }, []);\n\n const size = useMemo(() => {\n let wMin = 0;\n let wMax = 0;\n let hMin = 0;\n let hMax = 0;\n for (const { x, y, width, height } of Object.values(objects)) {\n wMin = Math.min(wMin, x);\n wMax = Math.max(wMax, x + width);\n hMin = Math.min(hMin, y);\n hMax = Math.max(hMax, y + height);\n }\n\n if (gravity === \"bottom\") {\n [hMin, hMax] = [-hMax, -hMin];\n }\n\n return { wMin, wMax, hMin, hMax };\n }, [objects, gravity]);\n\n return (\n \n
\n \n {children}\n
\n \n
\n );\n}\n\ntype SpriteProps = {\n src: { src: string; width: string; height: string };\n alt: string;\n x?: number;\n y?: number;\n rotation?: number;\n scaleX?: number;\n scaleY?: number;\n follow?: boolean;\n className?: string;\n};\n\nexport function Sprite({\n src,\n alt,\n x = 0,\n y = 0,\n rotation = 0,\n scaleX = 1,\n scaleY = 1,\n follow,\n className,\n}: SpriteProps) {\n const id = useId();\n\n const ref = useRef(null);\n const { gravity, scale, setBoundingBox } = useContext(VisualizerContext);\n useEffect(() => {\n setBoundingBox(id, { x: x * scale, width: +src.width, y: y * scale, height: +src.height });\n return () => setBoundingBox(id, { x: 0, width: 0, y: 0, height: 0 });\n }, [x, y, src, scale, id, setBoundingBox]);\n\n const pos = useRef({ x, y, changed: false });\n useEffect(() => {\n if (x !== pos.current.x || y !== pos.current.y) {\n pos.current = { x, y, changed: true };\n }\n\n if (!pos.current.changed || !follow) return;\n const id = setTimeout(() => {\n ref.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"center\",\n });\n }, 160);\n return () => clearTimeout(id);\n }, [follow, x, y]);\n\n return (\n \n );\n}\n\ntype RectangleProps = {\n color?: string;\n borderColor?: string;\n height: number;\n width: number;\n x?: number;\n y?: number;\n rotation?: number;\n className?: string;\n children?: ReactNode;\n};\n\nexport function Rectangle({\n color = \"white\",\n borderColor = \"black\",\n height,\n width,\n x = 0,\n y = 0,\n rotation = 0,\n className = \"\",\n children,\n}: RectangleProps) {\n const id = useId();\n const { gravity, scale, setBoundingBox } = useContext(VisualizerContext);\n\n useEffect(() => {\n setBoundingBox(id, {\n x: x * scale,\n width: width * scale,\n y: y * scale,\n height: height * scale,\n });\n return () => setBoundingBox(id, { x: 0, width: 0, y: 0, height: 0 });\n }, [x, y, width, height, scale, id, setBoundingBox]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function Variables({ variables }: { variables: Record }) {\n return (\n
\n {Object.entries(variables).map(([name, value]) => (\n \n
{name}
\n
\n
{Number.isFinite(value) ? value : \"-\"}
\n
\n
\n ))}\n
\n );\n}\n"],"names":["VisualizerContext","createContext","Canvas","gravity","scale","children","objects","setObjects","useState","setBoundingBox","useCallback","id","box","prev","size","useMemo","wMin","wMax","hMin","hMax","x","y","width","height","jsx","Sprite","src","alt","rotation","scaleX","scaleY","follow","className","useId","ref","useRef","useContext","useEffect","pos","clsx","Rectangle","color","borderColor","Variables","variables","name","value","Fragment"],"mappings":"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"} \ No newline at end of file diff --git a/assets/o/3c7e1c7c-question.js b/assets/o/28b451e6-question.js similarity index 99% rename from assets/o/3c7e1c7c-question.js rename to assets/o/28b451e6-question.js index a9e7c6e..e36bb82 100644 --- a/assets/o/3c7e1c7c-question.js +++ b/assets/o/28b451e6-question.js @@ -1,5 +1,5 @@ /*! For licenses information, see LICENSES.txt */ -"use client";import{j as e}from"../_virtual_quizms-routes-09086dad.js";import{n as p,r as g}from"../w/38364625-chunk-IFWY6GUU.js";import"../s/00dd80a9-react-dom.js";import{C as z,S as u,V as N,R as S}from"../i/72d422f6-visualizer.js";const R={src:new URL("../8/845b486a-fig.svg",import.meta.url).href,width:1344,height:175},A={src:new URL("../5/5388de08-code.svg",import.meta.url).href,width:1833,height:983},U={src:new URL("../4/43f3d549-primarie.svg",import.meta.url).href,width:305,height:251};function Y(t){const a={em:"em",li:"li",p:"p",span:"span",strong:"strong",ul:"ul",...p(),...t.components},{Answer:l,AnswerGroup:n,Code:i,Equation:s,Explanation:r,Image:o,SubProblem:d}=a;return l||h("Answer"),n||h("AnswerGroup"),i||h("Code"),s||h("Equation"),r||h("Explanation"),o||h("Image"),d||h("SubProblem"),e.jsxs(d,{children:[e.jsx(a.p,{children:`Tip-Tap ha proprio voglia di una bella scorpacciata di carote! +"use client";import{j as e}from"../_virtual_quizms-routes-e5ffd91c.js";import{n as p,r as g}from"../w/c06ec230-chunk-IFWY6GUU.js";import"../s/00dd80a9-react-dom.js";import{C as z,S as u,V as N,R as S}from"../i/05878499-visualizer.js";const R={src:new URL("../8/845b486a-fig.svg",import.meta.url).href,width:1344,height:175},A={src:new URL("../5/5388de08-code.svg",import.meta.url).href,width:1833,height:983},U={src:new URL("../4/43f3d549-primarie.svg",import.meta.url).href,width:305,height:251};function Y(t){const a={em:"em",li:"li",p:"p",span:"span",strong:"strong",ul:"ul",...p(),...t.components},{Answer:l,AnswerGroup:n,Code:i,Equation:s,Explanation:r,Image:o,SubProblem:d}=a;return l||h("Answer"),n||h("AnswerGroup"),i||h("Code"),s||h("Equation"),r||h("Explanation"),o||h("Image"),d||h("SubProblem"),e.jsxs(d,{children:[e.jsx(a.p,{children:`Tip-Tap ha proprio voglia di una bella scorpacciata di carote! Per farla, può usare le seguenti azioni:`}),e.jsxs(a.ul,{children:[` `,e.jsxs(a.li,{children:[e.jsx(i,{code:String.raw`avanza`,inline:!0,lang:"text",className:"p-0 text-base"}),": salta alla roccia più vicina a destra."]}),` `,e.jsxs(a.li,{children:[e.jsx(i,{code:String.raw`mangia carota`,inline:!0,lang:"text",className:"p-0 text-base"}),": mangia una carota, ma se dov’è arrivato non ci sono carote si ",e.jsx(a.strong,{children:"mangia la lingua"}),"!"]}),` @@ -84,4 +84,4 @@ totale, ma `,e.jsx(i,{children:String.raw`M`})," è al massimo la metà del tota posso sicuramente farlo stare in una delle due colonne. Mettendolo, abbiamo ridotto sia l’altezza totale da costruire che l’altezza totale dei blocchetti di `,e.jsxs(a.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(i,{children:String.raw`M`}),","]}),` quindi è ancora vero che l’altezza totale dei blocchetti è uguale all’altezza totale delle colonne da costruire.`]}),e.jsx(a.p,{children:e.jsx(r,{alt:"secondarie",src:typeof Q=="function"?Q(_variant):Q})})]})]})}function Ke(t={}){const{wrapper:a}={...p(),...t.components};return a?e.jsx(a,{...t,children:e.jsx(ne,{...t})}):ne(t)}function w(t,a){throw new Error("Expected component `"+t+"` to be defined: you likely forgot to import, pass, or provide it.")}export{He as M,Oe as a,Xe as b,Je as c,Ve as d,Qe as e,Ye as f,Ke as g}; -//# sourceMappingURL=3c7e1c7c-question.js.map +//# sourceMappingURL=28b451e6-question.js.map diff --git a/assets/o/3c7e1c7c-question.js.map b/assets/o/28b451e6-question.js.map similarity index 99% rename from assets/o/3c7e1c7c-question.js.map rename to assets/o/28b451e6-question.js.map index a5c9f02..2535bc4 100644 --- a/assets/o/3c7e1c7c-question.js.map +++ b/assets/o/28b451e6-question.js.map @@ -1 +1 @@ -{"version":3,"file":"3c7e1c7c-question.js","sources":["../../../src/fibonacci-primarie/2023-seconda-fase/contest/p-1-cicli-condizioni/question.md","../../../src/fibonacci-primarie/2023-seconda-fase/contest/p-2-balle-di-fieno/question.md","../../../src/fibonacci-primarie/2023-seconda-fase/contest/p-3-pile-di-carote/question.md","../../../src/fibonacci-primarie/2023-seconda-fase/contest/p-4-contatore/question.md","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-1-ordina-palloni/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-1-ordina-palloni/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-2-gara-salto/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-2-gara-salto/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-3-squadre-basket/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-3-squadre-basket/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-4-torri-gemelle/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-4-torri-gemelle/question.mdx"],"sourcesContent":["Tip-Tap ha proprio voglia di una bella scorpacciata di carote!\nPer farla, può usare le seguenti azioni:\n\n- `avanza`: salta alla roccia più vicina a destra.\n- `mangia carota`: mangia una carota, ma se dov'è arrivato non ci sono carote si **mangia la lingua**!\n- `roccia marrone`: condizione vera se Tip-Tap si trova su una roccia di colore marrone.\n\nQuali di questi procedimenti consentono a Tip-Tap di mangiare tutte le carote, senza\nmangiarsi la lingua?\n\n![T_ | _ _ | _C](fig.asy)\n\n![code](code.asy)\n\n- [ ] $1$, $3$ e $5$\n- [ ] $2$ e $4$\n- [x] $3$ e $5$\n- [ ] solo $5$\n- [ ] tutti tranne l'$1$\n\n> Tip-Tap riesce a mangiare tutte le carote sia seguendo l'opzione 3 che l'opzione 5.\n>\n> _Nell'opzione 3, inizia mangiando la prima carota, poi le carote sulle rocce marroni tra le 4 successive, poi un'altra carota\n> (quella sulla roccia grigia centrale), e ancora le carote sulle rocce marroni tra le 4 successive._\n>\n> _Nell'opzione 5, inizia mangiando le carote sulle rocce marroni tra le prime 4, poi un'altra carota\n> (quella sulla roccia grigia centrale), e ancora le carote sulle rocce marroni tra le 4 successive._\n>\n> In tutte le altre tre opzioni, Tip-Tap non riesce a fare quanto richiesto.\n>\n> _Nell'opzione 1, Tip-Tap tenta di mangiare carote anche dove non ce ne sono, mordendosi la lingua._\n>\n> _Nell'opzione 2, Tip-Tap mangia tutte le carote sulle rocce marroni, ma non mangia la carota sulla roccia grigia centrale._\n>\n> _Nell'opzione 4, Tip-Tap mangia la prima carota, poi una carota ogni due rocce, e infine mangia anche l'ultima carota.\n> Anche in questo caso non mangia la carota sulla roccia grigia centrale._\n>\n> ![primarie](primarie.asy)\n","Bunny è all’ingresso del fienile della fattoria Fibonacci, e davanti a lui ci sono $9$ pile di balle di fieno numerate con i numeri da $1$ a $9$. Ogni pila è formata da un numero variabile di balle di fieno. Bunny vuole giocare spostandosi da una pila all'altra, partendo dalla pila $1$ e seguendo questo procedimento:\n\n![code](code.asy)\n\nIn quali di queste situazioni Bunny riesce ad uscire dal fienile?\n\n![opzione1](opzioni.asy)\n\nRisposte:\n\n- [ ] nessuna\n- [ ] tutte\n- [ ] solo la 1\n- [x] la 1 e la 2\n- [ ] la 1 e la 3\n\n> Bunny riesce ad uscire dal fienile nell'opzione 1 e nella 2.\n>\n> _Nell'opzione 1, inizia dalla pila 1, poi salta di due in due fino alla pila 9._\n>\n> _Nell'opzione 2, inizia dalla pila 1, salta sulla 3, indietreggia sulla due, salta sulla 4, salta sulla 6, indietreggia sulla 5, salta sulla 7 e finisce sulla 9._\n>\n> _Nell'opzione 3, Bunny non riesce ad uscire perchè rimane bloccato saltando in circolo tra le pile 3, 4, 5 senza mai smettere._\n>\n> ![primarie](primarie.asy) ![secondarie](secondarie.asy)\n","I conigli della fattoria Fibonacci hanno preparato due enormi mucchi di carote.\nAll'inizio il mucchio sinistro contiene 2024 carote, mentre il mucchio destro ne contiene 3024.\nBunny, Tip-Tap e Carol le mangiano seguendo questo procedimento:\n\n![code](code.asy)\n\nQuante carote mangia Carol?\n\n- [ ] 0\n- [ ] 1\n- [ ] 2\n- [ ] 4\n- [x] 8\n\n> Si può notare che ad ogni passaggio della ripetizione, indipendentemente da quale mucchio\n> abbia più carote, Tip-Tap e Bunny in totale mangiano $10$ carote.\n> Visto che all'inizio ci sono $2024 + 3024 = 5048$ carote, i due conigli andranno avanti\n> a mangiare $10$ carote per volta fino a quando rimarranno $8$ carote tra i due mucchi.\n> A quel punto tutte le carote rimaste le mangerà Carol!\n>\n> **Approfondimento:** visto che la condizione che termina la ripetizione chiede solo che\n> una delle due pile contenga meno di $7$ carote, si potrebbe pensare che alla fine potrebbero\n> rimanere più carote per Carol, come $18$, $28$, $38$, eccetera. Questo però non è possibile!\n>\n> Infatti, si può notare che ogni volta Tip-Tap e Bunny mangiano più carote dalla pila più grande\n> e meno dalla pila più piccola. Questo porta a ridurre la differenza tra le due pile, finché\n> la differenza non è **al massimo 3**. Da quel punto in poi la differenza tra le due pila rimarrà\n> sempre al massimo 3, e quindi quando una pila arriva ad avere meno di $7$ carote (quindi al massimo\n> $6$), l'altra pila non può avere più di $6 + 3 = 9$ carote, per un totale di al massimo $9 + 6 = 15$\n> carote, che è meno di $18$.\n>\n> ![primarie](primarie.asy) ![secondarie](secondarie.asy)\n","Tip-Tap sistemando la sua soffitta si è imbattuto in un libro di programmazione molto vecchio. Nella prima pagina trova il seguente procedimento:\n\n![code](code.asy)\n\nPurtroppo la successiva pagina è rovinata perciò Tip-Tap non riesce a capire che numero verrà stampato alla fine, aiutalo tu! Quale numero viene stampato dall'ultimo blocco?\n\n- [ ] 0\n- [x] 2\n- [ ] 4\n- [ ] 6\n- [ ] 10\n\n> Il programma incrementa il contatore per ogni multiplo di $7$ fino a $42$,\n> e lo decrementa per ogni multiplo di $9$ fino a $42$.\n> Siccome i multipli di $7$ fino a $42$ sono $6$ e i multipli di $9$ fino a $42$ sono $4$,\n> il contatore alla fine varrà $6 - 4 = 2$.\n>\n> ![secondarie](secondarie.asy)\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=66\";\nimport shelf from \"./asy/shelf.asy?h=170\";\nimport trash from \"./asy/trash.asy?w=120\";\n\nconst balls = import.meta.glob(\"./asy/ball*.asy\", {\n eager: true,\n import: \"default\",\n query: { w: 40 },\n});\n\nexport default function Visualizer({ variables, state }) {\n function position(i) {\n const batch = state.N > 20 ? 9 : 4;\n const step = state.N > 20 ? 0.2 : 0.4;\n let p = [0, 3];\n if (i >= state.pos) {\n p = [0.35 * (i - state.pos) + 2.4, 1.4];\n } else if (state.placement[i] > 0) {\n const col = (state.placement[i] - 1) % batch;\n const row = (state.placement[i] - 1 - col) / batch;\n p = [col * step + 0.08, 1.27 - row * 0.4];\n } else {\n const row = -state.placement[i] - 1;\n const col = ((7 * row) % 11) - 5;\n p = [1.6 + col * (0.04 + row * 0.001), 2.7 - row * 0.06];\n }\n if (state.balls[i] % 2) p[1] -= 0.14;\n return p;\n }\n\n return (\n <>\n \n \n {range(state.N).map((i) => (\n \n ))}\n \n \n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s1.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nTip-Tap deve sistemare la sua vecchia collezione di $N$ palloni.\nNon avendo spazio per tutti, ha deciso che terrà **tutti i palloni da calcio** e i **palloni da basket gonfi**,\nmentre butterà i **palloni da basket sgonfi**.\n\nPer farlo, Tip-Tap può compiere le seguenti azioni:\n\n- `tieni`: metti via il prossimo pallone nello scaffale.\n- `butta`: butta via il prossimo pallone nel cestino.\n- `pallone da calcio`: condizione vera se il prossimo pallone è da calcio.\n- `pallone gonfio`: condizione vera se il prossimo pallone è gonfio.\n- `termina`: finisci di mettere a posto i palloni.\n\nScrivi un programma che consenta a Tip-Tap di sistemare tutti i suoi palloni!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> Secondo questo programma, per ognuno degli $N$ palloni che Tip-Tap deve sistemare, il protagonista\n> controlla se il prossimo pallone è da calcio o gonfio. Se sì lo tiene, altrimenti lo butta.\n>\n> ![primarie](asy/primarie.asy)\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=40\";\nimport carrot from \"./asy/carrot.asy?w=25\";\nimport hay from \"./asy/hay.asy?w=60\";\n\nexport default function Visualizer({ variables, state }) {\n return (\n <>\n \n {range(state.N).flatMap((i) => {\n return range(state.H[i]).map((h) => (\n \n ));\n })}\n \n \n \n {range(state.carrots.length + 2).map((i) => {\n let x = 5 + state.pos * 6;\n let y = -0.1;\n if (i < state.carrots.length) {\n const col = state.carrots[i] - 1;\n x = 3.5 + col * 6 + (i % 3) * 0.5;\n y = -0.3 + state.H[col] * 2.8;\n }\n return ;\n })}\n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s2.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nCarol sta organizzando una gara di salto nel fienile della fattoria Fibonacci!\n\nIl fienile ha $N$ **pile** di balle di fieno, l'$i$-esima delle quali composta da $H_i$ balle di fieno.\nLa gara partirà dall'ingresso del fienile a sinistra, prima di tutte le pile. Da lì i conigli dovranno\nsaltare sulla prima pila $i = 1$, e poi via via sulle successive, fino ad arrivare all'ultima pila e\nsaltare fuori dal fienile a destra.\n\nI conigli non fanno fatica a saltare in piano o in basso, ma saltare verso l'alto non è facile!\nQuindi, Carol vuole mettere una carota come premio su **ogni** pila di balle di fieno che richiede\nun salto **maggiore** di tutti i salti fatti prima per arrivare fino a lì. Inoltre, vuole mettere\nuna seconda carota sul salto più alto di tutti del percorso. Carol può fare queste cose:\n\n- `altezza della pila i`: guarda quante balle di fieno $H_i$ ci sono nella pila $i$-esima.\n- `aggiungi carota alla pila i`: aggiungi una carota in cima all'$i$-esima pila.\n- `termina`: smetti di aggiungere carote e fai partire la gara.\n\nAiuta Carol a preparare il fienile per la gara di salto!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> Questo programma, mette subito una carota sulla prima pila, che richiede il primo salto: il primo\n> salto è sempre maggiore degli _zero_ salti fatti prima! Il programma poi ricorda che il massimo\n> salto finora (_maxsalto_) è alto come la prima pila, ed è stato fatto nella pila $1$ (_dovesalto_).\n>\n> A questo punto, il programma itera su tutte le altre pile, dalla seconda alla fine.\n> Per ciascuna di queste, calcola quanto è grande il _salto_ che serve per arrivare all'$i$-esima pila.\n> Se questo salto è maggiore del massimo salto finora, allora va ad aggiungere una carota e lo\n> memorizza in _maxsalto_ e _dovesalto_.\n>\n> Una volta terminato di scorrere tutte le pile, Carol torna all'ultima pila a cui ha aggiunto una\n> carota (_dovesalto_) e ci aggiunge la seconda carota.\n>\n> ![primarie](asy/primarie.asy) ![secondarie](asy/secondarie.asy)\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport ball from \"./asy/ball.asy?w=35\";\nimport bunny from \"./asy/bunny.asy?w=66\";\nimport fibonacci from \"./asy/fibonacci.asy?h=100\";\nimport turing from \"./asy/turing.asy?h=100\";\n\nexport default function Visualizer({ variables, state }) {\n const teams = [fibonacci, turing];\n\n const offset = Math.max(...state.data.map((d) => d.presi.length)) * 5;\n\n return (\n <>\n \n \n \n {range(2).flatMap((i) => {\n const { H, scelta } = state.data[i];\n let offsetPreso = 0;\n let offsetScarto = 0;\n return range(H.length).map((k) => {\n let x;\n let y = [30, 7][i];\n\n if (k >= scelta.length) {\n x = (k - scelta.length) * 5 + offset + 10;\n } else if (scelta[k] > 0) {\n x = offsetPreso;\n offsetPreso += 5;\n } else {\n x = offsetScarto + offset + 10;\n offsetScarto += 5;\n y += [12, -10][i];\n }\n\n return (\n \n );\n });\n })}\n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s3.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nBunny deve selezionare due squadre di basket da **più giocatori possibile** per la sfida tra la fattoria Fibonacci e la fattoria Turing!\nPer fare una partita bilanciata, vuole che le due squadre siano composte da uno stesso numero di giocatori della stessa altezza, come in questo caso:\n\n![esempio](asy/fig.asy)\n\nBunny ha quindi messo in fila, in ordine crescente di altezza, i conigli di entrambe le fattorie.\nOra può fare queste operazioni:\n\n- `fine della fila Fibonacci`: condizione vera se la fila della fattoria Fibonacci è terminata.\n- `fine della fila Turing`: condizione vera se la fila della fattoria Turing è terminata.\n- `altezza primo della fila Fibonacci`: l'altezza del primo coniglio nella fila della fattoria Fibonacci.\n- `altezza primo della fila Turing`: l'altezza del primo coniglio nella fila della fattoria Turing.\n- `prendi dalla fila Fibonacci`: prendi il prossimo coniglio dalla fila della fattoria Fibonacci.\n- `prendi dalla fila Turing`: prendi il prossimo coniglio dalla fila della fattoria Turing.\n- `scarta dalla fila Fibonacci`: scarta il prossimo coniglio dalla fila della fattoria Fibonacci.\n- `scarta dalla fila Turing`: scarta il prossimo coniglio dalla fila della fattoria Turing.\n- `termina`: completa le squadre e inizia la partita a basket.\n\nAiuta Bunny a fare le squadre per la partita!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> Questo programma procede a selezionare i conigli fino a che una delle due file non si svuota.\n> Se i due primi della fila hanno la stessa altezza, è possibile prenderli entrambi per\n> ingrandire la squadra. Se non hanno la stessa altezza Bunny scarta il più basso dei due,\n> visto che non ha più speranze di trovare un avversario della stessa altezza nell'altra fila.\n>\n> ![primarie](asy/primarie.asy) ![secondarie](asy/secondarie.asy)\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny_left from \"./asy/bunny_left.asy?w=66\";\nimport bunny_right from \"./asy/bunny_right.asy?w=66\";\nimport stairs1 from \"./asy/stairs1.asy?w=80\";\nimport stairs2 from \"./asy/stairs2.asy?w=80\";\nimport stairs3 from \"./asy/stairs3.asy?w=80\";\n\nexport default function Visualizer({ variables, state }) {\n const stairs = [stairs1, stairs2, stairs3][state.M <= 6 ? 0 : state.M <= 14 ? 1 : 2];\n const bunnies = [bunny_left, bunny_right];\n const hf = 2;\n const wf = 3;\n\n const colors = [\n \"#4093b0\",\n \"#bf4eb4\",\n \"#44c966\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n \"#40af91\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n ];\n\n let bsplit = 0;\n for (let i = 0; i < state.pos[1]; ++i) {\n if (state.blocchi[i][0] === 1) bsplit += 1;\n }\n\n let bx = 3 - bsplit * (wf + 1);\n return (\n <>\n \n \n \n \n \n \n {range(state.M).map((i) => {\n let x = state.blocchi[i][0] * 8 + 7.5;\n let y = state.blocchi[i][1] * hf;\n if (state.blocchi[i][0] === 1) {\n if (i >= state.pos[1] && bx < 23) bx = 23.5;\n bx += wf + 1;\n x = bx;\n y = state.pos[3] * hf + 0.5;\n }\n return (\n \n {i + 1}\n \n );\n })}\n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s4.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nTip-Tap vuole costruire una nuova tettoia per la sua fattoria!\nCome prima cosa, ha bisogno di costruire le due colonne portanti:\nuna a sinistra alta $S$ centimetri, e una a destra alta $D$ centimetri.\n\nPer farlo intende impilare alcuni blocchetti presi da un set da costruzioni,\ncomposto da un singolo blocchetto per ogni altezza possibile tra un minimo\ndi 1 centimetro e un massimo di $M$ centimetri, e che in tutto arrivano\nesattamente all'altezza totale delle due colonne. Ora può fare queste operazioni:\n\n- `altezza colonna destra`: l'altezza corrente della colonna di destra.\n- `altezza colonna sinistra`: l'altezza corrente della colonna di sinistra.\n- `impila blocchetto i a destra`: aggiunge il blocchetto alto $i$ centimetri alla colonna di destra, se non l'ha già usato.\n- `impila blocchetto i a sinistra`: aggiunge il blocchetto alto $i$ centimetri alla colonna di sinistra, se non l'ha già usato.\n- `termina`: completa le colonne e costruisci la tettoia.\n\nAiuta Tip-Tap a completare la tettoia come previsto!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> Questo programma procede a selezionare i blocchetti dal più grande al più piccolo.\n> Per ogni blocchetto, prova prima se può metterlo nella colonna a sinistra.\n> Se non può, prova anche a destra prima di scartarlo definitivamente.\n>\n> **Approfondimento:** Si può dimostrare che questo procedimento riesce sempre a costruire\n> le colonne. Per mostrarlo, consideriamo cosa succede quando vogliamo piazzare il\n> blocchetto alto $M$. La più alta delle due colonne deve essere alta più della metà del\n> totale, ma $M$ è al massimo la metà del totale dei blocchetti da $1$ a $M$, quindi\n> posso sicuramente farlo stare in una delle due colonne. Mettendolo, abbiamo ridotto sia l'altezza\n> totale da costruire che l'altezza totale dei blocchetti di $M$, quindi è ancora vero che\n> l'altezza totale dei blocchetti è uguale all'altezza totale delle colonne da costruire.\n>\n> ![secondarie](asy/secondarie.asy)\n"],"names":["_jsx","_components","Equation","_jsxs","Image","balls","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","Visualizer","variables","state","position","i","batch","step","p","col","row","jsxs","Fragment","Canvas","jsx","Sprite","shelf","range","bunny","trash","Variables","customBlocks","initialBlocks","testcases","h","hay","Rectangle","carrot","x","y","teams","fibonacci","turing","offset","d","ball","H","scelta","offsetPreso","offsetScarto","k","stairs","stairs1","stairs2","stairs3","bunnies","bunny_left","bunny_right","hf","wf","colors","bsplit","bx"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"28b451e6-question.js","sources":["../../../src/fibonacci-primarie/2023-seconda-fase/contest/p-1-cicli-condizioni/question.md","../../../src/fibonacci-primarie/2023-seconda-fase/contest/p-2-balle-di-fieno/question.md","../../../src/fibonacci-primarie/2023-seconda-fase/contest/p-3-pile-di-carote/question.md","../../../src/fibonacci-primarie/2023-seconda-fase/contest/p-4-contatore/question.md","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-1-ordina-palloni/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-1-ordina-palloni/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-2-gara-salto/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-2-gara-salto/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-3-squadre-basket/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-3-squadre-basket/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-4-torri-gemelle/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase/contest/s-4-torri-gemelle/question.mdx"],"sourcesContent":["Tip-Tap ha proprio voglia di una bella scorpacciata di carote!\nPer farla, può usare le seguenti azioni:\n\n- `avanza`: salta alla roccia più vicina a destra.\n- `mangia carota`: mangia una carota, ma se dov'è arrivato non ci sono carote si **mangia la lingua**!\n- `roccia marrone`: condizione vera se Tip-Tap si trova su una roccia di colore marrone.\n\nQuali di questi procedimenti consentono a Tip-Tap di mangiare tutte le carote, senza\nmangiarsi la lingua?\n\n![T_ | _ _ | _C](fig.asy)\n\n![code](code.asy)\n\n- [ ] $1$, $3$ e $5$\n- [ ] $2$ e $4$\n- [x] $3$ e $5$\n- [ ] solo $5$\n- [ ] tutti tranne l'$1$\n\n> Tip-Tap riesce a mangiare tutte le carote sia seguendo l'opzione 3 che l'opzione 5.\n>\n> _Nell'opzione 3, inizia mangiando la prima carota, poi le carote sulle rocce marroni tra le 4 successive, poi un'altra carota\n> (quella sulla roccia grigia centrale), e ancora le carote sulle rocce marroni tra le 4 successive._\n>\n> _Nell'opzione 5, inizia mangiando le carote sulle rocce marroni tra le prime 4, poi un'altra carota\n> (quella sulla roccia grigia centrale), e ancora le carote sulle rocce marroni tra le 4 successive._\n>\n> In tutte le altre tre opzioni, Tip-Tap non riesce a fare quanto richiesto.\n>\n> _Nell'opzione 1, Tip-Tap tenta di mangiare carote anche dove non ce ne sono, mordendosi la lingua._\n>\n> _Nell'opzione 2, Tip-Tap mangia tutte le carote sulle rocce marroni, ma non mangia la carota sulla roccia grigia centrale._\n>\n> _Nell'opzione 4, Tip-Tap mangia la prima carota, poi una carota ogni due rocce, e infine mangia anche l'ultima carota.\n> Anche in questo caso non mangia la carota sulla roccia grigia centrale._\n>\n> ![primarie](primarie.asy)\n","Bunny è all’ingresso del fienile della fattoria Fibonacci, e davanti a lui ci sono $9$ pile di balle di fieno numerate con i numeri da $1$ a $9$. Ogni pila è formata da un numero variabile di balle di fieno. Bunny vuole giocare spostandosi da una pila all'altra, partendo dalla pila $1$ e seguendo questo procedimento:\n\n![code](code.asy)\n\nIn quali di queste situazioni Bunny riesce ad uscire dal fienile?\n\n![opzione1](opzioni.asy)\n\nRisposte:\n\n- [ ] nessuna\n- [ ] tutte\n- [ ] solo la 1\n- [x] la 1 e la 2\n- [ ] la 1 e la 3\n\n> Bunny riesce ad uscire dal fienile nell'opzione 1 e nella 2.\n>\n> _Nell'opzione 1, inizia dalla pila 1, poi salta di due in due fino alla pila 9._\n>\n> _Nell'opzione 2, inizia dalla pila 1, salta sulla 3, indietreggia sulla due, salta sulla 4, salta sulla 6, indietreggia sulla 5, salta sulla 7 e finisce sulla 9._\n>\n> _Nell'opzione 3, Bunny non riesce ad uscire perchè rimane bloccato saltando in circolo tra le pile 3, 4, 5 senza mai smettere._\n>\n> ![primarie](primarie.asy) ![secondarie](secondarie.asy)\n","I conigli della fattoria Fibonacci hanno preparato due enormi mucchi di carote.\nAll'inizio il mucchio sinistro contiene 2024 carote, mentre il mucchio destro ne contiene 3024.\nBunny, Tip-Tap e Carol le mangiano seguendo questo procedimento:\n\n![code](code.asy)\n\nQuante carote mangia Carol?\n\n- [ ] 0\n- [ ] 1\n- [ ] 2\n- [ ] 4\n- [x] 8\n\n> Si può notare che ad ogni passaggio della ripetizione, indipendentemente da quale mucchio\n> abbia più carote, Tip-Tap e Bunny in totale mangiano $10$ carote.\n> Visto che all'inizio ci sono $2024 + 3024 = 5048$ carote, i due conigli andranno avanti\n> a mangiare $10$ carote per volta fino a quando rimarranno $8$ carote tra i due mucchi.\n> A quel punto tutte le carote rimaste le mangerà Carol!\n>\n> **Approfondimento:** visto che la condizione che termina la ripetizione chiede solo che\n> una delle due pile contenga meno di $7$ carote, si potrebbe pensare che alla fine potrebbero\n> rimanere più carote per Carol, come $18$, $28$, $38$, eccetera. Questo però non è possibile!\n>\n> Infatti, si può notare che ogni volta Tip-Tap e Bunny mangiano più carote dalla pila più grande\n> e meno dalla pila più piccola. Questo porta a ridurre la differenza tra le due pile, finché\n> la differenza non è **al massimo 3**. Da quel punto in poi la differenza tra le due pila rimarrà\n> sempre al massimo 3, e quindi quando una pila arriva ad avere meno di $7$ carote (quindi al massimo\n> $6$), l'altra pila non può avere più di $6 + 3 = 9$ carote, per un totale di al massimo $9 + 6 = 15$\n> carote, che è meno di $18$.\n>\n> ![primarie](primarie.asy) ![secondarie](secondarie.asy)\n","Tip-Tap sistemando la sua soffitta si è imbattuto in un libro di programmazione molto vecchio. Nella prima pagina trova il seguente procedimento:\n\n![code](code.asy)\n\nPurtroppo la successiva pagina è rovinata perciò Tip-Tap non riesce a capire che numero verrà stampato alla fine, aiutalo tu! Quale numero viene stampato dall'ultimo blocco?\n\n- [ ] 0\n- [x] 2\n- [ ] 4\n- [ ] 6\n- [ ] 10\n\n> Il programma incrementa il contatore per ogni multiplo di $7$ fino a $42$,\n> e lo decrementa per ogni multiplo di $9$ fino a $42$.\n> Siccome i multipli di $7$ fino a $42$ sono $6$ e i multipli di $9$ fino a $42$ sono $4$,\n> il contatore alla fine varrà $6 - 4 = 2$.\n>\n> ![secondarie](secondarie.asy)\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=66\";\nimport shelf from \"./asy/shelf.asy?h=170\";\nimport trash from \"./asy/trash.asy?w=120\";\n\nconst balls = import.meta.glob(\"./asy/ball*.asy\", {\n eager: true,\n import: \"default\",\n query: { w: 40 },\n});\n\nexport default function Visualizer({ variables, state }) {\n function position(i) {\n const batch = state.N > 20 ? 9 : 4;\n const step = state.N > 20 ? 0.2 : 0.4;\n let p = [0, 3];\n if (i >= state.pos) {\n p = [0.35 * (i - state.pos) + 2.4, 1.4];\n } else if (state.placement[i] > 0) {\n const col = (state.placement[i] - 1) % batch;\n const row = (state.placement[i] - 1 - col) / batch;\n p = [col * step + 0.08, 1.27 - row * 0.4];\n } else {\n const row = -state.placement[i] - 1;\n const col = ((7 * row) % 11) - 5;\n p = [1.6 + col * (0.04 + row * 0.001), 2.7 - row * 0.06];\n }\n if (state.balls[i] % 2) p[1] -= 0.14;\n return p;\n }\n\n return (\n <>\n \n \n {range(state.N).map((i) => (\n \n ))}\n \n \n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s1.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nTip-Tap deve sistemare la sua vecchia collezione di $N$ palloni.\nNon avendo spazio per tutti, ha deciso che terrà **tutti i palloni da calcio** e i **palloni da basket gonfi**,\nmentre butterà i **palloni da basket sgonfi**.\n\nPer farlo, Tip-Tap può compiere le seguenti azioni:\n\n- `tieni`: metti via il prossimo pallone nello scaffale.\n- `butta`: butta via il prossimo pallone nel cestino.\n- `pallone da calcio`: condizione vera se il prossimo pallone è da calcio.\n- `pallone gonfio`: condizione vera se il prossimo pallone è gonfio.\n- `termina`: finisci di mettere a posto i palloni.\n\nScrivi un programma che consenta a Tip-Tap di sistemare tutti i suoi palloni!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> Secondo questo programma, per ognuno degli $N$ palloni che Tip-Tap deve sistemare, il protagonista\n> controlla se il prossimo pallone è da calcio o gonfio. Se sì lo tiene, altrimenti lo butta.\n>\n> ![primarie](asy/primarie.asy)\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=40\";\nimport carrot from \"./asy/carrot.asy?w=25\";\nimport hay from \"./asy/hay.asy?w=60\";\n\nexport default function Visualizer({ variables, state }) {\n return (\n <>\n \n {range(state.N).flatMap((i) => {\n return range(state.H[i]).map((h) => (\n \n ));\n })}\n \n \n \n {range(state.carrots.length + 2).map((i) => {\n let x = 5 + state.pos * 6;\n let y = -0.1;\n if (i < state.carrots.length) {\n const col = state.carrots[i] - 1;\n x = 3.5 + col * 6 + (i % 3) * 0.5;\n y = -0.3 + state.H[col] * 2.8;\n }\n return ;\n })}\n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s2.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nCarol sta organizzando una gara di salto nel fienile della fattoria Fibonacci!\n\nIl fienile ha $N$ **pile** di balle di fieno, l'$i$-esima delle quali composta da $H_i$ balle di fieno.\nLa gara partirà dall'ingresso del fienile a sinistra, prima di tutte le pile. Da lì i conigli dovranno\nsaltare sulla prima pila $i = 1$, e poi via via sulle successive, fino ad arrivare all'ultima pila e\nsaltare fuori dal fienile a destra.\n\nI conigli non fanno fatica a saltare in piano o in basso, ma saltare verso l'alto non è facile!\nQuindi, Carol vuole mettere una carota come premio su **ogni** pila di balle di fieno che richiede\nun salto **maggiore** di tutti i salti fatti prima per arrivare fino a lì. Inoltre, vuole mettere\nuna seconda carota sul salto più alto di tutti del percorso. Carol può fare queste cose:\n\n- `altezza della pila i`: guarda quante balle di fieno $H_i$ ci sono nella pila $i$-esima.\n- `aggiungi carota alla pila i`: aggiungi una carota in cima all'$i$-esima pila.\n- `termina`: smetti di aggiungere carote e fai partire la gara.\n\nAiuta Carol a preparare il fienile per la gara di salto!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> Questo programma, mette subito una carota sulla prima pila, che richiede il primo salto: il primo\n> salto è sempre maggiore degli _zero_ salti fatti prima! Il programma poi ricorda che il massimo\n> salto finora (_maxsalto_) è alto come la prima pila, ed è stato fatto nella pila $1$ (_dovesalto_).\n>\n> A questo punto, il programma itera su tutte le altre pile, dalla seconda alla fine.\n> Per ciascuna di queste, calcola quanto è grande il _salto_ che serve per arrivare all'$i$-esima pila.\n> Se questo salto è maggiore del massimo salto finora, allora va ad aggiungere una carota e lo\n> memorizza in _maxsalto_ e _dovesalto_.\n>\n> Una volta terminato di scorrere tutte le pile, Carol torna all'ultima pila a cui ha aggiunto una\n> carota (_dovesalto_) e ci aggiunge la seconda carota.\n>\n> ![primarie](asy/primarie.asy) ![secondarie](asy/secondarie.asy)\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport ball from \"./asy/ball.asy?w=35\";\nimport bunny from \"./asy/bunny.asy?w=66\";\nimport fibonacci from \"./asy/fibonacci.asy?h=100\";\nimport turing from \"./asy/turing.asy?h=100\";\n\nexport default function Visualizer({ variables, state }) {\n const teams = [fibonacci, turing];\n\n const offset = Math.max(...state.data.map((d) => d.presi.length)) * 5;\n\n return (\n <>\n \n \n \n {range(2).flatMap((i) => {\n const { H, scelta } = state.data[i];\n let offsetPreso = 0;\n let offsetScarto = 0;\n return range(H.length).map((k) => {\n let x;\n let y = [30, 7][i];\n\n if (k >= scelta.length) {\n x = (k - scelta.length) * 5 + offset + 10;\n } else if (scelta[k] > 0) {\n x = offsetPreso;\n offsetPreso += 5;\n } else {\n x = offsetScarto + offset + 10;\n offsetScarto += 5;\n y += [12, -10][i];\n }\n\n return (\n \n );\n });\n })}\n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s3.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nBunny deve selezionare due squadre di basket da **più giocatori possibile** per la sfida tra la fattoria Fibonacci e la fattoria Turing!\nPer fare una partita bilanciata, vuole che le due squadre siano composte da uno stesso numero di giocatori della stessa altezza, come in questo caso:\n\n![esempio](asy/fig.asy)\n\nBunny ha quindi messo in fila, in ordine crescente di altezza, i conigli di entrambe le fattorie.\nOra può fare queste operazioni:\n\n- `fine della fila Fibonacci`: condizione vera se la fila della fattoria Fibonacci è terminata.\n- `fine della fila Turing`: condizione vera se la fila della fattoria Turing è terminata.\n- `altezza primo della fila Fibonacci`: l'altezza del primo coniglio nella fila della fattoria Fibonacci.\n- `altezza primo della fila Turing`: l'altezza del primo coniglio nella fila della fattoria Turing.\n- `prendi dalla fila Fibonacci`: prendi il prossimo coniglio dalla fila della fattoria Fibonacci.\n- `prendi dalla fila Turing`: prendi il prossimo coniglio dalla fila della fattoria Turing.\n- `scarta dalla fila Fibonacci`: scarta il prossimo coniglio dalla fila della fattoria Fibonacci.\n- `scarta dalla fila Turing`: scarta il prossimo coniglio dalla fila della fattoria Turing.\n- `termina`: completa le squadre e inizia la partita a basket.\n\nAiuta Bunny a fare le squadre per la partita!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> Questo programma procede a selezionare i conigli fino a che una delle due file non si svuota.\n> Se i due primi della fila hanno la stessa altezza, è possibile prenderli entrambi per\n> ingrandire la squadra. Se non hanno la stessa altezza Bunny scarta il più basso dei due,\n> visto che non ha più speranze di trovare un avversario della stessa altezza nell'altra fila.\n>\n> ![primarie](asy/primarie.asy) ![secondarie](asy/secondarie.asy)\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny_left from \"./asy/bunny_left.asy?w=66\";\nimport bunny_right from \"./asy/bunny_right.asy?w=66\";\nimport stairs1 from \"./asy/stairs1.asy?w=80\";\nimport stairs2 from \"./asy/stairs2.asy?w=80\";\nimport stairs3 from \"./asy/stairs3.asy?w=80\";\n\nexport default function Visualizer({ variables, state }) {\n const stairs = [stairs1, stairs2, stairs3][state.M <= 6 ? 0 : state.M <= 14 ? 1 : 2];\n const bunnies = [bunny_left, bunny_right];\n const hf = 2;\n const wf = 3;\n\n const colors = [\n \"#4093b0\",\n \"#bf4eb4\",\n \"#44c966\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n \"#40af91\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n ];\n\n let bsplit = 0;\n for (let i = 0; i < state.pos[1]; ++i) {\n if (state.blocchi[i][0] === 1) bsplit += 1;\n }\n\n let bx = 3 - bsplit * (wf + 1);\n return (\n <>\n \n \n \n \n \n \n {range(state.M).map((i) => {\n let x = state.blocchi[i][0] * 8 + 7.5;\n let y = state.blocchi[i][1] * hf;\n if (state.blocchi[i][0] === 1) {\n if (i >= state.pos[1] && bx < 23) bx = 23.5;\n bx += wf + 1;\n x = bx;\n y = state.pos[3] * hf + 0.5;\n }\n return (\n \n {i + 1}\n \n );\n })}\n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s4.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nTip-Tap vuole costruire una nuova tettoia per la sua fattoria!\nCome prima cosa, ha bisogno di costruire le due colonne portanti:\nuna a sinistra alta $S$ centimetri, e una a destra alta $D$ centimetri.\n\nPer farlo intende impilare alcuni blocchetti presi da un set da costruzioni,\ncomposto da un singolo blocchetto per ogni altezza possibile tra un minimo\ndi 1 centimetro e un massimo di $M$ centimetri, e che in tutto arrivano\nesattamente all'altezza totale delle due colonne. Ora può fare queste operazioni:\n\n- `altezza colonna destra`: l'altezza corrente della colonna di destra.\n- `altezza colonna sinistra`: l'altezza corrente della colonna di sinistra.\n- `impila blocchetto i a destra`: aggiunge il blocchetto alto $i$ centimetri alla colonna di destra, se non l'ha già usato.\n- `impila blocchetto i a sinistra`: aggiunge il blocchetto alto $i$ centimetri alla colonna di sinistra, se non l'ha già usato.\n- `termina`: completa le colonne e costruisci la tettoia.\n\nAiuta Tip-Tap a completare la tettoia come previsto!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> Questo programma procede a selezionare i blocchetti dal più grande al più piccolo.\n> Per ogni blocchetto, prova prima se può metterlo nella colonna a sinistra.\n> Se non può, prova anche a destra prima di scartarlo definitivamente.\n>\n> **Approfondimento:** Si può dimostrare che questo procedimento riesce sempre a costruire\n> le colonne. Per mostrarlo, consideriamo cosa succede quando vogliamo piazzare il\n> blocchetto alto $M$. La più alta delle due colonne deve essere alta più della metà del\n> totale, ma $M$ è al massimo la metà del totale dei blocchetti da $1$ a $M$, quindi\n> posso sicuramente farlo stare in una delle due colonne. Mettendolo, abbiamo ridotto sia l'altezza\n> totale da costruire che l'altezza totale dei blocchetti di $M$, quindi è ancora vero che\n> l'altezza totale dei blocchetti è uguale all'altezza totale delle colonne da costruire.\n>\n> ![secondarie](asy/secondarie.asy)\n"],"names":["_jsx","_components","Equation","_jsxs","Image","balls","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","Visualizer","variables","state","position","i","batch","step","p","col","row","jsxs","Fragment","Canvas","jsx","Sprite","shelf","range","bunny","trash","Variables","customBlocks","initialBlocks","testcases","h","hay","Rectangle","carrot","x","y","teams","fibonacci","turing","offset","d","ball","H","scelta","offsetPreso","offsetScarto","k","stairs","stairs1","stairs2","stairs3","bunnies","bunny_left","bunny_right","hf","wf","colors","bsplit","bx"],"mappings":"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"} \ No newline at end of file diff --git a/assets/o/853bcfcb-question.js b/assets/o/3a818107-question.js similarity index 98% rename from assets/o/853bcfcb-question.js rename to assets/o/3a818107-question.js index 629c3c0..ddda38f 100644 --- a/assets/o/853bcfcb-question.js +++ b/assets/o/3a818107-question.js @@ -1,8 +1,8 @@ /*! For licenses information, see LICENSES.txt */ -import{j as e}from"../_virtual_quizms-routes-09086dad.js";import{n as t}from"../w/38364625-chunk-IFWY6GUU.js";import"../s/00dd80a9-react-dom.js";const u={src:new URL("../d/d29338b7-fig1.svg",import.meta.url).href,width:1069,height:355};function k(r){const i={p:"p",strong:"strong",...t(),...r.components},{Answer:s,AnswerGroup:c,Equation:n,Explanation:a,Image:o,SubProblem:l}=i;return s||d("Answer"),c||d("AnswerGroup"),n||d("Equation"),a||d("Explanation"),o||d("Image"),l||d("SubProblem"),e.jsxs(l,{children:[e.jsx(i.p,{children:"Bunny ha trovato nella libreria della fattoria Fibonacci tre pile di libri!"}),e.jsx(i.p,{children:e.jsx(o,{alt:"Libri",src:typeof u=="function"?u(_variant):u})}),e.jsxs(i.p,{children:["Bunny vorrebbe leggere due libri di giardinaggio qualunque, e sa che i libri su questo argomento sono quelli con una copertina gialla. Per prendere un libro Bunny deve spostare tutti i libri sopra di esso. Bunny è molto pigro, e quindi vuole riuscire a prendere ",e.jsx(i.strong,{children:"due qualsiasi"})," dei libri a cui è interessato spostando il minor numero di libri possibile!"]}),e.jsxs(i.p,{children:["Qual è il minimo numero di libri che Bunny deve spostare, ",e.jsx(i.strong,{children:"contando anche i libri di giardinaggio che prende"}),"?"]}),e.jsxs(c,{children:[e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`2`})})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`4`})})}),e.jsx(s,{correct:!0,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`5`})})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`6`})})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`7`})})})]}),e.jsx(a,{children:e.jsx(i.p,{children:"Bunny può prendere i due libri di giardinaggio nella seconda pila, per farlo deve spostare tutti i libri della pila, che sono 5."})})]})}function L(r={}){const{wrapper:i}={...t(),...r.components};return i?e.jsx(i,{...r,children:e.jsx(k,{...r})}):k(r)}function d(r,i){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const m={src:new URL("../c/cb9b5188-fig1a.svg",import.meta.url).href,width:200,height:200},g={src:new URL("../1/1de43e6c-fig1b.svg",import.meta.url).href,width:200,height:200},w={src:new URL("../c/c72bb64e-fig1c.svg",import.meta.url).href,width:200,height:200},f={src:new URL("../9/9dca0ead-fig2.svg",import.meta.url).href,width:657.8680203045685,height:450},b={src:new URL("../0/0c9ac883-fig3.svg",import.meta.url).href,width:864,height:591};function N(r){const i={p:"p",...t(),...r.components},{Answer:s,AnswerGroup:c,Explanation:n,Image:a,SubProblem:o}=i;return s||j("Answer"),c||j("AnswerGroup"),n||j("Explanation"),a||j("Image"),o||j("SubProblem"),e.jsxs(o,{children:[e.jsx(i.p,{children:"Amy, Bunny, Carol, Dippy ed Ester partecipano al campionato di tiro alla carota."}),e.jsx(i.p,{children:"Il campionato si svolge su un campo quadrato suddiviso in 36 quadratini, ogni quadratino può essere vuoto oppure avere uno specchio. Ad ogni coniglietto viene dato un puntatore laser: il laser attraversa i quadratini vuoti andando dritto e viene riflesso quando trova uno specchio come spiegato in queste immagini:"}),e.jsxs(i.p,{children:[e.jsx(a,{alt:"Specchio",src:typeof m=="function"?m(_variant):m}),` +import{j as e}from"../_virtual_quizms-routes-e5ffd91c.js";import{n as t}from"../w/c06ec230-chunk-IFWY6GUU.js";import"../s/00dd80a9-react-dom.js";const u={src:new URL("../d/d29338b7-fig1.svg",import.meta.url).href,width:1069,height:355};function k(r){const i={p:"p",strong:"strong",...t(),...r.components},{Answer:s,AnswerGroup:c,Equation:n,Explanation:a,Image:o,SubProblem:l}=i;return s||d("Answer"),c||d("AnswerGroup"),n||d("Equation"),a||d("Explanation"),o||d("Image"),l||d("SubProblem"),e.jsxs(l,{children:[e.jsx(i.p,{children:"Bunny ha trovato nella libreria della fattoria Fibonacci tre pile di libri!"}),e.jsx(i.p,{children:e.jsx(o,{alt:"Libri",src:typeof u=="function"?u(_variant):u})}),e.jsxs(i.p,{children:["Bunny vorrebbe leggere due libri di giardinaggio qualunque, e sa che i libri su questo argomento sono quelli con una copertina gialla. Per prendere un libro Bunny deve spostare tutti i libri sopra di esso. Bunny è molto pigro, e quindi vuole riuscire a prendere ",e.jsx(i.strong,{children:"due qualsiasi"})," dei libri a cui è interessato spostando il minor numero di libri possibile!"]}),e.jsxs(i.p,{children:["Qual è il minimo numero di libri che Bunny deve spostare, ",e.jsx(i.strong,{children:"contando anche i libri di giardinaggio che prende"}),"?"]}),e.jsxs(c,{children:[e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`2`})})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`4`})})}),e.jsx(s,{correct:!0,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`5`})})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`6`})})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:e.jsx(n,{children:String.raw`7`})})})]}),e.jsx(a,{children:e.jsx(i.p,{children:"Bunny può prendere i due libri di giardinaggio nella seconda pila, per farlo deve spostare tutti i libri della pila, che sono 5."})})]})}function L(r={}){const{wrapper:i}={...t(),...r.components};return i?e.jsx(i,{...r,children:e.jsx(k,{...r})}):k(r)}function d(r,i){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const m={src:new URL("../c/cb9b5188-fig1a.svg",import.meta.url).href,width:200,height:200},g={src:new URL("../1/1de43e6c-fig1b.svg",import.meta.url).href,width:200,height:200},w={src:new URL("../c/c72bb64e-fig1c.svg",import.meta.url).href,width:200,height:200},f={src:new URL("../9/9dca0ead-fig2.svg",import.meta.url).href,width:657.8680203045685,height:450},b={src:new URL("../0/0c9ac883-fig3.svg",import.meta.url).href,width:864,height:591};function N(r){const i={p:"p",...t(),...r.components},{Answer:s,AnswerGroup:c,Explanation:n,Image:a,SubProblem:o}=i;return s||j("Answer"),c||j("AnswerGroup"),n||j("Explanation"),a||j("Image"),o||j("SubProblem"),e.jsxs(o,{children:[e.jsx(i.p,{children:"Amy, Bunny, Carol, Dippy ed Ester partecipano al campionato di tiro alla carota."}),e.jsx(i.p,{children:"Il campionato si svolge su un campo quadrato suddiviso in 36 quadratini, ogni quadratino può essere vuoto oppure avere uno specchio. Ad ogni coniglietto viene dato un puntatore laser: il laser attraversa i quadratini vuoti andando dritto e viene riflesso quando trova uno specchio come spiegato in queste immagini:"}),e.jsxs(i.p,{children:[e.jsx(a,{alt:"Specchio",src:typeof m=="function"?m(_variant):m}),` `,e.jsx(a,{alt:"Specchio",src:typeof g=="function"?g(_variant):g}),` `,e.jsx(a,{alt:"Specchio",src:typeof w=="function"?w(_variant):w})]}),e.jsx(i.p,{children:"I cinque coniglietti si sono disposti sul campo del campionato e sono pronti ad accendere il loro laser, puntandolo diritto davanti a loro. Quale dei coniglietti riuscirà a colpire la carota e vincere il premio?"}),e.jsx(i.p,{children:e.jsx(a,{alt:"Stanza degli specchi",src:typeof f=="function"?f(_variant):f})}),e.jsxs(c,{children:[e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Amy"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Bunny"})}),e.jsx(s,{correct:!0,children:e.jsx(i.p,{children:"Carol"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Dippy"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Ester"})})]}),e.jsxs(n,{children:[e.jsx(i.p,{children:"Il laser di Carol riesce a colpire la carota, come si vede nella figura seguente."}),e.jsx(i.p,{children:e.jsx(a,{alt:"Soluzione",src:typeof b=="function"?b(_variant):b})})]})]})}function C(r={}){const{wrapper:i}={...t(),...r.components};return i?e.jsx(i,{...r,children:e.jsx(N,{...r})}):N(r)}function j(r,i){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const v={src:new URL("../4/464090d8-fig1.svg",import.meta.url).href,width:750,height:242.3076923076923};function E(r){const i={p:"p",...t(),...r.components},{Answer:s,AnswerGroup:c,Code:n,Explanation:a,Image:o,SubProblem:l}=i;return s||p("Answer"),c||p("AnswerGroup"),n||p("Code"),a||p("Explanation"),o||p("Image"),l||p("SubProblem"),e.jsxs(l,{children:[e.jsxs(i.p,{children:["Quali dei tre procedimenti P1, P2 e P3 consentono a Tip-Tap di prepararsi un piatto di carote? All’inizio piatto e carote sono nella dispensa, e alla fine devono trovarsi entrambi sul suo tavolo. I passaggi di ogni procedimento sono descritti da un’azione seguita tra parentesi dalla cosa su cui viene effettuata: ",e.jsx(n,{code:String.raw`azione(cosa)`,inline:!0,lang:"srs",className:"p-0 text-base"}),"."]}),e.jsx(i.p,{children:e.jsx(o,{alt:"programmi",src:typeof v=="function"?v(_variant):v})}),e.jsxs(c,{children:[e.jsx(s,{correct:!0,children:e.jsx(i.p,{children:"Solo P1"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Solo P2"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Solo P3"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"P1 e P2"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"P2 e P3"})})]}),e.jsx(a,{children:e.jsx(i.p,{children:"Il procedimento P1 consente a Tip-Tap di preparare un piatto di carote, portando prima il piatto e poi le carote dalla dispensa al tavolo. Il procedimento P2 non funziona, perché impone a Tip-Tap di posare il piatto prima di averlo preso. Il procedimento P3 non funziona, perché impone a Tip-Tap di prendere il piatto mentre si trova al tavolo, anche se il piatto si trova nella dispensa."})})]})}function $(r={}){const{wrapper:i}={...t(),...r.components};return i?e.jsx(i,{...r,children:e.jsx(E,{...r})}):E(r)}function p(r,i){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const _={src:new URL("../c/c16f8be5-flowchart.svg",import.meta.url).href,width:729,height:417};function q(r){const i={li:"li",p:"p",span:"span",strong:"strong",ul:"ul",...t(),...r.components},{Answer:s,AnswerGroup:c,Equation:n,Explanation:a,Image:o,SubProblem:l}=i;return s||h("Answer"),c||h("AnswerGroup"),n||h("Equation"),a||h("Explanation"),o||h("Image"),l||h("SubProblem"),e.jsxs(l,{children:[e.jsxs(i.p,{children:["Considera questo procedimento, rappresentato come diagramma di flusso. Il procedimento si riferisce a tre ",e.jsx(i.strong,{children:"variabili"})," numeriche, rappresentate dalle lettere ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`a`}),","]})," ",e.jsx(n,{children:String.raw`b`})," e ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c`}),"."]})]}),e.jsx(i.p,{children:e.jsx(o,{alt:"Diagramma di flusso",src:typeof _=="function"?_(_variant):_})}),e.jsx(i.p,{children:"Questo programma viene eseguito due volte:"}),e.jsxs(i.ul,{children:[` `,e.jsxs(i.li,{children:["La prima volta vengono assegnati alle variabili i valori ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`a = 7`}),","]})," ",e.jsx(n,{children:String.raw`b = 4`})," e ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c = 6`}),"."]})]}),` `,e.jsxs(i.li,{children:["La seconda volta vengono invece assegnati i valori ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`a = 5`}),","]})," ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`b = 7`}),","]})," ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c = 9`}),"."]})]}),` `]}),e.jsx(i.p,{children:"Quali numeri scrive il procedimento?"}),e.jsxs(c,{children:[e.jsx(s,{correct:!0,children:e.jsx(i.p,{children:"7 e 9"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"6 e 9"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"7 e 7"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"5 e 7"})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"4 e 5"})})]}),e.jsxs(a,{children:[e.jsxs(i.p,{children:["Il procedimento ogni volta scrive il numero più grande tra ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`a`}),","]})," ",e.jsx(n,{children:String.raw`b`})," e ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c`}),"."]})]}),e.jsxs(i.p,{children:["La prima volta che viene eseguito il programma, ",e.jsx(n,{children:String.raw`a`})," è più grande di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`b`}),","]})," si controlla quindi se ",e.jsx(n,{children:String.raw`a`})," è più grande di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c`}),"."]})," Essendo ",e.jsx(n,{children:String.raw`a`})," più grande di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c`}),","]})," il programma scrive il valore di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`a`}),","]})," che è ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`7`}),"."]})]}),e.jsxs(i.p,{children:["La seconda volta, ",e.jsx(n,{children:String.raw`a`})," è più piccolo di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`b`}),","]})," si controlla quindi se ",e.jsx(n,{children:String.raw`b`})," è più grande di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c`}),","]})," ma ",e.jsx(n,{children:String.raw`b`})," è più piccolo di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c`}),"."]})," Il programma scrive quindi il valore di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`c`}),","]})," che è ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`9`}),"."]})]})]})]})}function R(r={}){const{wrapper:i}={...t(),...r.components};return i?e.jsx(i,{...r,children:e.jsx(q,{...r})}):q(r)}function h(r,i){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const S={src:new URL("../9/915998ee-flowchart.svg",import.meta.url).href,width:371,height:752},y={src:new URL("../8/8b388c25-fig1.svg",import.meta.url).href,width:650,height:299.93678887484197};function P(r){const i={p:"p",span:"span",strong:"strong",...t(),...r.components},{Answer:s,AnswerGroup:c,Equation:n,Explanation:a,Image:o,SubProblem:l}=i;return s||x("Answer"),c||x("AnswerGroup"),n||x("Equation"),a||x("Explanation"),o||x("Image"),l||x("SubProblem"),e.jsxs(l,{children:[e.jsx(i.p,{children:"Considera il seguente procedimento, rappresentato come diagramma di flusso."}),e.jsxs(i.p,{children:["Il procedimento si riferisce ad un ",e.jsx(i.strong,{children:"lista"})," di numeri ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`a`}),","]})," di dimensione rappresentata dalla ",e.jsx(i.strong,{children:"variabile"})," ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`n`}),"."]})]}),e.jsx(i.p,{children:e.jsx(o,{alt:"Diagramma di flusso",src:typeof S=="function"?S(_variant):S})}),e.jsxs(i.p,{children:["Il procedimento viene eseguito tre volte, sempre con ",e.jsx(n,{children:String.raw`n = 9`})," e con i tre seguenti valori per la lista ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`a`}),":"]})]}),e.jsx(i.p,{children:e.jsx(o,{alt:"array",src:typeof y=="function"?y(_variant):y})}),e.jsxs(i.p,{children:["Per quali di questi valori di ",e.jsx(n,{children:String.raw`a`})," il procedimento scrive 1?"]}),e.jsxs(c,{children:[e.jsx(s,{correct:!0,children:e.jsx(i.p,{children:"Solo il valore 1."})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Solo il valore 2."})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Solo il valore 3."})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Tutti."})}),e.jsx(s,{correct:!1,children:e.jsx(i.p,{children:"Solo i valori 1 e 3."})})]}),e.jsxs(a,{children:[e.jsxs(i.p,{children:["Il procedimento scandisce la lista di numeri dall’inizio, andando a cercare una posizione che contiene uno zero seguito da un uno: se la trova scrive ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`1`}),","]})," altrimenti scrive ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`0`}),"."]})]}),e.jsxs(i.p,{children:["Nel primo caso il procedimento stampa ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`1`}),","]})," infatti quando ",e.jsx(n,{children:String.raw`p`})," è uguale a ",e.jsx(n,{children:String.raw`2`})," il valore in posizione ",e.jsx(n,{children:String.raw`p`})," di ",e.jsx(n,{children:String.raw`a`})," è ",e.jsx(n,{children:String.raw`0`})," e il valore in posizione ",e.jsx(n,{children:String.raw`p+1`})," è ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`1`}),"."]})]}),e.jsxs(i.p,{children:["Nel secondo e nel terzo caso invece il procedimento stampa ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`0`}),","]})," dato che non esiste nessun valore di ",e.jsx(n,{children:String.raw`p`})," tale che la posizione ",e.jsx(n,{children:String.raw`p`})," di ",e.jsx(n,{children:String.raw`a`})," sia uguale a ",e.jsx(n,{children:String.raw`0`})," e la posizione ",e.jsx(n,{children:String.raw`p+1`})," di ",e.jsx(n,{children:String.raw`a`})," sia uguale a ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`1`}),"."]})]})]})]})}function z(r={}){const{wrapper:i}={...t(),...r.components};return i?e.jsx(i,{...r,children:e.jsx(P,{...r})}):P(r)}function x(r,i){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}export{L as M,C as a,$ as b,R as c,z as d}; -//# sourceMappingURL=853bcfcb-question.js.map +//# sourceMappingURL=3a818107-question.js.map diff --git a/assets/o/853bcfcb-question.js.map b/assets/o/3a818107-question.js.map similarity index 99% rename from assets/o/853bcfcb-question.js.map rename to assets/o/3a818107-question.js.map index ad3cc66..6a9eda3 100644 --- a/assets/o/853bcfcb-question.js.map +++ b/assets/o/3a818107-question.js.map @@ -1 +1 @@ -{"version":3,"file":"853bcfcb-question.js","sources":["../../../src/fibonacci-primarie/2022-prima-fase/contest/m-2-libri/question.md","../../../src/fibonacci-primarie/2022-prima-fase/contest/m-4-specchi/question.md","../../../src/fibonacci-primarie/2022-prima-fase/contest/p-1-sequenza/question.md","../../../src/fibonacci-primarie/2022-prima-fase/contest/p-2-condizioni/question.md","../../../src/fibonacci-primarie/2022-prima-fase/contest/p-3-ciclo-lista/question.md"],"sourcesContent":["Bunny ha trovato nella libreria della fattoria Fibonacci tre pile di libri!\n\n![Libri](fig1.asy)\n\nBunny vorrebbe leggere due libri di giardinaggio qualunque, e sa che i libri su questo argomento sono quelli con una copertina gialla. Per prendere un libro Bunny deve spostare tutti i libri sopra di esso. Bunny è molto pigro, e quindi vuole riuscire a prendere **due qualsiasi** dei libri a cui è interessato spostando il minor numero di libri possibile!\n\nQual è il minimo numero di libri che Bunny deve spostare, **contando anche i libri di giardinaggio che prende**?\n\n- [ ] $2$\n- [ ] $4$\n- [x] $5$\n- [ ] $6$\n- [ ] $7$\n\n> Bunny può prendere i due libri di giardinaggio nella seconda pila, per farlo deve spostare tutti i libri della pila, che sono 5.\n","Amy, Bunny, Carol, Dippy ed Ester partecipano al campionato di tiro alla carota.\n\nIl campionato si svolge su un campo quadrato suddiviso in 36 quadratini, ogni quadratino può essere vuoto oppure avere uno specchio. Ad ogni coniglietto viene dato un puntatore laser: il laser attraversa i quadratini vuoti andando dritto e viene riflesso quando trova uno specchio come spiegato in queste immagini:\n\n![Specchio](fig1a.asy?h=200)\n![Specchio](fig1b.asy?h=200)\n![Specchio](fig1c.asy?h=200)\n\nI cinque coniglietti si sono disposti sul campo del campionato e sono pronti ad accendere il loro laser, puntandolo diritto davanti a loro. Quale dei coniglietti riuscirà a colpire la carota e vincere il premio?\n\n![Stanza degli specchi](fig2.asy?h=450)\n\n- [ ] Amy\n- [ ] Bunny\n- [x] Carol\n- [ ] Dippy\n- [ ] Ester\n\n> Il laser di Carol riesce a colpire la carota, come si vede nella figura seguente.\n>\n> ![Soluzione](fig3.asy)\n","Quali dei tre procedimenti P1, P2 e P3 consentono a Tip-Tap di prepararsi un piatto di carote? All'inizio piatto e carote sono nella dispensa, e alla fine devono trovarsi entrambi sul suo tavolo. I passaggi di ogni procedimento sono descritti da un'azione seguita tra parentesi dalla cosa su cui viene effettuata: `azione(cosa)`.\n\n![programmi](fig1.asy?w=750)\n\n- [x] Solo P1\n- [ ] Solo P2\n- [ ] Solo P3\n- [ ] P1 e P2\n- [ ] P2 e P3\n\n> Il procedimento P1 consente a Tip-Tap di preparare un piatto di carote, portando prima il piatto e poi le carote dalla dispensa al tavolo. Il procedimento P2 non funziona, perché impone a Tip-Tap di posare il piatto prima di averlo preso. Il procedimento P3 non funziona, perché impone a Tip-Tap di prendere il piatto mentre si trova al tavolo, anche se il piatto si trova nella dispensa.\n","Considera questo procedimento, rappresentato come diagramma di flusso. Il procedimento si riferisce a tre **variabili** numeriche, rappresentate dalle lettere $a$, $b$ e $c$.\n\n![Diagramma di flusso](flowchart.svg)\n\nQuesto programma viene eseguito due volte:\n\n- La prima volta vengono assegnati alle variabili i valori $a = 7$, $b = 4$ e $c = 6$.\n- La seconda volta vengono invece assegnati i valori $a = 5$, $b = 7$, $c = 9$.\n\nQuali numeri scrive il procedimento?\n\n- [x] 7 e 9\n- [ ] 6 e 9\n- [ ] 7 e 7\n- [ ] 5 e 7\n- [ ] 4 e 5\n\n> Il procedimento ogni volta scrive il numero più grande tra $a$, $b$ e $c$.\n>\n> La prima volta che viene eseguito il programma, $a$ è più grande di $b$, si controlla quindi se $a$ è più grande di $c$. Essendo $a$ più grande di $c$, il programma scrive il valore di $a$, che è $7$.\n>\n> La seconda volta, $a$ è più piccolo di $b$, si controlla quindi se $b$ è più grande di $c$, ma $b$ è più piccolo di $c$. Il programma scrive quindi il valore di $c$, che è $9$.\n","Considera il seguente procedimento, rappresentato come diagramma di flusso.\n\nIl procedimento si riferisce ad un **lista** di numeri $a$, di dimensione rappresentata dalla **variabile** $n$.\n\n![Diagramma di flusso](flowchart.svg)\n\nIl procedimento viene eseguito tre volte, sempre con $n = 9$ e con i tre seguenti valori per la lista $a$:\n\n![array](fig1.asy?w=650)\n\nPer quali di questi valori di $a$ il procedimento scrive 1?\n\n- [x] Solo il valore 1.\n- [ ] Solo il valore 2.\n- [ ] Solo il valore 3.\n- [ ] Tutti.\n- [ ] Solo i valori 1 e 3.\n\n> Il procedimento scandisce la lista di numeri dall'inizio, andando a cercare una posizione che contiene uno zero seguito da un uno: se la trova scrive $1$, altrimenti scrive $0$.\n>\n> Nel primo caso il procedimento stampa $1$, infatti quando $p$ è uguale a $2$ il valore in posizione $p$ di $a$ è $0$ e il valore in posizione $p+1$ è $1$.\n>\n> Nel secondo e nel terzo caso invece il procedimento stampa $0$, dato che non esiste nessun valore di $p$ tale che la posizione $p$ di $a$ sia uguale a $0$ e la posizione $p+1$ di $a$ sia uguale a $1$.\n"],"names":["_jsx","_components","Image","Code","_jsxs","Equation"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"3a818107-question.js","sources":["../../../src/fibonacci-primarie/2022-prima-fase/contest/m-2-libri/question.md","../../../src/fibonacci-primarie/2022-prima-fase/contest/m-4-specchi/question.md","../../../src/fibonacci-primarie/2022-prima-fase/contest/p-1-sequenza/question.md","../../../src/fibonacci-primarie/2022-prima-fase/contest/p-2-condizioni/question.md","../../../src/fibonacci-primarie/2022-prima-fase/contest/p-3-ciclo-lista/question.md"],"sourcesContent":["Bunny ha trovato nella libreria della fattoria Fibonacci tre pile di libri!\n\n![Libri](fig1.asy)\n\nBunny vorrebbe leggere due libri di giardinaggio qualunque, e sa che i libri su questo argomento sono quelli con una copertina gialla. Per prendere un libro Bunny deve spostare tutti i libri sopra di esso. Bunny è molto pigro, e quindi vuole riuscire a prendere **due qualsiasi** dei libri a cui è interessato spostando il minor numero di libri possibile!\n\nQual è il minimo numero di libri che Bunny deve spostare, **contando anche i libri di giardinaggio che prende**?\n\n- [ ] $2$\n- [ ] $4$\n- [x] $5$\n- [ ] $6$\n- [ ] $7$\n\n> Bunny può prendere i due libri di giardinaggio nella seconda pila, per farlo deve spostare tutti i libri della pila, che sono 5.\n","Amy, Bunny, Carol, Dippy ed Ester partecipano al campionato di tiro alla carota.\n\nIl campionato si svolge su un campo quadrato suddiviso in 36 quadratini, ogni quadratino può essere vuoto oppure avere uno specchio. Ad ogni coniglietto viene dato un puntatore laser: il laser attraversa i quadratini vuoti andando dritto e viene riflesso quando trova uno specchio come spiegato in queste immagini:\n\n![Specchio](fig1a.asy?h=200)\n![Specchio](fig1b.asy?h=200)\n![Specchio](fig1c.asy?h=200)\n\nI cinque coniglietti si sono disposti sul campo del campionato e sono pronti ad accendere il loro laser, puntandolo diritto davanti a loro. Quale dei coniglietti riuscirà a colpire la carota e vincere il premio?\n\n![Stanza degli specchi](fig2.asy?h=450)\n\n- [ ] Amy\n- [ ] Bunny\n- [x] Carol\n- [ ] Dippy\n- [ ] Ester\n\n> Il laser di Carol riesce a colpire la carota, come si vede nella figura seguente.\n>\n> ![Soluzione](fig3.asy)\n","Quali dei tre procedimenti P1, P2 e P3 consentono a Tip-Tap di prepararsi un piatto di carote? All'inizio piatto e carote sono nella dispensa, e alla fine devono trovarsi entrambi sul suo tavolo. I passaggi di ogni procedimento sono descritti da un'azione seguita tra parentesi dalla cosa su cui viene effettuata: `azione(cosa)`.\n\n![programmi](fig1.asy?w=750)\n\n- [x] Solo P1\n- [ ] Solo P2\n- [ ] Solo P3\n- [ ] P1 e P2\n- [ ] P2 e P3\n\n> Il procedimento P1 consente a Tip-Tap di preparare un piatto di carote, portando prima il piatto e poi le carote dalla dispensa al tavolo. Il procedimento P2 non funziona, perché impone a Tip-Tap di posare il piatto prima di averlo preso. Il procedimento P3 non funziona, perché impone a Tip-Tap di prendere il piatto mentre si trova al tavolo, anche se il piatto si trova nella dispensa.\n","Considera questo procedimento, rappresentato come diagramma di flusso. Il procedimento si riferisce a tre **variabili** numeriche, rappresentate dalle lettere $a$, $b$ e $c$.\n\n![Diagramma di flusso](flowchart.svg)\n\nQuesto programma viene eseguito due volte:\n\n- La prima volta vengono assegnati alle variabili i valori $a = 7$, $b = 4$ e $c = 6$.\n- La seconda volta vengono invece assegnati i valori $a = 5$, $b = 7$, $c = 9$.\n\nQuali numeri scrive il procedimento?\n\n- [x] 7 e 9\n- [ ] 6 e 9\n- [ ] 7 e 7\n- [ ] 5 e 7\n- [ ] 4 e 5\n\n> Il procedimento ogni volta scrive il numero più grande tra $a$, $b$ e $c$.\n>\n> La prima volta che viene eseguito il programma, $a$ è più grande di $b$, si controlla quindi se $a$ è più grande di $c$. Essendo $a$ più grande di $c$, il programma scrive il valore di $a$, che è $7$.\n>\n> La seconda volta, $a$ è più piccolo di $b$, si controlla quindi se $b$ è più grande di $c$, ma $b$ è più piccolo di $c$. Il programma scrive quindi il valore di $c$, che è $9$.\n","Considera il seguente procedimento, rappresentato come diagramma di flusso.\n\nIl procedimento si riferisce ad un **lista** di numeri $a$, di dimensione rappresentata dalla **variabile** $n$.\n\n![Diagramma di flusso](flowchart.svg)\n\nIl procedimento viene eseguito tre volte, sempre con $n = 9$ e con i tre seguenti valori per la lista $a$:\n\n![array](fig1.asy?w=650)\n\nPer quali di questi valori di $a$ il procedimento scrive 1?\n\n- [x] Solo il valore 1.\n- [ ] Solo il valore 2.\n- [ ] Solo il valore 3.\n- [ ] Tutti.\n- [ ] Solo i valori 1 e 3.\n\n> Il procedimento scandisce la lista di numeri dall'inizio, andando a cercare una posizione che contiene uno zero seguito da un uno: se la trova scrive $1$, altrimenti scrive $0$.\n>\n> Nel primo caso il procedimento stampa $1$, infatti quando $p$ è uguale a $2$ il valore in posizione $p$ di $a$ è $0$ e il valore in posizione $p+1$ è $1$.\n>\n> Nel secondo e nel terzo caso invece il procedimento stampa $0$, dato che non esiste nessun valore di $p$ tale che la posizione $p$ di $a$ sia uguale a $0$ e la posizione $p+1$ di $a$ sia uguale a $1$.\n"],"names":["_jsx","_components","Image","Code","_jsxs","Equation"],"mappings":"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"} \ No newline at end of file diff --git a/assets/o/5af6cf5f-question.js.map b/assets/o/5af6cf5f-question.js.map deleted file mode 100644 index a9bdbf1..0000000 --- a/assets/o/5af6cf5f-question.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"5af6cf5f-question.js","sources":["../../../src/fibonacci-primarie/2024-prima-fase/contest/A11-connetti-stati/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/P6-distribuisci-carote/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/A4-sottrai-potenze/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/a-20-due-carote/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/a-21-ordina-conigli/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/a-22-pesa-la-frutta/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/p-5-percorso-ad-ostacoli/question.md"],"sourcesContent":["import variants from \"./variants.py\";\n\n\nA _Carotandia_ ci sono $\\js{n}$ paesi, e in ognuno di essi ci sono $\\js{s}$ fattorie.\nTip-Tap vuole costruire delle strade che colleghino tutte le fattorie.\nUna strada tra due fattorie dello stesso paese costa $1$ carota, mentre una strada tra fattorie di paesi diversi costa $2$ carote.\nPer esempio, se ci fossero tre paesi con due fattorie ciascuno, si potrebbero collegare le fattorie come in figura. Questo piano costa due carote per ognuna delle quattro strade tratteggiate, più una carota per ciascuna delle altre due strade, per un totale di dieci carote:\n\n![esempio1](ex1.svg)\n\nIn questo esempio, ci sono anche altri piani validi, ciascuno con un costo di sette carote o più.\nInvece, a _Carotandia_ ci sono $\\js{n}$ paesi con $\\js{s}$ fattorie:\n\n![immagine](immagine.asy?v=variants.py)\n\nQual è il minimo numero di carote che Tip-Tap deve spendere affinché da ogni fattoria si possa raggiungere ogni altra fattoria, eventualmente percorrendo più strade? \n\n- [x] $\\js{ans1}$\n- [ ] $\\js{wrong1[0]}$\n- [ ] $\\js{wrong1[1]}$\n- [ ] $\\js{wrong1[2]}$\n- [ ] $\\js{wrong1[3]}$\n\n> Dato che le strade all'interno dello stesso paese costano poco, conviene intanto collegare le fattorie all'interno dello stesso paese. Per ogni paese servono $\\js{s-1}$ fattorie. Ad esempio, colleghiamo la fattoria $1$ con la fattoria $2$, la fattoria $2$ con la fattoria $3$, ..., la fattoria $\\js{s-1}$ con la fattoria $\\js{s}$). Quindi il costo parziale è di $\\js{n*(s-1)}$ carote.\n> Adesso dobbiamo anche connettere i paesi tra di loro, e servono altre $\\js{n-1}$ strade di costo $2$ carote. Ad esempio, colleghiamo l'ultima fattoria di ogni paese (tranne l'ultimo) con la prima di quello successivo. Il costo totale è $\\js{2*(n-1) + n*(s-1)}$ carote.\n>\n> ![4.1 secondarie](4-1-secondarie.asy)\n\n---\n\nMettiamo ora che le strade che Tip-Tap costruisce siano a **senso unico**, come in questo esempio:\n\n![esempio1](ex2.svg)\n\nQuesto piano costa otto carote ($3 \\times 2 + 2 \\times 1$), e consente di poter andare da ogni fattoria ad ogni altra rispettando i sensi unici.\nCome prima, ci sono anche altri piani validi, ciascuno con un costo di sei carote o più.\nRicordando che a _Carotandia_ ci sono $\\js{n}$ paesi con $\\js{s}$ fattorie:\n\n![immagine](immagine.asy?v=variants.py)\n\nQual è il minimo numero di carote che Tip-Tap deve spendere affinché da ogni fattoria si possa raggiungere ogni altra fattoria, eventualmente percorrendo più strade, ma rispettando sempre i sensi unici?\n\n- [x] $\\js{ans2}$\n- [ ] $\\js{wrong2[0]}$\n- [ ] $\\js{wrong2[1]}$\n- [ ] $\\js{wrong2[2]}$\n- [ ] $\\js{wrong2[3]}$\n\n> Nel problema precedente, abbiamo formato una linea composta da tutte le $\\js{n*s}$ città. Assegniamo lo stesso verso a tutte le strade della linea, in modo che dalla prima città si possa raggiungere l'ultima. Ma in questo modo dall'ultima città non se ne può raggiungere nessun'altra. Per rimediare, creiamo una nuova strada che collega l'ultima città alla prima, pagando un costo aggiuntivo di $2$ carote.\n>\n> ![4.2 secondarie](4-2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nCarol ha $\\js{k1}$ carote da distribuire agli altri conigli, che sono in fila ad aspettare.\n\n![I coniglietti in fila](fila.asy?v=variants.py)\n\nPer ogni coniglio in fila, da sinistra a destra, Carol decide quante carote dargli in base alla seguente regola:\n\n![Algoritmo](code.asy)\n\nQuante carote gli rimarranno alla fine, se all'inizio ne ha $\\js{k1}$?\n\n- [x] $\\js{ans1}$\n- [ ] $\\js{wrong1[0]}$\n- [ ] $\\js{wrong1[1]}$\n- [ ] $\\js{wrong1[2]}$\n- [ ] $\\js{wrong1[3]}$\n\n> Se incontra un coniglio adulto, Carol rimane con metà delle carote che aveva, arrotondate per difetto. Altrimenti, Carol perde una carota.\n> Ripetendo l'operazione per ogni coniglio presente, si arriva alla soluzione.\n>\n> ![5.1 primarie](5-1-primarie.asy)\n> ![5.1 secondarie](5-1-secondarie.asy)\n\n---\n\nSe alla fine della distribuzione Carol volesse rimanere con almeno $\\js{k2}$ carote, quante ne deve avere almeno all'inizio?\n\n- [x] $\\js{ans2}$\n- [ ] $\\js{wrong2[0]}$\n- [ ] $\\js{wrong2[1]}$\n- [ ] $\\js{wrong2[2]}$\n- [ ] $\\js{wrong2[3]}$\n\n> Possiamo ripercorrere il numero di carote di Carol al contrario (dalla fine all'inizio).\n> - Se l'ultimo coniglio è bambino, prima di incontrarlo Carol aveva una carota in più.\n> - Se l'ultimo coniglio è adulto, prima di incontrarlo Carol aveva il doppio delle carote, oppure il doppio delle carote più una. Dato che vogliamo minimizzare il numero di carote iniziali, conviene dare a Carol il doppio delle carote (e mai il doppio delle carote più una).\n>\n> ![5.2 primarie](5-2-primarie.asy)\n> ![5.2 secondarie](5-2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nPer esercitarsi nelle sottrazioni, Tip-Tap e Allie hanno inventato un gioco. Hanno scritto il numero $\\js{a1}$ sulla lavagna e devono renderlo uguale a $0$ con una sequenza, la più breve possibile, di operazioni di questo tipo:\n- diminuire di ${1}$ una qualsiasi cifra del numero;\n- sottrarre $\\js{b1}$ al numero (se il numero è almeno $\\js{b1}$).\n\nAd ogni operazione, dopo aver calcolato il risultato, lo sostituiscono al numero scritto sulla lavagna.\nQual è il numero minimo di operazioni che devono fare per rendere il numero pari a $0$, partendo da $\\js{a1}$?\n\n![Lavagna](lavagna1.asy?v=variants.py)\n\n- [x] $\\js{ans1}$\n- [ ] $\\js{wrong1[0]}$\n- [ ] $\\js{wrong1[1]}$\n- [ ] $\\js{wrong1[2]}$\n- [ ] $\\js{wrong1[3]}$\n\n> Per la proprietà commutativa, l'ordine delle sottrazioni non importa, quindi possiamo ipotizzare di fare prima le operazioni di sottrarre $\\js{b1}$, e poi le operazioni per diminuire le cifre di $1$.\n> Proviamo a sottrarre $\\js{b1}$ un po' di volte ($0, 1, 2, \\ldots$), e il numero di mosse rimanenti è la somma delle cifre del numero sulla lavagna.\n> Sottraendo $\\js{b1}$ il numero giusto di volte, la somma delle cifre diventa particolarmente piccola.\n>\n> ![4.1 primarie](4-1-primarie.asy)\n> ![3.1 secondarie](3-1-secondarie.asy)\n\n---\n\nTip-Tap e Allie ora hanno scritto un nuovo numero $\\js{a2}$ sulla lavagna, e le operazioni consentite sono:\n- diminuire di ${1}$ una qualsiasi cifra del numero;\n- sottrarre $\\js{b2}$ al numero (se il numero è almeno $\\js{b2}$).\n\nQual è il numero minimo di operazioni che devono fare per rendere il numero pari a $0$, partendo da $\\js{a2}$?\n\n![Lavagna](lavagna2.asy?v=variants.py)\n\n- [x] $\\js{ans2}$\n- [ ] $\\js{wrong2[0]}$\n- [ ] $\\js{wrong2[1]}$\n- [ ] $\\js{wrong2[2]}$\n- [ ] $\\js{wrong2[3]}$\n\n> Qui $\\js{a2}$ è grande, quindi provare a sottrarre $\\js{b2}$ finché il numero sulla lavagna non è negativo è troppo lungo.\n> Ma possiamo notare che, se troviamo una sequenza con risposta $\\js{ans2}$, non ha senso sottrarre $\\js{b2}$ più di $\\js{ans2}$ volte, e questo accorcia i conti.\n>\n> ![4.2 primarie](4-2-primarie.asy)\n> ![3.2 secondarie](3-2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nBunny e Carol pranzano insieme tutti i giorni, portando ciascuno una carota dalla propria scorta personale.\nNella scorta di Bunny ci sono $\\js{b}$ carote mentre nella scorta di Carol ce ne sono $\\js{c}$.\nDopo quanti giorni uno dei due avrà finito le carote della propria scorta?\n\n![image](fig.asy)\n\n- [x] $\\js{correct1}$\n- [ ] $\\js{wrong1[0]}$\n- [ ] $\\js{wrong1[1]}$\n- [ ] $\\js{wrong1[2]}$\n- [ ] $\\js{wrong1[3]}$\n\n> Bunny impiega $\\js{b}$ giorni per finire le proprie carote, mentre Carol ne impiega $\\js{c}$.\n> Quindi il primo coniglio che finisce le proprie carote è quello che ne ha di meno: dopo $\\js{c}$ giorni, avrà finito le carote.\n>\n> ![1.1 primarie](1-1-primarie.asy)\n\n---\n\nSe invece Carol fosse dispettosa e ogni sera di nascosto rubasse una carota dalla scorta Bunny per metterla nella sua, dopo quanti giorni uno dei due sarà rimasto senza carote nella propria scorta?\n\n- [x] $\\js{correct2}$\n- [ ] $\\js{wrong2[0]}$\n- [ ] $\\js{wrong2[1]}$\n- [ ] $\\js{wrong2[2]}$\n- [ ] $\\js{wrong2[3]}$\n\n> Bunny mangia una carota al giorno, mentre Carol mangia una carota di Bunny al giorno.\n> Quindi ogni giorno Bunny perde $2$ carote, mentre Carol non ne perde nessuna.\n> Quindi la risposta è la metà del numero $\\js{b}$ di carote iniziali di Bunny, cioè $\\js{b/2}$.\n>\n> ![1.2 primarie](1-2-primarie.asy)\n","Durante la ricreazione, gli amici di Bunny si sono disposti in fila:\n\n![immage](fig.asy)\n\nPer gioco, Bunny deve ordinarli dal più basso al più alto (le altezze degli amici sono scritte sulle loro magliette).\nPuò farlo con degli **scambi** di posto tra coppie di suoi amici. Quali di questi **scambi** può fare Bunny per riordinarli?\n\n- [x] scambiare l'amico alto $4$ con l'amico alto $1$ e poi scambiare l'amico alto $6$ con l'amico alto $3$\n- [ ] scambiare l'amico alto $4$ con l'amico alto $2$ e poi scambiare l'amico alto $6$ con l'amico alto $1$\n- [ ] Bunny non può ordinarli solo con scambi\n- [ ] scambiare l'amico alto $6$ con l'amico alto $3$\n- [ ] scambiare l'amico alto $6$ con l'amico alto $3$ e poi scambiare l'amico alto $4$ con l'amico alto $2$\n\n> Il coniglio alto $1$ è in quarta posizione e quello alto $4$ è in prima posizione, quindi vanno scambiati.\n> Inoltre, il coniglio alto $3$ è in sesta posizione e quello alto $6$ è in terza posizione, quindi vanno scambiati.\n> Non servono altri scambi!\n>\n> ![2.1 primarie](2-1-primarie.asy)\n> ![1.1 secondarie](1-1-secondarie.asy)\n\n---\n\nPer rendere il gioco più difficile, ora Bunny può solo fare **scambi di vicini**, cioè può scambiare di posto due suoi amici solo se sono uno di fianco all'altro.\nQuanti **scambi di vicini** deve fare per ordinare i suoi amici?\n\n- [ ] $6$\n- [ ] $2$\n- [x] $8$\n- [ ] $12$\n- [ ] $11$\n\n> Conviene fare solo scambi tra conigli vicini in ordine sbagliato, cioè conviene fare uno scambio solo se il coniglio a sinistra è più alto di quello a destra. Ad esempio,\n>\n> - All'inizio, l'ordine è $[4, 2, 6, 1, 5, 3]$.\n> - Dopo il primo scambio, l'ordine è $[2, 4, 6, 1, 5, 3]$.\n> - Dopo il secondo scambio, l'ordine è $[2, 4, 1, 6, 5, 3]$.\n> - Dopo il terzo scambio, l'ordine è $[2, 1, 4, 6, 5, 3]$.\n> - Dopo il quarto scambio, l'ordine è $[1, 2, 4, 6, 5, 3]$.\n> - Dopo il quinto scambio, l'ordine è $[1, 2, 4, 5, 6, 3]$.\n> - Dopo il sesto scambio, l'ordine è $[1, 2, 4, 5, 3, 6]$.\n> - Dopo il settimo scambio, l'ordine è $[1, 2, 4, 3, 5, 6]$.\n> - Dopo l'ottavo scambio, l'ordine è $[1, 2, 3, 4, 5, 6]$.\n>\n> Anche facendo altri scambi, la risposta non cambia, purché non si facciano scambi tra conigli vicini che sono già nell'ordine giusto.\n> Non è una coincidenza: all'inizio, ci sono $8$ coppie di conigli (non necessariamente vicini) tali che il più alto dei due è più a sinistra di quello in basso, e ad ogni scambio il numero di queste coppie diminuisce di $1$.\n>\n> ![2.2 primarie](2-2-primarie.asy)\n> ![1.2 secondarie](1-2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nCarol ha comprato una nuova bilancia. Ha quindi confrontato alcuni frutti e delle carote come vedi in figura:\n\n
\n![scale1](scale1.asy?v=variants.py)\n![scale2](scale2.asy?v=variants.py)\n
\n\n
\n![scale1](scale1.asy?v=variants.py)\n\n![scale2](scale2.asy?v=variants.py)\n
\n\nin entrambe le prove le bilance sono in *equilibrio*, cioè la somma dei pesi degli oggetti sul piatto a sinistra è uguale alla somma dei pesi degli oggetti sul piatto a destra.\nQuali tra queste immagini riporta gli oggetti in ordine dal più leggero al più pesante?\n\n
\n- [ ] ![A](A.asy?v=variants.py&s=0.6)\n- [ ] ![B](B.asy?v=variants.py&s=0.6)\n- [ ] ![C](C.asy?v=variants.py&s=0.6)\n- [ ] ![D](D.asy?v=variants.py&s=0.6)\n- [x] ![E](E.asy?v=variants.py&s=0.6)\n
\n\n> Togliendo due carote da entrambi i piatti della prima bilancia Carol riesce a capire che il peso dei due frutti rimanenti sul piatto sinistro\n> della prima bilancia è uguale a quello di una carota. Sapendo questo, capisce quindi che il peso del piatto sinistro della seconda bilancia è di \n> due carote ed è uguale al peso del frutto sul piatto destro. I frutti che in due pesano come una carota sono i più leggeri, i frutti che\n> pesano come due carote sono i più pesanti e le carote stanno nel mezzo.\n>\n> ![3.1 primarie](3-1-primarie.asy)\n> ![2.1 secondarie](2-1-secondarie.asy)\n\n---\n\nDopo le pesate di prima, che riportiamo qui per comodità:\n\n
\n![scale1](scale1.asy?v=variants.py)\n![scale2](scale2.asy?v=variants.py)\n
\n\n
\n![scale1](scale1.asy?v=variants.py)\n\n![scale2](scale2.asy?v=variants.py)\n
\n\nCarol compra altri frutti da pesare e ottiene il risultato che vedi nella prima bilancia qui sotto:\n\n
\n![scale3](scale3.asy?v=variants.py)\n![scale4](scale4.asy?v=variants.py)\n
\n\n
\n![scale3](scale3.asy?v=variants.py)\n\n![scale4](scale4.asy?v=variants.py)\n
\n\n
\nQuante carote deve mettere Carol al posto del punto interrogativo ($\\texttt{?}$) per equilibrare l'ultima bilancia?\n\n- [x] $4$\n- [ ] $6$\n- [ ] $8$\n- [ ] $7$\n- [ ] $2$\n
\n\n> Con lo stesso ragionamento di prima si capisce che la somma dei pesi dei nuovi frutti è di una carota, perchè il frutto sulla destra della \n> bilancia ne pesa due e una carota è già presente a sinistra. Di conseguenza per mettere la bilancia in equilibrio sul piatto al posto del punto di domanda andranno 4 carote:\n> due per i nuovi frutti, e due per il vecchio frutto.\n>\n> ![3.2 primarie](3-2-primarie.asy)\n> ![2.2 secondarie](2-2-secondarie.asy)\n","Bunny si trova sulla casella $1$ di questo percorso ad ostacoli:\n\n![fig](fig.asy)\n\nIl suo obbiettivo è **raggiungere o superare** la casella numero $10$ dove c'è la bandierina del traguardo.\nBunny può fare le seguenti due azioni:\n+ **avanza**: Bunny avanza alla casella successiva;\n+ **salta**: Bunny supera la casella successiva con un salto, atterrando su quella dopo.\n\nPer esempio se Bunny compie un'azione **salta** quando è sulla casella $1$, supera la casella $2$ e atterra sulla casella $3$.\n**ATTENZIONE:** sul percorso ci sono delle *grandi rocce*! Bunny non può passare su una casella occupata da una *grande roccia*, altrimenti cadrebbe, ma può superarla grazie ad un'azione **salta**.\nSe Bunny segue il procedimento qui sotto, riesce a raggiungere la bandierina?\n\n
\n![code](code.asy)\n
\n
\n![code](code.asy?s=0.5)\n
\n\n- [ ] si, raggiunge la bandierina\n- [ ] no, perchè cade sulla *grande roccia* in posizione $4$\n- [x] no, perchè si ferma sulla casella $9$\n- [ ] no, perchè cade sulla *grande roccia* in posizione $8$\n- [ ] si, raggiunge e supera la bandierina arrivando sulla casella $13$\n\n> Ripercorriamo il percorso di Bunny:\n>\n> - Casella iniziale: $1$.\n> - Prima ripetizione:\n> - `avanza`: nuova casella $2$;\n> - `avanza`: nuova casella $3$;\n> - `salta`: nuova casella $5$;\n> - Seconda ripetizione:\n> - `avanza`: nuova casella $6$;\n> - `avanza`: nuova casella $7$;\n> - `salta`: nuova casella $9$.\n>\n> Quindi Bunny si ferma nella posizione $9$, senza raggiungere la bandierina.\n>\n> ![6.1 primarie](6-1-primarie.asy)\n> ![6.1 secondarie](6-1-secondarie.asy)\n\n---\n\nRicordiamo il percorso ad ostacoli ed il procedimento seguito da Bunny:\n\n![fig](fig.asy)\n\n
\n![code](code.asy)\n
\n
\n![code](code.asy?s=0.5)\n
\n\nBunny si chiede se cambiando punto di partenza riuscirebbe a raggiungere o superare la bandierina. Per quali di questi punti di partenza Bunny raggiunge la bandierina seguendo il suo procedimento?\n\n\n- [ ] la casella $2$\n- [x] la casella $5$\n- [ ] la casella $7$\n- [ ] la casella $6$\n- [ ] non ci sono punti di partenza da cui raggiunge la bandierina\n\n> Bunny vince partendo dalla casella $5$, in questo modo:\n>\n> - Casella iniziale: $5$.\n> - Prima ripetizione:\n> - `avanza`: nuova casella $6$;\n> - `avanza`: nuova casella $7$;\n> - `salta`: nuova casella $9$.\n> - Seconda ripetizione:\n> - `avanza`: nuova casella $10$, e Bunny vince.\n>\n> Se invece Bunny parte dalla casella $2$, si ferma sulla roccia in posizione $4$, e se parte dalla casella $6$ o dalla casella $7$ si ferma sulla roccia in posizione $8$.\n>\n> ![6.2 primarie](6-2-primarie.asy)\n> ![6.2 secondarie](6-2-secondarie.asy)\n"],"names":["_jsx","_components","Equation","_jsxs","Image"],"mappings":"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"} \ No newline at end of file diff --git a/assets/o/5af6cf5f-question.js b/assets/o/93ddc3ae-question.js similarity index 76% rename from assets/o/5af6cf5f-question.js rename to assets/o/93ddc3ae-question.js index e526256..9264c4b 100644 --- a/assets/o/5af6cf5f-question.js +++ b/assets/o/93ddc3ae-question.js @@ -1,43 +1,43 @@ /*! For licenses information, see LICENSES.txt */ -import{_ as C}from"../s/00dd80a9-react-dom.js";import{j as e}from"../_virtual_quizms-routes-09086dad.js";import{n as w}from"../w/38364625-chunk-IFWY6GUU.js";const B={src:new URL("../7/7df21b95-ex1.svg",import.meta.url).href,width:1067,height:489},Le={src:new URL("../4/4a14d862-immagine.svg",import.meta.url).href,width:1415,height:493},Ue={src:new URL("../e/e61d1a68-immagine.svg",import.meta.url).href,width:1415,height:493},ke={src:new URL("../2/232a02d5-immagine.svg",import.meta.url).href,width:1749,height:495},ze={src:new URL("../3/34852166-immagine.svg",import.meta.url).href,width:1749,height:495},Ee={src:new URL("../5/5a800e0d-immagine.svg",import.meta.url).href,width:1087,height:492},Ne=JSON.parse('[{"n":4,"s":4,"ans1":18,"wrong1":[20,16,22,8],"ans2":20,"wrong2":[18,16,22,28]},{"n":4,"s":5,"ans1":22,"wrong1":[24,20,26,9],"ans2":24,"wrong2":[22,20,26,36]},{"n":5,"s":3,"ans1":18,"wrong1":[20,15,22,8],"ans2":20,"wrong2":[18,15,22,23]},{"n":5,"s":4,"ans1":23,"wrong1":[25,20,27,9],"ans2":25,"wrong2":[23,20,27,32]},{"n":3,"s":5,"ans1":16,"wrong1":[18,15,20,8],"ans2":18,"wrong2":[16,15,20,31]}]'),Ae=[Le,Ue,ke,ze,Ee];function S(a){return Ae[a]}const D={src:new URL("../3/34a8e714-4-1-secondarie.svg",import.meta.url).href,width:305,height:248},P={src:new URL("../8/801a16ed-ex2.svg",import.meta.url).href,width:739,height:497},V={src:new URL("../7/7debb0ca-4-2-secondarie.svg",import.meta.url).href,width:305,height:248};function _e(a){const i=Ne,[n,f]=C.useState(0);for(const x of Object.keys(i[n]))if(/^[^a-z]./.test(x))throw new Error("Invalid variable name `"+x+"` in file `A11-connetti-stati/question.md`: variable names must start with a lowercase letter.");if(!("n"in i[n]))throw new Error("Variable `n` is not defined in file `A11-connetti-stati/question.md`.");if(!("s"in i[n]))throw new Error("Variable `s` is not defined in file `A11-connetti-stati/question.md`.");if(!("ans1"in i[n]))throw new Error("Variable `ans1` is not defined in file `A11-connetti-stati/question.md`.");if(!("wrong1"in i[n]))throw new Error("Variable `wrong1` is not defined in file `A11-connetti-stati/question.md`.");if(!("ans2"in i[n]))throw new Error("Variable `ans2` is not defined in file `A11-connetti-stati/question.md`.");if(!("wrong2"in i[n]))throw new Error("Variable `wrong2` is not defined in file `A11-connetti-stati/question.md`.");const{n:r,s:o,ans1:g,wrong1:p,ans2:m,wrong2:h}=i[n],s={em:"em",hr:"hr",p:"p",span:"span",strong:"strong",...w(),...a.components},{Answer:d,AnswerGroup:l,Equation:t,Explanation:u,Image:c,SubProblem:j}=s;return d||$("Answer"),l||$("AnswerGroup"),t||$("Equation"),u||$("Explanation"),c||$("Image"),j||$("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(j,{subId:1,children:[e.jsxs(s.p,{children:["A ",e.jsx(s.em,{children:"Carotandia"})," ci sono ",e.jsx(t,{children:String.raw`${r}`})," paesi, e in ognuno di essi ci sono ",e.jsx(t,{children:String.raw`${o}`}),` fattorie. +import{_ as C}from"../s/00dd80a9-react-dom.js";import{j as e}from"../_virtual_quizms-routes-e5ffd91c.js";import{n as w}from"../w/c06ec230-chunk-IFWY6GUU.js";const B={src:new URL("../7/7df21b95-ex1.svg",import.meta.url).href,width:1067,height:489},Le={src:new URL("../4/4a14d862-immagine.svg",import.meta.url).href,width:1415,height:493},Ue={src:new URL("../e/e61d1a68-immagine.svg",import.meta.url).href,width:1415,height:493},ke={src:new URL("../2/232a02d5-immagine.svg",import.meta.url).href,width:1749,height:495},ze={src:new URL("../3/34852166-immagine.svg",import.meta.url).href,width:1749,height:495},Ee={src:new URL("../5/5a800e0d-immagine.svg",import.meta.url).href,width:1087,height:492},Ne=JSON.parse('[{"n":4,"s":4,"ans1":18,"wrong1":[20,16,22,8],"ans2":20,"wrong2":[18,16,22,28]},{"n":4,"s":5,"ans1":22,"wrong1":[24,20,26,9],"ans2":24,"wrong2":[22,20,26,36]},{"n":5,"s":3,"ans1":18,"wrong1":[20,15,22,8],"ans2":20,"wrong2":[18,15,22,23]},{"n":5,"s":4,"ans1":23,"wrong1":[25,20,27,9],"ans2":25,"wrong2":[23,20,27,32]},{"n":3,"s":5,"ans1":16,"wrong1":[18,15,20,8],"ans2":18,"wrong2":[16,15,20,31]}]'),Ae=[Le,Ue,ke,ze,Ee];function S(a){return Ae[a]}const D={src:new URL("../3/34a8e714-4-1-secondarie.svg",import.meta.url).href,width:305,height:248},P={src:new URL("../8/801a16ed-ex2.svg",import.meta.url).href,width:739,height:497},V={src:new URL("../7/7debb0ca-4-2-secondarie.svg",import.meta.url).href,width:305,height:248};function _e(a){const i=Ne,[n,f]=C.useState(0);for(const x of Object.keys(i[n]))if(/^[^a-z]./.test(x))throw new Error("Invalid variable name `"+x+"` in file `A11-connetti-stati/question.md`: variable names must start with a lowercase letter.");if(!("n"in i[n]))throw new Error("Variable `n` is not defined in file `A11-connetti-stati/question.md`.");if(!("s"in i[n]))throw new Error("Variable `s` is not defined in file `A11-connetti-stati/question.md`.");if(!("ans1"in i[n]))throw new Error("Variable `ans1` is not defined in file `A11-connetti-stati/question.md`.");if(!("wrong1"in i[n]))throw new Error("Variable `wrong1` is not defined in file `A11-connetti-stati/question.md`.");if(!("ans2"in i[n]))throw new Error("Variable `ans2` is not defined in file `A11-connetti-stati/question.md`.");if(!("wrong2"in i[n]))throw new Error("Variable `wrong2` is not defined in file `A11-connetti-stati/question.md`.");const{n:r,s:o,ans1:g,wrong1:p,ans2:m,wrong2:h}=i[n],s={em:"em",hr:"hr",p:"p",span:"span",strong:"strong",...w(),...a.components},{Answer:d,AnswerGroup:l,Equation:t,Explanation:u,Image:c,SubProblem:j}=s;return d||$("Answer"),l||$("AnswerGroup"),t||$("Equation"),u||$("Explanation"),c||$("Image"),j||$("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(j,{subId:1,children:[e.jsxs(s.p,{children:["A ",e.jsx(s.em,{children:"Carotandia"})," ci sono ",e.jsx(t,{children:String.raw`${r}`})," paesi, e in ognuno di essi ci sono ",e.jsx(t,{children:String.raw`${o}`}),` fattorie. Tip-Tap vuole costruire delle strade che colleghino tutte le fattorie. Una strada tra due fattorie dello stesso paese costa `,e.jsx(t,{children:String.raw`1`})," carota, mentre una strada tra fattorie di paesi diversi costa ",e.jsx(t,{children:String.raw`2`}),` carote. Per esempio, se ci fossero tre paesi con due fattorie ciascuno, si potrebbero collegare le fattorie come in figura. Questo piano costa due carote per ognuna delle quattro strade tratteggiate, più una carota per ciascuna delle altre due strade, per un totale di dieci carote:`]}),e.jsx(s.p,{children:e.jsx(c,{alt:"esempio1",src:typeof B=="function"?B(n):B})}),e.jsxs(s.p,{children:[`In questo esempio, ci sono anche altri piani validi, ciascuno con un costo di sette carote o più. -Invece, a `,e.jsx(s.em,{children:"Carotandia"})," ci sono ",e.jsx(t,{children:String.raw`${r}`})," paesi con ",e.jsx(t,{children:String.raw`${o}`})," fattorie:"]}),e.jsx(s.p,{children:e.jsx(c,{alt:"immagine",src:typeof S=="function"?S(n):S})}),e.jsx(s.p,{children:"Qual è il minimo numero di carote che Tip-Tap deve spendere affinché da ogni fattoria si possa raggiungere ogni altra fattoria, eventualmente percorrendo più strade?"}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[3]}`})})})]}),e.jsxs(u,{children:[e.jsxs(s.p,{children:["Dato che le strade all’interno dello stesso paese costano poco, conviene intanto collegare le fattorie all’interno dello stesso paese. Per ogni paese servono ",e.jsx(t,{children:String.raw`${o-1}`})," fattorie. Ad esempio, colleghiamo la fattoria ",e.jsx(t,{children:String.raw`1`})," con la fattoria ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`2`}),","]})," la fattoria ",e.jsx(t,{children:String.raw`2`})," con la fattoria ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`3`}),","]})," …, la fattoria ",e.jsx(t,{children:String.raw`${o-1}`})," con la fattoria ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${o}`}),")."]})," Quindi il costo parziale è di ",e.jsx(t,{children:String.raw`${r*(o-1)}`}),` carote. +Invece, a `,e.jsx(s.em,{children:"Carotandia"})," ci sono ",e.jsx(t,{children:String.raw`${r}`})," paesi con ",e.jsx(t,{children:String.raw`${o}`})," fattorie:"]}),e.jsx(s.p,{children:e.jsx(c,{alt:"immagine",src:typeof S=="function"?S(n):S})}),e.jsx(s.p,{children:"Qual è il minimo numero di carote che Tip-Tap deve spendere affinché da ogni fattoria si possa raggiungere ogni altra fattoria, eventualmente percorrendo più strade?"}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[3]}`})})})]}),e.jsxs(u,{children:[e.jsxs(s.p,{children:["Dato che le strade all’interno dello stesso paese costano poco, conviene intanto collegare le fattorie all’interno dello stesso paese. Per ogni paese servono ",e.jsx(t,{children:String.raw`${o-1}`})," fattorie. Ad esempio, colleghiamo la fattoria ",e.jsx(t,{children:String.raw`1`})," con la fattoria ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`2`}),","]})," la fattoria ",e.jsx(t,{children:String.raw`2`})," con la fattoria ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`3`}),","]})," …, la fattoria ",e.jsx(t,{children:String.raw`${o-1}`})," con la fattoria ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${o}`}),"."]})," Quindi il costo parziale è di ",e.jsx(t,{children:String.raw`${r*(o-1)}`}),` carote. Adesso dobbiamo anche connettere i paesi tra di loro, e servono altre `,e.jsx(t,{children:String.raw`${r-1}`})," strade di costo ",e.jsx(t,{children:String.raw`2`})," carote. Ad esempio, colleghiamo l’ultima fattoria di ogni paese (tranne l’ultimo) con la prima di quello successivo. Il costo totale è ",e.jsx(t,{children:String.raw`${2*(r-1)+r*(o-1)}`})," carote."]}),e.jsx(s.p,{children:e.jsx(c,{alt:"4.1 secondarie",src:typeof D=="function"?D(n):D})})]})]}),` `,e.jsx(s.hr,{}),` `,e.jsxs(j,{subId:2,children:[e.jsxs(s.p,{children:["Mettiamo ora che le strade che Tip-Tap costruisce siano a ",e.jsx(s.strong,{children:"senso unico"}),", come in questo esempio:"]}),e.jsx(s.p,{children:e.jsx(c,{alt:"esempio1",src:typeof P=="function"?P(n):P})}),e.jsxs(s.p,{children:["Questo piano costa otto carote (",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`3 \times 2 + 2 \times 1`}),"),"]}),` e consente di poter andare da ogni fattoria ad ogni altra rispettando i sensi unici. Come prima, ci sono anche altri piani validi, ciascuno con un costo di sei carote o più. -Ricordando che a `,e.jsx(s.em,{children:"Carotandia"})," ci sono ",e.jsx(t,{children:String.raw`${r}`})," paesi con ",e.jsx(t,{children:String.raw`${o}`})," fattorie:"]}),e.jsx(s.p,{children:e.jsx(c,{alt:"immagine",src:typeof S=="function"?S(n):S})}),e.jsx(s.p,{children:"Qual è il minimo numero di carote che Tip-Tap deve spendere affinché da ogni fattoria si possa raggiungere ogni altra fattoria, eventualmente percorrendo più strade, ma rispettando sempre i sensi unici?"}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${m}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[3]}`})})})]}),e.jsxs(u,{children:[e.jsxs(s.p,{children:["Nel problema precedente, abbiamo formato una linea composta da tutte le ",e.jsx(t,{children:String.raw`${r*o}`})," città. Assegniamo lo stesso verso a tutte le strade della linea, in modo che dalla prima città si possa raggiungere l’ultima. Ma in questo modo dall’ultima città non se ne può raggiungere nessun’altra. Per rimediare, creiamo una nuova strada che collega l’ultima città alla prima, pagando un costo aggiuntivo di ",e.jsx(t,{children:String.raw`2`})," carote."]}),e.jsx(s.p,{children:e.jsx(c,{alt:"4.2 secondarie",src:typeof V=="function"?V(n):V})})]})]})]})}function Ki(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(_e,{...a})}):_e(a)}function $(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const Ce={src:new URL("../2/25aa12a8-fila.svg",import.meta.url).href,width:659,height:313},Ie={src:new URL("../d/d05eb177-fila.svg",import.meta.url).href,width:659,height:313},Be={src:new URL("../c/c853bcb1-fila.svg",import.meta.url).href,width:659,height:313},De={src:new URL("../5/5c203273-fila.svg",import.meta.url).href,width:659,height:313},Pe={src:new URL("../f/fefa6027-fila.svg",import.meta.url).href,width:659,height:313},Ve=JSON.parse('[{"k1":28,"ans1":5,"wrong1":[4,23,3,7],"k2":6,"ans2":32,"wrong2":[28,36,12,56],"seq":[0,1,1,0,1]},{"k1":26,"ans1":5,"wrong1":[4,21,3,7],"k2":6,"ans2":30,"wrong2":[26,34,10,54],"seq":[1,1,0,0,1]},{"k1":33,"ans1":6,"wrong1":[5,28,4,8],"k2":7,"ans2":37,"wrong2":[33,41,13,65],"seq":[1,0,0,1,1]},{"k1":32,"ans1":7,"wrong1":[6,27,5,9],"k2":8,"ans2":36,"wrong2":[32,40,8,68],"seq":[1,1,0,1,0]},{"k1":29,"ans1":6,"wrong1":[5,24,4,8],"k2":8,"ans2":37,"wrong2":[33,41,9,69],"seq":[1,0,1,1,0]}]'),Me=[Ce,Ie,Be,De,Pe];function M(a){return Me[a]}const Q={src:new URL("../e/e01a90c8-code.svg",import.meta.url).href,width:557,height:484},T={src:new URL("../f/f0350413-5-1-primarie.svg",import.meta.url).href,width:305,height:251},G={src:new URL("../8/87e1d8bb-5-1-secondarie.svg",import.meta.url).href,width:305,height:248},X={src:new URL("../6/616567ca-5-2-primarie.svg",import.meta.url).href,width:305,height:251},O={src:new URL("../f/fc3df2eb-5-2-secondarie.svg",import.meta.url).href,width:305,height:248};function ve(a){const i=Ve,[n,f]=C.useState(0);for(const x of Object.keys(i[n]))if(/^[^a-z]./.test(x))throw new Error("Invalid variable name `"+x+"` in file `P6-distribuisci-carote/question.md`: variable names must start with a lowercase letter.");if(!("k1"in i[n]))throw new Error("Variable `k1` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("ans1"in i[n]))throw new Error("Variable `ans1` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("wrong1"in i[n]))throw new Error("Variable `wrong1` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("k2"in i[n]))throw new Error("Variable `k2` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("ans2"in i[n]))throw new Error("Variable `ans2` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("wrong2"in i[n]))throw new Error("Variable `wrong2` is not defined in file `P6-distribuisci-carote/question.md`.");const{k1:r,ans1:o,wrong1:g,k2:p,ans2:m,wrong2:h}=i[n],s={hr:"hr",li:"li",p:"p",span:"span",ul:"ul",...w(),...a.components},{Answer:d,AnswerGroup:l,Equation:t,Explanation:u,Image:c,SubProblem:j}=s;return d||y("Answer"),l||y("AnswerGroup"),t||y("Equation"),u||y("Explanation"),c||y("Image"),j||y("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(j,{subId:1,children:[e.jsxs(s.p,{children:["Carol ha ",e.jsx(t,{children:String.raw`${r}`})," carote da distribuire agli altri conigli, che sono in fila ad aspettare."]}),e.jsx(s.p,{children:e.jsx(c,{alt:"I coniglietti in fila",src:typeof M=="function"?M(n):M})}),e.jsx(s.p,{children:"Per ogni coniglio in fila, da sinistra a destra, Carol decide quante carote dargli in base alla seguente regola:"}),e.jsx(s.p,{children:e.jsx(c,{alt:"Algoritmo",src:typeof Q=="function"?Q(n):Q})}),e.jsxs(s.p,{children:["Quante carote gli rimarranno alla fine, se all’inizio ne ha ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${r}`}),"?"]})]}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${o}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g[3]}`})})})]}),e.jsxs(u,{children:[e.jsx(s.p,{children:`Se incontra un coniglio adulto, Carol rimane con metà delle carote che aveva, arrotondate per difetto. Altrimenti, Carol perde una carota. -Ripetendo l’operazione per ogni coniglio presente, si arriva alla soluzione.`}),e.jsxs(s.p,{children:[e.jsx(c,{alt:"5.1 primarie",src:typeof T=="function"?T(n):T}),` -`,e.jsx(c,{alt:"5.1 secondarie",src:typeof G=="function"?G(n):G})]})]})]}),` -`,e.jsx(s.hr,{}),` -`,e.jsxs(j,{subId:2,children:[e.jsxs(s.p,{children:["Se alla fine della distribuzione Carol volesse rimanere con almeno ",e.jsx(t,{children:String.raw`${p}`})," carote, quante ne deve avere almeno all’inizio?"]}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${m}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[3]}`})})})]}),e.jsxs(u,{children:[e.jsx(s.p,{children:"Possiamo ripercorrere il numero di carote di Carol al contrario (dalla fine all’inizio)."}),e.jsxs(s.ul,{children:[` -`,e.jsx(s.li,{children:"Se l’ultimo coniglio è bambino, prima di incontrarlo Carol aveva una carota in più."}),` -`,e.jsx(s.li,{children:"Se l’ultimo coniglio è adulto, prima di incontrarlo Carol aveva il doppio delle carote, oppure il doppio delle carote più una. Dato che vogliamo minimizzare il numero di carote iniziali, conviene dare a Carol il doppio delle carote (e mai il doppio delle carote più una)."}),` -`]}),e.jsxs(s.p,{children:[e.jsx(c,{alt:"5.2 primarie",src:typeof X=="function"?X(n):X}),` -`,e.jsx(c,{alt:"5.2 secondarie",src:typeof O=="function"?O(n):O})]})]})]})]})}function Wi(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(ve,{...a})}):ve(a)}function y(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const Qe={src:new URL("../7/720f28dc-lavagna1.svg",import.meta.url).href,width:400,height:271},Te={src:new URL("../8/80a13395-lavagna1.svg",import.meta.url).href,width:400,height:271},Ge={src:new URL("../2/26db107c-lavagna1.svg",import.meta.url).href,width:400,height:271},Xe={src:new URL("../8/80a13395-lavagna1.svg",import.meta.url).href,width:400,height:271},Oe={src:new URL("../8/80a13395-lavagna1.svg",import.meta.url).href,width:400,height:271},Fe=JSON.parse('[{"a1":57,"a2":474,"b1":5,"b2":34,"ans1":8,"wrong1":[5,9,10,13],"ans2":9,"wrong2":[6,10,11,14]},{"a1":47,"a2":472,"b1":6,"b2":33,"ans1":6,"wrong1":[3,7,8,11],"ans2":11,"wrong2":[8,12,13,16]},{"a1":46,"a2":460,"b1":5,"b2":27,"ans1":6,"wrong1":[3,7,8,11],"ans2":10,"wrong2":[7,11,12,15]},{"a1":47,"a2":557,"b1":6,"b2":27,"ans1":6,"wrong1":[3,7,8,11],"ans2":9,"wrong2":[6,10,11,14]},{"a1":47,"a2":481,"b1":5,"b2":26,"ans1":7,"wrong1":[4,8,9,12],"ans2":10,"wrong2":[7,11,12,15]}]'),Je=[Qe,Te,Ge,Xe,Oe];function F(a){return Je[a]}const J={src:new URL("../8/8843b8e2-4-1-primarie.svg",import.meta.url).href,width:305,height:251},H={src:new URL("../4/4d90bd17-3-1-secondarie.svg",import.meta.url).href,width:305,height:248},He={src:new URL("../b/bb617c43-lavagna2.svg",import.meta.url).href,width:400,height:271},Ze={src:new URL("../8/83f5cd97-lavagna2.svg",import.meta.url).href,width:400,height:271},Ke={src:new URL("../5/52724867-lavagna2.svg",import.meta.url).href,width:400,height:271},We={src:new URL("../6/6f0eb1e4-lavagna2.svg",import.meta.url).href,width:400,height:271},Ye={src:new URL("../2/2a03c9c5-lavagna2.svg",import.meta.url).href,width:400,height:271},ei=[He,Ze,Ke,We,Ye];function Z(a){return ei[a]}const K={src:new URL("../5/55ce6eac-4-2-primarie.svg",import.meta.url).href,width:305,height:251},W={src:new URL("../9/9c35f0d8-3-2-secondarie.svg",import.meta.url).href,width:305,height:248};function Se(a){const i=Fe,[n,f]=C.useState(0);for(const be of Object.keys(i[n]))if(/^[^a-z]./.test(be))throw new Error("Invalid variable name `"+be+"` in file `A4-sottrai-potenze/question.md`: variable names must start with a lowercase letter.");if(!("a1"in i[n]))throw new Error("Variable `a1` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("b1"in i[n]))throw new Error("Variable `b1` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("ans1"in i[n]))throw new Error("Variable `ans1` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("wrong1"in i[n]))throw new Error("Variable `wrong1` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("a2"in i[n]))throw new Error("Variable `a2` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("b2"in i[n]))throw new Error("Variable `b2` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("ans2"in i[n]))throw new Error("Variable `ans2` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("wrong2"in i[n]))throw new Error("Variable `wrong2` is not defined in file `A4-sottrai-potenze/question.md`.");const{a1:r,b1:o,ans1:g,wrong1:p,a2:m,b2:h,ans2:s,wrong2:d}=i[n],l={hr:"hr",li:"li",p:"p",span:"span",ul:"ul",...w(),...a.components},{Answer:t,AnswerGroup:u,Equation:c,Explanation:j,Image:x,SubProblem:I}=l;return t||R("Answer"),u||R("AnswerGroup"),c||R("Equation"),j||R("Explanation"),x||R("Image"),I||R("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(I,{subId:1,children:[e.jsxs(l.p,{children:["Per esercitarsi nelle sottrazioni, Tip-Tap e Allie hanno inventato un gioco. Hanno scritto il numero ",e.jsx(c,{children:String.raw`${r}`})," sulla lavagna e devono renderlo uguale a ",e.jsx(c,{children:String.raw`0`})," con una sequenza, la più breve possibile, di operazioni di questo tipo:"]}),e.jsxs(l.ul,{children:[` +Ricordando che a `,e.jsx(s.em,{children:"Carotandia"})," ci sono ",e.jsx(t,{children:String.raw`${r}`})," paesi con ",e.jsx(t,{children:String.raw`${o}`})," fattorie:"]}),e.jsx(s.p,{children:e.jsx(c,{alt:"immagine",src:typeof S=="function"?S(n):S})}),e.jsx(s.p,{children:"Qual è il minimo numero di carote che Tip-Tap deve spendere affinché da ogni fattoria si possa raggiungere ogni altra fattoria, eventualmente percorrendo più strade, ma rispettando sempre i sensi unici?"}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${m}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[3]}`})})})]}),e.jsxs(u,{children:[e.jsxs(s.p,{children:["Nel problema precedente, abbiamo formato una linea composta da tutte le ",e.jsx(t,{children:String.raw`${r*o}`})," città. Assegniamo lo stesso verso a tutte le strade della linea, in modo che dalla prima città si possa raggiungere l’ultima. Ma in questo modo dall’ultima città non se ne può raggiungere nessun’altra. Per rimediare, basta creare una nuova strada che collega l’ultima città alla prima, pagando un costo aggiuntivo di ",e.jsx(t,{children:String.raw`2`})," carote."]}),e.jsx(s.p,{children:e.jsx(c,{alt:"4.2 secondarie",src:typeof V=="function"?V(n):V})})]})]})]})}function Ki(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(_e,{...a})}):_e(a)}function $(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const Ce={src:new URL("../7/720f28dc-lavagna1.svg",import.meta.url).href,width:400,height:271},Ie={src:new URL("../8/80a13395-lavagna1.svg",import.meta.url).href,width:400,height:271},Be={src:new URL("../2/26db107c-lavagna1.svg",import.meta.url).href,width:400,height:271},De={src:new URL("../8/80a13395-lavagna1.svg",import.meta.url).href,width:400,height:271},Pe={src:new URL("../8/80a13395-lavagna1.svg",import.meta.url).href,width:400,height:271},Ve=JSON.parse('[{"a1":57,"a2":474,"b1":5,"b2":34,"ans1":8,"wrong1":[5,9,10,13],"ans2":9,"wrong2":[6,10,11,14]},{"a1":47,"a2":472,"b1":6,"b2":33,"ans1":6,"wrong1":[3,7,8,11],"ans2":11,"wrong2":[8,12,13,16]},{"a1":46,"a2":460,"b1":5,"b2":27,"ans1":6,"wrong1":[3,7,8,11],"ans2":10,"wrong2":[7,11,12,15]},{"a1":47,"a2":557,"b1":6,"b2":27,"ans1":6,"wrong1":[3,7,8,11],"ans2":9,"wrong2":[6,10,11,14]},{"a1":47,"a2":481,"b1":5,"b2":26,"ans1":7,"wrong1":[4,8,9,12],"ans2":10,"wrong2":[7,11,12,15]}]'),Me=[Ce,Ie,Be,De,Pe];function M(a){return Me[a]}const Q={src:new URL("../8/8843b8e2-4-1-primarie.svg",import.meta.url).href,width:305,height:251},T={src:new URL("../4/4d90bd17-3-1-secondarie.svg",import.meta.url).href,width:305,height:248},Qe={src:new URL("../b/bb617c43-lavagna2.svg",import.meta.url).href,width:400,height:271},Te={src:new URL("../8/83f5cd97-lavagna2.svg",import.meta.url).href,width:400,height:271},Ge={src:new URL("../5/52724867-lavagna2.svg",import.meta.url).href,width:400,height:271},Xe={src:new URL("../6/6f0eb1e4-lavagna2.svg",import.meta.url).href,width:400,height:271},Oe={src:new URL("../2/2a03c9c5-lavagna2.svg",import.meta.url).href,width:400,height:271},Fe=[Qe,Te,Ge,Xe,Oe];function G(a){return Fe[a]}const X={src:new URL("../5/55ce6eac-4-2-primarie.svg",import.meta.url).href,width:305,height:251},O={src:new URL("../9/9c35f0d8-3-2-secondarie.svg",import.meta.url).href,width:305,height:248};function ve(a){const i=Ve,[n,f]=C.useState(0);for(const be of Object.keys(i[n]))if(/^[^a-z]./.test(be))throw new Error("Invalid variable name `"+be+"` in file `A4-sottrai-potenze/question.md`: variable names must start with a lowercase letter.");if(!("a1"in i[n]))throw new Error("Variable `a1` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("b1"in i[n]))throw new Error("Variable `b1` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("ans1"in i[n]))throw new Error("Variable `ans1` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("wrong1"in i[n]))throw new Error("Variable `wrong1` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("a2"in i[n]))throw new Error("Variable `a2` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("b2"in i[n]))throw new Error("Variable `b2` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("ans2"in i[n]))throw new Error("Variable `ans2` is not defined in file `A4-sottrai-potenze/question.md`.");if(!("wrong2"in i[n]))throw new Error("Variable `wrong2` is not defined in file `A4-sottrai-potenze/question.md`.");const{a1:r,b1:o,ans1:g,wrong1:p,a2:m,b2:h,ans2:s,wrong2:d}=i[n],l={hr:"hr",li:"li",p:"p",span:"span",ul:"ul",...w(),...a.components},{Answer:t,AnswerGroup:u,Equation:c,Explanation:j,Image:x,SubProblem:I}=l;return t||y("Answer"),u||y("AnswerGroup"),c||y("Equation"),j||y("Explanation"),x||y("Image"),I||y("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(I,{subId:1,children:[e.jsxs(l.p,{children:["Per esercitarsi nelle sottrazioni, Tip-Tap e Allie hanno inventato un gioco. Hanno scritto il numero ",e.jsx(c,{children:String.raw`${r}`})," sulla lavagna e devono renderlo uguale a ",e.jsx(c,{children:String.raw`0`})," con una sequenza, la più breve possibile, di operazioni di questo tipo:"]}),e.jsxs(l.ul,{children:[` `,e.jsxs(l.li,{children:["diminuire di ",e.jsx(c,{children:String.raw`{1}`})," una qualsiasi cifra del numero;"]}),` `,e.jsxs(l.li,{children:["sottrarre ",e.jsx(c,{children:String.raw`${o}`})," al numero (se il numero è almeno ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${o}`}),")."]})]}),` `]}),e.jsxs(l.p,{children:[`Ad ogni operazione, dopo aver calcolato il risultato, lo sostituiscono al numero scritto sulla lavagna. -Qual è il numero minimo di operazioni che devono fare per rendere il numero pari a `,e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`0`}),","]})," partendo da ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${r}`}),"?"]})]}),e.jsx(l.p,{children:e.jsx(x,{alt:"Lavagna",src:typeof F=="function"?F(n):F})}),e.jsxs(u,{children:[e.jsx(t,{correct:!0,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${g}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${p[0]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${p[1]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${p[2]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${p[3]}`})})})]}),e.jsxs(j,{children:[e.jsxs(l.p,{children:["Per la proprietà commutativa, l’ordine delle sottrazioni non importa, quindi possiamo ipotizzare di fare prima le operazioni di sottrarre ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${o}`}),","]})," e poi le operazioni per diminuire le cifre di ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`1`}),"."]}),` +Qual è il numero minimo di operazioni che devono fare per rendere il numero pari a `,e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`0`}),","]})," partendo da ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${r}`}),"?"]})]}),e.jsx(l.p,{children:e.jsx(x,{alt:"Lavagna",src:typeof M=="function"?M(n):M})}),e.jsxs(u,{children:[e.jsx(t,{correct:!0,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${g}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${p[0]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${p[1]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${p[2]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${p[3]}`})})})]}),e.jsxs(j,{children:[e.jsxs(l.p,{children:["Per la proprietà commutativa, l’ordine delle sottrazioni non importa, quindi possiamo ipotizzare di fare prima le operazioni di sottrarre ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${o}`}),","]})," e poi le operazioni per diminuire le cifre di ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`1`}),"."]}),` Proviamo a sottrarre `,e.jsx(c,{children:String.raw`${o}`})," un po’ di volte (",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`0, 1, 2, \ldots`}),"),"]}),` e il numero di mosse rimanenti è la somma delle cifre del numero sulla lavagna. -Sottraendo `,e.jsx(c,{children:String.raw`${o}`})," il numero giusto di volte, la somma delle cifre diventa particolarmente piccola."]}),e.jsxs(l.p,{children:[e.jsx(x,{alt:"4.1 primarie",src:typeof J=="function"?J(n):J}),` -`,e.jsx(x,{alt:"3.1 secondarie",src:typeof H=="function"?H(n):H})]})]})]}),` +Sottraendo `,e.jsx(c,{children:String.raw`${o}`})," il numero giusto di volte, la somma delle cifre diventa particolarmente piccola."]}),e.jsxs(l.p,{children:[e.jsx(x,{alt:"4.1 primarie",src:typeof Q=="function"?Q(n):Q}),` +`,e.jsx(x,{alt:"3.1 secondarie",src:typeof T=="function"?T(n):T})]})]})]}),` `,e.jsx(l.hr,{}),` `,e.jsxs(I,{subId:2,children:[e.jsxs(l.p,{children:["Tip-Tap e Allie ora hanno scritto un nuovo numero ",e.jsx(c,{children:String.raw`${m}`})," sulla lavagna, e le operazioni consentite sono:"]}),e.jsxs(l.ul,{children:[` `,e.jsxs(l.li,{children:["diminuire di ",e.jsx(c,{children:String.raw`{1}`})," una qualsiasi cifra del numero;"]}),` `,e.jsxs(l.li,{children:["sottrarre ",e.jsx(c,{children:String.raw`${h}`})," al numero (se il numero è almeno ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${h}`}),")."]})]}),` -`]}),e.jsxs(l.p,{children:["Qual è il numero minimo di operazioni che devono fare per rendere il numero pari a ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`0`}),","]})," partendo da ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${m}`}),"?"]})]}),e.jsx(l.p,{children:e.jsx(x,{alt:"Lavagna",src:typeof Z=="function"?Z(n):Z})}),e.jsxs(u,{children:[e.jsx(t,{correct:!0,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${s}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${d[0]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${d[1]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${d[2]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${d[3]}`})})})]}),e.jsxs(j,{children:[e.jsxs(l.p,{children:["Qui ",e.jsx(c,{children:String.raw`${m}`})," è grande, quindi provare a sottrarre ",e.jsx(c,{children:String.raw`${h}`}),` finché il numero sulla lavagna non è negativo è troppo lungo. -Ma possiamo notare che, se troviamo una sequenza con risposta `,e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${s}`}),","]})," non ha senso sottrarre ",e.jsx(c,{children:String.raw`${h}`})," più di ",e.jsx(c,{children:String.raw`${s}`})," volte, e questo accorcia i conti."]}),e.jsxs(l.p,{children:[e.jsx(x,{alt:"4.2 primarie",src:typeof K=="function"?K(n):K}),` -`,e.jsx(x,{alt:"3.2 secondarie",src:typeof W=="function"?W(n):W})]})]})]})]})}function Yi(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(Se,{...a})}):Se(a)}function R(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const Y={src:new URL("../f/f781bad8-fig.svg",import.meta.url).href,width:740,height:221},ee={src:new URL("../5/5bf3252b-1-1-primarie.svg",import.meta.url).href,width:305,height:251},ie={src:new URL("../2/263091ec-1-2-primarie.svg",import.meta.url).href,width:305,height:251},ii=JSON.parse('[{"correct1":3,"wrong1":[9,6,4,2],"correct2":3,"wrong2":[6,7,9,1],"c":3,"b":6},{"correct1":4,"wrong1":[12,8,6,3],"correct2":4,"wrong2":[8,10,12,2],"c":4,"b":8},{"correct1":3,"wrong1":[13,10,6,2],"correct2":5,"wrong2":[8,11,13,1],"c":3,"b":10},{"correct1":2,"wrong1":[14,12,7,1],"correct2":6,"wrong2":[8,13,14,1],"c":2,"b":12}]');function $e(a){const i=ii,[n,f]=C.useState(0);for(const x of Object.keys(i[n]))if(/^[^a-z]./.test(x))throw new Error("Invalid variable name `"+x+"` in file `a-20-due-carote/question.md`: variable names must start with a lowercase letter.");if(!("b"in i[n]))throw new Error("Variable `b` is not defined in file `a-20-due-carote/question.md`.");if(!("c"in i[n]))throw new Error("Variable `c` is not defined in file `a-20-due-carote/question.md`.");if(!("correct1"in i[n]))throw new Error("Variable `correct1` is not defined in file `a-20-due-carote/question.md`.");if(!("wrong1"in i[n]))throw new Error("Variable `wrong1` is not defined in file `a-20-due-carote/question.md`.");if(!("correct2"in i[n]))throw new Error("Variable `correct2` is not defined in file `a-20-due-carote/question.md`.");if(!("wrong2"in i[n]))throw new Error("Variable `wrong2` is not defined in file `a-20-due-carote/question.md`.");const{b:r,c:o,correct1:g,wrong1:p,correct2:m,wrong2:h}=i[n],s={hr:"hr",p:"p",span:"span",...w(),...a.components},{Answer:d,AnswerGroup:l,Equation:t,Explanation:u,Image:c,SubProblem:j}=s;return d||q("Answer"),l||q("AnswerGroup"),t||q("Equation"),u||q("Explanation"),c||q("Image"),j||q("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(j,{subId:1,children:[e.jsxs(s.p,{children:[`Bunny e Carol pranzano insieme tutti i giorni, portando ciascuno una carota dalla propria scorta personale. +`]}),e.jsxs(l.p,{children:["Qual è il numero minimo di operazioni che devono fare per rendere il numero pari a ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`0`}),","]})," partendo da ",e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${m}`}),"?"]})]}),e.jsx(l.p,{children:e.jsx(x,{alt:"Lavagna",src:typeof G=="function"?G(n):G})}),e.jsxs(u,{children:[e.jsx(t,{correct:!0,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${s}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${d[0]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${d[1]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${d[2]}`})})}),e.jsx(t,{correct:!1,children:e.jsx(l.p,{children:e.jsx(c,{children:String.raw`${d[3]}`})})})]}),e.jsxs(j,{children:[e.jsxs(l.p,{children:["Qui ",e.jsx(c,{children:String.raw`${m}`})," è grande, quindi provare a sottrarre ",e.jsx(c,{children:String.raw`${h}`}),` finché il numero sulla lavagna non è negativo è troppo lungo. +Ma possiamo notare che, se troviamo una sequenza con risposta `,e.jsxs(l.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`${s}`}),","]})," non ha senso sottrarre ",e.jsx(c,{children:String.raw`${h}`})," più di ",e.jsx(c,{children:String.raw`${s}`})," volte, e questo accorcia i conti."]}),e.jsxs(l.p,{children:[e.jsx(x,{alt:"4.2 primarie",src:typeof X=="function"?X(n):X}),` +`,e.jsx(x,{alt:"3.2 secondarie",src:typeof O=="function"?O(n):O})]})]})]})]})}function Wi(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(ve,{...a})}):ve(a)}function y(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const F={src:new URL("../f/f781bad8-fig.svg",import.meta.url).href,width:740,height:221},J={src:new URL("../5/5bf3252b-1-1-primarie.svg",import.meta.url).href,width:305,height:251},H={src:new URL("../2/263091ec-1-2-primarie.svg",import.meta.url).href,width:305,height:251},Je=JSON.parse('[{"correct1":3,"wrong1":[9,6,4,2],"correct2":3,"wrong2":[6,7,9,1],"c":3,"b":6},{"correct1":4,"wrong1":[12,8,6,3],"correct2":4,"wrong2":[8,10,12,2],"c":4,"b":8},{"correct1":3,"wrong1":[13,10,6,2],"correct2":5,"wrong2":[8,11,13,1],"c":3,"b":10},{"correct1":2,"wrong1":[14,12,7,1],"correct2":6,"wrong2":[8,13,14,1],"c":2,"b":12}]');function Se(a){const i=Je,[n,f]=C.useState(0);for(const x of Object.keys(i[n]))if(/^[^a-z]./.test(x))throw new Error("Invalid variable name `"+x+"` in file `a-20-due-carote/question.md`: variable names must start with a lowercase letter.");if(!("b"in i[n]))throw new Error("Variable `b` is not defined in file `a-20-due-carote/question.md`.");if(!("c"in i[n]))throw new Error("Variable `c` is not defined in file `a-20-due-carote/question.md`.");if(!("correct1"in i[n]))throw new Error("Variable `correct1` is not defined in file `a-20-due-carote/question.md`.");if(!("wrong1"in i[n]))throw new Error("Variable `wrong1` is not defined in file `a-20-due-carote/question.md`.");if(!("correct2"in i[n]))throw new Error("Variable `correct2` is not defined in file `a-20-due-carote/question.md`.");if(!("wrong2"in i[n]))throw new Error("Variable `wrong2` is not defined in file `a-20-due-carote/question.md`.");const{b:r,c:o,correct1:g,wrong1:p,correct2:m,wrong2:h}=i[n],s={hr:"hr",p:"p",span:"span",...w(),...a.components},{Answer:d,AnswerGroup:l,Equation:t,Explanation:u,Image:c,SubProblem:j}=s;return d||R("Answer"),l||R("AnswerGroup"),t||R("Equation"),u||R("Explanation"),c||R("Image"),j||R("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(j,{subId:1,children:[e.jsxs(s.p,{children:[`Bunny e Carol pranzano insieme tutti i giorni, portando ciascuno una carota dalla propria scorta personale. Nella scorta di Bunny ci sono `,e.jsx(t,{children:String.raw`${r}`})," carote mentre nella scorta di Carol ce ne sono ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${o}`}),"."]}),` -Dopo quanti giorni uno dei due avrà finito le carote della propria scorta?`]}),e.jsx(s.p,{children:e.jsx(c,{alt:"image",src:typeof Y=="function"?Y(n):Y})}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[3]}`})})})]}),e.jsxs(u,{children:[e.jsxs(s.p,{children:["Bunny impiega ",e.jsx(t,{children:String.raw`${r}`})," giorni per finire le proprie carote, mentre Carol ne impiega ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${o}`}),"."]}),` -Quindi il primo coniglio che finisce le proprie carote è quello che ne ha di meno: dopo `,e.jsx(t,{children:String.raw`${o}`})," giorni, avrà finito le carote."]}),e.jsx(s.p,{children:e.jsx(c,{alt:"1.1 primarie",src:typeof ee=="function"?ee(n):ee})})]})]}),` +Dopo quanti giorni uno dei due avrà finito le carote della propria scorta?`]}),e.jsx(s.p,{children:e.jsx(c,{alt:"image",src:typeof F=="function"?F(n):F})}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${p[3]}`})})})]}),e.jsxs(u,{children:[e.jsxs(s.p,{children:["Bunny impiega ",e.jsx(t,{children:String.raw`${r}`})," giorni per finire le proprie carote, mentre Carol ne impiega ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${o}`}),"."]}),` +Quindi il primo coniglio che finisce le proprie carote è quello che ne ha di meno: dopo `,e.jsx(t,{children:String.raw`${o}`})," giorni, avrà finito le carote."]}),e.jsx(s.p,{children:e.jsx(c,{alt:"1.1 primarie",src:typeof J=="function"?J(n):J})})]})]}),` `,e.jsx(s.hr,{}),` `,e.jsxs(j,{subId:2,children:[e.jsx(s.p,{children:"Se invece Carol fosse dispettosa e ogni sera di nascosto rubasse una carota dalla scorta Bunny per metterla nella sua, dopo quanti giorni uno dei due sarà rimasto senza carote nella propria scorta?"}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${m}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[3]}`})})})]}),e.jsxs(u,{children:[e.jsxs(s.p,{children:[`Bunny mangia una carota al giorno, mentre Carol mangia una carota di Bunny al giorno. Quindi ogni giorno Bunny perde `,e.jsx(t,{children:String.raw`2`}),` carote, mentre Carol non ne perde nessuna. -Quindi la risposta è la metà del numero `,e.jsx(t,{children:String.raw`${r}`})," di carote iniziali di Bunny, cioè ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${r/2}`}),"."]})]}),e.jsx(s.p,{children:e.jsx(c,{alt:"1.2 primarie",src:typeof ie=="function"?ie(n):ie})})]})]})]})}function en(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx($e,{...a})}):$e(a)}function q(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const ne={src:new URL("../9/9af6f89b-fig.svg",import.meta.url).href,width:889,height:277},re={src:new URL("../0/0b35c6f7-2-1-primarie.svg",import.meta.url).href,width:305,height:251},se={src:new URL("../7/73cc0e5f-1-1-secondarie.svg",import.meta.url).href,width:305,height:248},ae={src:new URL("../1/1924b6c7-2-2-primarie.svg",import.meta.url).href,width:305,height:251},te={src:new URL("../b/b3c5b2d7-1-2-secondarie.svg",import.meta.url).href,width:305,height:248};function ye(a){const i={hr:"hr",li:"li",p:"p",span:"span",strong:"strong",ul:"ul",...w(),...a.components},{Answer:n,AnswerGroup:f,Equation:r,Explanation:o,Image:g,SubProblem:p}=i;return n||L("Answer"),f||L("AnswerGroup"),r||L("Equation"),o||L("Explanation"),g||L("Image"),p||L("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(p,{subId:1,children:[e.jsx(i.p,{children:"Durante la ricreazione, gli amici di Bunny si sono disposti in fila:"}),e.jsx(i.p,{children:e.jsx(g,{alt:"immage",src:typeof ne=="function"?ne(_variant):ne})}),e.jsxs(i.p,{children:[`Per gioco, Bunny deve ordinarli dal più basso al più alto (le altezze degli amici sono scritte sulle loro magliette). +Quindi la risposta è la metà del numero `,e.jsx(t,{children:String.raw`${r}`})," di carote iniziali di Bunny, cioè ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${r/2}`}),"."]})]}),e.jsx(s.p,{children:e.jsx(c,{alt:"1.2 primarie",src:typeof H=="function"?H(n):H})})]})]})]})}function Yi(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(Se,{...a})}):Se(a)}function R(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const He={src:new URL("../2/25aa12a8-fila.svg",import.meta.url).href,width:659,height:313},Ze={src:new URL("../d/d05eb177-fila.svg",import.meta.url).href,width:659,height:313},Ke={src:new URL("../c/c853bcb1-fila.svg",import.meta.url).href,width:659,height:313},We={src:new URL("../5/5c203273-fila.svg",import.meta.url).href,width:659,height:313},Ye={src:new URL("../f/fefa6027-fila.svg",import.meta.url).href,width:659,height:313},ei=JSON.parse('[{"k1":28,"ans1":5,"wrong1":[4,23,3,7],"k2":6,"ans2":32,"wrong2":[28,36,12,56],"seq":[0,1,1,0,1]},{"k1":26,"ans1":5,"wrong1":[4,21,3,7],"k2":6,"ans2":30,"wrong2":[26,34,10,54],"seq":[1,1,0,0,1]},{"k1":33,"ans1":6,"wrong1":[5,28,4,8],"k2":7,"ans2":37,"wrong2":[33,41,13,65],"seq":[1,0,0,1,1]},{"k1":32,"ans1":7,"wrong1":[6,27,5,9],"k2":8,"ans2":36,"wrong2":[32,40,8,68],"seq":[1,1,0,1,0]},{"k1":29,"ans1":6,"wrong1":[5,24,4,8],"k2":8,"ans2":37,"wrong2":[33,41,9,69],"seq":[1,0,1,1,0]}]'),ii=[He,Ze,Ke,We,Ye];function Z(a){return ii[a]}const K={src:new URL("../e/e01a90c8-code.svg",import.meta.url).href,width:557,height:484},W={src:new URL("../f/f0350413-5-1-primarie.svg",import.meta.url).href,width:305,height:251},Y={src:new URL("../8/87e1d8bb-5-1-secondarie.svg",import.meta.url).href,width:305,height:248},ee={src:new URL("../6/616567ca-5-2-primarie.svg",import.meta.url).href,width:305,height:251},ie={src:new URL("../f/fc3df2eb-5-2-secondarie.svg",import.meta.url).href,width:305,height:248};function $e(a){const i=ei,[n,f]=C.useState(0);for(const x of Object.keys(i[n]))if(/^[^a-z]./.test(x))throw new Error("Invalid variable name `"+x+"` in file `P6-distribuisci-carote/question.md`: variable names must start with a lowercase letter.");if(!("k1"in i[n]))throw new Error("Variable `k1` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("ans1"in i[n]))throw new Error("Variable `ans1` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("wrong1"in i[n]))throw new Error("Variable `wrong1` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("k2"in i[n]))throw new Error("Variable `k2` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("ans2"in i[n]))throw new Error("Variable `ans2` is not defined in file `P6-distribuisci-carote/question.md`.");if(!("wrong2"in i[n]))throw new Error("Variable `wrong2` is not defined in file `P6-distribuisci-carote/question.md`.");const{k1:r,ans1:o,wrong1:g,k2:p,ans2:m,wrong2:h}=i[n],s={hr:"hr",li:"li",p:"p",span:"span",ul:"ul",...w(),...a.components},{Answer:d,AnswerGroup:l,Equation:t,Explanation:u,Image:c,SubProblem:j}=s;return d||q("Answer"),l||q("AnswerGroup"),t||q("Equation"),u||q("Explanation"),c||q("Image"),j||q("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(j,{subId:1,children:[e.jsxs(s.p,{children:["Carol ha ",e.jsx(t,{children:String.raw`${r}`})," carote da distribuire agli altri conigli, che sono in fila ad aspettare."]}),e.jsx(s.p,{children:e.jsx(c,{alt:"I coniglietti in fila",src:typeof Z=="function"?Z(n):Z})}),e.jsx(s.p,{children:"Per ogni coniglio in fila, da sinistra a destra, Carol decide quante carote dargli in base alla seguente regola:"}),e.jsx(s.p,{children:e.jsx(c,{alt:"Algoritmo",src:typeof K=="function"?K(n):K})}),e.jsxs(s.p,{children:["Quante carote gli rimarranno alla fine, se all’inizio ne ha ",e.jsxs(s.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`${r}`}),"?"]})]}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${o}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${g[3]}`})})})]}),e.jsxs(u,{children:[e.jsx(s.p,{children:`Se incontra un coniglio adulto, Carol rimane con metà delle carote che aveva, arrotondate per difetto. Altrimenti, Carol perde una carota. +Ripetendo l’operazione per ogni coniglio presente, si arriva alla soluzione.`}),e.jsxs(s.p,{children:[e.jsx(c,{alt:"5.1 primarie",src:typeof W=="function"?W(n):W}),` +`,e.jsx(c,{alt:"5.1 secondarie",src:typeof Y=="function"?Y(n):Y})]})]})]}),` +`,e.jsx(s.hr,{}),` +`,e.jsxs(j,{subId:2,children:[e.jsxs(s.p,{children:["Se alla fine della distribuzione Carol volesse rimanere con almeno ",e.jsx(t,{children:String.raw`${p}`})," carote, quante ne deve avere almeno all’inizio?"]}),e.jsxs(l,{children:[e.jsx(d,{correct:!0,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${m}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[0]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[1]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[2]}`})})}),e.jsx(d,{correct:!1,children:e.jsx(s.p,{children:e.jsx(t,{children:String.raw`${h[3]}`})})})]}),e.jsxs(u,{children:[e.jsx(s.p,{children:"Possiamo ripercorrere il numero di carote di Carol al contrario (dalla fine all’inizio)."}),e.jsxs(s.ul,{children:[` +`,e.jsx(s.li,{children:"Se l’ultimo coniglio è bambino, prima di incontrarlo Carol aveva una carota in più."}),` +`,e.jsx(s.li,{children:"Se l’ultimo coniglio è adulto, prima di incontrarlo Carol aveva il doppio delle carote, oppure il doppio delle carote più una. Dato che vogliamo minimizzare il numero di carote iniziali, conviene dare a Carol il doppio delle carote (e mai il doppio delle carote più una)."}),` +`]}),e.jsxs(s.p,{children:[e.jsx(c,{alt:"5.2 primarie",src:typeof ee=="function"?ee(n):ee}),` +`,e.jsx(c,{alt:"5.2 secondarie",src:typeof ie=="function"?ie(n):ie})]})]})]})]})}function en(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx($e,{...a})}):$e(a)}function q(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const ne={src:new URL("../9/9af6f89b-fig.svg",import.meta.url).href,width:889,height:277},re={src:new URL("../0/0b35c6f7-2-1-primarie.svg",import.meta.url).href,width:305,height:251},se={src:new URL("../7/73cc0e5f-1-1-secondarie.svg",import.meta.url).href,width:305,height:248},ae={src:new URL("../1/1924b6c7-2-2-primarie.svg",import.meta.url).href,width:305,height:251},te={src:new URL("../b/b3c5b2d7-1-2-secondarie.svg",import.meta.url).href,width:305,height:248};function ye(a){const i={hr:"hr",li:"li",p:"p",span:"span",strong:"strong",ul:"ul",...w(),...a.components},{Answer:n,AnswerGroup:f,Equation:r,Explanation:o,Image:g,SubProblem:p}=i;return n||L("Answer"),f||L("AnswerGroup"),r||L("Equation"),o||L("Explanation"),g||L("Image"),p||L("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(p,{subId:1,children:[e.jsx(i.p,{children:"Durante la ricreazione, gli amici di Bunny si sono disposti in fila:"}),e.jsx(i.p,{children:e.jsx(g,{alt:"immage",src:typeof ne=="function"?ne(_variant):ne})}),e.jsxs(i.p,{children:[`Per gioco, Bunny deve ordinarli dal più basso al più alto (le altezze degli amici sono scritte sulle loro magliette). Può farlo con degli `,e.jsx(i.strong,{children:"scambi"})," di posto tra coppie di suoi amici. Quali di questi ",e.jsx(i.strong,{children:"scambi"})," può fare Bunny per riordinarli?"]}),e.jsxs(f,{children:[e.jsx(n,{correct:!0,children:e.jsxs(i.p,{children:["scambiare l’amico alto ",e.jsx(r,{children:String.raw`4`})," con l’amico alto ",e.jsx(r,{children:String.raw`1`})," e poi scambiare l’amico alto ",e.jsx(r,{children:String.raw`6`})," con l’amico alto ",e.jsx(r,{children:String.raw`3`})]})}),e.jsx(n,{correct:!1,children:e.jsxs(i.p,{children:["scambiare l’amico alto ",e.jsx(r,{children:String.raw`4`})," con l’amico alto ",e.jsx(r,{children:String.raw`2`})," e poi scambiare l’amico alto ",e.jsx(r,{children:String.raw`6`})," con l’amico alto ",e.jsx(r,{children:String.raw`1`})]})}),e.jsx(n,{correct:!1,children:e.jsx(i.p,{children:"Bunny non può ordinarli solo con scambi"})}),e.jsx(n,{correct:!1,children:e.jsxs(i.p,{children:["scambiare l’amico alto ",e.jsx(r,{children:String.raw`6`})," con l’amico alto ",e.jsx(r,{children:String.raw`3`})]})}),e.jsx(n,{correct:!1,children:e.jsxs(i.p,{children:["scambiare l’amico alto ",e.jsx(r,{children:String.raw`6`})," con l’amico alto ",e.jsx(r,{children:String.raw`3`})," e poi scambiare l’amico alto ",e.jsx(r,{children:String.raw`4`})," con l’amico alto ",e.jsx(r,{children:String.raw`2`})]})})]}),e.jsxs(o,{children:[e.jsxs(i.p,{children:["Il coniglio alto ",e.jsx(r,{children:String.raw`1`})," è in quarta posizione e quello alto ",e.jsx(r,{children:String.raw`4`}),` è in prima posizione, quindi vanno scambiati. Inoltre, il coniglio alto `,e.jsx(r,{children:String.raw`3`})," è in sesta posizione e quello alto ",e.jsx(r,{children:String.raw`6`}),` è in terza posizione, quindi vanno scambiati. Non servono altri scambi!`]}),e.jsxs(i.p,{children:[e.jsx(g,{alt:"2.1 primarie",src:typeof re=="function"?re(_variant):re}),` @@ -110,4 +110,4 @@ Se Bunny segue il procedimento qui sotto, riesce a raggiungere la bandierina?`]} `]}),` `]}),e.jsxs(i.p,{children:["Se invece Bunny parte dalla casella ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(o,{children:String.raw`2`}),","]})," si ferma sulla roccia in posizione ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(o,{children:String.raw`4`}),","]})," e se parte dalla casella ",e.jsx(o,{children:String.raw`6`})," o dalla casella ",e.jsx(o,{children:String.raw`7`})," si ferma sulla roccia in posizione ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(o,{children:String.raw`8`}),"."]})]}),e.jsxs(i.p,{children:[e.jsx(p,{alt:"6.2 primarie",src:typeof we=="function"?we(_variant):we}),` `,e.jsx(p,{alt:"6.2 secondarie",src:typeof fe=="function"?fe(_variant):fe})]})]})]})]})}function sn(a={}){const{wrapper:i}={...w(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(qe,{...a})}):qe(a)}function v(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}export{Ki as M,Wi as a,Yi as b,en as c,nn as d,rn as e,sn as f}; -//# sourceMappingURL=5af6cf5f-question.js.map +//# sourceMappingURL=93ddc3ae-question.js.map diff --git a/assets/o/93ddc3ae-question.js.map b/assets/o/93ddc3ae-question.js.map new file mode 100644 index 0000000..e4fbf82 --- /dev/null +++ b/assets/o/93ddc3ae-question.js.map @@ -0,0 +1 @@ +{"version":3,"file":"93ddc3ae-question.js","sources":["../../../src/fibonacci-primarie/2024-prima-fase/contest/A11-connetti-stati/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/A4-sottrai-potenze/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/a-20-due-carote/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/P6-distribuisci-carote/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/a-21-ordina-conigli/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/a-22-pesa-la-frutta/question.md","../../../src/fibonacci-primarie/2024-prima-fase/contest/p-5-percorso-ad-ostacoli/question.md"],"sourcesContent":["import variants from \"./variants.py\";\n\n\nA _Carotandia_ ci sono $\\js{n}$ paesi, e in ognuno di essi ci sono $\\js{s}$ fattorie.\nTip-Tap vuole costruire delle strade che colleghino tutte le fattorie.\nUna strada tra due fattorie dello stesso paese costa $1$ carota, mentre una strada tra fattorie di paesi diversi costa $2$ carote.\nPer esempio, se ci fossero tre paesi con due fattorie ciascuno, si potrebbero collegare le fattorie come in figura. Questo piano costa due carote per ognuna delle quattro strade tratteggiate, più una carota per ciascuna delle altre due strade, per un totale di dieci carote:\n\n![esempio1](ex1.svg)\n\nIn questo esempio, ci sono anche altri piani validi, ciascuno con un costo di sette carote o più.\nInvece, a _Carotandia_ ci sono $\\js{n}$ paesi con $\\js{s}$ fattorie:\n\n![immagine](immagine.asy?v=variants.py)\n\nQual è il minimo numero di carote che Tip-Tap deve spendere affinché da ogni fattoria si possa raggiungere ogni altra fattoria, eventualmente percorrendo più strade? \n\n- [x] $\\js{ans1}$\n- [ ] $\\js{wrong1[0]}$\n- [ ] $\\js{wrong1[1]}$\n- [ ] $\\js{wrong1[2]}$\n- [ ] $\\js{wrong1[3]}$\n\n> Dato che le strade all'interno dello stesso paese costano poco, conviene intanto collegare le fattorie all'interno dello stesso paese. Per ogni paese servono $\\js{s-1}$ fattorie. Ad esempio, colleghiamo la fattoria $1$ con la fattoria $2$, la fattoria $2$ con la fattoria $3$, ..., la fattoria $\\js{s-1}$ con la fattoria $\\js{s}$. Quindi il costo parziale è di $\\js{n*(s-1)}$ carote.\n> Adesso dobbiamo anche connettere i paesi tra di loro, e servono altre $\\js{n-1}$ strade di costo $2$ carote. Ad esempio, colleghiamo l'ultima fattoria di ogni paese (tranne l'ultimo) con la prima di quello successivo. Il costo totale è $\\js{2*(n-1) + n*(s-1)}$ carote.\n>\n> ![4.1 secondarie](4-1-secondarie.asy)\n\n---\n\nMettiamo ora che le strade che Tip-Tap costruisce siano a **senso unico**, come in questo esempio:\n\n![esempio1](ex2.svg)\n\nQuesto piano costa otto carote ($3 \\times 2 + 2 \\times 1$), e consente di poter andare da ogni fattoria ad ogni altra rispettando i sensi unici.\nCome prima, ci sono anche altri piani validi, ciascuno con un costo di sei carote o più.\nRicordando che a _Carotandia_ ci sono $\\js{n}$ paesi con $\\js{s}$ fattorie:\n\n![immagine](immagine.asy?v=variants.py)\n\nQual è il minimo numero di carote che Tip-Tap deve spendere affinché da ogni fattoria si possa raggiungere ogni altra fattoria, eventualmente percorrendo più strade, ma rispettando sempre i sensi unici?\n\n- [x] $\\js{ans2}$\n- [ ] $\\js{wrong2[0]}$\n- [ ] $\\js{wrong2[1]}$\n- [ ] $\\js{wrong2[2]}$\n- [ ] $\\js{wrong2[3]}$\n\n> Nel problema precedente, abbiamo formato una linea composta da tutte le $\\js{n*s}$ città. Assegniamo lo stesso verso a tutte le strade della linea, in modo che dalla prima città si possa raggiungere l'ultima. Ma in questo modo dall'ultima città non se ne può raggiungere nessun'altra. Per rimediare, basta creare una nuova strada che collega l'ultima città alla prima, pagando un costo aggiuntivo di $2$ carote.\n>\n> ![4.2 secondarie](4-2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nPer esercitarsi nelle sottrazioni, Tip-Tap e Allie hanno inventato un gioco. Hanno scritto il numero $\\js{a1}$ sulla lavagna e devono renderlo uguale a $0$ con una sequenza, la più breve possibile, di operazioni di questo tipo:\n- diminuire di ${1}$ una qualsiasi cifra del numero;\n- sottrarre $\\js{b1}$ al numero (se il numero è almeno $\\js{b1}$).\n\nAd ogni operazione, dopo aver calcolato il risultato, lo sostituiscono al numero scritto sulla lavagna.\nQual è il numero minimo di operazioni che devono fare per rendere il numero pari a $0$, partendo da $\\js{a1}$?\n\n![Lavagna](lavagna1.asy?v=variants.py)\n\n- [x] $\\js{ans1}$\n- [ ] $\\js{wrong1[0]}$\n- [ ] $\\js{wrong1[1]}$\n- [ ] $\\js{wrong1[2]}$\n- [ ] $\\js{wrong1[3]}$\n\n> Per la proprietà commutativa, l'ordine delle sottrazioni non importa, quindi possiamo ipotizzare di fare prima le operazioni di sottrarre $\\js{b1}$, e poi le operazioni per diminuire le cifre di $1$.\n> Proviamo a sottrarre $\\js{b1}$ un po' di volte ($0, 1, 2, \\ldots$), e il numero di mosse rimanenti è la somma delle cifre del numero sulla lavagna.\n> Sottraendo $\\js{b1}$ il numero giusto di volte, la somma delle cifre diventa particolarmente piccola.\n>\n> ![4.1 primarie](4-1-primarie.asy)\n> ![3.1 secondarie](3-1-secondarie.asy)\n\n---\n\nTip-Tap e Allie ora hanno scritto un nuovo numero $\\js{a2}$ sulla lavagna, e le operazioni consentite sono:\n- diminuire di ${1}$ una qualsiasi cifra del numero;\n- sottrarre $\\js{b2}$ al numero (se il numero è almeno $\\js{b2}$).\n\nQual è il numero minimo di operazioni che devono fare per rendere il numero pari a $0$, partendo da $\\js{a2}$?\n\n![Lavagna](lavagna2.asy?v=variants.py)\n\n- [x] $\\js{ans2}$\n- [ ] $\\js{wrong2[0]}$\n- [ ] $\\js{wrong2[1]}$\n- [ ] $\\js{wrong2[2]}$\n- [ ] $\\js{wrong2[3]}$\n\n> Qui $\\js{a2}$ è grande, quindi provare a sottrarre $\\js{b2}$ finché il numero sulla lavagna non è negativo è troppo lungo.\n> Ma possiamo notare che, se troviamo una sequenza con risposta $\\js{ans2}$, non ha senso sottrarre $\\js{b2}$ più di $\\js{ans2}$ volte, e questo accorcia i conti.\n>\n> ![4.2 primarie](4-2-primarie.asy)\n> ![3.2 secondarie](3-2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nBunny e Carol pranzano insieme tutti i giorni, portando ciascuno una carota dalla propria scorta personale.\nNella scorta di Bunny ci sono $\\js{b}$ carote mentre nella scorta di Carol ce ne sono $\\js{c}$.\nDopo quanti giorni uno dei due avrà finito le carote della propria scorta?\n\n![image](fig.asy)\n\n- [x] $\\js{correct1}$\n- [ ] $\\js{wrong1[0]}$\n- [ ] $\\js{wrong1[1]}$\n- [ ] $\\js{wrong1[2]}$\n- [ ] $\\js{wrong1[3]}$\n\n> Bunny impiega $\\js{b}$ giorni per finire le proprie carote, mentre Carol ne impiega $\\js{c}$.\n> Quindi il primo coniglio che finisce le proprie carote è quello che ne ha di meno: dopo $\\js{c}$ giorni, avrà finito le carote.\n>\n> ![1.1 primarie](1-1-primarie.asy)\n\n---\n\nSe invece Carol fosse dispettosa e ogni sera di nascosto rubasse una carota dalla scorta Bunny per metterla nella sua, dopo quanti giorni uno dei due sarà rimasto senza carote nella propria scorta?\n\n- [x] $\\js{correct2}$\n- [ ] $\\js{wrong2[0]}$\n- [ ] $\\js{wrong2[1]}$\n- [ ] $\\js{wrong2[2]}$\n- [ ] $\\js{wrong2[3]}$\n\n> Bunny mangia una carota al giorno, mentre Carol mangia una carota di Bunny al giorno.\n> Quindi ogni giorno Bunny perde $2$ carote, mentre Carol non ne perde nessuna.\n> Quindi la risposta è la metà del numero $\\js{b}$ di carote iniziali di Bunny, cioè $\\js{b/2}$.\n>\n> ![1.2 primarie](1-2-primarie.asy)\n","import variants from \"./variants.py\";\n\nCarol ha $\\js{k1}$ carote da distribuire agli altri conigli, che sono in fila ad aspettare.\n\n![I coniglietti in fila](fila.asy?v=variants.py)\n\nPer ogni coniglio in fila, da sinistra a destra, Carol decide quante carote dargli in base alla seguente regola:\n\n![Algoritmo](code.asy)\n\nQuante carote gli rimarranno alla fine, se all'inizio ne ha $\\js{k1}$?\n\n- [x] $\\js{ans1}$\n- [ ] $\\js{wrong1[0]}$\n- [ ] $\\js{wrong1[1]}$\n- [ ] $\\js{wrong1[2]}$\n- [ ] $\\js{wrong1[3]}$\n\n> Se incontra un coniglio adulto, Carol rimane con metà delle carote che aveva, arrotondate per difetto. Altrimenti, Carol perde una carota.\n> Ripetendo l'operazione per ogni coniglio presente, si arriva alla soluzione.\n>\n> ![5.1 primarie](5-1-primarie.asy)\n> ![5.1 secondarie](5-1-secondarie.asy)\n\n---\n\nSe alla fine della distribuzione Carol volesse rimanere con almeno $\\js{k2}$ carote, quante ne deve avere almeno all'inizio?\n\n- [x] $\\js{ans2}$\n- [ ] $\\js{wrong2[0]}$\n- [ ] $\\js{wrong2[1]}$\n- [ ] $\\js{wrong2[2]}$\n- [ ] $\\js{wrong2[3]}$\n\n> Possiamo ripercorrere il numero di carote di Carol al contrario (dalla fine all'inizio).\n> - Se l'ultimo coniglio è bambino, prima di incontrarlo Carol aveva una carota in più.\n> - Se l'ultimo coniglio è adulto, prima di incontrarlo Carol aveva il doppio delle carote, oppure il doppio delle carote più una. Dato che vogliamo minimizzare il numero di carote iniziali, conviene dare a Carol il doppio delle carote (e mai il doppio delle carote più una).\n>\n> ![5.2 primarie](5-2-primarie.asy)\n> ![5.2 secondarie](5-2-secondarie.asy)\n","Durante la ricreazione, gli amici di Bunny si sono disposti in fila:\n\n![immage](fig.asy)\n\nPer gioco, Bunny deve ordinarli dal più basso al più alto (le altezze degli amici sono scritte sulle loro magliette).\nPuò farlo con degli **scambi** di posto tra coppie di suoi amici. Quali di questi **scambi** può fare Bunny per riordinarli?\n\n- [x] scambiare l'amico alto $4$ con l'amico alto $1$ e poi scambiare l'amico alto $6$ con l'amico alto $3$\n- [ ] scambiare l'amico alto $4$ con l'amico alto $2$ e poi scambiare l'amico alto $6$ con l'amico alto $1$\n- [ ] Bunny non può ordinarli solo con scambi\n- [ ] scambiare l'amico alto $6$ con l'amico alto $3$\n- [ ] scambiare l'amico alto $6$ con l'amico alto $3$ e poi scambiare l'amico alto $4$ con l'amico alto $2$\n\n> Il coniglio alto $1$ è in quarta posizione e quello alto $4$ è in prima posizione, quindi vanno scambiati.\n> Inoltre, il coniglio alto $3$ è in sesta posizione e quello alto $6$ è in terza posizione, quindi vanno scambiati.\n> Non servono altri scambi!\n>\n> ![2.1 primarie](2-1-primarie.asy)\n> ![1.1 secondarie](1-1-secondarie.asy)\n\n---\n\nPer rendere il gioco più difficile, ora Bunny può solo fare **scambi di vicini**, cioè può scambiare di posto due suoi amici solo se sono uno di fianco all'altro.\nQuanti **scambi di vicini** deve fare per ordinare i suoi amici?\n\n- [ ] $6$\n- [ ] $2$\n- [x] $8$\n- [ ] $12$\n- [ ] $11$\n\n> Conviene fare solo scambi tra conigli vicini in ordine sbagliato, cioè conviene fare uno scambio solo se il coniglio a sinistra è più alto di quello a destra. Ad esempio,\n>\n> - All'inizio, l'ordine è $[4, 2, 6, 1, 5, 3]$.\n> - Dopo il primo scambio, l'ordine è $[2, 4, 6, 1, 5, 3]$.\n> - Dopo il secondo scambio, l'ordine è $[2, 4, 1, 6, 5, 3]$.\n> - Dopo il terzo scambio, l'ordine è $[2, 1, 4, 6, 5, 3]$.\n> - Dopo il quarto scambio, l'ordine è $[1, 2, 4, 6, 5, 3]$.\n> - Dopo il quinto scambio, l'ordine è $[1, 2, 4, 5, 6, 3]$.\n> - Dopo il sesto scambio, l'ordine è $[1, 2, 4, 5, 3, 6]$.\n> - Dopo il settimo scambio, l'ordine è $[1, 2, 4, 3, 5, 6]$.\n> - Dopo l'ottavo scambio, l'ordine è $[1, 2, 3, 4, 5, 6]$.\n>\n> Anche facendo altri scambi, la risposta non cambia, purché non si facciano scambi tra conigli vicini che sono già nell'ordine giusto.\n> Non è una coincidenza: all'inizio, ci sono $8$ coppie di conigli (non necessariamente vicini) tali che il più alto dei due è più a sinistra di quello in basso, e ad ogni scambio il numero di queste coppie diminuisce di $1$.\n>\n> ![2.2 primarie](2-2-primarie.asy)\n> ![1.2 secondarie](1-2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nCarol ha comprato una nuova bilancia. Ha quindi confrontato alcuni frutti e delle carote come vedi in figura:\n\n
\n![scale1](scale1.asy?v=variants.py)\n![scale2](scale2.asy?v=variants.py)\n
\n\n
\n![scale1](scale1.asy?v=variants.py)\n\n![scale2](scale2.asy?v=variants.py)\n
\n\nin entrambe le prove le bilance sono in *equilibrio*, cioè la somma dei pesi degli oggetti sul piatto a sinistra è uguale alla somma dei pesi degli oggetti sul piatto a destra.\nQuali tra queste immagini riporta gli oggetti in ordine dal più leggero al più pesante?\n\n
\n- [ ] ![A](A.asy?v=variants.py&s=0.6)\n- [ ] ![B](B.asy?v=variants.py&s=0.6)\n- [ ] ![C](C.asy?v=variants.py&s=0.6)\n- [ ] ![D](D.asy?v=variants.py&s=0.6)\n- [x] ![E](E.asy?v=variants.py&s=0.6)\n
\n\n> Togliendo due carote da entrambi i piatti della prima bilancia Carol riesce a capire che il peso dei due frutti rimanenti sul piatto sinistro\n> della prima bilancia è uguale a quello di una carota. Sapendo questo, capisce quindi che il peso del piatto sinistro della seconda bilancia è di \n> due carote ed è uguale al peso del frutto sul piatto destro. I frutti che in due pesano come una carota sono i più leggeri, i frutti che\n> pesano come due carote sono i più pesanti e le carote stanno nel mezzo.\n>\n> ![3.1 primarie](3-1-primarie.asy)\n> ![2.1 secondarie](2-1-secondarie.asy)\n\n---\n\nDopo le pesate di prima, che riportiamo qui per comodità:\n\n
\n![scale1](scale1.asy?v=variants.py)\n![scale2](scale2.asy?v=variants.py)\n
\n\n
\n![scale1](scale1.asy?v=variants.py)\n\n![scale2](scale2.asy?v=variants.py)\n
\n\nCarol compra altri frutti da pesare e ottiene il risultato che vedi nella prima bilancia qui sotto:\n\n
\n![scale3](scale3.asy?v=variants.py)\n![scale4](scale4.asy?v=variants.py)\n
\n\n
\n![scale3](scale3.asy?v=variants.py)\n\n![scale4](scale4.asy?v=variants.py)\n
\n\n
\nQuante carote deve mettere Carol al posto del punto interrogativo ($\\texttt{?}$) per equilibrare l'ultima bilancia?\n\n- [x] $4$\n- [ ] $6$\n- [ ] $8$\n- [ ] $7$\n- [ ] $2$\n
\n\n> Con lo stesso ragionamento di prima si capisce che la somma dei pesi dei nuovi frutti è di una carota, perchè il frutto sulla destra della \n> bilancia ne pesa due e una carota è già presente a sinistra. Di conseguenza per mettere la bilancia in equilibrio sul piatto al posto del punto di domanda andranno 4 carote:\n> due per i nuovi frutti, e due per il vecchio frutto.\n>\n> ![3.2 primarie](3-2-primarie.asy)\n> ![2.2 secondarie](2-2-secondarie.asy)\n","Bunny si trova sulla casella $1$ di questo percorso ad ostacoli:\n\n![fig](fig.asy)\n\nIl suo obbiettivo è **raggiungere o superare** la casella numero $10$ dove c'è la bandierina del traguardo.\nBunny può fare le seguenti due azioni:\n+ **avanza**: Bunny avanza alla casella successiva;\n+ **salta**: Bunny supera la casella successiva con un salto, atterrando su quella dopo.\n\nPer esempio se Bunny compie un'azione **salta** quando è sulla casella $1$, supera la casella $2$ e atterra sulla casella $3$.\n**ATTENZIONE:** sul percorso ci sono delle *grandi rocce*! Bunny non può passare su una casella occupata da una *grande roccia*, altrimenti cadrebbe, ma può superarla grazie ad un'azione **salta**.\nSe Bunny segue il procedimento qui sotto, riesce a raggiungere la bandierina?\n\n
\n![code](code.asy)\n
\n
\n![code](code.asy?s=0.5)\n
\n\n- [ ] si, raggiunge la bandierina\n- [ ] no, perchè cade sulla *grande roccia* in posizione $4$\n- [x] no, perchè si ferma sulla casella $9$\n- [ ] no, perchè cade sulla *grande roccia* in posizione $8$\n- [ ] si, raggiunge e supera la bandierina arrivando sulla casella $13$\n\n> Ripercorriamo il percorso di Bunny:\n>\n> - Casella iniziale: $1$.\n> - Prima ripetizione:\n> - `avanza`: nuova casella $2$;\n> - `avanza`: nuova casella $3$;\n> - `salta`: nuova casella $5$;\n> - Seconda ripetizione:\n> - `avanza`: nuova casella $6$;\n> - `avanza`: nuova casella $7$;\n> - `salta`: nuova casella $9$.\n>\n> Quindi Bunny si ferma nella posizione $9$, senza raggiungere la bandierina.\n>\n> ![6.1 primarie](6-1-primarie.asy)\n> ![6.1 secondarie](6-1-secondarie.asy)\n\n---\n\nRicordiamo il percorso ad ostacoli ed il procedimento seguito da Bunny:\n\n![fig](fig.asy)\n\n
\n![code](code.asy)\n
\n
\n![code](code.asy?s=0.5)\n
\n\nBunny si chiede se cambiando punto di partenza riuscirebbe a raggiungere o superare la bandierina. Per quali di questi punti di partenza Bunny raggiunge la bandierina seguendo il suo procedimento?\n\n\n- [ ] la casella $2$\n- [x] la casella $5$\n- [ ] la casella $7$\n- [ ] la casella $6$\n- [ ] non ci sono punti di partenza da cui raggiunge la bandierina\n\n> Bunny vince partendo dalla casella $5$, in questo modo:\n>\n> - Casella iniziale: $5$.\n> - Prima ripetizione:\n> - `avanza`: nuova casella $6$;\n> - `avanza`: nuova casella $7$;\n> - `salta`: nuova casella $9$.\n> - Seconda ripetizione:\n> - `avanza`: nuova casella $10$, e Bunny vince.\n>\n> Se invece Bunny parte dalla casella $2$, si ferma sulla roccia in posizione $4$, e se parte dalla casella $6$ o dalla casella $7$ si ferma sulla roccia in posizione $8$.\n>\n> ![6.2 primarie](6-2-primarie.asy)\n> ![6.2 secondarie](6-2-secondarie.asy)\n"],"names":["_jsx","_components","Equation","_jsxs","Image"],"mappings":"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"} \ No newline at end of file diff --git a/assets/o/2b03354b-question.js b/assets/o/e8898e3c-question.js similarity index 99% rename from assets/o/2b03354b-question.js rename to assets/o/e8898e3c-question.js index 383ac43..7526405 100644 --- a/assets/o/2b03354b-question.js +++ b/assets/o/e8898e3c-question.js @@ -1,5 +1,5 @@ /*! For licenses information, see LICENSES.txt */ -"use client";import{j as e}from"../_virtual_quizms-routes-09086dad.js";import{n as c,r as w}from"../w/38364625-chunk-IFWY6GUU.js";import{r as I}from"../s/00dd80a9-react-dom.js";import{C as L,R as b,S as f,V as U}from"../i/72d422f6-visualizer.js";const z={src:new URL("../f/f81c9e69-code.svg",import.meta.url).href,width:1427,height:1127};function R(a){const i={li:"li",p:"p",span:"span",strong:"strong",ul:"ul",...c(),...a.components},{Answer:t,AnswerGroup:s,Equation:n,Explanation:r,Image:o,SubProblem:l}=i;return t||d("Answer"),s||d("AnswerGroup"),n||d("Equation"),r||d("Explanation"),o||d("Image"),l||d("SubProblem"),e.jsxs(l,{children:[e.jsxs(i.p,{children:["Considera questo procedimento, che usa le tre ",e.jsx(i.strong,{children:"variabili"})," numeriche di nome ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`A`}),","]})," ",e.jsx(n,{children:String.raw`B`})," e ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),"."]})]}),e.jsx(i.p,{children:e.jsx(o,{alt:"code",src:typeof z=="function"?z(_variant):z})}),e.jsx(i.p,{children:"Questo programma viene eseguito due volte:"}),e.jsxs(i.ul,{children:[` +"use client";import{j as e}from"../_virtual_quizms-routes-e5ffd91c.js";import{n as c,r as w}from"../w/c06ec230-chunk-IFWY6GUU.js";import{r as I}from"../s/00dd80a9-react-dom.js";import{C as L,R as b,S as f,V as U}from"../i/05878499-visualizer.js";const z={src:new URL("../f/f81c9e69-code.svg",import.meta.url).href,width:1427,height:1127};function R(a){const i={li:"li",p:"p",span:"span",strong:"strong",ul:"ul",...c(),...a.components},{Answer:t,AnswerGroup:s,Equation:n,Explanation:r,Image:o,SubProblem:l}=i;return t||d("Answer"),s||d("AnswerGroup"),n||d("Equation"),r||d("Explanation"),o||d("Image"),l||d("SubProblem"),e.jsxs(l,{children:[e.jsxs(i.p,{children:["Considera questo procedimento, che usa le tre ",e.jsx(i.strong,{children:"variabili"})," numeriche di nome ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`A`}),","]})," ",e.jsx(n,{children:String.raw`B`})," e ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),"."]})]}),e.jsx(i.p,{children:e.jsx(o,{alt:"code",src:typeof z=="function"?z(_variant):z})}),e.jsx(i.p,{children:"Questo programma viene eseguito due volte:"}),e.jsxs(i.ul,{children:[` `,e.jsxs(i.li,{children:["La prima volta impostando ",e.jsx(n,{children:String.raw`A`})," a ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`7`}),","]})," ",e.jsx(n,{children:String.raw`B`})," a ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`4`}),","]})," e ",e.jsx(n,{children:String.raw`C`})," a ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`6`}),"."]})]}),` `,e.jsxs(i.li,{children:["La seconda volta impostando invece ",e.jsx(n,{children:String.raw`A`})," a ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`5`}),","]})," ",e.jsx(n,{children:String.raw`B`})," a ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`7`}),","]})," e ",e.jsx(n,{children:String.raw`C`})," a ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`9`}),"."]})]}),` `]}),e.jsx(i.p,{children:"Quali numeri stampa il procedimento?"}),e.jsxs(s,{children:[e.jsx(t,{correct:!0,children:e.jsx(i.p,{children:"7 e 9"})}),e.jsx(t,{correct:!1,children:e.jsx(i.p,{children:"6 e 9"})}),e.jsx(t,{correct:!1,children:e.jsx(i.p,{children:"7 e 7"})}),e.jsx(t,{correct:!1,children:e.jsx(i.p,{children:"5 e 7"})}),e.jsx(t,{correct:!1,children:e.jsx(i.p,{children:"4 e 5"})})]}),e.jsxs(r,{children:[e.jsxs(i.p,{children:["Il procedimento ogni volta stampa il numero più grande tra ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`A`}),","]})," ",e.jsx(n,{children:String.raw`B`})," e ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),"."]})]}),e.jsxs(i.p,{children:["La prima volta che viene eseguito il programma, ",e.jsx(n,{children:String.raw`A`})," è più grande di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`B`}),","]})," si controlla quindi se ",e.jsx(n,{children:String.raw`A`})," è più grande di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),"."]})," Essendo ",e.jsx(n,{children:String.raw`A`})," più grande di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),","]})," il programma scrive il valore di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`A`}),","]})," che è ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`7`}),"."]})]}),e.jsxs(i.p,{children:["La seconda volta, ",e.jsx(n,{children:String.raw`A`})," è più piccolo di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`B`}),","]})," si controlla quindi se ",e.jsx(n,{children:String.raw`B`})," è più grande di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),","]})," ma ",e.jsx(n,{children:String.raw`B`})," è più piccolo di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),"."]})," Il programma scrive quindi il valore di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),","]})," che è ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`9`}),"."]})]})]})]})}function be(a={}){const{wrapper:i}={...c(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(R,{...a})}):R(a)}function d(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}const _={src:new URL("../0/00f3fd99-code.svg",import.meta.url).href,width:660,height:768},u={src:new URL("../9/98731161-opz1.svg",import.meta.url).href,width:660,height:280},S={src:new URL("../8/8e99be27-opz2.svg",import.meta.url).href,width:659,height:280},y={src:new URL("../c/c167b4d6-opz3.svg",import.meta.url).href,width:625,height:119},N={src:new URL("../0/05e4bdb0-opz4.svg",import.meta.url).href,width:660,height:280};function E(a){const i={em:"em",li:"li",ol:"ol",p:"p",span:"span",strong:"strong",...c(),...a.components},{Answer:t,AnswerGroup:s,Equation:n,Explanation:r,Image:o,SubProblem:l}=i;return t||h("Answer"),s||h("AnswerGroup"),n||h("Equation"),r||h("Explanation"),o||h("Image"),l||h("SubProblem"),e.jsxs(l,{children:[e.jsxs(i.p,{children:["Considera questo procedimento, che si riferisce alle tre ",e.jsx(i.strong,{children:"variabili"})," numeriche ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`A`}),","]})," ",e.jsx(n,{children:String.raw`B`})," e ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`C`}),":"]})]}),e.jsx(i.p,{children:e.jsx(o,{alt:"code",src:typeof _=="function"?_(_variant):_})}),e.jsxs(i.p,{children:["Questo procedimento dovrebbe stampare la ",e.jsx(i.em,{children:"mediana"})," tra le tre variabili, ovvero il valore di mezzo tra i tre. Ad esempio, la mediana di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`5`}),","]})," ",e.jsx(n,{children:String.raw`3`})," e ",e.jsx(n,{children:String.raw`10`})," è ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`5`}),","]})," e la mediana di ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`4`}),","]})," ",e.jsx(n,{children:String.raw`1`})," e ",e.jsx(n,{children:String.raw`1`})," è ",e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`1`}),"."]})," Tuttavia, mancano dei blocchi per completare il procedimento!"]}),e.jsxs(i.p,{children:["Quale delle seguenti può essere la parte mancante, da sostituire al blocco indicato con ",e.jsx(i.strong,{children:"???"}),", affinché il procedimento stampi sempre la mediana?"]}),e.jsxs(s,{children:[e.jsx(t,{correct:!0,children:e.jsx(i.p,{children:e.jsx(o,{alt:"opzione1",src:typeof u=="function"?u(_variant):u})})}),e.jsx(t,{correct:!1,children:e.jsx(i.p,{children:e.jsx(o,{alt:"opzione2",src:typeof S=="function"?S(_variant):S})})}),e.jsx(t,{correct:!1,children:e.jsx(i.p,{children:e.jsx(o,{alt:"opzione3",src:typeof y=="function"?y(_variant):y})})}),e.jsx(t,{correct:!1,children:e.jsx(i.p,{children:e.jsx(o,{alt:"opzione4",src:typeof N=="function"?N(_variant):N})})}),e.jsx(t,{correct:!1,children:e.jsx(i.p,{children:"Il procedimento è già completo, non servono altri blocchi"})})]}),e.jsxs(r,{children:[e.jsx(i.p,{children:"La risposta è"}),e.jsx(i.p,{children:e.jsx(o,{alt:"opzione1",src:typeof u=="function"?u(_variant):u})}),e.jsx(i.p,{children:"Vediamo cosa fa il procedimento dopo averlo completato nel modo proposto."}),e.jsxs(i.ol,{children:[` @@ -62,4 +62,4 @@ più pannelli di quelli che sono disponibili dalla posizione `,e.jsx(i.strong,{c pannelli da pitturare supera `,e.jsxs(i.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(n,{children:String.raw`N+1`}),"."]}),` In questo caso, Bunny è costretto a cancellare alcuni dei colori che ha già usato: torna quindi indietro il meno possibile, finché non ha abbastanza spazio per pitturare il numero di pannelli che gli è stato richiesto. Dopo aver ripetuto questo procedimento per tutti i colori, Bunny può mettere via i pennelli.`]})]})]})}function ye(a={}){const{wrapper:i}={...c(),...a.components};return i?e.jsx(i,{...a,children:e.jsx(T,{...a})}):T(a)}function j(a,i){throw new Error("Expected component `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}export{be as M,ve as a,ze as b,_e as c,Se as d,ye as e}; -//# sourceMappingURL=2b03354b-question.js.map +//# sourceMappingURL=e8898e3c-question.js.map diff --git a/assets/o/2b03354b-question.js.map b/assets/o/e8898e3c-question.js.map similarity index 99% rename from assets/o/2b03354b-question.js.map rename to assets/o/e8898e3c-question.js.map index f71dfa2..7e663d7 100644 --- a/assets/o/2b03354b-question.js.map +++ b/assets/o/e8898e3c-question.js.map @@ -1 +1 @@ -{"version":3,"file":"2b03354b-question.js","sources":["../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/p-2-condizioni/question.md","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/p-3-mediana/question.md","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/p-4-ciclo-lista/question.md","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-2-alza-torre/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-2-alza-torre/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-3-gira-ruota/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-3-gira-ruota/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-4-muro/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-4-muro/question.mdx"],"sourcesContent":["Considera questo procedimento, che usa le tre **variabili** numeriche di nome $A$, $B$ e $C$.\n\n![code](code.asy)\n\nQuesto programma viene eseguito due volte:\n\n- La prima volta impostando $A$ a $7$, $B$ a $4$, e $C$ a $6$.\n- La seconda volta impostando invece $A$ a $5$, $B$ a $7$, e $C$ a $9$.\n\nQuali numeri stampa il procedimento?\n\n- [x] 7 e 9\n- [ ] 6 e 9\n- [ ] 7 e 7\n- [ ] 5 e 7\n- [ ] 4 e 5\n\n> Il procedimento ogni volta stampa il numero più grande tra $A$, $B$ e $C$.\n>\n> La prima volta che viene eseguito il programma, $A$ è più grande di $B$, si controlla quindi se $A$ è più grande di $C$. Essendo $A$ più grande di $C$, il programma scrive il valore di $A$, che è $7$.\n>\n> La seconda volta, $A$ è più piccolo di $B$, si controlla quindi se $B$ è più grande di $C$, ma $B$ è più piccolo di $C$. Il programma scrive quindi il valore di $C$, che è $9$.\n","Considera questo procedimento, che si riferisce alle tre **variabili** numeriche $A$, $B$ e $C$:\n\n![code](code.asy)\n\nQuesto procedimento dovrebbe stampare la _mediana_ tra le tre variabili, ovvero il valore di mezzo tra i tre. Ad esempio, la mediana di $5$, $3$ e $10$ è $5$, e la mediana di $4$, $1$ e $1$ è $1$. Tuttavia, mancano dei blocchi per completare il procedimento!\n\nQuale delle seguenti può essere la parte mancante, da sostituire al blocco indicato con **???**, affinché il procedimento stampi sempre la mediana?\n\n- [x] ![opzione1](opz1.asy)\n- [ ] ![opzione2](opz2.asy)\n- [ ] ![opzione3](opz3.asy)\n- [ ] ![opzione4](opz4.asy)\n- [ ] Il procedimento è già completo, non servono altri blocchi\n\n> La risposta è\n>\n> ![opzione1](opz1.asy)\n>\n> Vediamo cosa fa il procedimento dopo averlo completato nel modo proposto.\n>\n> 1. Per prima cosa, le due variabili $A$ e $B$ vengono ordinate, scambiandone i valori se necessario.\n> 2. A questo punto, $B$ e $C$ vengono ordinate. In questo momento, $C$ contiene il massimo dei tre valori iniziali.\n> 3. Per finire, $A$ e $B$ vengono nuovamente ordinate. Adesso $B$ contiene il massimo dei due valori più piccoli, ovvero il valore centrale (la mediana)!\n>\n> _Approfondimento:_ questo procedimento si chiama **BubbleSort** su tre variabili, uno dei più semplici (ma poco efficienti) algoritmi di ordinamento.\n","Considera questo procedimento, che si riferisce ad un **lista** di numeri $A$, di dimensione rappresentata dalla **variabile** numerica $N$, e con l'ausilio della **variabile** numerica $P$.\n\n![code](code.asy)\n\nIl procedimento viene eseguito tre volte, sempre con $N$ pari a $9$ e con i tre seguenti valori per la lista $A$:\n\n![array](fig1.asy?w=650)\n\nPer quali di questi valori di $A$ il procedimento stampa _\"trovato\"_?\n\n- [x] Solo il valore 1.\n- [ ] Solo il valore 2.\n- [ ] Solo il valore 3.\n- [ ] Tutti.\n- [ ] Solo i valori 1 e 3.\n\n> Il procedimento scandisce la lista di numeri dall'inizio, andando a cercare una posizione che contiene uno zero seguito da un uno: se la trova stampa _\"trovato\"_, altrimenti non stampa nulla.\n>\n> Nel primo caso il procedimento stampa _\"trovato\"_, infatti quando $P$ è uguale a $2$ il valore in posizione $P$ di $A$ è $0$ e il valore in posizione $P+1$ è $1$.\n>\n> Nel secondo e nel terzo caso invece il procedimento non stampa nulla, dato che non esiste nessun valore di $P$ tale che la posizione $P$ di $A$ sia uguale a $0$ e la posizione $P+1$ di $A$ sia uguale a $1$.\n","\"use client\";\n\nimport { useEffect, useRef } from \"react\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=66\";\nimport stairs from \"./asy/stairs.asy?w=80\";\n\nexport default function Visualizer({ variables, state }) {\n const colors = [\n \"#4093b0\",\n \"#bf4eb4\",\n \"#44c966\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n \"#40af91\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n ];\n\n const ref = useRef();\n useEffect(() => {\n const container = ref.current?.parentElement;\n if (container) {\n container.scrollTop = container.scrollHeight;\n }\n }, []);\n\n const y = [0];\n for (let i = 0; i < state.N; i++) {\n y[i + 1] = y[i] + (state.rot[i] ? state.larghezze[i] : state.altezze[i]);\n }\n\n return (\n
\n \n {range(state.N).map((i) => {\n const px = 16 - state.larghezze[i] / 2;\n const py = y[i] + (state.rot[i] && (state.larghezze[i] - state.altezze[i]) / 2);\n const rotation = state.rot[i] ? 0.25 : 0;\n return (\n \n );\n })}\n \n \n \n \n
\n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s2.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nBunny e i suoi amici stanno cercando gli ovetti di pasqua nascosti in giro per la fattoria Fibonacci!\nBunny è convinto che ci siano ovetti nascosti anche sui tetti, quindi ha deciso di costruire una\ntorre che gli consenta di arrivare più in alto possibile.\n\nPer farlo, ha impilato $N$ scatole rettangolari di varie dimensioni. Bunny può misurare queste dimensioni,\ntramite le operazioni:\n\n- `altezza della scatola i`: l'altezza della $i$-esima scatola.\n- `larghezza della scatola i`: la larghezza della $i$-esima scatola.\n\nTuttavia, Bunny non è convinto di aver realizzato la torre più alta che potrebbe fare. Per aggiustare\nla torre, Bunny può fare la seguente operazione:\n\n- `ruota la scatola i`: ruota di 90 gradi la scatola $i$-esima, scambiando quindi di conseguenza\n la sua altezza con la sua larghezza.\n\nAiuta Bunny a realizzare la torre più alta! Aiutalo anche a capire per quali tetti la torre sarà\nabbastanza alta, riportando l'altezza totale della torre con l'operazione:\n\n- `riporta altezza t`: termina il programma riportando il numero $t$ come altezza della torre.\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> In questo programma, dopo aver inizializzato la variabile $t$ a zero, Bunny itera sulle $N$ scatole,\n> numerandole tramite la variabile $i$ che cresce da $1$ a $N$ a ogni iterazione. In ciascun passo,\n> controlla se l'altezza della scatola $i$-esima è minore della sua larghezza: in questo caso, conviene\n> ruotarla per alzare la torre. Volendo inoltre calcolare l'altezza totale della torre, Bunny aggiunge\n> l'altezza della scatola (possibilmente ruotata) alla variabile $t$. Una volta terminato di esaminare\n> tutte le scatole, Bunny può terminare riportando il valore di $t$ come altezza della torre.\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=45\";\n\nfunction Sector({ color, from, portion, text }) {\n const deg = 0.5 - portion;\n return (\n \n \n \n {text}\n \n \n );\n}\n\nexport default function Visualizer({ variables, state }) {\n const { S, N, C, pos, prizes, friends } = state;\n\n const colors = [\n \"#4093b0\",\n \"#bf4eb4\",\n \"#44c966\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n \"#40af91\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n ];\n\n return (\n <>\n \n \n {range(S).map((i) => (\n \n ))}\n {range(N).map((i) => (\n \n ))}\n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s3.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nTip-Tap ha appena raccolto ben $C$ carote dal suo orto, e vuole condividerle con i suoi $N$ amici.\nLi ha quindi invitati tutti a giocare alla ruota della fortuna, per decidere come dividerle divertendosi!\n\nLa ruota della fortuna è un cerchio diviso in $S$ spicchi, e su ciascuno di essi c'è scritto un numero.\nTutti i giocatori si siedono intorno alla ruota davanti a uno spicchio e poi la ruota viene fatta girare:\nquando la ruota si ferma, ognuno otterrà tante carote quanto è il numero scritto sullo spicchio che a\nquel punto avrà davanti a sé.\n\nOra gli amici sono arrivati, ma Tip-Tap si è reso conto di non aver fatto bene i conti: potrebbe non avere\nabbastanza carote per pagare i premi! Per non fare brutta figura con gli amici, decide quindi di far girare\nlentamente la ruota e poi fermarla di nascosto non appena si trova in una posizione in cui ha abbastanza\ncarote per tutti. Per farlo, Tip-Tap può fare le seguenti azioni:\n\n- `gira la ruota`: lascia girare la ruota di un ulteriore spicchio.\n- `premio di i`: quante carote riceverebbe al momento l'$i$-esimo amico.\n- `ferma la ruota`: ferma la ruota e termina il programma.\n\nAiuta Tip-Tap, facendo girare la ruota fino a che non raggiunge la prima posizione per cui Tip-Tap\nha abbastanza carote per pagare tutti i premi!\n\n_**Attenzione:** c'è sempre almeno una posizione della ruota che consente a Tip-Tap di pagare tutti i premi._\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> In questo programma, Tip-Tap prova a far girare la ruota fino ad un massimo di $S$ volte, provando quindi\n> tutte le rotazioni possibili. Per ogni rotazione, calcola il premio totale da assegnare ai suoi amici\n> nella variabile **somma**, inizializzandola a zero e poi iterando su tutti gli $N$ amici, ogni volta\n> incrementando **somma** del valore del premio per l'amico $i$-esimo in questa rotazione. Se la somma\n> così calcolata risulta minore del numero di carote a disposizione, Tip-Tap ferma la ruota, altrimenti\n> lascia che la ruota continui a girare e continua a provare la prossima rotazione.\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=66\";\n\nconst paints = import.meta.glob(\"./asy/paint*.asy\", {\n eager: true,\n import: \"default\",\n query: { w: 40 },\n});\n\nexport default function Visualizer({ variables, state }) {\n const colors = [\n \"#ffffff\",\n \"#0000ff\",\n \"#ff0000\",\n \"#00ff00\",\n \"#ff00ff\",\n \"#ffff00\",\n \"#00ffff\",\n \"#7f7f7f\",\n \"#7f0000\",\n \"#007f00\",\n \"#7f7f00\",\n \"#000000\",\n ];\n\n return (\n <>\n \n {range(state.N).map((i) => (\n \n ))}\n \n \n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s4.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nBunny ha comprato $C$ colori diversi per dipingere il muro della fattoria, che è composto\nda $N$ pannelli verticali. L'obiettivo di Bunny è di dipingere il muro in zone rettangolari\nche seguono i pannelli con la supervisione di Carol, l'artista della fattoria.\n\nBunny utilizzerà un colore alla volta nell'ordine che gli viene dato da Carol. Inoltre, Carol\nsa quali colori sono i più belli, e quindi vuole che il colore $i$-esimo sia utilizzato per\ndipingere un rettangolo largo $L_i$ pannelli.\n\nBunny è però libero di scegliere dove posizionare ogni rettangolo nel muro, e cioè da quale\npannello cominciare a dipingere, a patto di non dipingere oltre i bordi del muro.\nAttenzione che Bunny può anche dipingere sopra i vecchi colori!\n\nA Bunny piacciono le pareti colorate, e quindi vorrebbe che alla fine del lavoro rimangano\nvisibili sul muro più colori possibile (senza considerare il bianco iniziale del muro).\nAiutalo a raggiungere il suo scopo, rispettando però le indicazioni di Carol!\n\nBunny può fare le seguenti azioni:\n\n- `pannelli da pitturare`: quanti pannelli $L_i$ sono da pitturare con il colore corrente $i$ secondo Carol.\n- `colora dalla posizione p`: usa il colore corrente $i$ per pitturare completamente $L_i$\n pannelli, a partire dal pannello $p$-esimo in poi, poi passa al prossimo colore. Attenzione che devono esistere almeno $L_i$\n pannelli nel muro a partire dal $p$-esimo!\n- `metti via i pennelli`: finisce di pitturare e termina il programma.\n\nAiuta Bunny a pitturare di modo da lasciare più colori possibile alla fine del lavoro!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> In questo programma, Bunny per avere più colori possibile sfrutta un'idea: far sì che tutti i colori dall'inizio\n> fino alla sua posizione siano tutti diversi. Per ogni colore, prova quindi ad iniziare a colorare dalla posizione\n> **pos** che è subito dopo alla posizione da cui ha colorato precedentemente, incrementando quindi **pos** di $1$ > _(all'inizio, parte a colorare dalla prima posizione)_. Tuttavia, potrebbe essere che Carol gli chieda di pitturare\n> più pannelli di quelli che sono disponibili dalla posizione **pos** in avanti: questo succede se **pos** sommato ai\n> pannelli da pitturare supera $N+1$. In questo caso, Bunny è costretto a cancellare alcuni dei colori che ha già\n> usato: torna quindi indietro il meno possibile, finché non ha abbastanza spazio per pitturare il numero di pannelli\n> che gli è stato richiesto. Dopo aver ripetuto questo procedimento per tutti i colori, Bunny può mettere via i pennelli.\n"],"names":["_jsx","_components","_jsxs","Equation","Visualizer","variables","state","colors","ref","useRef","useEffect","container","y","i","jsxs","Canvas","range","px","py","rotation","jsx","Rectangle","Sprite","stairs","bunny","Variables","customBlocks","initialBlocks","testcases","logBlocks","logJs","logVariables","Sector","color","from","portion","text","deg","S","N","C","pos","prizes","friends","Fragment","paints","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"e8898e3c-question.js","sources":["../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/p-2-condizioni/question.md","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/p-3-mediana/question.md","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/p-4-ciclo-lista/question.md","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-2-alza-torre/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-2-alza-torre/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-3-gira-ruota/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-3-gira-ruota/question.mdx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-4-muro/visualizer.jsx","../../../src/fibonacci-primarie/2023-seconda-fase-demo/contest/s-4-muro/question.mdx"],"sourcesContent":["Considera questo procedimento, che usa le tre **variabili** numeriche di nome $A$, $B$ e $C$.\n\n![code](code.asy)\n\nQuesto programma viene eseguito due volte:\n\n- La prima volta impostando $A$ a $7$, $B$ a $4$, e $C$ a $6$.\n- La seconda volta impostando invece $A$ a $5$, $B$ a $7$, e $C$ a $9$.\n\nQuali numeri stampa il procedimento?\n\n- [x] 7 e 9\n- [ ] 6 e 9\n- [ ] 7 e 7\n- [ ] 5 e 7\n- [ ] 4 e 5\n\n> Il procedimento ogni volta stampa il numero più grande tra $A$, $B$ e $C$.\n>\n> La prima volta che viene eseguito il programma, $A$ è più grande di $B$, si controlla quindi se $A$ è più grande di $C$. Essendo $A$ più grande di $C$, il programma scrive il valore di $A$, che è $7$.\n>\n> La seconda volta, $A$ è più piccolo di $B$, si controlla quindi se $B$ è più grande di $C$, ma $B$ è più piccolo di $C$. Il programma scrive quindi il valore di $C$, che è $9$.\n","Considera questo procedimento, che si riferisce alle tre **variabili** numeriche $A$, $B$ e $C$:\n\n![code](code.asy)\n\nQuesto procedimento dovrebbe stampare la _mediana_ tra le tre variabili, ovvero il valore di mezzo tra i tre. Ad esempio, la mediana di $5$, $3$ e $10$ è $5$, e la mediana di $4$, $1$ e $1$ è $1$. Tuttavia, mancano dei blocchi per completare il procedimento!\n\nQuale delle seguenti può essere la parte mancante, da sostituire al blocco indicato con **???**, affinché il procedimento stampi sempre la mediana?\n\n- [x] ![opzione1](opz1.asy)\n- [ ] ![opzione2](opz2.asy)\n- [ ] ![opzione3](opz3.asy)\n- [ ] ![opzione4](opz4.asy)\n- [ ] Il procedimento è già completo, non servono altri blocchi\n\n> La risposta è\n>\n> ![opzione1](opz1.asy)\n>\n> Vediamo cosa fa il procedimento dopo averlo completato nel modo proposto.\n>\n> 1. Per prima cosa, le due variabili $A$ e $B$ vengono ordinate, scambiandone i valori se necessario.\n> 2. A questo punto, $B$ e $C$ vengono ordinate. In questo momento, $C$ contiene il massimo dei tre valori iniziali.\n> 3. Per finire, $A$ e $B$ vengono nuovamente ordinate. Adesso $B$ contiene il massimo dei due valori più piccoli, ovvero il valore centrale (la mediana)!\n>\n> _Approfondimento:_ questo procedimento si chiama **BubbleSort** su tre variabili, uno dei più semplici (ma poco efficienti) algoritmi di ordinamento.\n","Considera questo procedimento, che si riferisce ad un **lista** di numeri $A$, di dimensione rappresentata dalla **variabile** numerica $N$, e con l'ausilio della **variabile** numerica $P$.\n\n![code](code.asy)\n\nIl procedimento viene eseguito tre volte, sempre con $N$ pari a $9$ e con i tre seguenti valori per la lista $A$:\n\n![array](fig1.asy?w=650)\n\nPer quali di questi valori di $A$ il procedimento stampa _\"trovato\"_?\n\n- [x] Solo il valore 1.\n- [ ] Solo il valore 2.\n- [ ] Solo il valore 3.\n- [ ] Tutti.\n- [ ] Solo i valori 1 e 3.\n\n> Il procedimento scandisce la lista di numeri dall'inizio, andando a cercare una posizione che contiene uno zero seguito da un uno: se la trova stampa _\"trovato\"_, altrimenti non stampa nulla.\n>\n> Nel primo caso il procedimento stampa _\"trovato\"_, infatti quando $P$ è uguale a $2$ il valore in posizione $P$ di $A$ è $0$ e il valore in posizione $P+1$ è $1$.\n>\n> Nel secondo e nel terzo caso invece il procedimento non stampa nulla, dato che non esiste nessun valore di $P$ tale che la posizione $P$ di $A$ sia uguale a $0$ e la posizione $P+1$ di $A$ sia uguale a $1$.\n","\"use client\";\n\nimport { useEffect, useRef } from \"react\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=66\";\nimport stairs from \"./asy/stairs.asy?w=80\";\n\nexport default function Visualizer({ variables, state }) {\n const colors = [\n \"#4093b0\",\n \"#bf4eb4\",\n \"#44c966\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n \"#40af91\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n ];\n\n const ref = useRef();\n useEffect(() => {\n const container = ref.current?.parentElement;\n if (container) {\n container.scrollTop = container.scrollHeight;\n }\n }, []);\n\n const y = [0];\n for (let i = 0; i < state.N; i++) {\n y[i + 1] = y[i] + (state.rot[i] ? state.larghezze[i] : state.altezze[i]);\n }\n\n return (\n
\n \n {range(state.N).map((i) => {\n const px = 16 - state.larghezze[i] / 2;\n const py = y[i] + (state.rot[i] && (state.larghezze[i] - state.altezze[i]) / 2);\n const rotation = state.rot[i] ? 0.25 : 0;\n return (\n \n );\n })}\n \n \n \n \n
\n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s2.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nBunny e i suoi amici stanno cercando gli ovetti di pasqua nascosti in giro per la fattoria Fibonacci!\nBunny è convinto che ci siano ovetti nascosti anche sui tetti, quindi ha deciso di costruire una\ntorre che gli consenta di arrivare più in alto possibile.\n\nPer farlo, ha impilato $N$ scatole rettangolari di varie dimensioni. Bunny può misurare queste dimensioni,\ntramite le operazioni:\n\n- `altezza della scatola i`: l'altezza della $i$-esima scatola.\n- `larghezza della scatola i`: la larghezza della $i$-esima scatola.\n\nTuttavia, Bunny non è convinto di aver realizzato la torre più alta che potrebbe fare. Per aggiustare\nla torre, Bunny può fare la seguente operazione:\n\n- `ruota la scatola i`: ruota di 90 gradi la scatola $i$-esima, scambiando quindi di conseguenza\n la sua altezza con la sua larghezza.\n\nAiuta Bunny a realizzare la torre più alta! Aiutalo anche a capire per quali tetti la torre sarà\nabbastanza alta, riportando l'altezza totale della torre con l'operazione:\n\n- `riporta altezza t`: termina il programma riportando il numero $t$ come altezza della torre.\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> In questo programma, dopo aver inizializzato la variabile $t$ a zero, Bunny itera sulle $N$ scatole,\n> numerandole tramite la variabile $i$ che cresce da $1$ a $N$ a ogni iterazione. In ciascun passo,\n> controlla se l'altezza della scatola $i$-esima è minore della sua larghezza: in questo caso, conviene\n> ruotarla per alzare la torre. Volendo inoltre calcolare l'altezza totale della torre, Bunny aggiunge\n> l'altezza della scatola (possibilmente ruotata) alla variabile $t$. Una volta terminato di esaminare\n> tutte le scatole, Bunny può terminare riportando il valore di $t$ come altezza della torre.\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=45\";\n\nfunction Sector({ color, from, portion, text }) {\n const deg = 0.5 - portion;\n return (\n \n \n \n {text}\n \n \n );\n}\n\nexport default function Visualizer({ variables, state }) {\n const { S, N, C, pos, prizes, friends } = state;\n\n const colors = [\n \"#4093b0\",\n \"#bf4eb4\",\n \"#44c966\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n \"#9c5ebd\",\n \"#7cc258\",\n \"#a3b651\",\n \"#40af91\",\n \"#4473c9\",\n \"#c2a948\",\n \"#7468c5\",\n ];\n\n return (\n <>\n \n \n {range(S).map((i) => (\n \n ))}\n {range(N).map((i) => (\n \n ))}\n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s3.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nTip-Tap ha appena raccolto ben $C$ carote dal suo orto, e vuole condividerle con i suoi $N$ amici.\nLi ha quindi invitati tutti a giocare alla ruota della fortuna, per decidere come dividerle divertendosi!\n\nLa ruota della fortuna è un cerchio diviso in $S$ spicchi, e su ciascuno di essi c'è scritto un numero.\nTutti i giocatori si siedono intorno alla ruota davanti a uno spicchio e poi la ruota viene fatta girare:\nquando la ruota si ferma, ognuno otterrà tante carote quanto è il numero scritto sullo spicchio che a\nquel punto avrà davanti a sé.\n\nOra gli amici sono arrivati, ma Tip-Tap si è reso conto di non aver fatto bene i conti: potrebbe non avere\nabbastanza carote per pagare i premi! Per non fare brutta figura con gli amici, decide quindi di far girare\nlentamente la ruota e poi fermarla di nascosto non appena si trova in una posizione in cui ha abbastanza\ncarote per tutti. Per farlo, Tip-Tap può fare le seguenti azioni:\n\n- `gira la ruota`: lascia girare la ruota di un ulteriore spicchio.\n- `premio di i`: quante carote riceverebbe al momento l'$i$-esimo amico.\n- `ferma la ruota`: ferma la ruota e termina il programma.\n\nAiuta Tip-Tap, facendo girare la ruota fino a che non raggiunge la prima posizione per cui Tip-Tap\nha abbastanza carote per pagare tutti i premi!\n\n_**Attenzione:** c'è sempre almeno una posizione della ruota che consente a Tip-Tap di pagare tutti i premi._\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> In questo programma, Tip-Tap prova a far girare la ruota fino ad un massimo di $S$ volte, provando quindi\n> tutte le rotazioni possibili. Per ogni rotazione, calcola il premio totale da assegnare ai suoi amici\n> nella variabile **somma**, inizializzandola a zero e poi iterando su tutti gli $N$ amici, ogni volta\n> incrementando **somma** del valore del premio per l'amico $i$-esimo in questa rotazione. Se la somma\n> così calcolata risulta minore del numero di carote a disposizione, Tip-Tap ferma la ruota, altrimenti\n> lascia che la ruota continui a girare e continua a provare la prossima rotazione.\n","\"use client\";\n\nimport { range } from \"lodash-es\";\n\nimport { Canvas, Rectangle, Sprite, Variables } from \"~/utils/visualizer\";\n\nimport bunny from \"./asy/bunny.asy?w=66\";\n\nconst paints = import.meta.glob(\"./asy/paint*.asy\", {\n eager: true,\n import: \"default\",\n query: { w: 40 },\n});\n\nexport default function Visualizer({ variables, state }) {\n const colors = [\n \"#ffffff\",\n \"#0000ff\",\n \"#ff0000\",\n \"#00ff00\",\n \"#ff00ff\",\n \"#ffff00\",\n \"#00ffff\",\n \"#7f7f7f\",\n \"#7f0000\",\n \"#007f00\",\n \"#7f7f00\",\n \"#000000\",\n ];\n\n return (\n <>\n \n {range(state.N).map((i) => (\n \n ))}\n \n \n \n \n \n );\n}\n","import initialBlocks from \"./initial-blocks.json\";\nimport customBlocks from \"./s4.blocks.yaml\";\nimport testcases from \"./testcases.py\";\nimport Visualizer from \"./visualizer.jsx\";\n\nBunny ha comprato $C$ colori diversi per dipingere il muro della fattoria, che è composto\nda $N$ pannelli verticali. L'obiettivo di Bunny è di dipingere il muro in zone rettangolari\nche seguono i pannelli con la supervisione di Carol, l'artista della fattoria.\n\nBunny utilizzerà un colore alla volta nell'ordine che gli viene dato da Carol. Inoltre, Carol\nsa quali colori sono i più belli, e quindi vuole che il colore $i$-esimo sia utilizzato per\ndipingere un rettangolo largo $L_i$ pannelli.\n\nBunny è però libero di scegliere dove posizionare ogni rettangolo nel muro, e cioè da quale\npannello cominciare a dipingere, a patto di non dipingere oltre i bordi del muro.\nAttenzione che Bunny può anche dipingere sopra i vecchi colori!\n\nA Bunny piacciono le pareti colorate, e quindi vorrebbe che alla fine del lavoro rimangano\nvisibili sul muro più colori possibile (senza considerare il bianco iniziale del muro).\nAiutalo a raggiungere il suo scopo, rispettando però le indicazioni di Carol!\n\nBunny può fare le seguenti azioni:\n\n- `pannelli da pitturare`: quanti pannelli $L_i$ sono da pitturare con il colore corrente $i$ secondo Carol.\n- `colora dalla posizione p`: usa il colore corrente $i$ per pitturare completamente $L_i$\n pannelli, a partire dal pannello $p$-esimo in poi, poi passa al prossimo colore. Attenzione che devono esistere almeno $L_i$\n pannelli nel muro a partire dal $p$-esimo!\n- `metti via i pennelli`: finisce di pitturare e termina il programma.\n\nAiuta Bunny a pitturare di modo da lasciare più colori possibile alla fine del lavoro!\n\n\n\n> Un possibile programma corretto è il seguente:\n>\n> ![soluzione](sol.png)\n>\n> In questo programma, Bunny per avere più colori possibile sfrutta un'idea: far sì che tutti i colori dall'inizio\n> fino alla sua posizione siano tutti diversi. Per ogni colore, prova quindi ad iniziare a colorare dalla posizione\n> **pos** che è subito dopo alla posizione da cui ha colorato precedentemente, incrementando quindi **pos** di $1$ > _(all'inizio, parte a colorare dalla prima posizione)_. Tuttavia, potrebbe essere che Carol gli chieda di pitturare\n> più pannelli di quelli che sono disponibili dalla posizione **pos** in avanti: questo succede se **pos** sommato ai\n> pannelli da pitturare supera $N+1$. In questo caso, Bunny è costretto a cancellare alcuni dei colori che ha già\n> usato: torna quindi indietro il meno possibile, finché non ha abbastanza spazio per pitturare il numero di pannelli\n> che gli è stato richiesto. Dopo aver ripetuto questo procedimento per tutti i colori, Bunny può mettere via i pennelli.\n"],"names":["_jsx","_components","_jsxs","Equation","Visualizer","variables","state","colors","ref","useRef","useEffect","container","y","i","jsxs","Canvas","range","px","py","rotation","jsx","Rectangle","Sprite","stairs","bunny","Variables","customBlocks","initialBlocks","testcases","logBlocks","logJs","logVariables","Sector","color","from","portion","text","deg","S","N","C","pos","prizes","friends","Fragment","paints","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10"],"mappings":"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"} \ No newline at end of file diff --git a/assets/o/8dd5c4bd-question.js b/assets/o/f700f876-question.js similarity index 93% rename from assets/o/8dd5c4bd-question.js rename to assets/o/f700f876-question.js index d959249..6f153fa 100644 --- a/assets/o/8dd5c4bd-question.js +++ b/assets/o/f700f876-question.js @@ -1,16 +1,16 @@ /*! For licenses information, see LICENSES.txt */ -import{_ as j}from"../s/00dd80a9-react-dom.js";import{j as e}from"../_virtual_quizms-routes-09086dad.js";import{n as m}from"../w/38364625-chunk-IFWY6GUU.js";const un={src:new URL("../1/14548e0a-examples.svg",import.meta.url).href,width:605,height:152},wn={src:new URL("../1/14548e0a-examples.svg",import.meta.url).href,width:605,height:152},jn={src:new URL("../1/14548e0a-examples.svg",import.meta.url).href,width:605,height:152},gn=JSON.parse('[{"n1":6,"k1":2,"table1":[[2,3,4,7,8,12],[1,5,6,9,11,10]],"ans1":8,"n2":5,"k2":3,"table2":[[1,5,12,8,15],[3,4,6,14,9],[2,7,10,11,13]],"ans2":144,"nes":3,"kes":2,"example":[[1,3,6],[2,5,4]],"example_res":[[2,3,4],[1,5,6]]},{"n1":6,"k1":2,"table1":[[1,3,5,8,11,12],[2,4,7,6,9,10]],"ans1":16,"n2":5,"k2":3,"table2":[[1,4,5,9,15],[2,6,8,10,14],[3,7,11,12,13]],"ans2":864,"nes":3,"kes":2,"example":[[1,3,6],[2,5,4]],"example_res":[[2,3,4],[1,5,6]]},{"n1":6,"k1":2,"table1":[[3,2,5,8,11,12],[1,4,6,7,9,10]],"ans1":16,"n2":5,"k2":3,"table2":[[1,7,10,8,9],[2,5,6,11,15],[3,4,12,14,13]],"ans2":144,"nes":3,"kes":2,"example":[[1,3,6],[2,5,4]],"example_res":[[2,3,4],[1,5,6]]}]'),fn=[un,wn,jn];function J(r){return fn[r]}const bn={src:new URL("../d/d668a3ca-table1.svg",import.meta.url).href,width:455,height:152},Sn={src:new URL("../f/f5ff84d6-table1.svg",import.meta.url).href,width:455,height:152},_n={src:new URL("../7/7c9f37f0-table1.svg",import.meta.url).href,width:455,height:152},vn=[bn,Sn,_n];function B(r){return vn[r]}const $n={src:new URL("../e/e7ea1da5-table2.svg",import.meta.url).href,width:455,height:273},qn={src:new URL("../f/fd5e9cc8-table2.svg",import.meta.url).href,width:455,height:273},yn={src:new URL("../0/09490867-table2.svg",import.meta.url).href,width:455,height:273},En=[$n,qn,yn];function F(r){return En[r]}function Re(r){const n=gn,[s,h]=j.useState(0);for(const x of Object.keys(n[s]))if(/^[^a-z]./.test(x))throw new Error("Invalid variable name `"+x+"` in file `a-1-ordina-colonne/question.md`: variable names must start with a lowercase letter.");if(!("ans1"in n[s]))throw new Error("Variable `ans1` is not defined in file `a-1-ordina-colonne/question.md`.");if(!("ans2"in n[s]))throw new Error("Variable `ans2` is not defined in file `a-1-ordina-colonne/question.md`.");const{ans1:i,ans2:l}=n[s],o={em:"em",hr:"hr",p:"p",span:"span",...m(),...r.components},{AnswerGroup:a,Equation:t,Image:p,OpenAnswer:d,SubProblem:c}=o;return a||N("AnswerGroup"),t||N("Equation"),p||N("Image"),d||N("OpenAnswer"),c||N("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(c,{subId:1,children:[e.jsxs(o.p,{children:["Data una tabella ",e.jsx(t,{children:String.raw`A`})," con ",e.jsx(t,{children:String.raw`K`})," righe e ",e.jsx(t,{children:String.raw`N`})," colonne, contenente i numeri da ",e.jsx(t,{children:String.raw`1`})," a ",e.jsxs(o.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`NK`}),","]})," una sua ",e.jsx(o.em,{children:"simile"})," è una tabella che si ottiene da ",e.jsx(t,{children:String.raw`A`})," riordinando i numeri nelle colonne, colonna per colonna (e in alcune colonne l’ordine potrebbe rimanere lo stesso)."]}),e.jsxs(o.p,{children:["Una tabella è detta ",e.jsx(o.em,{children:"crescente"}),` se in ogni sua riga i numeri sono in ordine crescente da sinistra verso destra. +import{_ as j}from"../s/00dd80a9-react-dom.js";import{j as e}from"../_virtual_quizms-routes-e5ffd91c.js";import{n as m}from"../w/c06ec230-chunk-IFWY6GUU.js";const un={src:new URL("../1/14548e0a-examples.svg",import.meta.url).href,width:605,height:152},wn={src:new URL("../1/14548e0a-examples.svg",import.meta.url).href,width:605,height:152},jn={src:new URL("../1/14548e0a-examples.svg",import.meta.url).href,width:605,height:152},gn=JSON.parse('[{"n1":6,"k1":2,"table1":[[2,3,4,7,8,12],[1,5,6,9,11,10]],"ans1":8,"n2":5,"k2":3,"table2":[[1,5,12,8,15],[3,4,6,14,9],[2,7,10,11,13]],"ans2":144,"nes":3,"kes":2,"example":[[1,3,6],[2,5,4]],"example_res":[[2,3,4],[1,5,6]]},{"n1":6,"k1":2,"table1":[[1,3,5,8,11,12],[2,4,7,6,9,10]],"ans1":16,"n2":5,"k2":3,"table2":[[1,4,5,9,15],[2,6,8,10,14],[3,7,11,12,13]],"ans2":864,"nes":3,"kes":2,"example":[[1,3,6],[2,5,4]],"example_res":[[2,3,4],[1,5,6]]},{"n1":6,"k1":2,"table1":[[3,2,5,8,11,12],[1,4,6,7,9,10]],"ans1":16,"n2":5,"k2":3,"table2":[[1,7,10,8,9],[2,5,6,11,15],[3,4,12,14,13]],"ans2":144,"nes":3,"kes":2,"example":[[1,3,6],[2,5,4]],"example_res":[[2,3,4],[1,5,6]]}]'),fn=[un,wn,jn];function J(r){return fn[r]}const bn={src:new URL("../d/d668a3ca-table1.svg",import.meta.url).href,width:455,height:152},Sn={src:new URL("../f/f5ff84d6-table1.svg",import.meta.url).href,width:455,height:152},_n={src:new URL("../7/7c9f37f0-table1.svg",import.meta.url).href,width:455,height:152},vn=[bn,Sn,_n];function B(r){return vn[r]}const $n={src:new URL("../e/e7ea1da5-table2.svg",import.meta.url).href,width:455,height:273},qn={src:new URL("../f/fd5e9cc8-table2.svg",import.meta.url).href,width:455,height:273},yn={src:new URL("../0/09490867-table2.svg",import.meta.url).href,width:455,height:273},En=[$n,qn,yn];function F(r){return En[r]}function Re(r){const n=gn,[s,h]=j.useState(0);for(const x of Object.keys(n[s]))if(/^[^a-z]./.test(x))throw new Error("Invalid variable name `"+x+"` in file `a-1-ordina-colonne/question.md`: variable names must start with a lowercase letter.");if(!("ans1"in n[s]))throw new Error("Variable `ans1` is not defined in file `a-1-ordina-colonne/question.md`.");if(!("ans2"in n[s]))throw new Error("Variable `ans2` is not defined in file `a-1-ordina-colonne/question.md`.");const{ans1:i,ans2:l}=n[s],o={em:"em",hr:"hr",p:"p",span:"span",...m(),...r.components},{AnswerGroup:a,Equation:t,Image:p,OpenAnswer:d,SubProblem:c}=o;return a||N("AnswerGroup"),t||N("Equation"),p||N("Image"),d||N("OpenAnswer"),c||N("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(c,{subId:1,children:[e.jsxs(o.p,{children:["Data una tabella ",e.jsx(t,{children:String.raw`A`})," con ",e.jsx(t,{children:String.raw`K`})," righe e ",e.jsx(t,{children:String.raw`N`})," colonne, contenente i numeri da ",e.jsx(t,{children:String.raw`1`})," a ",e.jsxs(o.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(t,{children:String.raw`NK`}),","]})," una sua ",e.jsx(o.em,{children:"simile"})," è una tabella che si ottiene da ",e.jsx(t,{children:String.raw`A`})," riordinando i numeri nelle colonne, colonna per colonna (e in alcune colonne l’ordine potrebbe rimanere lo stesso)."]}),e.jsxs(o.p,{children:["Una tabella è detta ",e.jsx(o.em,{children:"crescente"}),` se in ogni sua riga i numeri sono in ordine crescente da sinistra verso destra. Per esempio, data la tabella a sinistra, quella a destra è una tabella simile crescente.`]}),e.jsx(o.p,{children:e.jsx(p,{alt:"",src:typeof J=="function"?J(s):J})}),e.jsx(o.p,{children:"Quante sono le tabelle crescenti simili alla seguente tabella?"}),e.jsx(o.p,{children:e.jsx(p,{alt:"",src:typeof B=="function"?B(s):B})}),e.jsx(a,{children:e.jsx(d,{type:"text",correct:String.raw`${i}`})})]}),` `,e.jsx(o.hr,{}),` -`,e.jsxs(c,{subId:2,children:[e.jsx(o.p,{children:"Quante sono le tabelle crescenti simili alla seguente tabella?"}),e.jsx(o.p,{children:e.jsx(p,{alt:"",src:typeof F=="function"?F(s):F})}),e.jsx(a,{children:e.jsx(d,{type:"text",correct:String.raw`${l}`})})]})]})}function Fn(r={}){const{wrapper:n}={...m(),...r.components};return n?e.jsx(n,{...r,children:e.jsx(Re,{...r})}):Re(r)}function N(r,n){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const K={src:new URL("../3/33f8afe6-fig.svg",import.meta.url).href,width:460,height:525},H={src:new URL("../6/66d7482c-soluzione.svg",import.meta.url).href,width:460,height:477},W={src:new URL("../f/fa8a9a51-5.1-secondarie.svg",import.meta.url).href,width:305,height:248},Y={src:new URL("../e/eb4634cf-soluzione2.svg",import.meta.url).href,width:256,height:477},Z={src:new URL("../f/fc3ba1fe-5.2-secondarie.svg",import.meta.url).href,width:305,height:248};function De(r){const n={hr:"hr",p:"p",span:"span",strong:"strong",...m(),...r.components},{AnswerGroup:s,Equation:h,Explanation:i,Image:l,OpenAnswer:o,SubProblem:a}=n;return s||f("AnswerGroup"),h||f("Equation"),i||f("Explanation"),l||f("Image"),o||f("OpenAnswer"),a||f("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(a,{subId:1,children:[e.jsxs(n.p,{children:["Tip-Tap ha ricevuto ",e.jsx(h,{children:String.raw`5`})," cartoline rettangolari, di dimensioni (in cm) ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`8 \times 4`}),","]})," ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`5 \times 5`}),","]})," ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`3 \times 10`}),","]})," ",e.jsx(h,{children:String.raw`9 \times 1`})," e ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`4 \times 6`}),"."]})]}),e.jsxs(n.p,{children:["Ora vuole acquistare una bacheca rettangolare in cui mettere le cartoline, possibilmente sovrapposte ma ",e.jsx(n.strong,{children:"non ruotate"}),". Per esempio, questa è una possibile bacheca di area ",e.jsx(h,{children:String.raw`10 \times 10 = 100`})," che contiene le cartoline."]}),e.jsx(n.p,{children:e.jsx(l,{alt:"cornice",src:typeof K=="function"?K(_variant):K})}),e.jsx(n.p,{children:"Per risparmiare, Tip-Tap vorrebbe acquistare la bacheca più piccola possibile: quanto vale al minimo l’area (in cm²) di una bacheca che può contenere le cartoline?"}),e.jsx(s,{children:e.jsx(o,{type:"text",correct:String.raw`90`})}),e.jsxs(i,{children:[e.jsx(n.p,{children:"Per far stare le cartoline nella cornice, a Tip-Tap conviene sovrapporle il più possibile."}),e.jsxs(n.p,{children:["La cornice deve però essere abbastanza larga da contenere la larghezza di tutte le cartoline: dato che le cartoline sono larghe ",e.jsx(h,{children:String.raw`8, 5, 3, 9`})," e ",e.jsx(h,{children:String.raw`4`})," cm, la cornice deve essere larga almeno ",e.jsx(h,{children:String.raw`9`})," cm."]}),e.jsxs(n.p,{children:["Inoltre, la cornice deve essere abbastanza alta da contenere l’altezza di tutte le cartoline: dato che le cartoline sono alte ",e.jsx(h,{children:String.raw`4, 5, 10, 1`})," e ",e.jsx(h,{children:String.raw`6`})," cm, la cornice deve essere alta almeno ",e.jsx(h,{children:String.raw`10`})," cm."]}),e.jsxs(n.p,{children:["Quindi la cornice più piccola sarà grande ",e.jsx(h,{children:String.raw`9 \times 10`})," cm, per un’area di ",e.jsx(h,{children:String.raw`90`})," cm²! Una possibile disposizione di cartoline in questo caso è questa:"]}),e.jsx(n.p,{children:e.jsx(l,{alt:"soluzione1",src:typeof H=="function"?H(_variant):H})}),e.jsx(n.p,{children:e.jsx(l,{alt:"secondarie",src:typeof W=="function"?W(_variant):W})})]})]}),` -`,e.jsx(n.hr,{}),` -`,e.jsxs(a,{subId:2,children:[e.jsx(n.p,{children:"Per risparmiare ulteriormente, Tip-Tap sta pensando che in effetti potrebbe anche ruotare alcune cartoline di 90°. In questo caso, quale sarebbe la minima area?"}),e.jsx(s,{children:e.jsx(o,{type:"text",correct:String.raw`50`})}),e.jsxs(i,{children:[e.jsxs(n.p,{children:[`In questo caso, la strategia migliore per Tip-Tap è di orientare le cartoline tutte nello stesso verso, per esempio di modo che siano strette e alte. -Come prima cosa, ruota quindi le cartoline facendole diventare di dimensioni (in cm) `,e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`4 \times 8`}),","]})," ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`5 \times 5`}),","]})," ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`3 \times 10`}),","]})," ",e.jsx(h,{children:String.raw`1 \times 9`})," e ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`4 \times 6`}),"."]})]}),e.jsxs(n.p,{children:["A questo punto, dato che le cartoline ruotate sono larghe ",e.jsx(h,{children:String.raw`4, 5, 3, 1`})," e ",e.jsx(h,{children:String.raw`4`})," cm, la cornice deve essere larga almeno ",e.jsx(h,{children:String.raw`5`}),` cm. -Inoltre, dato che le cartoline ruotate sono alte `,e.jsx(h,{children:String.raw`8, 5, 10, 9`})," e ",e.jsx(h,{children:String.raw`6`})," cm, la cornice deve essere alta almeno ",e.jsx(h,{children:String.raw`10`})," cm."]}),e.jsxs(n.p,{children:["Quindi la cornice più piccola sarà grande ",e.jsx(h,{children:String.raw`5 \times 10`})," cm, per un’area di ",e.jsx(h,{children:String.raw`50`})," cm²! Una possibile disposizione di cartoline in questo caso è questa:"]}),e.jsx(n.p,{children:e.jsx(l,{alt:"soluzione2",src:typeof Y=="function"?Y(_variant):Y})}),e.jsx(n.p,{children:e.jsx(l,{alt:"secondarie",src:typeof Z=="function"?Z(_variant):Z})})]})]})]})}function Kn(r={}){const{wrapper:n}={...m(),...r.components};return n?e.jsx(n,{...r,children:e.jsx(De,{...r})}):De(r)}function f(r,n){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const Nn=JSON.parse('[{"perm":[3,1,4,7,2,5,6],"ans1":3,"ans2":6,"pair":[4,7],"reduced":[3,1,7,2,5,6]},{"perm":[3,2,6,7,5,1,4],"ans1":4,"ans2":8,"pair":[6,7],"reduced":[3,2,7,5,1,4]},{"perm":[1,5,4,2,7,3,6],"ans1":3,"ans2":6,"pair":[4,2],"reduced":[1,5,4,7,3,6]}]');function Oe(r){const n=Nn,[s,h]=j.useState(0);for(const w of Object.keys(n[s]))if(/^[^a-z]./.test(w))throw new Error("Invalid variable name `"+w+"` in file `a-5-cancella-permutazione/question.md`: variable names must start with a lowercase letter.");if(!("perm"in n[s]))throw new Error("Variable `perm` is not defined in file `a-5-cancella-permutazione/question.md`.");if(!("pair"in n[s]))throw new Error("Variable `pair` is not defined in file `a-5-cancella-permutazione/question.md`.");if(!("reduced"in n[s]))throw new Error("Variable `reduced` is not defined in file `a-5-cancella-permutazione/question.md`.");if(!("ans1"in n[s]))throw new Error("Variable `ans1` is not defined in file `a-5-cancella-permutazione/question.md`.");if(!("ans2"in n[s]))throw new Error("Variable `ans2` is not defined in file `a-5-cancella-permutazione/question.md`.");const{perm:i,pair:l,reduced:o,ans1:a,ans2:t}=n[s],p={hr:"hr",p:"p",span:"span",...m(),...r.components},{AnswerGroup:d,Equation:c,OpenAnswer:x,SubProblem:u}=p;return d||O("AnswerGroup"),c||O("Equation"),x||O("OpenAnswer"),u||O("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(u,{subId:1,children:[e.jsxs(p.p,{children:["Hai la seguente lista di numeri: ",e.jsxs(p.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`[${i}]`}),"."]}),` +`,e.jsxs(c,{subId:2,children:[e.jsx(o.p,{children:"Quante sono le tabelle crescenti simili alla seguente tabella?"}),e.jsx(o.p,{children:e.jsx(p,{alt:"",src:typeof F=="function"?F(s):F})}),e.jsx(a,{children:e.jsx(d,{type:"text",correct:String.raw`${l}`})})]})]})}function Fn(r={}){const{wrapper:n}={...m(),...r.components};return n?e.jsx(n,{...r,children:e.jsx(Re,{...r})}):Re(r)}function N(r,n){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const Nn=JSON.parse('[{"perm":[3,1,4,7,2,5,6],"ans1":3,"ans2":6,"pair":[4,7],"reduced":[3,1,7,2,5,6]},{"perm":[3,2,6,7,5,1,4],"ans1":4,"ans2":8,"pair":[6,7],"reduced":[3,2,7,5,1,4]},{"perm":[1,5,4,2,7,3,6],"ans1":3,"ans2":6,"pair":[4,2],"reduced":[1,5,4,7,3,6]}]');function De(r){const n=Nn,[s,h]=j.useState(0);for(const w of Object.keys(n[s]))if(/^[^a-z]./.test(w))throw new Error("Invalid variable name `"+w+"` in file `a-5-cancella-permutazione/question.md`: variable names must start with a lowercase letter.");if(!("perm"in n[s]))throw new Error("Variable `perm` is not defined in file `a-5-cancella-permutazione/question.md`.");if(!("pair"in n[s]))throw new Error("Variable `pair` is not defined in file `a-5-cancella-permutazione/question.md`.");if(!("reduced"in n[s]))throw new Error("Variable `reduced` is not defined in file `a-5-cancella-permutazione/question.md`.");if(!("ans1"in n[s]))throw new Error("Variable `ans1` is not defined in file `a-5-cancella-permutazione/question.md`.");if(!("ans2"in n[s]))throw new Error("Variable `ans2` is not defined in file `a-5-cancella-permutazione/question.md`.");const{perm:i,pair:l,reduced:o,ans1:a,ans2:t}=n[s],p={hr:"hr",p:"p",span:"span",...m(),...r.components},{AnswerGroup:d,Equation:c,OpenAnswer:x,SubProblem:u}=p;return d||O("AnswerGroup"),c||O("Equation"),x||O("OpenAnswer"),u||O("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(u,{subId:1,children:[e.jsxs(p.p,{children:["Hai la seguente lista di numeri: ",e.jsxs(p.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`[${i}]`}),"."]}),` In una mossa puoi scegliere due numeri consecutivi e togliere dalla lista il più piccolo dei due (eventualmente riunendo le due parti della lista).`]}),e.jsxs(p.p,{children:["Per esempio, se scegli i numeri consecutivi ",e.jsxs(p.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`(${l})`}),","]})," la lista diventa ",e.jsxs(p.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(c,{children:String.raw`[${o}]`}),"."]}),` Dopo `,e.jsx(c,{children:String.raw`${i.length-2}`})," mosse, quante sono le diverse liste di ",e.jsx(c,{children:String.raw`2`})," numeri che possono rimanere?"]}),e.jsx(d,{children:e.jsx(x,{type:"text",correct:String.raw`${a}`})})]}),` `,e.jsx(p.hr,{}),` -`,e.jsxs(u,{subId:2,children:[e.jsxs(p.p,{children:["Dopo ",e.jsx(c,{children:String.raw`${i.length-3}`})," mosse, quante sono le diverse liste di ",e.jsx(c,{children:String.raw`3`})," numeri che possono rimanere?"]}),e.jsx(d,{children:e.jsx(x,{type:"text",correct:String.raw`${t}`})})]})]})}function Hn(r={}){const{wrapper:n}={...m(),...r.components};return n?e.jsx(n,{...r,children:e.jsx(Oe,{...r})}):Oe(r)}function O(r,n){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const ee={src:new URL("../4/48bbb043-fig.svg",import.meta.url).href,width:889,height:277},ne={src:new URL("../e/e316893b-5.1-primarie.svg",import.meta.url).href,width:305,height:251},re={src:new URL("../f/fcefaffe-4.1-secondarie.svg",import.meta.url).href,width:305,height:248},ie={src:new URL("../e/e45af740-soluzione.svg",import.meta.url).href,width:1021,height:1491},se={src:new URL("../6/61062755-5.2-primarie.svg",import.meta.url).href,width:305,height:251},ae={src:new URL("../d/db97b573-4.2-secondarie.svg",import.meta.url).href,width:305,height:248};function Ge(r){const n={hr:"hr",p:"p",span:"span",...m(),...r.components},{AnswerGroup:s,Equation:h,Explanation:i,Image:l,OpenAnswer:o,SubProblem:a}=n;return s||b("AnswerGroup"),h||b("Equation"),i||b("Explanation"),l||b("Image"),o||b("OpenAnswer"),a||b("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(a,{subId:1,children:[e.jsx(n.p,{children:`Gli amici di Tip-Tap si sono messi tutti in fila per la conta! +`,e.jsxs(u,{subId:2,children:[e.jsxs(p.p,{children:["Dopo ",e.jsx(c,{children:String.raw`${i.length-3}`})," mosse, quante sono le diverse liste di ",e.jsx(c,{children:String.raw`3`})," numeri che possono rimanere?"]}),e.jsx(d,{children:e.jsx(x,{type:"text",correct:String.raw`${t}`})})]})]})}function Kn(r={}){const{wrapper:n}={...m(),...r.components};return n?e.jsx(n,{...r,children:e.jsx(De,{...r})}):De(r)}function O(r,n){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const K={src:new URL("../3/33f8afe6-fig.svg",import.meta.url).href,width:460,height:525},H={src:new URL("../6/66d7482c-soluzione.svg",import.meta.url).href,width:460,height:477},W={src:new URL("../f/fa8a9a51-5.1-secondarie.svg",import.meta.url).href,width:305,height:248},Y={src:new URL("../e/eb4634cf-soluzione2.svg",import.meta.url).href,width:256,height:477},Z={src:new URL("../f/fc3ba1fe-5.2-secondarie.svg",import.meta.url).href,width:305,height:248};function Oe(r){const n={hr:"hr",p:"p",span:"span",strong:"strong",...m(),...r.components},{AnswerGroup:s,Equation:h,Explanation:i,Image:l,OpenAnswer:o,SubProblem:a}=n;return s||f("AnswerGroup"),h||f("Equation"),i||f("Explanation"),l||f("Image"),o||f("OpenAnswer"),a||f("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(a,{subId:1,children:[e.jsxs(n.p,{children:["Tip-Tap ha ricevuto ",e.jsx(h,{children:String.raw`5`})," cartoline rettangolari, di dimensioni (in cm) ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`8 \times 4`}),","]})," ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`5 \times 5`}),","]})," ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`3 \times 10`}),","]})," ",e.jsx(h,{children:String.raw`9 \times 1`})," e ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`4 \times 6`}),"."]})]}),e.jsxs(n.p,{children:["Ora vuole acquistare una bacheca rettangolare in cui mettere le cartoline, possibilmente sovrapposte ma ",e.jsx(n.strong,{children:"non ruotate"}),". Per esempio, questa è una possibile bacheca di area ",e.jsx(h,{children:String.raw`10 \times 10 = 100`})," che contiene le cartoline."]}),e.jsx(n.p,{children:e.jsx(l,{alt:"cornice",src:typeof K=="function"?K(_variant):K})}),e.jsx(n.p,{children:"Per risparmiare, Tip-Tap vorrebbe acquistare la bacheca più piccola possibile: quanto vale al minimo l’area (in cm²) di una bacheca che può contenere le cartoline?"}),e.jsx(s,{children:e.jsx(o,{type:"text",correct:String.raw`90`})}),e.jsxs(i,{children:[e.jsx(n.p,{children:"Per far stare le cartoline nella cornice, a Tip-Tap conviene sovrapporle il più possibile."}),e.jsxs(n.p,{children:["La cornice deve però essere abbastanza larga da contenere la larghezza di tutte le cartoline: dato che le cartoline sono larghe ",e.jsx(h,{children:String.raw`8, 5, 3, 9`})," e ",e.jsx(h,{children:String.raw`4`})," cm, la cornice deve essere larga almeno ",e.jsx(h,{children:String.raw`9`})," cm."]}),e.jsxs(n.p,{children:["Inoltre, la cornice deve essere abbastanza alta da contenere l’altezza di tutte le cartoline: dato che le cartoline sono alte ",e.jsx(h,{children:String.raw`4, 5, 10, 1`})," e ",e.jsx(h,{children:String.raw`6`})," cm, la cornice deve essere alta almeno ",e.jsx(h,{children:String.raw`10`})," cm."]}),e.jsxs(n.p,{children:["Quindi la cornice più piccola sarà grande ",e.jsx(h,{children:String.raw`9 \times 10`})," cm, per un’area di ",e.jsx(h,{children:String.raw`90`})," cm²! Una possibile disposizione di cartoline in questo caso è questa:"]}),e.jsx(n.p,{children:e.jsx(l,{alt:"soluzione1",src:typeof H=="function"?H(_variant):H})}),e.jsx(n.p,{children:e.jsx(l,{alt:"secondarie",src:typeof W=="function"?W(_variant):W})})]})]}),` +`,e.jsx(n.hr,{}),` +`,e.jsxs(a,{subId:2,children:[e.jsx(n.p,{children:"Per risparmiare ulteriormente, Tip-Tap sta pensando che in effetti potrebbe anche ruotare alcune cartoline di 90°. In questo caso, quale sarebbe la minima area?"}),e.jsx(s,{children:e.jsx(o,{type:"text",correct:String.raw`50`})}),e.jsxs(i,{children:[e.jsxs(n.p,{children:[`In questo caso, la strategia migliore per Tip-Tap è di orientare le cartoline tutte nello stesso verso, per esempio di modo che siano strette e alte. +Come prima cosa, ruota quindi le cartoline facendole diventare di dimensioni (in cm) `,e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`4 \times 8`}),","]})," ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`5 \times 5`}),","]})," ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`3 \times 10`}),","]})," ",e.jsx(h,{children:String.raw`1 \times 9`})," e ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`4 \times 6`}),"."]})]}),e.jsxs(n.p,{children:["A questo punto, dato che le cartoline ruotate sono larghe ",e.jsx(h,{children:String.raw`4, 5, 3, 1`})," e ",e.jsx(h,{children:String.raw`4`})," cm, la cornice deve essere larga almeno ",e.jsx(h,{children:String.raw`5`}),` cm. +Inoltre, dato che le cartoline ruotate sono alte `,e.jsx(h,{children:String.raw`8, 5, 10, 9`})," e ",e.jsx(h,{children:String.raw`6`})," cm, la cornice deve essere alta almeno ",e.jsx(h,{children:String.raw`10`})," cm."]}),e.jsxs(n.p,{children:["Quindi la cornice più piccola sarà grande ",e.jsx(h,{children:String.raw`5 \times 10`})," cm, per un’area di ",e.jsx(h,{children:String.raw`50`})," cm²! Una possibile disposizione di cartoline in questo caso è questa:"]}),e.jsx(n.p,{children:e.jsx(l,{alt:"soluzione2",src:typeof Y=="function"?Y(_variant):Y})}),e.jsx(n.p,{children:e.jsx(l,{alt:"secondarie",src:typeof Z=="function"?Z(_variant):Z})})]})]})]})}function Hn(r={}){const{wrapper:n}={...m(),...r.components};return n?e.jsx(n,{...r,children:e.jsx(Oe,{...r})}):Oe(r)}function f(r,n){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const ee={src:new URL("../4/48bbb043-fig.svg",import.meta.url).href,width:889,height:277},ne={src:new URL("../e/e316893b-5.1-primarie.svg",import.meta.url).href,width:305,height:251},re={src:new URL("../f/fcefaffe-4.1-secondarie.svg",import.meta.url).href,width:305,height:248},ie={src:new URL("../e/e45af740-soluzione.svg",import.meta.url).href,width:1021,height:1491},se={src:new URL("../6/61062755-5.2-primarie.svg",import.meta.url).href,width:305,height:251},ae={src:new URL("../d/db97b573-4.2-secondarie.svg",import.meta.url).href,width:305,height:248};function Ge(r){const n={hr:"hr",p:"p",span:"span",...m(),...r.components},{AnswerGroup:s,Equation:h,Explanation:i,Image:l,OpenAnswer:o,SubProblem:a}=n;return s||b("AnswerGroup"),h||b("Equation"),i||b("Explanation"),l||b("Image"),o||b("OpenAnswer"),a||b("SubProblem"),e.jsxs(e.Fragment,{children:[e.jsxs(a,{subId:1,children:[e.jsx(n.p,{children:`Gli amici di Tip-Tap si sono messi tutti in fila per la conta! Ognuno di loro ha una diversa altezza, scritta sulla propria maglietta:`}),e.jsx(n.p,{children:e.jsx(l,{alt:"immage",src:typeof ee=="function"?ee(_variant):ee})}),e.jsxs(n.p,{children:[`Tip-Tap in una mossa può scegliere due amici consecutivi e far uscire dalla fila il più basso dei due. Qual è la minima altezza di un amico che può rimanere in fila dopo `,e.jsx(h,{children:String.raw`5`})," mosse?"]}),e.jsx(s,{children:e.jsx(o,{type:"text",correct:String.raw`${6}`})}),e.jsxs(i,{children:[e.jsxs(n.p,{children:["La risposta corretta è ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`6`}),"."]})]}),e.jsxs(n.p,{children:["Ad ogni mossa, un amico esce dalla fila. Dato che all’inizio ci sono ",e.jsx(h,{children:String.raw`6`})," amici in fila, dopo ",e.jsx(h,{children:String.raw`5`}),` mosse ne rimarrà uno soltanto. Allora deve essere l’amico di altezza `,e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(h,{children:String.raw`6`}),":"]}),` essendo il più alto di tutti, non potrò mai farlo uscire dalla fila @@ -137,4 +137,4 @@ y ← [0, 1, 2, 3] [???]`,inline:!1,lang:"srs",className:"overflow-hidden rounded-box border border-base-content/40 text-sm *:overflow-x-auto *:p-4"}),e.jsxs(o.p,{children:["Quale dei seguenti assegnamenti, sostituito a ",e.jsx(p,{code:String.raw`[???]`,inline:!0,lang:"srs",className:"p-0 text-base"}),", risulta in un programma valido?"]}),e.jsxs(t,{children:[e.jsx(a,{correct:!0,children:e.jsx(o.p,{children:e.jsx(p,{code:String.raw`${i}`,inline:!0,lang:"srs",className:"p-0 text-base"})})}),e.jsx(a,{correct:!1,children:e.jsx(o.p,{children:e.jsx(p,{code:String.raw`${l[0]}`,inline:!0,lang:"srs",className:"p-0 text-base"})})}),e.jsx(a,{correct:!1,children:e.jsx(o.p,{children:e.jsx(p,{code:String.raw`${l[1]}`,inline:!0,lang:"srs",className:"p-0 text-base"})})}),e.jsx(a,{correct:!1,children:e.jsx(o.p,{children:e.jsx(p,{code:String.raw`${l[2]}`,inline:!0,lang:"srs",className:"p-0 text-base"})})}),e.jsx(a,{correct:!1,children:e.jsx(o.p,{children:e.jsx(p,{code:String.raw`${l[3]}`,inline:!0,lang:"srs",className:"p-0 text-base"})})})]})]})}function br(r={}){const{wrapper:n}={...m(),...r.components};return n?e.jsx(n,{...r,children:e.jsx(xn,{...r})}):xn(r)}function Q(r,n){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}const Ie={src:new URL("../e/e54dbbd4-fig.svg",import.meta.url).href,width:807,height:212},Ce={src:new URL("../d/dab6da91-code.svg",import.meta.url).href,width:804,height:647},Pe={src:new URL("../c/ca810bcc-giusto.svg",import.meta.url).href,width:229,height:531},Le={src:new URL("../d/ddaf9ebf-sbagliato.svg",import.meta.url).href,width:229,height:456},Ve={src:new URL("../e/e5d57023-8-primarie.svg",import.meta.url).href,width:305,height:251};function mn(r){const n={em:"em",p:"p",span:"span",...m(),...r.components},{Answer:s,AnswerGroup:h,Code:i,Equation:l,Explanation:o,Image:a,SubProblem:t}=n;return s||g("Answer"),h||g("AnswerGroup"),i||g("Code"),l||g("Equation"),o||g("Explanation"),a||g("Image"),t||g("SubProblem"),e.jsxs(t,{children:[e.jsxs(n.p,{children:[`Tip-Tap vorrebbe tanto mangiare la sua carota, prima però deve raggiungerla! A separarlo dal suo obbiettivo ci sono due porte chiuse. Tip-Tap sa compiere le seguenti azioni: + `,e.jsx(i,{code:String.raw`avanza`,inline:!0,lang:"text",className:"p-0 text-base"}),": salta alla roccia più vicina a destra, solo se non c’è una porta chiusa in mezzo. + ",e.jsx(i,{code:String.raw`apri porta`,inline:!0,lang:"text",className:"p-0 text-base"}),": apri la porta a destra, ma solo se è di fianco a te. + ",e.jsx(i,{code:String.raw`mangia carota`,inline:!0,lang:"text",className:"p-0 text-base"}),": mangia la carota a destra, ma solo se è di fianco a te."]}),e.jsx(n.p,{children:"Quali delle seguenti successioni di azioni consentono a Tip-Tap di raggiungere la carota?"}),e.jsx(n.p,{children:e.jsx(a,{alt:"T_ | _ _ | _C",src:typeof Ie=="function"?Ie(_variant):Ie})}),e.jsx(n.p,{children:e.jsx(a,{alt:"code",src:typeof Ce=="function"?Ce(_variant):Ce})}),e.jsxs(h,{children:[e.jsx(s,{correct:!1,children:e.jsxs(n.p,{children:["solo ",e.jsx(l,{children:String.raw`1`})]})}),e.jsx(s,{correct:!1,children:e.jsxs(n.p,{children:[e.jsx(l,{children:String.raw`2`})," e ",e.jsx(l,{children:String.raw`1`})]})}),e.jsx(s,{correct:!1,children:e.jsxs(n.p,{children:["solo ",e.jsx(l,{children:String.raw`2`})]})}),e.jsx(s,{correct:!0,children:e.jsxs(n.p,{children:[e.jsx(l,{children:String.raw`1`})," e ",e.jsx(l,{children:String.raw`3`})]})}),e.jsx(s,{correct:!1,children:e.jsx(n.p,{children:"sono tutti corretti"})})]}),e.jsxs(o,{children:[e.jsxs(n.p,{children:["Sia seguendo l’opzione ",e.jsx(l,{children:String.raw`1`})," che l’opzione ",e.jsxs(n.span,{className:"inline-block whitespace-nowrap",children:[e.jsx(l,{children:String.raw`3`}),","]})," e svolgendo le ripetizioni, la sequenza complessiva di azioni che Tip-Tap svolge è questa:"]}),e.jsx(n.p,{children:e.jsx(a,{alt:"giusto",src:typeof Pe=="function"?Pe(_variant):Pe})}),e.jsxs(n.p,{children:[`Questa sequenza effettivamente fa 4 balzi in avanti per raggiungere la carota, aprendo le due porte nei punti giusti. L’opzione `,e.jsx(l,{children:String.raw`2`})," invece si traduce in una sequenza con un ",e.jsx(n.em,{children:"“avanza”"})," in meno:"]}),e.jsx(n.p,{children:e.jsx(a,{alt:"sbagliato",src:typeof Le=="function"?Le(_variant):Le})}),e.jsx(n.p,{children:"Non è quindi corretta, mancando un passo tra una porta e l’altra."}),e.jsx(n.p,{children:e.jsx(a,{alt:"primarie",src:typeof Ve=="function"?Ve(_variant):Ve})})]})]})}function Sr(r={}){const{wrapper:n}={...m(),...r.components};return n?e.jsx(n,{...r,children:e.jsx(mn,{...r})}):mn(r)}function g(r,n){throw new Error("Expected component `"+r+"` to be defined: you likely forgot to import, pass, or provide it.")}export{Sr as A,Fn as M,Kn as a,Hn as b,Wn as c,Yn as d,Zn as e,er as f,nr as g,rr as h,ir as i,sr as j,ar as k,tr as l,or as m,cr as n,lr as o,dr as p,hr as q,pr as r,xr as s,mr as t,ur as u,wr as v,jr as w,gr as x,fr as y,br as z}; -//# sourceMappingURL=8dd5c4bd-question.js.map +//# sourceMappingURL=f700f876-question.js.map diff --git a/assets/o/8dd5c4bd-question.js.map b/assets/o/f700f876-question.js.map similarity index 58% rename from assets/o/8dd5c4bd-question.js.map rename to assets/o/f700f876-question.js.map index 66fde48..5e2bbe3 100644 --- a/assets/o/8dd5c4bd-question.js.map +++ b/assets/o/f700f876-question.js.map @@ -1 +1 @@ -{"version":3,"file":"8dd5c4bd-question.js","sources":["../../../src/scolastiche/2023/contest/a-1-ordina-colonne/question.md","../../../src/scolastiche/2023/contest/a-14-rettangoli-cornice/question.md","../../../src/scolastiche/2023/contest/a-5-cancella-permutazione/question.md","../../../src/scolastiche/2023/contest/a-5-cancella-permutazione-fib/question.md","../../../src/scolastiche/2023/contest/a-6-muro-mattoni/question.md","../../../src/scolastiche/2023/contest/a-8-grafo-disconnesso/question.md","../../../src/scolastiche/2023/contest/m-12-cavalieri-furfanti/question.md","../../../src/scolastiche/2023/contest/m-14-bigliettino/question.md","../../../src/scolastiche/2023/contest/m-17-quasi-ordinato/question.md","../../../src/scolastiche/2023/contest/m-3-permuta-sottrai/question.md","../../../src/scolastiche/2023/contest/m-5-palline-tricolori/question.md","../../../src/scolastiche/2023/contest/m-5-palline-tricolori-fib/question.md","../../../src/scolastiche/2023/contest/m-6-stringa-oii/question.md","../../../src/scolastiche/2023/contest/m-6-stringa-oii-fib/question.md","../../../src/scolastiche/2023/contest/m-8-gioco-oca/question.md","../../../src/scolastiche/2023/contest/m-9-easy-rettangoli-cornice-fib/question.md","../../../src/scolastiche/2023/contest/m-9-hard-rettangoli-cornice/question.md","../../../src/scolastiche/2023/contest/p-10-riordina-istruzioni/question.md","../../../src/scolastiche/2023/contest/p-11-oggetti-ifelse/question.md","../../../src/scolastiche/2023/contest/p-2-somma-zero/question.md","../../../src/scolastiche/2023/contest/p-3-step-invariante/question.md","../../../src/scolastiche/2023/contest/p-4-intervalli-nascosti/question.md","../../../src/scolastiche/2023/contest/p-5-piu-stampato/question.md","../../../src/scolastiche/2023/contest/p-6-walk-back/question.md","../../../src/scolastiche/2023/contest/p-7-terzo-numero/question.md","../../../src/scolastiche/2023/contest/p-7-terzo-numero-fib/question.md","../../../src/scolastiche/2023/contest/p-8-sostituisci-riga/question.md","../../../src/scolastiche/2023/contest/p-9-mangia-carota/question.md"],"sourcesContent":["import variants from \"./variants.py\";\n\nData una tabella $A$ con $K$ righe e $N$ colonne, contenente i numeri da $1$ a $NK$, una sua _simile_ è una tabella che si ottiene da $A$ riordinando i numeri nelle colonne, colonna per colonna (e in alcune colonne l'ordine potrebbe rimanere lo stesso).\n\nUna tabella è detta _crescente_ se in ogni sua riga i numeri sono in ordine crescente da sinistra verso destra.\nPer esempio, data la tabella a sinistra, quella a destra è una tabella simile crescente.\n\n![](examples.asy?v=variants.py)\n\nQuante sono le tabelle crescenti simili alla seguente tabella?\n\n![](table1.asy?v=variants.py)\n\n?> {ans1}\n\n---\n\nQuante sono le tabelle crescenti simili alla seguente tabella?\n\n![](table2.asy?v=variants.py)\n\n?> {ans2}\n","Tip-Tap ha ricevuto $5$ cartoline rettangolari, di dimensioni (in cm) $8 \\times 4$, $5 \\times 5$, $3 \\times 10$, $9 \\times 1$ e $4 \\times 6$.\n\nOra vuole acquistare una bacheca rettangolare in cui mettere le cartoline, possibilmente sovrapposte ma **non ruotate**. Per esempio, questa è una possibile bacheca di area $10 \\times 10 = 100$ che contiene le cartoline.\n\n![cornice](fig.asy)\n\nPer risparmiare, Tip-Tap vorrebbe acquistare la bacheca più piccola possibile: quanto vale al minimo l'area (in cm²) di una bacheca che può contenere le cartoline?\n\n?> 90\n\n> Per far stare le cartoline nella cornice, a Tip-Tap conviene sovrapporle il più possibile.\n>\n> La cornice deve però essere abbastanza larga da contenere la larghezza di tutte le cartoline: dato che le cartoline sono larghe $8, 5, 3, 9$ e $4$ cm, la cornice deve essere larga almeno $9$ cm.\n>\n> Inoltre, la cornice deve essere abbastanza alta da contenere l'altezza di tutte le cartoline: dato che le cartoline sono alte $4, 5, 10, 1$ e $6$ cm, la cornice deve essere alta almeno $10$ cm.\n>\n> Quindi la cornice più piccola sarà grande $9 \\times 10$ cm, per un'area di $90$ cm²! Una possibile disposizione di cartoline in questo caso è questa:\n>\n> ![soluzione1](soluzione1.asy)\n>\n> ![secondarie](5.1-secondarie.asy)\n\n---\n\nPer risparmiare ulteriormente, Tip-Tap sta pensando che in effetti potrebbe anche ruotare alcune cartoline di 90°. In questo caso, quale sarebbe la minima area?\n\n?> 50\n\n> In questo caso, la strategia migliore per Tip-Tap è di orientare le cartoline tutte nello stesso verso, per esempio di modo che siano strette e alte.\n> Come prima cosa, ruota quindi le cartoline facendole diventare di dimensioni (in cm) $4 \\times 8$, $5 \\times 5$, $3 \\times 10$, $1 \\times 9$ e $4 \\times 6$.\n>\n> A questo punto, dato che le cartoline ruotate sono larghe $4, 5, 3, 1$ e $4$ cm, la cornice deve essere larga almeno $5$ cm.\n> Inoltre, dato che le cartoline ruotate sono alte $8, 5, 10, 9$ e $6$ cm, la cornice deve essere alta almeno $10$ cm.\n>\n> Quindi la cornice più piccola sarà grande $5 \\times 10$ cm, per un'area di $50$ cm²! Una possibile disposizione di cartoline in questo caso è questa:\n>\n> ![soluzione2](soluzione2.asy)\n>\n> ![secondarie](5.2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nHai la seguente lista di numeri: $[\\js{perm}]$.\nIn una mossa puoi scegliere due numeri consecutivi e togliere dalla lista il più piccolo dei due (eventualmente riunendo le due parti della lista).\n\nPer esempio, se scegli i numeri consecutivi $(\\js{pair})$, la lista diventa $[\\js{reduced}]$.\nDopo $\\js{perm.length - 2}$ mosse, quante sono le diverse liste di $2$ numeri che possono rimanere?\n\n?> {ans1}\n\n---\n\nDopo $\\js{perm.length - 3}$ mosse, quante sono le diverse liste di $3$ numeri che possono rimanere?\n\n?> {ans2}\n","Gli amici di Tip-Tap si sono messi tutti in fila per la conta!\nOgnuno di loro ha una diversa altezza, scritta sulla propria maglietta:\n\n![immage](fig.asy)\n\nTip-Tap in una mossa può scegliere due amici consecutivi e far uscire dalla fila il più basso dei due.\nQual è la minima altezza di un amico che può rimanere in fila dopo $5$ mosse?\n\n?> {6}\n\n> La risposta corretta è $6$.\n>\n> Ad ogni mossa, un amico esce dalla fila. Dato che all'inizio ci sono $6$ amici in fila, dopo $5$ mosse ne rimarrà uno soltanto.\n> Allora deve essere l'amico di altezza $6$: essendo il più alto di tutti, non potrò mai farlo uscire dalla fila\n> con nessuna delle mie mosse!\n>\n> ![primarie](5.1-primarie.asy) ![secondarie](4.1-secondarie.asy)\n\n---\n\nQual è la minima altezza di un amico che può rimanere in fila dopo $4$ mosse?\n\n?> {2}\n\n> La risposta corretta è $2$. Infatti, dopo $4$ mosse devono rimanere due amici e uno di loro deve essere l'amico di altezza $6$, per il ragionamento di prima.\n>\n> L'altro non può essere l'amico di altezza $1$: dovrei far uscire tutti gli altri amici, ma l'amico di altezza $4$\n> non può uscire senza prima far uscire quello di altezza $1$.\n>\n> Invece, l'altro può essere l'amico di altezza $2$, per esempio con questa sequenza di mosse:\n>\n> ![soluzione](soluzione.asy)\n>\n> ![primarie](5.2-primarie.asy) ![secondarie](4.2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nDevi costruire $\\js{h.length}$ pile di mattoncini.\nAll’inizio ogni pila è vuota. Nella pila $i$-esima puoi aggiungere solo mattoncini di altezza $h_i$ dove $h = [\\js{h}]$.\n\nPer ragioni di stabilità, in ogni istante le altezze di due pile **adiacenti** possono differire di al più $d = \\js{d}$.\nQual è il massimo intero $M$ tale che si riescono a rendere tutte le pile alte almeno $M$?\n\n?> {ans1}\n\n---\n\nQual è il minimo valore intero per il parametro $d$ tale che si riescono a rendere tutte le pile alte almeno $\\js{M}$?\n\n?> {ans2}\n","import variants from \"./variants.py\";\n\nLuca ha trovato la cartina della rete idrica del suo paese. Sopra vi sono rappresentati gli snodi e le tubature che li collegano. Gli snodi sono indicati tramite dei cerchi numerati, mentre se esiste una tubatura tra lo snodo $a$ e lo snodo $b$ ci sarà una linea che li collega.\n\nDiciamo che uno snodo è _connesso_ ad un'altro se è esiste una sequenza di tubature che li collega. Per esempio, in questa rete:\n\n![Immagine](immagine1.asy?v=variants.py)\n\nlo snodo 1 è connesso allo snodo 6, mentre lo snodo 3 non è connesso allo snodo 5.\nLuca vuole aggiungere nuove tubature, ma l'ufficio di igiene gli ha chiesto di evitare\ndi mettere in connessione tutti gli snodi (in altre parole, devono esserci almeno\ndue snodi non connessi), e l'economato non vuole che due tubature diverse abbiano per\nestremi la stessa coppia di snodi. Quante tubature può aggiungere al massimo?\n\n?> {ans1}\n\n---\n\nLuca ora si sta occupando della rete idrica di un'altra città. Quante tubature al massimo può aggiungere in questa nuova rete, rispettando gli stessi vincoli?\n\n![Immagine](immagine2.asy?v=variants.py)\n\n?> {ans2}\n","import variants from \"./variants.py\";\n\nCi sono $\\js{n}$ persone in fila. Ognuna di esse è un furfante o un cavaliere.\nI cavalieri dicono sempre la verità, mentre i furfanti dicono sempre il falso.\nOgni persona che non si trova agli estremi della fila dichiara: \"I miei vicini sono entrambi furfanti o entrambi cavalieri\".\n\nQuanti sono al massimo i furfanti?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","Tip-Tap ha trovato in terra un bigliettino che due suoi compagni si sono **appena scambiati**! Dice:\n_“Domani mi presti la maglietta verde che indossi? Io non trovo la mia... Anche se tu sei più alto credo che non sarebbe troppo grande!”_\nI compagni di Tip-Tap sono:\n\n![friends](fig.asy)\n\nRiesci a capire quali dei compagni di classe di Tip-Tap si sono scambiati il bigliettino?\n\n- [x] Bunny e Carol\n- [ ] Amy e Carol\n- [ ] Amy e Bunny\n- [ ] Carol e Dippy\n- [ ] Bunny e Dippy\n\n> Dato che il bigliettino chiede _\"domani mi presti la maglietta verde che indossi\"_, deve averlo scritto qualcuno che **non ha la maglietta verde** (e quindi ce l'ha rossa) a qualcun altro che invece **ha la maglietta verde**.\n> Inoltre, il bigliettino dice che _\"tu sei più alto\"_, quindi il coniglietto con la maglietta verde deve essere più alto del coniglietto con la maglietta rossa.\n>\n> Dippy ha la maglietta rossa, ma non può aver scritto il bigliettino, perché nessuno è più alto di lui.\n>\n> Deve averlo scritto Carol, indirizzandolo a Bunny che è l'unico più alto di lui con la maglietta verde!\n>\n> ![primarie](1-primarie.asy)\n","import variants from \"./variants.py\";\n\nUna sequenza di numeri $A$, indicizzata da $0$ a $N-1$ è detta _quasi crescente_ se $A_i > A_{i+1}$ per **al più** un indice $i$.\nPer esempio `[1,3,7]` e `[3,5,8,2,6]` sono quasi crescenti, mentre `[2,6,5,3]` non lo è.\n\nData la sequenza `[{A}]` , quanti sono i suoi diversi riordinamenti, eventualmente incluso quello della sequenza iniziale, che sono _quasi crescenti_?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","import variants from \"./variants.py\";\n\nConsidera l’array $[a_1, \\ldots, a_6]$ = $[\\js{array}]$. Scegli una permutazione $[p_1, \\ldots, p_6]$, ovvero una sequenza contenente i numeri da $1$ a $6$ in un qualche ordine e senza ripetizioni. Poi, per $i$ = $1,\\ldots, 6$, sottrai il valore corrente di $a_{p_i}$ da tutti gli altri $a_j$. I numeri possono diventare negativi. Alla fine, la somma degli $a_i$ può essere:\n\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","import variants from \"./variants.py\";\n\nAmy ha $\\js{r}$ palline rosse e $\\js{b}$ palline blu.\nAl negozio di palline, può comprare altre palline rosse e blu (quante ne vuole) al prezzo di $1$ euro ciascuna. Può anche dipingere **gratis** di verde tutte le palline che vuole.\n\n![Amy pittrice](fig.asy)\n\nAlla fine, vorrebbe avere lo stesso numero di palline rosse, blu e verdi. Nota che Amy **non può buttare** via palline!\nQual è il minimo numero di euro che Amy deve spendere per raggiungere il suo obiettivo?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","Bunny ha $10$ palline rosse e $2023$ palline blu.\nAl negozio di palline, può comprare altre palline rosse e blu (quante ne vuole) al prezzo di $1$ euro ciascuna. Può anche dipingere **gratis** di verde tutte le palline che vuole.\n\n![Bunny il pittore](fig.asy)\n\nAlla fine, vorrebbe avere lo stesso numero di palline rosse, blu e verdi. Nota che Bunny **non può buttare** via palline.\nQual è il minimo numero di euro che Bunny deve spendere per raggiungere il suo obiettivo?\n\n- [x] $1003$\n- [ ] $1006$\n- [ ] $1009$\n- [ ] $2013$\n- [ ] $2014$\n\n> Bunny ha moltissime palline blu: la cosa migliore che può fare per cercare di avere lo stesso numero di palline dei tre colori, è dipingerne circa la metà di verde.\n> A questo Bunny potrebbe avere $10$ palline rosse, $1011$ palline blu e $1012$ palline verdi. Per raggiungere l'obiettivo deve quindi ancora comprare $1$ pallina blu\n> e $1002$ palline rosse, per un totale di $1003$ palline.\n>\n> ![secondarie](2-secondarie.asy)\n","Valerio sta organizzando una gara di informatica, ma ne deve ancora decidere il nome.\nIl nome deve essere una parola di $6$ lettere, composta da solo $\\textsf{O}$ e $\\textsf{I}$.\nPer evitare problemi di copyright, il nome non deve contenere tre lettere consecutive che formano la parola $\\textsf{OII}$.\nPer esempio:\n\n![nomi](fig.asy)\n\nQuanti sono i possibili nomi che Valerio può dare alla gara?\n\n- [ ] $24$\n- [ ] $31$\n- [ ] $32$\n- [x] $33$\n- [ ] $36$\n","Tip-Tap sta organizzando una gara di informatica, ma ne deve ancora decidere il nome.\nIl nome deve essere una parola di $4$ lettere, composta da solo $\\textsf{O}$ e $\\textsf{I}$.\nPer evitare problemi di copyright, il nome non deve contenere tre lettere consecutive che formano la parola $\\textsf{OII}$.\nPer esempio:\n\n![nomi](fig.asy)\n\nQuanti sono i possibili nomi che Tip-Tap può dare alla gara?\n\n- [ ] $16$\n- [ ] $4$\n- [ ] $8$\n- [ ] $6$\n- [x] $12$\n\n> Potremmo elencare tutti i nomi ammissibili, ma sarebbe lungo e noioso!\n>\n> In alternativa, possiamo accorgerci che **in totale** le parole di $4$ lettere composte solo da $\\textsf{O}$ e $\\textsf{I}$ sono $2 \\times 2 \\times 2 \\times 2 = 16$.\n> Infatti, per ogni lettera in più ho il doppio delle possibilità: quelle che aggiungono una $\\textsf{O}$ (tante quante quelle con una lettera in meno)\n> e quelle che aggiungono una $\\textsf{I}$ (anche queste tante quante quelle con una lettera in meno).\n>\n> Ora elenchiamo invece i nomi **non ammissibili** (cioè che contengono la parola $\\textsf{OII}$), che sono questi $4$:\n>\n> - $\\textsf{OIIO}$\n> - $\\textsf{OIII}$\n> - $\\textsf{OOII}$\n> - $\\textsf{IOII}$\n>\n> Dato che i nomi ammissibili sono tutti gli altri, devono essere $16 - 4 = 12$.\n>\n> ![primarie](4-primarie.asy) ![secondarie](3-secondarie.asy)\n","import variants from \"./variants.py\";\n\nIl tabellone del gioco del coniglio contiene $10$ caselle, numerate da $1$ a $10$, con la casella $10$ adiacente alla $1$. Tip-Tap parte dalla casella $1$ e, in $4$ turni successivi, avanza di $\\js{a[0]}$, di $\\js{a[1]}$, di $\\js{a[2]}$ e infine di $\\js{a[3]}$ caselle.\n\n![tabellone](fig.asy)\n\nAlla fine, su che casella si trova?\n\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n\n> Potremmo contare come avanza il coniglio dopo tutti questi spostamenti, ma sarebbe lungo e noioso!\n>\n> Invece, pensiamo a quanto si sposterà il coniglio in totale: $\\js{a[0]} + \\js{a[1]} + \\js{a[2]} + \\js{a[3]} = \\js{a[0]+a[1]+a[2]+a[3]}$ caselle.\n> Inoltre, ogni 10 caselle il coniglio torna al punto di partenza! Quindi dopo i primi $\\js{a[0]+a[1]+a[2]+a[3]-(a[0]+a[1]+a[2]+a[3])%10}$\n> spostamenti il coniglio sarà di nuovo sulla casella 1, poi farà ancora gli ultimi $\\js{(a[0]+a[1]+a[2]+a[3])%10}$ spostamenti e\n> arriverà sulla casella $\\js{correct}$.\n>\n> ![primarie](2-primarie.asy) ![secondarie](1-secondarie.asy)\n","Tip-Tap ha ricevuto $5$ cartoline rettangolari, di dimensioni (in cm) $8 \\times 4$, $5 \\times 5$, $3 \\times 10$, $9 \\times 1$ e $4 \\times 6$.\n\nOra vuole acquistare una bacheca rettangolare in cui mettere le cartoline, possibilmente sovrapposte ma **non ruotate**. Per esempio, questa è una possibile bacheca di area $9 \\times 11 = 99$ che contiene le cartoline.\n\n![cornice](fig.asy)\n\nPer risparmiare, Tip-Tap vorrebbe acquistare la bacheca più piccola possibile: quanto vale la più piccola area (in cm²) di una bacheca che può contenere le cartoline?\n\n- [ ] $80$\n- [ ] $10$\n- [x] $90$\n- [ ] $85$\n- [ ] $0$\n\n> Per far stare le cartoline nella cornice, a Tip-Tap conviene sovrapporle il più possibile.\n>\n> La cornice deve però essere abbastanza larga da contenere la larghezza di tutte le cartoline: dato che le cartoline sono larghe $8, 5, 3, 9$ e $4$ cm, la cornice deve essere larga almeno $9$ cm.\n>\n> Inoltre, la cornice deve essere abbastanza alta da contenere l'altezza di tutte le cartoline: dato che le cartoline sono alte $4, 5, 10, 1$ e $6$ cm, la cornice deve essere alta almeno $10$ cm.\n>\n> Quindi la cornice più piccola sarà grande $9 \\times 10$ cm, per un'area di $90$ cm²! Una possibile disposizione di cartoline in questo caso è questa:\n>\n> ![soluzione](soluzione.asy)\n>\n> ![primarie](3-primarie.asy)\n","import variants from \"./variants.py\";\n\nFrancesco ha ricevuto $\\js{n}$ cartoline rettangolari di dimensioni $\\js{rettangoli[0][0]} \\times \\js{rettangoli[0][1]}$, $\\js{rettangoli[1][0]} \\times \\js{rettangoli[1][1]}$, $\\js{rettangoli[2][0]} \\times \\js{rettangoli[2][1]}$, $\\js{rettangoli[3][0]} \\times \\js{rettangoli[3][1]}$ e $\\js{rettangoli[4][0]} \\times \\js{rettangoli[4][1]}$.\nOra vuole acquistare una bacheca rettangolare in cui mettere le cartoline, possibilmente sovrapposte ed eventualmente ruotate di 90°.\n\nPer esempio se le dimensioni delle cartoline (in cm) **fossero** $8 \\times 4$, $5 \\times 5$, $3 \\times 10$, $9 \\times 1$ e $4 \\times 6$, questa sarebbe una **possibile** bacheca di area $9 \\times 11 = 99$ che contiene quelle cartoline (che **non** sono quelle che ha Francesco).\n\n![cornice](fig.asy)\n\nPer risparmiare, Francesco vorrebbe acquistare la bacheca più piccola possibile: quanto vale al minimo l'area (in cm²) di una bacheca che può contenere le cartoline?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","In quale ordine vanno messe queste istruzioni, per ottenere il numero $6$ nella variabile $x$?\n\n![x=2](code.asy)\n\n- [ ] $2$, $1$, $3$\n- [x] $1$, $3$, $2$\n- [ ] $3$, $2$, $1$\n- [ ] $1$, $2$, $3$\n- [ ] $2$, $3$, $1$\n\n> All'inizio non sappiamo quale numero potrebbe esserci nella variabile $x$!\n> Per essere sicuri di un risultato, dobbiamo iniziare mettendoci un valore definito, e quindi con il blocco $1$ che ci mette il valore $2$.\n>\n> A questo punto, se mettiamo prima il blocco $2$ la variabile $x$ raddoppierà a $4$, e poi con il blocco $3$ crescerà a $5$. Non va bene, perché dovevamo arrivare a $6$.\n>\n> Se invece mettiamo prima il blocco $3$ la variabile cresce a $3$, e poi con il blocco $2$ raddoppia a $6$, ottenendo il risultato voluto!\n>\n> ![primarie](6-primarie.asy) ![secondarie](6-secondarie.asy)\n","Tip-Tap deve decidere se buttare alcuni di questi palloni:\n\n![palloni](balls.asy)\n\nPer farlo, segue questo procedimento:\n\n![procedimento](code.asy)\n\nQuali palloni butta Tip-Tap?\n\n- [x] $3$, $4$\n- [ ] $1$, $5$\n- [ ] $2$, $3$, $4$\n- [ ] $1$, $2$, $5$\n- [ ] $1$, $4$\n\n> Leggendo i blocchi, vediamo che Tip-Tap butta i palloni da basket se **non sono rossi** (il pallone 4), mentre butta i palloni da calcio se **sono sgonfi** (il pallone 3).\n>\n> ![primarie](7-primarie.asy) ![secondarie](7-secondarie.asy)\n","import variants from \"./variants.py\";\n\nConsidera la seguente funzione, che prende come parametri un intero **positivo** `n` e un array di interi `a` di lunghezza `n`, e restituisce un intero:\n\n```srs\nfunction compute(a: integer[], n: integer) -> integer\n variable ans: integer\n ans <- 0\n\n for i in [0 ... n) do\n if a[0] == i then\n ans <- ans + i\n end if\n for j in [0 ... n-1) do\n (a[j], a[j + 1]) <- (a[j + 1], a[j])\n end for\n end for\n\n return ans\nend function\n```\n\nSupponiamo di chiamare `compute(a, {n})`, dove `a = [{a}]`. Qual è il valore restituito dalla funzione?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","import variants from \"./variants.py\";\n\nConsidera la seguente funzione, che prende come parametri due interi **positivi** `a`, `b`, e restituisce un intero:\n\n```srs\nfunction step(a: integer, b: integer) -> integer\n variable k: integer\n k <- 0\n\n while a > 0 or b > 0 do\n if a * a < b then\n b <- b - a - 1\n a <- 2 * a\n else\n a <- a - 1\n end if\n k <- k + 1\n end while\n\n return k\nend function\n```\n\nPer quale delle seguenti coppie `(a, b)` il valore restituito da `step(a, b)` è {n}?\n\n- [x] $(\\js{correct})$\n- [ ] $(\\js{wrong[0]})$\n- [ ] $(\\js{wrong[1]})$\n- [ ] $(\\js{wrong[2]})$\n- [ ] $(\\js{wrong[3]})$\n","Considera la seguente funzione, che prende come parametri quattro interi **di segno qualunque** `a`, `b`, `c`, `d`, e restituisce un intero:\n\n```srs\nfunction loop(a: integer, b: integer, c: integer, d: integer) -> integer\n variable ans: integer\n ans <- 0\n for i in [a, b + 1) do\n if (i - c) * (i - d) <= 0 then\n ans <- ans + 1\n end if\n end for\n return ans\nend function\n```\n\nQuale delle seguenti affermazioni è vera?\n\n- [x] `loop(a, b, c, d)` è sempre uguale a `loop(c, d, a, b)`\n- [ ] `loop` restituisce sicuramente un numero $\\leq b - a$\n- [ ] `loop` restituisce sicuramente un numero $\\leq d - c$\n- [ ] `loop` non restituisce mai $0$\n- [ ] `loop(2 * a, 2 * b, 2 * c, 2 * d)` è sempre uguale a `2 * loop(a, b, c, d)`\n","import variants from \"./variants.py\";\n\nConsidera la seguente funzione:\n\n```srs\nfunction f(n: integer)\n variable i: integer\n variable j: integer\n i <- 0\n j <- 1\n while j <= n do\n for k in [i, j) do\n output(k)\n end for\n i <- i + 2\n j <- j + 3\n end while\nend function\n```\n\nChiamando `f({n})`, quante volte viene stampato il numero che viene stampato più volte?\n\n- [x] {correct}\n- [ ] {wrong[0]}\n- [ ] {wrong[1]}\n- [ ] {wrong[2]}\n- [ ] {wrong[3]}\n","import variants from \"./variants.py\";\n\nConsideriamo la seguente funzione ricorsiva, dove `a` è un array di lunghezza `n`, `pos` è un intero tra $0$ e `n`, e `x` è un intero:\n\n```srs\nfunction walk(n: integer, a: integer[], pos: integer, x: integer)\n if pos == n then\n return\n end if\n if x < a[pos] then\n output(\"back\")\n walk(n, a, 0, x + 1)\n else\n walk(n, a, pos + 1, x)\n end if\nend function\n```\n\nSupponiamo di chiamare `walk({n}, a, 0, 0)`, dove `a = [{a}]`. Quante volte viene stampata in output la stringa `”back”`?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","import variants from \"./variants.py\";\n\nQual è il **terzo** numero stampato dal seguente programma?\n\n```srs\nfor i in [1, {n+1}) do\n for j in [1, {n+1}) do\n if i * j == {n} then\n output(j)\n end if\n end for\nend for\n```\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","Qual è il **terzo** numero stampato dal seguente programma?\n\n![code](code.asy)\n\n- [x] $25$\n- [ ] $50$\n- [ ] $20$\n- [ ] $10$\n- [ ] $4$\n\n> Cerchiamo di capire cosa fa questo programma.\n> Si parte con la variabile $i$ che vale $1$. Per $100$ volte, si incrementa $j$ da $1$ fino a $100$ stampandone il valore se $i \\times j = 100$.\n> Poi si incrementa la variabile $i$, e si ripete la ripetizione su $j$, continuando fino a far arrivare anche $i$ a $100$. Quindi:\n>\n> 1. Nella prima ripetizione (con $i$ che vale $1$), l'unico numero $j$ per cui $i \\times j = 100$ è $j = 100 / i = 100 / 1 = 100$, quindi viene per **primo** stampato $100$.\n> 2. Nella seconda ripetizione (con $i$ che vale $2$), l'unico $j$ che viene stampato è $100 / 2 = 50$, che è quindi il **secondo** numero stampato.\n> 3. Nella terza ripetizione (con $i$ che vale $3$), nessun numero viene stampato, perché $3$ non è un divisore di $100$ e quindi $i \\times j$ non vale mai $100$.\n> 4. Nella quarta ripetizione (con $i$ che vale $4$), l'unico $j$ che viene stampato è $100 / 4 = 25$, che è quindi il **terzo** numero stampato.\n>\n> Infatti, questo programma stampa i _divisori_ di $100$ in ordine decrescente: $100, 50, 25, 20, 10, 5, 4, 2, 1$!\n>\n> ![secondarie](8-secondarie.asy)\n","import variants from \"./variants.py\";\n\nNel seguente programma, una riga è stata sostituita da `[???]`.\n\n```srs\nvariable x: integer\nvariable y: integer[]\nx <- 42\ny <- [0, 1, 2, 3]\n[???]\n```\n\nQuale dei seguenti assegnamenti, sostituito a `[???]`, risulta in un programma valido?\n\n- [x] `{correct}`\n- [ ] `{wrong[0]}`\n- [ ] `{wrong[1]}`\n- [ ] `{wrong[2]}`\n- [ ] `{wrong[3]}`\n","Tip-Tap vorrebbe tanto mangiare la sua carota, prima però deve raggiungerla!\nA separarlo dal suo obbiettivo ci sono due porte chiuse. Tip-Tap sa compiere le seguenti azioni: + `avanza`: salta alla roccia più vicina a destra, solo se non c'è una porta chiusa in mezzo. + `apri porta`: apri la porta a destra, ma solo se è di fianco a te. + `mangia carota`: mangia la carota a destra, ma solo se è di fianco a te.\n\nQuali delle seguenti successioni di azioni consentono a Tip-Tap di raggiungere la carota?\n\n![T_ | _ _ | _C](fig.asy)\n\n![code](code.asy)\n\n- [ ] solo $1$\n- [ ] $2$ e $1$\n- [ ] solo $2$\n- [x] $1$ e $3$\n- [ ] sono tutti corretti\n\n> Sia seguendo l'opzione $1$ che l'opzione $3$, e svolgendo le ripetizioni, la sequenza complessiva di azioni che Tip-Tap svolge è questa:\n>\n> ![giusto](giusto.asy)\n>\n> Questa sequenza effettivamente fa 4 balzi in avanti per raggiungere la carota, aprendo le due porte nei punti giusti.\n> L'opzione $2$ invece si traduce in una sequenza con un _\"avanza\"_ in meno:\n>\n> ![sbagliato](sbagliato.asy)\n>\n> Non è quindi corretta, mancando un passo tra una porta e l'altra.\n>\n> ![primarie](8-primarie.asy)\n"],"names":["_jsx","Equation","_jsxs","_components","Image","Code","n","correct","wrong"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"f700f876-question.js","sources":["../../../src/scolastiche/2023/contest/a-1-ordina-colonne/question.md","../../../src/scolastiche/2023/contest/a-5-cancella-permutazione/question.md","../../../src/scolastiche/2023/contest/a-14-rettangoli-cornice/question.md","../../../src/scolastiche/2023/contest/a-5-cancella-permutazione-fib/question.md","../../../src/scolastiche/2023/contest/a-6-muro-mattoni/question.md","../../../src/scolastiche/2023/contest/a-8-grafo-disconnesso/question.md","../../../src/scolastiche/2023/contest/m-12-cavalieri-furfanti/question.md","../../../src/scolastiche/2023/contest/m-14-bigliettino/question.md","../../../src/scolastiche/2023/contest/m-17-quasi-ordinato/question.md","../../../src/scolastiche/2023/contest/m-3-permuta-sottrai/question.md","../../../src/scolastiche/2023/contest/m-5-palline-tricolori/question.md","../../../src/scolastiche/2023/contest/m-5-palline-tricolori-fib/question.md","../../../src/scolastiche/2023/contest/m-6-stringa-oii/question.md","../../../src/scolastiche/2023/contest/m-6-stringa-oii-fib/question.md","../../../src/scolastiche/2023/contest/m-8-gioco-oca/question.md","../../../src/scolastiche/2023/contest/m-9-easy-rettangoli-cornice-fib/question.md","../../../src/scolastiche/2023/contest/m-9-hard-rettangoli-cornice/question.md","../../../src/scolastiche/2023/contest/p-10-riordina-istruzioni/question.md","../../../src/scolastiche/2023/contest/p-11-oggetti-ifelse/question.md","../../../src/scolastiche/2023/contest/p-2-somma-zero/question.md","../../../src/scolastiche/2023/contest/p-3-step-invariante/question.md","../../../src/scolastiche/2023/contest/p-4-intervalli-nascosti/question.md","../../../src/scolastiche/2023/contest/p-5-piu-stampato/question.md","../../../src/scolastiche/2023/contest/p-6-walk-back/question.md","../../../src/scolastiche/2023/contest/p-7-terzo-numero/question.md","../../../src/scolastiche/2023/contest/p-7-terzo-numero-fib/question.md","../../../src/scolastiche/2023/contest/p-8-sostituisci-riga/question.md","../../../src/scolastiche/2023/contest/p-9-mangia-carota/question.md"],"sourcesContent":["import variants from \"./variants.py\";\n\nData una tabella $A$ con $K$ righe e $N$ colonne, contenente i numeri da $1$ a $NK$, una sua _simile_ è una tabella che si ottiene da $A$ riordinando i numeri nelle colonne, colonna per colonna (e in alcune colonne l'ordine potrebbe rimanere lo stesso).\n\nUna tabella è detta _crescente_ se in ogni sua riga i numeri sono in ordine crescente da sinistra verso destra.\nPer esempio, data la tabella a sinistra, quella a destra è una tabella simile crescente.\n\n![](examples.asy?v=variants.py)\n\nQuante sono le tabelle crescenti simili alla seguente tabella?\n\n![](table1.asy?v=variants.py)\n\n?> {ans1}\n\n---\n\nQuante sono le tabelle crescenti simili alla seguente tabella?\n\n![](table2.asy?v=variants.py)\n\n?> {ans2}\n","import variants from \"./variants.py\";\n\nHai la seguente lista di numeri: $[\\js{perm}]$.\nIn una mossa puoi scegliere due numeri consecutivi e togliere dalla lista il più piccolo dei due (eventualmente riunendo le due parti della lista).\n\nPer esempio, se scegli i numeri consecutivi $(\\js{pair})$, la lista diventa $[\\js{reduced}]$.\nDopo $\\js{perm.length - 2}$ mosse, quante sono le diverse liste di $2$ numeri che possono rimanere?\n\n?> {ans1}\n\n---\n\nDopo $\\js{perm.length - 3}$ mosse, quante sono le diverse liste di $3$ numeri che possono rimanere?\n\n?> {ans2}\n","Tip-Tap ha ricevuto $5$ cartoline rettangolari, di dimensioni (in cm) $8 \\times 4$, $5 \\times 5$, $3 \\times 10$, $9 \\times 1$ e $4 \\times 6$.\n\nOra vuole acquistare una bacheca rettangolare in cui mettere le cartoline, possibilmente sovrapposte ma **non ruotate**. Per esempio, questa è una possibile bacheca di area $10 \\times 10 = 100$ che contiene le cartoline.\n\n![cornice](fig.asy)\n\nPer risparmiare, Tip-Tap vorrebbe acquistare la bacheca più piccola possibile: quanto vale al minimo l'area (in cm²) di una bacheca che può contenere le cartoline?\n\n?> 90\n\n> Per far stare le cartoline nella cornice, a Tip-Tap conviene sovrapporle il più possibile.\n>\n> La cornice deve però essere abbastanza larga da contenere la larghezza di tutte le cartoline: dato che le cartoline sono larghe $8, 5, 3, 9$ e $4$ cm, la cornice deve essere larga almeno $9$ cm.\n>\n> Inoltre, la cornice deve essere abbastanza alta da contenere l'altezza di tutte le cartoline: dato che le cartoline sono alte $4, 5, 10, 1$ e $6$ cm, la cornice deve essere alta almeno $10$ cm.\n>\n> Quindi la cornice più piccola sarà grande $9 \\times 10$ cm, per un'area di $90$ cm²! Una possibile disposizione di cartoline in questo caso è questa:\n>\n> ![soluzione1](soluzione1.asy)\n>\n> ![secondarie](5.1-secondarie.asy)\n\n---\n\nPer risparmiare ulteriormente, Tip-Tap sta pensando che in effetti potrebbe anche ruotare alcune cartoline di 90°. In questo caso, quale sarebbe la minima area?\n\n?> 50\n\n> In questo caso, la strategia migliore per Tip-Tap è di orientare le cartoline tutte nello stesso verso, per esempio di modo che siano strette e alte.\n> Come prima cosa, ruota quindi le cartoline facendole diventare di dimensioni (in cm) $4 \\times 8$, $5 \\times 5$, $3 \\times 10$, $1 \\times 9$ e $4 \\times 6$.\n>\n> A questo punto, dato che le cartoline ruotate sono larghe $4, 5, 3, 1$ e $4$ cm, la cornice deve essere larga almeno $5$ cm.\n> Inoltre, dato che le cartoline ruotate sono alte $8, 5, 10, 9$ e $6$ cm, la cornice deve essere alta almeno $10$ cm.\n>\n> Quindi la cornice più piccola sarà grande $5 \\times 10$ cm, per un'area di $50$ cm²! Una possibile disposizione di cartoline in questo caso è questa:\n>\n> ![soluzione2](soluzione2.asy)\n>\n> ![secondarie](5.2-secondarie.asy)\n","Gli amici di Tip-Tap si sono messi tutti in fila per la conta!\nOgnuno di loro ha una diversa altezza, scritta sulla propria maglietta:\n\n![immage](fig.asy)\n\nTip-Tap in una mossa può scegliere due amici consecutivi e far uscire dalla fila il più basso dei due.\nQual è la minima altezza di un amico che può rimanere in fila dopo $5$ mosse?\n\n?> {6}\n\n> La risposta corretta è $6$.\n>\n> Ad ogni mossa, un amico esce dalla fila. Dato che all'inizio ci sono $6$ amici in fila, dopo $5$ mosse ne rimarrà uno soltanto.\n> Allora deve essere l'amico di altezza $6$: essendo il più alto di tutti, non potrò mai farlo uscire dalla fila\n> con nessuna delle mie mosse!\n>\n> ![primarie](5.1-primarie.asy) ![secondarie](4.1-secondarie.asy)\n\n---\n\nQual è la minima altezza di un amico che può rimanere in fila dopo $4$ mosse?\n\n?> {2}\n\n> La risposta corretta è $2$. Infatti, dopo $4$ mosse devono rimanere due amici e uno di loro deve essere l'amico di altezza $6$, per il ragionamento di prima.\n>\n> L'altro non può essere l'amico di altezza $1$: dovrei far uscire tutti gli altri amici, ma l'amico di altezza $4$\n> non può uscire senza prima far uscire quello di altezza $1$.\n>\n> Invece, l'altro può essere l'amico di altezza $2$, per esempio con questa sequenza di mosse:\n>\n> ![soluzione](soluzione.asy)\n>\n> ![primarie](5.2-primarie.asy) ![secondarie](4.2-secondarie.asy)\n","import variants from \"./variants.py\";\n\nDevi costruire $\\js{h.length}$ pile di mattoncini.\nAll’inizio ogni pila è vuota. Nella pila $i$-esima puoi aggiungere solo mattoncini di altezza $h_i$ dove $h = [\\js{h}]$.\n\nPer ragioni di stabilità, in ogni istante le altezze di due pile **adiacenti** possono differire di al più $d = \\js{d}$.\nQual è il massimo intero $M$ tale che si riescono a rendere tutte le pile alte almeno $M$?\n\n?> {ans1}\n\n---\n\nQual è il minimo valore intero per il parametro $d$ tale che si riescono a rendere tutte le pile alte almeno $\\js{M}$?\n\n?> {ans2}\n","import variants from \"./variants.py\";\n\nLuca ha trovato la cartina della rete idrica del suo paese. Sopra vi sono rappresentati gli snodi e le tubature che li collegano. Gli snodi sono indicati tramite dei cerchi numerati, mentre se esiste una tubatura tra lo snodo $a$ e lo snodo $b$ ci sarà una linea che li collega.\n\nDiciamo che uno snodo è _connesso_ ad un'altro se è esiste una sequenza di tubature che li collega. Per esempio, in questa rete:\n\n![Immagine](immagine1.asy?v=variants.py)\n\nlo snodo 1 è connesso allo snodo 6, mentre lo snodo 3 non è connesso allo snodo 5.\nLuca vuole aggiungere nuove tubature, ma l'ufficio di igiene gli ha chiesto di evitare\ndi mettere in connessione tutti gli snodi (in altre parole, devono esserci almeno\ndue snodi non connessi), e l'economato non vuole che due tubature diverse abbiano per\nestremi la stessa coppia di snodi. Quante tubature può aggiungere al massimo?\n\n?> {ans1}\n\n---\n\nLuca ora si sta occupando della rete idrica di un'altra città. Quante tubature al massimo può aggiungere in questa nuova rete, rispettando gli stessi vincoli?\n\n![Immagine](immagine2.asy?v=variants.py)\n\n?> {ans2}\n","import variants from \"./variants.py\";\n\nCi sono $\\js{n}$ persone in fila. Ognuna di esse è un furfante o un cavaliere.\nI cavalieri dicono sempre la verità, mentre i furfanti dicono sempre il falso.\nOgni persona che non si trova agli estremi della fila dichiara: \"I miei vicini sono entrambi furfanti o entrambi cavalieri\".\n\nQuanti sono al massimo i furfanti?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","Tip-Tap ha trovato in terra un bigliettino che due suoi compagni si sono **appena scambiati**! Dice:\n_“Domani mi presti la maglietta verde che indossi? Io non trovo la mia... Anche se tu sei più alto credo che non sarebbe troppo grande!”_\nI compagni di Tip-Tap sono:\n\n![friends](fig.asy)\n\nRiesci a capire quali dei compagni di classe di Tip-Tap si sono scambiati il bigliettino?\n\n- [x] Bunny e Carol\n- [ ] Amy e Carol\n- [ ] Amy e Bunny\n- [ ] Carol e Dippy\n- [ ] Bunny e Dippy\n\n> Dato che il bigliettino chiede _\"domani mi presti la maglietta verde che indossi\"_, deve averlo scritto qualcuno che **non ha la maglietta verde** (e quindi ce l'ha rossa) a qualcun altro che invece **ha la maglietta verde**.\n> Inoltre, il bigliettino dice che _\"tu sei più alto\"_, quindi il coniglietto con la maglietta verde deve essere più alto del coniglietto con la maglietta rossa.\n>\n> Dippy ha la maglietta rossa, ma non può aver scritto il bigliettino, perché nessuno è più alto di lui.\n>\n> Deve averlo scritto Carol, indirizzandolo a Bunny che è l'unico più alto di lui con la maglietta verde!\n>\n> ![primarie](1-primarie.asy)\n","import variants from \"./variants.py\";\n\nUna sequenza di numeri $A$, indicizzata da $0$ a $N-1$ è detta _quasi crescente_ se $A_i > A_{i+1}$ per **al più** un indice $i$.\nPer esempio `[1,3,7]` e `[3,5,8,2,6]` sono quasi crescenti, mentre `[2,6,5,3]` non lo è.\n\nData la sequenza `[{A}]` , quanti sono i suoi diversi riordinamenti, eventualmente incluso quello della sequenza iniziale, che sono _quasi crescenti_?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","import variants from \"./variants.py\";\n\nConsidera l’array $[a_1, \\ldots, a_6]$ = $[\\js{array}]$. Scegli una permutazione $[p_1, \\ldots, p_6]$, ovvero una sequenza contenente i numeri da $1$ a $6$ in un qualche ordine e senza ripetizioni. Poi, per $i$ = $1,\\ldots, 6$, sottrai il valore corrente di $a_{p_i}$ da tutti gli altri $a_j$. I numeri possono diventare negativi. Alla fine, la somma degli $a_i$ può essere:\n\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","import variants from \"./variants.py\";\n\nAmy ha $\\js{r}$ palline rosse e $\\js{b}$ palline blu.\nAl negozio di palline, può comprare altre palline rosse e blu (quante ne vuole) al prezzo di $1$ euro ciascuna. Può anche dipingere **gratis** di verde tutte le palline che vuole.\n\n![Amy pittrice](fig.asy)\n\nAlla fine, vorrebbe avere lo stesso numero di palline rosse, blu e verdi. Nota che Amy **non può buttare** via palline!\nQual è il minimo numero di euro che Amy deve spendere per raggiungere il suo obiettivo?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","Bunny ha $10$ palline rosse e $2023$ palline blu.\nAl negozio di palline, può comprare altre palline rosse e blu (quante ne vuole) al prezzo di $1$ euro ciascuna. Può anche dipingere **gratis** di verde tutte le palline che vuole.\n\n![Bunny il pittore](fig.asy)\n\nAlla fine, vorrebbe avere lo stesso numero di palline rosse, blu e verdi. Nota che Bunny **non può buttare** via palline.\nQual è il minimo numero di euro che Bunny deve spendere per raggiungere il suo obiettivo?\n\n- [x] $1003$\n- [ ] $1006$\n- [ ] $1009$\n- [ ] $2013$\n- [ ] $2014$\n\n> Bunny ha moltissime palline blu: la cosa migliore che può fare per cercare di avere lo stesso numero di palline dei tre colori, è dipingerne circa la metà di verde.\n> A questo Bunny potrebbe avere $10$ palline rosse, $1011$ palline blu e $1012$ palline verdi. Per raggiungere l'obiettivo deve quindi ancora comprare $1$ pallina blu\n> e $1002$ palline rosse, per un totale di $1003$ palline.\n>\n> ![secondarie](2-secondarie.asy)\n","Valerio sta organizzando una gara di informatica, ma ne deve ancora decidere il nome.\nIl nome deve essere una parola di $6$ lettere, composta da solo $\\textsf{O}$ e $\\textsf{I}$.\nPer evitare problemi di copyright, il nome non deve contenere tre lettere consecutive che formano la parola $\\textsf{OII}$.\nPer esempio:\n\n![nomi](fig.asy)\n\nQuanti sono i possibili nomi che Valerio può dare alla gara?\n\n- [ ] $24$\n- [ ] $31$\n- [ ] $32$\n- [x] $33$\n- [ ] $36$\n","Tip-Tap sta organizzando una gara di informatica, ma ne deve ancora decidere il nome.\nIl nome deve essere una parola di $4$ lettere, composta da solo $\\textsf{O}$ e $\\textsf{I}$.\nPer evitare problemi di copyright, il nome non deve contenere tre lettere consecutive che formano la parola $\\textsf{OII}$.\nPer esempio:\n\n![nomi](fig.asy)\n\nQuanti sono i possibili nomi che Tip-Tap può dare alla gara?\n\n- [ ] $16$\n- [ ] $4$\n- [ ] $8$\n- [ ] $6$\n- [x] $12$\n\n> Potremmo elencare tutti i nomi ammissibili, ma sarebbe lungo e noioso!\n>\n> In alternativa, possiamo accorgerci che **in totale** le parole di $4$ lettere composte solo da $\\textsf{O}$ e $\\textsf{I}$ sono $2 \\times 2 \\times 2 \\times 2 = 16$.\n> Infatti, per ogni lettera in più ho il doppio delle possibilità: quelle che aggiungono una $\\textsf{O}$ (tante quante quelle con una lettera in meno)\n> e quelle che aggiungono una $\\textsf{I}$ (anche queste tante quante quelle con una lettera in meno).\n>\n> Ora elenchiamo invece i nomi **non ammissibili** (cioè che contengono la parola $\\textsf{OII}$), che sono questi $4$:\n>\n> - $\\textsf{OIIO}$\n> - $\\textsf{OIII}$\n> - $\\textsf{OOII}$\n> - $\\textsf{IOII}$\n>\n> Dato che i nomi ammissibili sono tutti gli altri, devono essere $16 - 4 = 12$.\n>\n> ![primarie](4-primarie.asy) ![secondarie](3-secondarie.asy)\n","import variants from \"./variants.py\";\n\nIl tabellone del gioco del coniglio contiene $10$ caselle, numerate da $1$ a $10$, con la casella $10$ adiacente alla $1$. Tip-Tap parte dalla casella $1$ e, in $4$ turni successivi, avanza di $\\js{a[0]}$, di $\\js{a[1]}$, di $\\js{a[2]}$ e infine di $\\js{a[3]}$ caselle.\n\n![tabellone](fig.asy)\n\nAlla fine, su che casella si trova?\n\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n\n> Potremmo contare come avanza il coniglio dopo tutti questi spostamenti, ma sarebbe lungo e noioso!\n>\n> Invece, pensiamo a quanto si sposterà il coniglio in totale: $\\js{a[0]} + \\js{a[1]} + \\js{a[2]} + \\js{a[3]} = \\js{a[0]+a[1]+a[2]+a[3]}$ caselle.\n> Inoltre, ogni 10 caselle il coniglio torna al punto di partenza! Quindi dopo i primi $\\js{a[0]+a[1]+a[2]+a[3]-(a[0]+a[1]+a[2]+a[3])%10}$\n> spostamenti il coniglio sarà di nuovo sulla casella 1, poi farà ancora gli ultimi $\\js{(a[0]+a[1]+a[2]+a[3])%10}$ spostamenti e\n> arriverà sulla casella $\\js{correct}$.\n>\n> ![primarie](2-primarie.asy) ![secondarie](1-secondarie.asy)\n","Tip-Tap ha ricevuto $5$ cartoline rettangolari, di dimensioni (in cm) $8 \\times 4$, $5 \\times 5$, $3 \\times 10$, $9 \\times 1$ e $4 \\times 6$.\n\nOra vuole acquistare una bacheca rettangolare in cui mettere le cartoline, possibilmente sovrapposte ma **non ruotate**. Per esempio, questa è una possibile bacheca di area $9 \\times 11 = 99$ che contiene le cartoline.\n\n![cornice](fig.asy)\n\nPer risparmiare, Tip-Tap vorrebbe acquistare la bacheca più piccola possibile: quanto vale la più piccola area (in cm²) di una bacheca che può contenere le cartoline?\n\n- [ ] $80$\n- [ ] $10$\n- [x] $90$\n- [ ] $85$\n- [ ] $0$\n\n> Per far stare le cartoline nella cornice, a Tip-Tap conviene sovrapporle il più possibile.\n>\n> La cornice deve però essere abbastanza larga da contenere la larghezza di tutte le cartoline: dato che le cartoline sono larghe $8, 5, 3, 9$ e $4$ cm, la cornice deve essere larga almeno $9$ cm.\n>\n> Inoltre, la cornice deve essere abbastanza alta da contenere l'altezza di tutte le cartoline: dato che le cartoline sono alte $4, 5, 10, 1$ e $6$ cm, la cornice deve essere alta almeno $10$ cm.\n>\n> Quindi la cornice più piccola sarà grande $9 \\times 10$ cm, per un'area di $90$ cm²! Una possibile disposizione di cartoline in questo caso è questa:\n>\n> ![soluzione](soluzione.asy)\n>\n> ![primarie](3-primarie.asy)\n","import variants from \"./variants.py\";\n\nFrancesco ha ricevuto $\\js{n}$ cartoline rettangolari di dimensioni $\\js{rettangoli[0][0]} \\times \\js{rettangoli[0][1]}$, $\\js{rettangoli[1][0]} \\times \\js{rettangoli[1][1]}$, $\\js{rettangoli[2][0]} \\times \\js{rettangoli[2][1]}$, $\\js{rettangoli[3][0]} \\times \\js{rettangoli[3][1]}$ e $\\js{rettangoli[4][0]} \\times \\js{rettangoli[4][1]}$.\nOra vuole acquistare una bacheca rettangolare in cui mettere le cartoline, possibilmente sovrapposte ed eventualmente ruotate di 90°.\n\nPer esempio se le dimensioni delle cartoline (in cm) **fossero** $8 \\times 4$, $5 \\times 5$, $3 \\times 10$, $9 \\times 1$ e $4 \\times 6$, questa sarebbe una **possibile** bacheca di area $9 \\times 11 = 99$ che contiene quelle cartoline (che **non** sono quelle che ha Francesco).\n\n![cornice](fig.asy)\n\nPer risparmiare, Francesco vorrebbe acquistare la bacheca più piccola possibile: quanto vale al minimo l'area (in cm²) di una bacheca che può contenere le cartoline?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","In quale ordine vanno messe queste istruzioni, per ottenere il numero $6$ nella variabile $x$?\n\n![x=2](code.asy)\n\n- [ ] $2$, $1$, $3$\n- [x] $1$, $3$, $2$\n- [ ] $3$, $2$, $1$\n- [ ] $1$, $2$, $3$\n- [ ] $2$, $3$, $1$\n\n> All'inizio non sappiamo quale numero potrebbe esserci nella variabile $x$!\n> Per essere sicuri di un risultato, dobbiamo iniziare mettendoci un valore definito, e quindi con il blocco $1$ che ci mette il valore $2$.\n>\n> A questo punto, se mettiamo prima il blocco $2$ la variabile $x$ raddoppierà a $4$, e poi con il blocco $3$ crescerà a $5$. Non va bene, perché dovevamo arrivare a $6$.\n>\n> Se invece mettiamo prima il blocco $3$ la variabile cresce a $3$, e poi con il blocco $2$ raddoppia a $6$, ottenendo il risultato voluto!\n>\n> ![primarie](6-primarie.asy) ![secondarie](6-secondarie.asy)\n","Tip-Tap deve decidere se buttare alcuni di questi palloni:\n\n![palloni](balls.asy)\n\nPer farlo, segue questo procedimento:\n\n![procedimento](code.asy)\n\nQuali palloni butta Tip-Tap?\n\n- [x] $3$, $4$\n- [ ] $1$, $5$\n- [ ] $2$, $3$, $4$\n- [ ] $1$, $2$, $5$\n- [ ] $1$, $4$\n\n> Leggendo i blocchi, vediamo che Tip-Tap butta i palloni da basket se **non sono rossi** (il pallone 4), mentre butta i palloni da calcio se **sono sgonfi** (il pallone 3).\n>\n> ![primarie](7-primarie.asy) ![secondarie](7-secondarie.asy)\n","import variants from \"./variants.py\";\n\nConsidera la seguente funzione, che prende come parametri un intero **positivo** `n` e un array di interi `a` di lunghezza `n`, e restituisce un intero:\n\n```srs\nfunction compute(a: integer[], n: integer) -> integer\n variable ans: integer\n ans <- 0\n\n for i in [0 ... n) do\n if a[0] == i then\n ans <- ans + i\n end if\n for j in [0 ... n-1) do\n (a[j], a[j + 1]) <- (a[j + 1], a[j])\n end for\n end for\n\n return ans\nend function\n```\n\nSupponiamo di chiamare `compute(a, {n})`, dove `a = [{a}]`. Qual è il valore restituito dalla funzione?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","import variants from \"./variants.py\";\n\nConsidera la seguente funzione, che prende come parametri due interi **positivi** `a`, `b`, e restituisce un intero:\n\n```srs\nfunction step(a: integer, b: integer) -> integer\n variable k: integer\n k <- 0\n\n while a > 0 or b > 0 do\n if a * a < b then\n b <- b - a - 1\n a <- 2 * a\n else\n a <- a - 1\n end if\n k <- k + 1\n end while\n\n return k\nend function\n```\n\nPer quale delle seguenti coppie `(a, b)` il valore restituito da `step(a, b)` è {n}?\n\n- [x] $(\\js{correct})$\n- [ ] $(\\js{wrong[0]})$\n- [ ] $(\\js{wrong[1]})$\n- [ ] $(\\js{wrong[2]})$\n- [ ] $(\\js{wrong[3]})$\n","Considera la seguente funzione, che prende come parametri quattro interi **di segno qualunque** `a`, `b`, `c`, `d`, e restituisce un intero:\n\n```srs\nfunction loop(a: integer, b: integer, c: integer, d: integer) -> integer\n variable ans: integer\n ans <- 0\n for i in [a, b + 1) do\n if (i - c) * (i - d) <= 0 then\n ans <- ans + 1\n end if\n end for\n return ans\nend function\n```\n\nQuale delle seguenti affermazioni è vera?\n\n- [x] `loop(a, b, c, d)` è sempre uguale a `loop(c, d, a, b)`\n- [ ] `loop` restituisce sicuramente un numero $\\leq b - a$\n- [ ] `loop` restituisce sicuramente un numero $\\leq d - c$\n- [ ] `loop` non restituisce mai $0$\n- [ ] `loop(2 * a, 2 * b, 2 * c, 2 * d)` è sempre uguale a `2 * loop(a, b, c, d)`\n","import variants from \"./variants.py\";\n\nConsidera la seguente funzione:\n\n```srs\nfunction f(n: integer)\n variable i: integer\n variable j: integer\n i <- 0\n j <- 1\n while j <= n do\n for k in [i, j) do\n output(k)\n end for\n i <- i + 2\n j <- j + 3\n end while\nend function\n```\n\nChiamando `f({n})`, quante volte viene stampato il numero che viene stampato più volte?\n\n- [x] {correct}\n- [ ] {wrong[0]}\n- [ ] {wrong[1]}\n- [ ] {wrong[2]}\n- [ ] {wrong[3]}\n","import variants from \"./variants.py\";\n\nConsideriamo la seguente funzione ricorsiva, dove `a` è un array di lunghezza `n`, `pos` è un intero tra $0$ e `n`, e `x` è un intero:\n\n```srs\nfunction walk(n: integer, a: integer[], pos: integer, x: integer)\n if pos == n then\n return\n end if\n if x < a[pos] then\n output(\"back\")\n walk(n, a, 0, x + 1)\n else\n walk(n, a, pos + 1, x)\n end if\nend function\n```\n\nSupponiamo di chiamare `walk({n}, a, 0, 0)`, dove `a = [{a}]`. Quante volte viene stampata in output la stringa `”back”`?\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","import variants from \"./variants.py\";\n\nQual è il **terzo** numero stampato dal seguente programma?\n\n```srs\nfor i in [1, {n+1}) do\n for j in [1, {n+1}) do\n if i * j == {n} then\n output(j)\n end if\n end for\nend for\n```\n\n- [x] $\\js{correct}$\n- [ ] $\\js{wrong[0]}$\n- [ ] $\\js{wrong[1]}$\n- [ ] $\\js{wrong[2]}$\n- [ ] $\\js{wrong[3]}$\n","Qual è il **terzo** numero stampato dal seguente programma?\n\n![code](code.asy)\n\n- [x] $25$\n- [ ] $50$\n- [ ] $20$\n- [ ] $10$\n- [ ] $4$\n\n> Cerchiamo di capire cosa fa questo programma.\n> Si parte con la variabile $i$ che vale $1$. Per $100$ volte, si incrementa $j$ da $1$ fino a $100$ stampandone il valore se $i \\times j = 100$.\n> Poi si incrementa la variabile $i$, e si ripete la ripetizione su $j$, continuando fino a far arrivare anche $i$ a $100$. Quindi:\n>\n> 1. Nella prima ripetizione (con $i$ che vale $1$), l'unico numero $j$ per cui $i \\times j = 100$ è $j = 100 / i = 100 / 1 = 100$, quindi viene per **primo** stampato $100$.\n> 2. Nella seconda ripetizione (con $i$ che vale $2$), l'unico $j$ che viene stampato è $100 / 2 = 50$, che è quindi il **secondo** numero stampato.\n> 3. Nella terza ripetizione (con $i$ che vale $3$), nessun numero viene stampato, perché $3$ non è un divisore di $100$ e quindi $i \\times j$ non vale mai $100$.\n> 4. Nella quarta ripetizione (con $i$ che vale $4$), l'unico $j$ che viene stampato è $100 / 4 = 25$, che è quindi il **terzo** numero stampato.\n>\n> Infatti, questo programma stampa i _divisori_ di $100$ in ordine decrescente: $100, 50, 25, 20, 10, 5, 4, 2, 1$!\n>\n> ![secondarie](8-secondarie.asy)\n","import variants from \"./variants.py\";\n\nNel seguente programma, una riga è stata sostituita da `[???]`.\n\n```srs\nvariable x: integer\nvariable y: integer[]\nx <- 42\ny <- [0, 1, 2, 3]\n[???]\n```\n\nQuale dei seguenti assegnamenti, sostituito a `[???]`, risulta in un programma valido?\n\n- [x] `{correct}`\n- [ ] `{wrong[0]}`\n- [ ] `{wrong[1]}`\n- [ ] `{wrong[2]}`\n- [ ] `{wrong[3]}`\n","Tip-Tap vorrebbe tanto mangiare la sua carota, prima però deve raggiungerla!\nA separarlo dal suo obbiettivo ci sono due porte chiuse. Tip-Tap sa compiere le seguenti azioni: + `avanza`: salta alla roccia più vicina a destra, solo se non c'è una porta chiusa in mezzo. + `apri porta`: apri la porta a destra, ma solo se è di fianco a te. + `mangia carota`: mangia la carota a destra, ma solo se è di fianco a te.\n\nQuali delle seguenti successioni di azioni consentono a Tip-Tap di raggiungere la carota?\n\n![T_ | _ _ | _C](fig.asy)\n\n![code](code.asy)\n\n- [ ] solo $1$\n- [ ] $2$ e $1$\n- [ ] solo $2$\n- [x] $1$ e $3$\n- [ ] sono tutti corretti\n\n> Sia seguendo l'opzione $1$ che l'opzione $3$, e svolgendo le ripetizioni, la sequenza complessiva di azioni che Tip-Tap svolge è questa:\n>\n> ![giusto](giusto.asy)\n>\n> Questa sequenza effettivamente fa 4 balzi in avanti per raggiungere la carota, aprendo le due porte nei punti giusti.\n> L'opzione $2$ invece si traduce in una sequenza con un _\"avanza\"_ in meno:\n>\n> ![sbagliato](sbagliato.asy)\n>\n> Non è quindi corretta, mancando un passo tra una porta e l'altra.\n>\n> ![primarie](8-primarie.asy)\n"],"names":["_jsx","Equation","_jsxs","_components","Image","Code","n","correct","wrong"],"mappings":"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"} \ No newline at end of file diff --git a/assets/r/ebbb2af3-highlight-UOJF2D5K.js b/assets/r/b5abcf0a-highlight-UOJF2D5K.js similarity index 99% rename from assets/r/ebbb2af3-highlight-UOJF2D5K.js rename to assets/r/b5abcf0a-highlight-UOJF2D5K.js index 72dac1c..e00d10b 100644 --- a/assets/r/ebbb2af3-highlight-UOJF2D5K.js +++ b/assets/r/b5abcf0a-highlight-UOJF2D5K.js @@ -1,6 +1,6 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/o/4afaf00a-angular-html.js","assets/x/e38428e6-html.js","assets/z/1b15d7f4-javascript.js","assets/p/c520d91a-css.js","assets/i/3a85a67c-angular-ts.js","assets/k/b333e6be-scss.js","assets/x/b236b504-apl.js","assets/x/4f94727e-xml.js","assets/y/e82a05b5-java.js","assets/i/70527e34-json.js","assets/r/11d52843-asciidoc.js","assets/v/257b2462-yaml.js","assets/s/151a77c1-csv.js","assets/z/b14c5054-c.js","assets/w/b8aea33e-clojure.js","assets/w/7cc897a9-coffee.js","assets/j/b94eddb1-cpp.js","assets/r/cda85021-regexp.js","assets/u/ba74d591-glsl.js","assets/w/28c37968-sql.js","assets/h/406d0fbe-csharp.js","assets/p/120433aa-diff.js","assets/s/c96d1659-docker.js","assets/t/3297c0e5-elixir.js","assets/y/cf2eb088-elm.js","assets/t/272288ab-erlang.js","assets/u/907b3c1b-go.js","assets/y/edcf4dbb-groovy.js","assets/g/e1f39bbe-haskell.js","assets/h/ba983b15-jsx.js","assets/t/78fbc35d-julia.js","assets/u/f4f6b046-python.js","assets/u/21557613-r.js","assets/x/53e3afdc-kotlin.js","assets/z/d9d4dd46-less.js","assets/u/40d539dd-make.js","assets/z/cba7d2bd-objective-c.js","assets/k/71eb2210-ocaml.js","assets/v/e891edec-perl.js","assets/q/5bfd0fe1-ruby.js","assets/x/06964942-shellscript.js","assets/i/87598344-lua.js","assets/i/7f4dd7fd-rust.js","assets/i/6b477146-sass.js","assets/w/64842f97-scala.js","assets/x/25246c4d-swift.js","assets/k/b698751f-toml.js","assets/r/1f201ade-typescript.js","assets/t/19dbfd1f-astro.js","assets/s/861affef-stylus.js","assets/j/e92cace0-postcss.js","assets/r/9311ae5c-tsx.js","assets/k/7b2016aa-blade.js","assets/n/ee5639c4-cobol.js","assets/q/5dc4cead-crystal.js","assets/l/eacc9ae2-edge.js","assets/x/68a703be-html-derivative.js","assets/t/b8e7d5a1-erb.js","assets/y/8fe25c24-fortran-fixed-form.js","assets/o/8071d570-fortran-free-form.js","assets/k/9e55abe1-fsharp.js","assets/n/3888048c-markdown.js","assets/v/b22a3b54-gdresource.js","assets/u/e481788e-gdshader.js","assets/k/71a1d81d-gdscript.js","assets/y/92be414a-git-commit.js","assets/v/57fe780a-git-rebase.js","assets/v/435d2aaa-glimmer-js.js","assets/l/24e81f61-glimmer-ts.js","assets/r/3624b300-graphql.js","assets/n/57221610-hack.js","assets/y/1ee3e406-haml.js","assets/k/19d2d0b8-handlebars.js","assets/o/5fc51e02-http.js","assets/h/f68057b0-hxml.js","assets/i/1373a358-haxe.js","assets/p/59e9e27b-imba.js","assets/k/950bfec8-jinja.js","assets/n/b88de73c-jison.js","assets/i/0af9b20b-latex.js","assets/x/056d0d5e-tex.js","assets/x/d968ac8e-gnuplot.js","assets/o/b30dc7e7-liquid.js","assets/y/372d2309-marko.js","assets/o/5043b7c9-mdc.js","assets/o/bfb167d2-nginx.js","assets/k/6dbe280e-nim.js","assets/o/ed0287d9-php.js","assets/s/f5b17027-pug.js","assets/q/f1c6e785-qml.js","assets/y/4fa4e0aa-razor.js","assets/l/b0d155a6-rst.js","assets/t/4c4f913c-cmake.js","assets/n/cbe5f047-sas.js","assets/u/b8c91a1c-shaderlab.js","assets/v/f755eb15-hlsl.js","assets/o/b35900de-shellsession.js","assets/n/3e7444ec-soy.js","assets/z/8a1efabc-sparql.js","assets/s/e0a97e38-turtle.js","assets/h/d322187b-stata.js","assets/z/6083a91f-svelte.js","assets/m/f199b44d-templ.js","assets/n/ce01eb1e-ts-tags.js","assets/j/980de968-twig.js","assets/w/cd325325-vue.js","assets/h/01a8d07a-jsonc.js","assets/v/078773de-json5.js","assets/y/b77a781c-vue-html.js","assets/p/9eb1d7a6-wikitext.js","assets/g/d26261a3-ini.js","assets/w/53277202-vb.js","assets/j/4a587304-xsl.js","assets/r/9a3082aa-bat.js","assets/v/8eeb1c16-raku.js","assets/t/691723bd-powershell.js","assets/n/0deed318-dart.js","assets/y/624d8730-bibtex.js"])))=>i.map(i=>d[i]); /*! For licenses information, see LICENSES.txt */ -"use client";import{r as _n}from"../s/00dd80a9-react-dom.js";import{v as u,x as gn,j as Ae,c as nt}from"../_virtual_quizms-routes-09086dad.js";const At=[{id:"abap",name:"ABAP",import:()=>u(()=>import("../k/8e8321f5-abap.js"),[])},{id:"actionscript-3",name:"ActionScript",import:()=>u(()=>import("../v/61229da6-actionscript-3.js"),[])},{id:"ada",name:"Ada",import:()=>u(()=>import("../u/5be42d0b-ada.js"),[])},{id:"angular-html",name:"Angular HTML",import:()=>u(()=>import("../o/4afaf00a-angular-html.js").then(n=>n.f),__vite__mapDeps([0,1,2,3]))},{id:"angular-ts",name:"Angular TypeScript",import:()=>u(()=>import("../i/3a85a67c-angular-ts.js"),__vite__mapDeps([4,0,1,2,3,5]))},{id:"apache",name:"Apache Conf",import:()=>u(()=>import("../q/938716c5-apache.js"),[])},{id:"apex",name:"Apex",import:()=>u(()=>import("../q/007f0941-apex.js"),[])},{id:"apl",name:"APL",import:()=>u(()=>import("../x/b236b504-apl.js"),__vite__mapDeps([6,1,2,3,7,8,9]))},{id:"applescript",name:"AppleScript",import:()=>u(()=>import("./475cc2ab-applescript.js"),[])},{id:"ara",name:"Ara",import:()=>u(()=>import("../o/93cddebf-ara.js"),[])},{id:"asciidoc",name:"AsciiDoc",aliases:["adoc"],import:()=>u(()=>import("./11d52843-asciidoc.js"),__vite__mapDeps([10,1,2,3,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,8,9,29,30,31,32,33,34,35,36,37,38,7,39,40,41,42,43,44,5,45,46,47]))},{id:"asm",name:"Assembly",import:()=>u(()=>import("../h/92988c72-asm.js"),[])},{id:"astro",name:"Astro",import:()=>u(()=>import("../t/19dbfd1f-astro.js"),__vite__mapDeps([48,9,2,47,49,43,3,5,34,50,51]))},{id:"awk",name:"AWK",import:()=>u(()=>import("../j/e52975a7-awk.js"),[])},{id:"ballerina",name:"Ballerina",import:()=>u(()=>import("../y/8fef3f49-ballerina.js"),[])},{id:"bat",name:"Batch File",aliases:["batch"],import:()=>u(()=>import("./9a3082aa-bat.js"),[])},{id:"beancount",name:"Beancount",import:()=>u(()=>import("../z/e315cc29-beancount.js"),[])},{id:"berry",name:"Berry",aliases:["be"],import:()=>u(()=>import("../o/9ecbc03e-berry.js"),[])},{id:"bibtex",name:"BibTeX",import:()=>u(()=>import("../y/624d8730-bibtex.js"),[])},{id:"bicep",name:"Bicep",import:()=>u(()=>import("../v/db1ead53-bicep.js"),[])},{id:"blade",name:"Blade",import:()=>u(()=>import("../k/7b2016aa-blade.js"),__vite__mapDeps([52,1,2,3,7,8,19,9]))},{id:"c",name:"C",import:()=>u(()=>import("../z/b14c5054-c.js"),[])},{id:"cadence",name:"Cadence",aliases:["cdc"],import:()=>u(()=>import("../n/6e7e93d4-cadence.js"),[])},{id:"clarity",name:"Clarity",import:()=>u(()=>import("../g/1a283012-clarity.js"),[])},{id:"clojure",name:"Clojure",aliases:["clj"],import:()=>u(()=>import("../w/b8aea33e-clojure.js"),[])},{id:"cmake",name:"CMake",import:()=>u(()=>import("../t/4c4f913c-cmake.js"),[])},{id:"cobol",name:"COBOL",import:()=>u(()=>import("../n/ee5639c4-cobol.js"),__vite__mapDeps([53,1,2,3,8]))},{id:"codeowners",name:"CODEOWNERS",import:()=>u(()=>import("../h/80915e8b-codeowners.js"),[])},{id:"codeql",name:"CodeQL",aliases:["ql"],import:()=>u(()=>import("../s/bd90256d-codeql.js"),[])},{id:"coffee",name:"CoffeeScript",aliases:["coffeescript"],import:()=>u(()=>import("../w/7cc897a9-coffee.js"),__vite__mapDeps([15,2]))},{id:"common-lisp",name:"Common Lisp",aliases:["lisp"],import:()=>u(()=>import("../u/e8cbd866-common-lisp.js"),[])},{id:"coq",name:"Coq",import:()=>u(()=>import("../j/bfcf6f08-coq.js"),[])},{id:"cpp",name:"C++",aliases:["c++"],import:()=>u(()=>import("../j/b94eddb1-cpp.js"),__vite__mapDeps([16,17,18,13,19]))},{id:"crystal",name:"Crystal",import:()=>u(()=>import("../q/5dc4cead-crystal.js"),__vite__mapDeps([54,1,2,3,19,13,40]))},{id:"csharp",name:"C#",aliases:["c#","cs"],import:()=>u(()=>import("../h/406d0fbe-csharp.js"),[])},{id:"css",name:"CSS",import:()=>u(()=>import("../p/c520d91a-css.js"),[])},{id:"csv",name:"CSV",import:()=>u(()=>import("../s/151a77c1-csv.js"),[])},{id:"cue",name:"CUE",import:()=>u(()=>import("../x/737784c5-cue.js"),[])},{id:"cypher",name:"Cypher",aliases:["cql"],import:()=>u(()=>import("./6a9635a2-cypher.js"),[])},{id:"d",name:"D",import:()=>u(()=>import("../g/9a736e5c-d.js"),[])},{id:"dart",name:"Dart",import:()=>u(()=>import("../n/0deed318-dart.js"),[])},{id:"dax",name:"DAX",import:()=>u(()=>import("../x/b0d49b28-dax.js"),[])},{id:"desktop",name:"Desktop",import:()=>u(()=>import("../i/48340711-desktop.js"),[])},{id:"diff",name:"Diff",import:()=>u(()=>import("../p/120433aa-diff.js"),[])},{id:"docker",name:"Dockerfile",aliases:["dockerfile"],import:()=>u(()=>import("../s/c96d1659-docker.js"),[])},{id:"dotenv",name:"dotEnv",import:()=>u(()=>import("../w/471ec22f-dotenv.js"),[])},{id:"dream-maker",name:"Dream Maker",import:()=>u(()=>import("../u/e6ca3785-dream-maker.js"),[])},{id:"edge",name:"Edge",import:()=>u(()=>import("../l/eacc9ae2-edge.js"),__vite__mapDeps([55,47,1,2,3,56]))},{id:"elixir",name:"Elixir",import:()=>u(()=>import("../t/3297c0e5-elixir.js"),__vite__mapDeps([23,1,2,3]))},{id:"elm",name:"Elm",import:()=>u(()=>import("../y/cf2eb088-elm.js"),__vite__mapDeps([24,18,13]))},{id:"emacs-lisp",name:"Emacs Lisp",aliases:["elisp"],import:()=>u(()=>import("../m/5e8261eb-emacs-lisp.js"),[])},{id:"erb",name:"ERB",import:()=>u(()=>import("../t/b8e7d5a1-erb.js"),__vite__mapDeps([57,1,2,3,39,7,8,19,13,40,41]))},{id:"erlang",name:"Erlang",aliases:["erl"],import:()=>u(()=>import("../t/272288ab-erlang.js"),[])},{id:"fennel",name:"Fennel",import:()=>u(()=>import("../s/4b9b4aac-fennel.js"),[])},{id:"fish",name:"Fish",import:()=>u(()=>import("../m/31175b2b-fish.js"),[])},{id:"fluent",name:"Fluent",aliases:["ftl"],import:()=>u(()=>import("../u/e3e6c082-fluent.js"),[])},{id:"fortran-fixed-form",name:"Fortran (Fixed Form)",aliases:["f","for","f77"],import:()=>u(()=>import("../y/8fe25c24-fortran-fixed-form.js"),__vite__mapDeps([58,59]))},{id:"fortran-free-form",name:"Fortran (Free Form)",aliases:["f90","f95","f03","f08","f18"],import:()=>u(()=>import("../o/8071d570-fortran-free-form.js"),[])},{id:"fsharp",name:"F#",aliases:["f#","fs"],import:()=>u(()=>import("../k/9e55abe1-fsharp.js"),__vite__mapDeps([60,61]))},{id:"gdresource",name:"GDResource",import:()=>u(()=>import("../v/b22a3b54-gdresource.js"),__vite__mapDeps([62,63,64]))},{id:"gdscript",name:"GDScript",import:()=>u(()=>import("../k/71a1d81d-gdscript.js"),[])},{id:"gdshader",name:"GDShader",import:()=>u(()=>import("../u/e481788e-gdshader.js"),[])},{id:"genie",name:"Genie",import:()=>u(()=>import("../g/990162b4-genie.js"),[])},{id:"gherkin",name:"Gherkin",import:()=>u(()=>import("../k/9ccb1fbc-gherkin.js"),[])},{id:"git-commit",name:"Git Commit Message",import:()=>u(()=>import("../y/92be414a-git-commit.js"),__vite__mapDeps([65,21]))},{id:"git-rebase",name:"Git Rebase Message",import:()=>u(()=>import("../v/57fe780a-git-rebase.js"),__vite__mapDeps([66,40]))},{id:"gleam",name:"Gleam",import:()=>u(()=>import("../y/c9e81430-gleam.js"),[])},{id:"glimmer-js",name:"Glimmer JS",aliases:["gjs"],import:()=>u(()=>import("../v/435d2aaa-glimmer-js.js"),__vite__mapDeps([67,2,47,3,1]))},{id:"glimmer-ts",name:"Glimmer TS",aliases:["gts"],import:()=>u(()=>import("../l/24e81f61-glimmer-ts.js"),__vite__mapDeps([68,47,3,2,1]))},{id:"glsl",name:"GLSL",import:()=>u(()=>import("../u/ba74d591-glsl.js"),__vite__mapDeps([18,13]))},{id:"gnuplot",name:"Gnuplot",import:()=>u(()=>import("../x/d968ac8e-gnuplot.js"),[])},{id:"go",name:"Go",import:()=>u(()=>import("../u/907b3c1b-go.js"),[])},{id:"graphql",name:"GraphQL",aliases:["gql"],import:()=>u(()=>import("./3624b300-graphql.js"),__vite__mapDeps([69,2,47,29,51]))},{id:"groovy",name:"Groovy",import:()=>u(()=>import("../y/edcf4dbb-groovy.js"),[])},{id:"hack",name:"Hack",import:()=>u(()=>import("../n/57221610-hack.js"),__vite__mapDeps([70,1,2,3,19]))},{id:"haml",name:"Ruby Haml",import:()=>u(()=>import("../y/1ee3e406-haml.js"),__vite__mapDeps([71,39,1,2,3,7,8,19,13,40,41,43,15,61]))},{id:"handlebars",name:"Handlebars",aliases:["hbs"],import:()=>u(()=>import("../k/19d2d0b8-handlebars.js"),__vite__mapDeps([72,1,2,3,11]))},{id:"haskell",name:"Haskell",aliases:["hs"],import:()=>u(()=>import("../g/e1f39bbe-haskell.js"),[])},{id:"haxe",name:"Haxe",import:()=>u(()=>import("../i/1373a358-haxe.js"),[])},{id:"hcl",name:"HashiCorp HCL",import:()=>u(()=>import("./848d848f-hcl.js"),[])},{id:"hjson",name:"Hjson",import:()=>u(()=>import("../m/10d9d733-hjson.js"),[])},{id:"hlsl",name:"HLSL",import:()=>u(()=>import("../v/f755eb15-hlsl.js"),[])},{id:"html",name:"HTML",import:()=>u(()=>import("../x/e38428e6-html.js"),__vite__mapDeps([1,2,3]))},{id:"html-derivative",name:"HTML (Derivative)",import:()=>u(()=>import("../x/68a703be-html-derivative.js"),__vite__mapDeps([56,1,2,3]))},{id:"http",name:"HTTP",import:()=>u(()=>import("../o/5fc51e02-http.js"),__vite__mapDeps([73,40,9,7,8,69,2,47,29,51]))},{id:"hxml",name:"HXML",import:()=>u(()=>import("../h/f68057b0-hxml.js"),__vite__mapDeps([74,75]))},{id:"hy",name:"Hy",import:()=>u(()=>import("../l/e55f352e-hy.js"),[])},{id:"imba",name:"Imba",import:()=>u(()=>import("../p/59e9e27b-imba.js"),__vite__mapDeps([76,47]))},{id:"ini",name:"INI",aliases:["properties"],import:()=>u(()=>import("../g/d26261a3-ini.js"),[])},{id:"java",name:"Java",import:()=>u(()=>import("../y/e82a05b5-java.js"),[])},{id:"javascript",name:"JavaScript",aliases:["js"],import:()=>u(()=>import("../z/1b15d7f4-javascript.js"),[])},{id:"jinja",name:"Jinja",import:()=>u(()=>import("../k/950bfec8-jinja.js"),__vite__mapDeps([77,1,2,3]))},{id:"jison",name:"Jison",import:()=>u(()=>import("../n/b88de73c-jison.js"),__vite__mapDeps([78,2]))},{id:"json",name:"JSON",import:()=>u(()=>import("../i/70527e34-json.js"),[])},{id:"json5",name:"JSON5",import:()=>u(()=>import("../v/078773de-json5.js"),[])},{id:"jsonc",name:"JSON with Comments",import:()=>u(()=>import("../h/01a8d07a-jsonc.js"),[])},{id:"jsonl",name:"JSON Lines",import:()=>u(()=>import("../q/5c0c9d2b-jsonl.js"),[])},{id:"jsonnet",name:"Jsonnet",import:()=>u(()=>import("../p/71c9a2b6-jsonnet.js"),[])},{id:"jssm",name:"JSSM",aliases:["fsl"],import:()=>u(()=>import("../l/094cff20-jssm.js"),[])},{id:"jsx",name:"JSX",import:()=>u(()=>import("../h/ba983b15-jsx.js"),[])},{id:"julia",name:"Julia",aliases:["jl"],import:()=>u(()=>import("../t/78fbc35d-julia.js"),__vite__mapDeps([30,16,17,18,13,19,31,2,32]))},{id:"kotlin",name:"Kotlin",aliases:["kt","kts"],import:()=>u(()=>import("../x/53e3afdc-kotlin.js"),[])},{id:"kusto",name:"Kusto",aliases:["kql"],import:()=>u(()=>import("../m/1d29250a-kusto.js"),[])},{id:"latex",name:"LaTeX",import:()=>u(()=>import("../i/0af9b20b-latex.js"),__vite__mapDeps([79,80,32,40,3,81,28,1,2,8,30,16,17,18,13,19,31,41,39,7,42,47,11,44]))},{id:"lean",name:"Lean 4",aliases:["lean4"],import:()=>u(()=>import("../w/cdce0ea7-lean.js"),[])},{id:"less",name:"Less",import:()=>u(()=>import("../z/d9d4dd46-less.js"),[])},{id:"liquid",name:"Liquid",import:()=>u(()=>import("../o/b30dc7e7-liquid.js"),__vite__mapDeps([82,1,2,3,9]))},{id:"log",name:"Log file",import:()=>u(()=>import("../i/57fc55c1-log.js"),[])},{id:"logo",name:"Logo",import:()=>u(()=>import("../t/08a9c632-logo.js"),[])},{id:"lua",name:"Lua",import:()=>u(()=>import("../i/87598344-lua.js"),__vite__mapDeps([41,13]))},{id:"luau",name:"Luau",import:()=>u(()=>import("../z/26c15cc6-luau.js"),[])},{id:"make",name:"Makefile",aliases:["makefile"],import:()=>u(()=>import("../u/40d539dd-make.js"),[])},{id:"markdown",name:"Markdown",aliases:["md"],import:()=>u(()=>import("../n/3888048c-markdown.js"),[])},{id:"marko",name:"Marko",import:()=>u(()=>import("../y/372d2309-marko.js"),__vite__mapDeps([83,3,34,5,2]))},{id:"matlab",name:"MATLAB",import:()=>u(()=>import("../l/1e82fa9d-matlab.js"),[])},{id:"mdc",name:"MDC",import:()=>u(()=>import("../o/5043b7c9-mdc.js"),__vite__mapDeps([84,61,11,56,1,2,3]))},{id:"mdx",name:"MDX",import:()=>u(()=>import("../p/96bac85b-mdx.js"),[])},{id:"mermaid",name:"Mermaid",import:()=>u(()=>import("../v/fc0061c0-mermaid.js"),[])},{id:"mojo",name:"Mojo",import:()=>u(()=>import("../x/768f4106-mojo.js"),[])},{id:"move",name:"Move",import:()=>u(()=>import("../z/78d6c375-move.js"),[])},{id:"narrat",name:"Narrat Language",aliases:["nar"],import:()=>u(()=>import("../o/dd425ded-narrat.js"),[])},{id:"nextflow",name:"Nextflow",aliases:["nf"],import:()=>u(()=>import("../n/c8d4c44f-nextflow.js"),[])},{id:"nginx",name:"Nginx",import:()=>u(()=>import("../o/bfb167d2-nginx.js"),__vite__mapDeps([85,41,13]))},{id:"nim",name:"Nim",import:()=>u(()=>import("../k/6dbe280e-nim.js"),__vite__mapDeps([86,13,1,2,3,7,8,18,61]))},{id:"nix",name:"Nix",import:()=>u(()=>import("../v/1c3e4369-nix.js"),[])},{id:"nushell",name:"nushell",aliases:["nu"],import:()=>u(()=>import("../j/06426070-nushell.js"),[])},{id:"objective-c",name:"Objective-C",aliases:["objc"],import:()=>u(()=>import("../z/cba7d2bd-objective-c.js"),[])},{id:"objective-cpp",name:"Objective-C++",import:()=>u(()=>import("../j/66c61008-objective-cpp.js"),[])},{id:"ocaml",name:"OCaml",import:()=>u(()=>import("../k/71eb2210-ocaml.js"),[])},{id:"pascal",name:"Pascal",import:()=>u(()=>import("../o/0bbdec4e-pascal.js"),[])},{id:"perl",name:"Perl",import:()=>u(()=>import("../v/e891edec-perl.js"),__vite__mapDeps([38,1,2,3,7,8,19]))},{id:"php",name:"PHP",import:()=>u(()=>import("../o/ed0287d9-php.js"),__vite__mapDeps([87,1,2,3,7,8,19,9]))},{id:"plsql",name:"PL/SQL",import:()=>u(()=>import("../w/0e2f8342-plsql.js"),[])},{id:"po",name:"Gettext PO",aliases:["pot","potx"],import:()=>u(()=>import("../j/14237320-po.js"),[])},{id:"postcss",name:"PostCSS",import:()=>u(()=>import("../j/e92cace0-postcss.js"),[])},{id:"powerquery",name:"PowerQuery",import:()=>u(()=>import("../j/0c50ab9c-powerquery.js"),[])},{id:"powershell",name:"PowerShell",aliases:["ps","ps1"],import:()=>u(()=>import("../t/691723bd-powershell.js"),[])},{id:"prisma",name:"Prisma",import:()=>u(()=>import("../s/6023351e-prisma.js"),[])},{id:"prolog",name:"Prolog",import:()=>u(()=>import("../z/6dde0d3e-prolog.js"),[])},{id:"proto",name:"Protocol Buffer 3",aliases:["protobuf"],import:()=>u(()=>import("../k/4924494e-proto.js"),[])},{id:"pug",name:"Pug",aliases:["jade"],import:()=>u(()=>import("../s/f5b17027-pug.js"),__vite__mapDeps([88,2,3,43,5,49,15,1]))},{id:"puppet",name:"Puppet",import:()=>u(()=>import("../q/dfed65b8-puppet.js"),[])},{id:"purescript",name:"PureScript",import:()=>u(()=>import("../l/290c81c3-purescript.js"),[])},{id:"python",name:"Python",aliases:["py"],import:()=>u(()=>import("../u/f4f6b046-python.js"),[])},{id:"qml",name:"QML",import:()=>u(()=>import("../q/f1c6e785-qml.js"),__vite__mapDeps([89,2]))},{id:"qmldir",name:"QML Directory",import:()=>u(()=>import("../p/0c3bddc1-qmldir.js"),[])},{id:"qss",name:"Qt Style Sheets",import:()=>u(()=>import("../j/40d7a06a-qss.js"),[])},{id:"r",name:"R",import:()=>u(()=>import("../u/21557613-r.js"),[])},{id:"racket",name:"Racket",import:()=>u(()=>import("../u/6cc3f1f7-racket.js"),[])},{id:"raku",name:"Raku",aliases:["perl6"],import:()=>u(()=>import("../v/8eeb1c16-raku.js"),[])},{id:"razor",name:"ASP.NET Razor",import:()=>u(()=>import("../y/4fa4e0aa-razor.js"),__vite__mapDeps([90,1,2,3,20]))},{id:"reg",name:"Windows Registry Script",import:()=>u(()=>import("../y/e09715c0-reg.js"),[])},{id:"regexp",name:"RegExp",aliases:["regex"],import:()=>u(()=>import("./cda85021-regexp.js"),[])},{id:"rel",name:"Rel",import:()=>u(()=>import("../j/885a29d3-rel.js"),[])},{id:"riscv",name:"RISC-V",import:()=>u(()=>import("./41e08637-riscv.js"),[])},{id:"rst",name:"reStructuredText",import:()=>u(()=>import("../l/b0d155a6-rst.js"),__vite__mapDeps([91,56,1,2,3,16,17,18,13,19,31,40,11,92,39,7,8,41]))},{id:"ruby",name:"Ruby",aliases:["rb"],import:()=>u(()=>import("../q/5bfd0fe1-ruby.js"),__vite__mapDeps([39,1,2,3,7,8,19,13,40,41]))},{id:"rust",name:"Rust",aliases:["rs"],import:()=>u(()=>import("../i/7f4dd7fd-rust.js"),[])},{id:"sas",name:"SAS",import:()=>u(()=>import("../n/cbe5f047-sas.js"),__vite__mapDeps([93,19]))},{id:"sass",name:"Sass",import:()=>u(()=>import("../i/6b477146-sass.js"),[])},{id:"scala",name:"Scala",import:()=>u(()=>import("../w/64842f97-scala.js"),[])},{id:"scheme",name:"Scheme",import:()=>u(()=>import("../p/6999c261-scheme.js"),[])},{id:"scss",name:"SCSS",import:()=>u(()=>import("../k/b333e6be-scss.js"),__vite__mapDeps([5,3]))},{id:"shaderlab",name:"ShaderLab",aliases:["shader"],import:()=>u(()=>import("../u/b8c91a1c-shaderlab.js"),__vite__mapDeps([94,95]))},{id:"shellscript",name:"Shell",aliases:["bash","sh","shell","zsh"],import:()=>u(()=>import("../x/06964942-shellscript.js"),[])},{id:"shellsession",name:"Shell Session",aliases:["console"],import:()=>u(()=>import("../o/b35900de-shellsession.js"),__vite__mapDeps([96,40]))},{id:"smalltalk",name:"Smalltalk",import:()=>u(()=>import("../l/edf8cf09-smalltalk.js"),[])},{id:"solidity",name:"Solidity",import:()=>u(()=>import("../h/a1afe6af-solidity.js"),[])},{id:"soy",name:"Closure Templates",aliases:["closure-templates"],import:()=>u(()=>import("../n/3e7444ec-soy.js"),__vite__mapDeps([97,1,2,3]))},{id:"sparql",name:"SPARQL",import:()=>u(()=>import("../z/8a1efabc-sparql.js"),__vite__mapDeps([98,99]))},{id:"splunk",name:"Splunk Query Language",aliases:["spl"],import:()=>u(()=>import("../p/df95ddf1-splunk.js"),[])},{id:"sql",name:"SQL",import:()=>u(()=>import("../w/28c37968-sql.js"),[])},{id:"ssh-config",name:"SSH Config",import:()=>u(()=>import("../p/1863aab5-ssh-config.js"),[])},{id:"stata",name:"Stata",import:()=>u(()=>import("../h/d322187b-stata.js"),__vite__mapDeps([100,19]))},{id:"stylus",name:"Stylus",aliases:["styl"],import:()=>u(()=>import("../s/861affef-stylus.js"),[])},{id:"svelte",name:"Svelte",import:()=>u(()=>import("../z/6083a91f-svelte.js"),__vite__mapDeps([101,2,47,15,49,43,3,5,34,50,88,1,61]))},{id:"swift",name:"Swift",import:()=>u(()=>import("../x/25246c4d-swift.js"),[])},{id:"system-verilog",name:"SystemVerilog",import:()=>u(()=>import("../i/f2c5ad82-system-verilog.js"),[])},{id:"systemd",name:"Systemd Units",import:()=>u(()=>import("../x/c4440e61-systemd.js"),[])},{id:"tasl",name:"Tasl",import:()=>u(()=>import("../w/cd9cf455-tasl.js"),[])},{id:"tcl",name:"Tcl",import:()=>u(()=>import("../j/224013e0-tcl.js"),[])},{id:"templ",name:"Templ",import:()=>u(()=>import("../m/f199b44d-templ.js"),__vite__mapDeps([102,26,2,3]))},{id:"terraform",name:"Terraform",aliases:["tf","tfvars"],import:()=>u(()=>import("../y/0c9f2029-terraform.js"),[])},{id:"tex",name:"TeX",import:()=>u(()=>import("../x/056d0d5e-tex.js"),__vite__mapDeps([80,32]))},{id:"toml",name:"TOML",import:()=>u(()=>import("../k/b698751f-toml.js"),[])},{id:"ts-tags",name:"TypeScript with Tags",aliases:["lit"],import:()=>u(()=>import("../n/ce01eb1e-ts-tags.js"),__vite__mapDeps([103,47,3,2,18,13,1,19,7,8]))},{id:"tsv",name:"TSV",import:()=>u(()=>import("../p/3f77c886-tsv.js"),[])},{id:"tsx",name:"TSX",import:()=>u(()=>import("./9311ae5c-tsx.js"),[])},{id:"turtle",name:"Turtle",import:()=>u(()=>import("../s/e0a97e38-turtle.js"),[])},{id:"twig",name:"Twig",import:()=>u(()=>import("../j/980de968-twig.js"),__vite__mapDeps([104,3,2,5,87,1,7,8,19,9,31,39,13,40,41]))},{id:"typescript",name:"TypeScript",aliases:["ts"],import:()=>u(()=>import("./1f201ade-typescript.js"),[])},{id:"typespec",name:"TypeSpec",aliases:["tsp"],import:()=>u(()=>import("../x/901e5d08-typespec.js"),[])},{id:"typst",name:"Typst",aliases:["typ"],import:()=>u(()=>import("../g/88d9c685-typst.js"),[])},{id:"v",name:"V",import:()=>u(()=>import("../y/60484198-v.js"),[])},{id:"vala",name:"Vala",import:()=>u(()=>import("../g/d17aa31e-vala.js"),[])},{id:"vb",name:"Visual Basic",aliases:["cmd"],import:()=>u(()=>import("../w/53277202-vb.js"),[])},{id:"verilog",name:"Verilog",import:()=>u(()=>import("../g/db5ca2ba-verilog.js"),[])},{id:"vhdl",name:"VHDL",import:()=>u(()=>import("../q/7c3b4e95-vhdl.js"),[])},{id:"viml",name:"Vim Script",aliases:["vim","vimscript"],import:()=>u(()=>import("../g/0f55c992-viml.js"),[])},{id:"vue",name:"Vue",import:()=>u(()=>import("../w/cd325325-vue.js"),__vite__mapDeps([105,1,2,3,61,88,43,5,49,15,34,47,29,51,9,106,107,11,46,69,56]))},{id:"vue-html",name:"Vue HTML",import:()=>u(()=>import("../y/b77a781c-vue-html.js"),__vite__mapDeps([108,105,1,2,3,61,88,43,5,49,15,34,47,29,51,9,106,107,11,46,69,56]))},{id:"vyper",name:"Vyper",aliases:["vy"],import:()=>u(()=>import("../m/1077ac1a-vyper.js"),[])},{id:"wasm",name:"WebAssembly",import:()=>u(()=>import("../g/2a2f1a13-wasm.js"),[])},{id:"wenyan",name:"Wenyan",aliases:["文言"],import:()=>u(()=>import("../y/6fe23e47-wenyan.js"),[])},{id:"wgsl",name:"WGSL",import:()=>u(()=>import("../l/89450e04-wgsl.js"),[])},{id:"wikitext",name:"Wikitext",aliases:["mediawiki","wiki"],import:()=>u(()=>import("../p/9eb1d7a6-wikitext.js"),__vite__mapDeps([109,1,2,3,110,8,41,13,35,38,7,19,32,39,40,87,9,111,112,11,113,14,15,16,17,18,21,22,26,27,88,43,5,49,106,34,36,45,114,115,31,30,42,44,47,20,60,61,116,72,25,23,79,80,81,28,117]))},{id:"wolfram",name:"Wolfram",aliases:["wl"],import:()=>u(()=>import("../g/497128fa-wolfram.js"),[])},{id:"xml",name:"XML",import:()=>u(()=>import("../x/4f94727e-xml.js"),__vite__mapDeps([7,8]))},{id:"xsl",name:"XSL",import:()=>u(()=>import("../j/4a587304-xsl.js"),__vite__mapDeps([112,7,8]))},{id:"yaml",name:"YAML",aliases:["yml"],import:()=>u(()=>import("../v/257b2462-yaml.js"),[])},{id:"zenscript",name:"ZenScript",import:()=>u(()=>import("../u/3edf7260-zenscript.js"),[])},{id:"zig",name:"Zig",import:()=>u(()=>import("../q/1347bcdc-zig.js"),[])}],yn=Object.fromEntries(At.map(n=>[n.id,n.import])),En=Object.fromEntries(At.flatMap(n=>n.aliases?.map(e=>[e,n.import])||[])),vn={...yn,...En},Rn=async n=>u(()=>import("../g/ee30f07b-wasm.js"),[]).then(e=>e.default(n)),bn=[{id:"andromeeda",displayName:"Andromeeda",type:"dark",import:()=>u(()=>import("../g/5351ccde-andromeeda.js"),[])},{id:"aurora-x",displayName:"Aurora X",type:"dark",import:()=>u(()=>import("../v/36548fcc-aurora-x.js"),[])},{id:"ayu-dark",displayName:"Ayu Dark",type:"dark",import:()=>u(()=>import("../y/10b564c6-ayu-dark.js"),[])},{id:"catppuccin-frappe",displayName:"Catppuccin Frappé",type:"dark",import:()=>u(()=>import("../p/f087d34e-catppuccin-frappe.js"),[])},{id:"catppuccin-latte",displayName:"Catppuccin Latte",type:"light",import:()=>u(()=>import("../p/06c73389-catppuccin-latte.js"),[])},{id:"catppuccin-macchiato",displayName:"Catppuccin Macchiato",type:"dark",import:()=>u(()=>import("../o/f6536b1c-catppuccin-macchiato.js"),[])},{id:"catppuccin-mocha",displayName:"Catppuccin Mocha",type:"dark",import:()=>u(()=>import("./31ac5e68-catppuccin-mocha.js"),[])},{id:"dark-plus",displayName:"Dark Plus",type:"dark",import:()=>u(()=>import("../v/0cd6149e-dark-plus.js"),[])},{id:"dracula",displayName:"Dracula Theme",type:"dark",import:()=>u(()=>import("../s/c98c877c-dracula.js"),[])},{id:"dracula-soft",displayName:"Dracula Theme Soft",type:"dark",import:()=>u(()=>import("../h/25574344-dracula-soft.js"),[])},{id:"everforest-dark",displayName:"Everforest Dark",type:"dark",import:()=>u(()=>import("../w/b00c437d-everforest-dark.js"),[])},{id:"everforest-light",displayName:"Everforest Light",type:"light",import:()=>u(()=>import("../u/0db92560-everforest-light.js"),[])},{id:"github-dark",displayName:"GitHub Dark",type:"dark",import:()=>u(()=>import("../m/029cfbdd-github-dark.js"),[])},{id:"github-dark-default",displayName:"GitHub Dark Default",type:"dark",import:()=>u(()=>import("../s/db03f843-github-dark-default.js"),[])},{id:"github-dark-dimmed",displayName:"GitHub Dark Dimmed",type:"dark",import:()=>u(()=>import("../v/0dc4ee25-github-dark-dimmed.js"),[])},{id:"github-dark-high-contrast",displayName:"GitHub Dark High Contrast",type:"dark",import:()=>u(()=>import("../q/8da2b777-github-dark-high-contrast.js"),[])},{id:"github-light",displayName:"GitHub Light",type:"light",import:()=>u(()=>import("../k/baf2b9b1-github-light.js"),[])},{id:"github-light-default",displayName:"GitHub Light Default",type:"light",import:()=>u(()=>import("../q/49ef4f81-github-light-default.js"),[])},{id:"github-light-high-contrast",displayName:"GitHub Light High Contrast",type:"light",import:()=>u(()=>import("../o/f76c38a9-github-light-high-contrast.js"),[])},{id:"houston",displayName:"Houston",type:"dark",import:()=>u(()=>import("../k/793e468e-houston.js"),[])},{id:"laserwave",displayName:"LaserWave",type:"dark",import:()=>u(()=>import("../q/e942b9af-laserwave.js"),[])},{id:"light-plus",displayName:"Light Plus",type:"light",import:()=>u(()=>import("../t/7e61f786-light-plus.js"),[])},{id:"material-theme",displayName:"Material Theme",type:"dark",import:()=>u(()=>import("../j/3cb1e567-material-theme.js"),[])},{id:"material-theme-darker",displayName:"Material Theme Darker",type:"dark",import:()=>u(()=>import("../h/bd7d4957-material-theme-darker.js"),[])},{id:"material-theme-lighter",displayName:"Material Theme Lighter",type:"light",import:()=>u(()=>import("../z/c0155539-material-theme-lighter.js"),[])},{id:"material-theme-ocean",displayName:"Material Theme Ocean",type:"dark",import:()=>u(()=>import("../m/f53cc198-material-theme-ocean.js"),[])},{id:"material-theme-palenight",displayName:"Material Theme Palenight",type:"dark",import:()=>u(()=>import("../k/cf7c3709-material-theme-palenight.js"),[])},{id:"min-dark",displayName:"Min Dark",type:"dark",import:()=>u(()=>import("../n/41969a9d-min-dark.js"),[])},{id:"min-light",displayName:"Min Light",type:"light",import:()=>u(()=>import("../l/43970207-min-light.js"),[])},{id:"monokai",displayName:"Monokai",type:"dark",import:()=>u(()=>import("../q/22fd51aa-monokai.js"),[])},{id:"night-owl",displayName:"Night Owl",type:"dark",import:()=>u(()=>import("../h/056832a2-night-owl.js"),[])},{id:"nord",displayName:"Nord",type:"dark",import:()=>u(()=>import("../v/310a60e6-nord.js"),[])},{id:"one-dark-pro",displayName:"One Dark Pro",type:"dark",import:()=>u(()=>import("../n/610275fc-one-dark-pro.js"),[])},{id:"one-light",displayName:"One Light",type:"light",import:()=>u(()=>import("../j/8c4dcecd-one-light.js"),[])},{id:"plastic",displayName:"Plastic",type:"dark",import:()=>u(()=>import("../s/30cffa80-plastic.js"),[])},{id:"poimandres",displayName:"Poimandres",type:"dark",import:()=>u(()=>import("../u/e1762d09-poimandres.js"),[])},{id:"red",displayName:"Red",type:"dark",import:()=>u(()=>import("../v/1c80bbdc-red.js"),[])},{id:"rose-pine",displayName:"Rosé Pine",type:"dark",import:()=>u(()=>import("../u/4691c5dc-rose-pine.js"),[])},{id:"rose-pine-dawn",displayName:"Rosé Pine Dawn",type:"light",import:()=>u(()=>import("../l/9da02494-rose-pine-dawn.js"),[])},{id:"rose-pine-moon",displayName:"Rosé Pine Moon",type:"dark",import:()=>u(()=>import("../g/e2822776-rose-pine-moon.js"),[])},{id:"slack-dark",displayName:"Slack Dark",type:"dark",import:()=>u(()=>import("../p/f07c839d-slack-dark.js"),[])},{id:"slack-ochin",displayName:"Slack Ochin",type:"light",import:()=>u(()=>import("../g/24956faf-slack-ochin.js"),[])},{id:"snazzy-light",displayName:"Snazzy Light",type:"light",import:()=>u(()=>import("../o/5350aa70-snazzy-light.js"),[])},{id:"solarized-dark",displayName:"Solarized Dark",type:"dark",import:()=>u(()=>import("../w/1030775d-solarized-dark.js"),[])},{id:"solarized-light",displayName:"Solarized Light",type:"light",import:()=>u(()=>import("../u/35a9779e-solarized-light.js"),[])},{id:"synthwave-84",displayName:"Synthwave '84",type:"dark",import:()=>u(()=>import("../u/0dc33224-synthwave-84.js"),[])},{id:"tokyo-night",displayName:"Tokyo Night",type:"dark",import:()=>u(()=>import("../p/471804e7-tokyo-night.js"),[])},{id:"vesper",displayName:"Vesper",type:"dark",import:()=>u(()=>import("../h/43e4c038-vesper.js"),[])},{id:"vitesse-black",displayName:"Vitesse Black",type:"dark",import:()=>u(()=>import("../l/7affc29c-vitesse-black.js"),[])},{id:"vitesse-dark",displayName:"Vitesse Dark",type:"dark",import:()=>u(()=>import("../u/e870db76-vitesse-dark.js"),[])},{id:"vitesse-light",displayName:"Vitesse Light",type:"light",import:()=>u(()=>import("../s/14b03783-vitesse-light.js"),[])}],An=Object.fromEntries(bn.map(n=>[n.id,n.import]));var M;(function(n){n[n.NotSet=-1]="NotSet",n[n.None=0]="None",n[n.Italic=1]="Italic",n[n.Bold=2]="Bold",n[n.Underline=4]="Underline"})(M||(M={}));function Ln(n){return Ue(n)}function Ue(n){return Array.isArray(n)?Tn(n):typeof n=="object"?Pn(n):n}function Tn(n){let e=[];for(let t=0,r=n.length;t{for(let r in t)n[r]=t[r]}),n}function Tt(n){const e=~n.lastIndexOf("/")||~n.lastIndexOf("\\");return e===0?n:~e===n.length-1?Tt(n.substring(0,n.length-1)):n.substr(~e+1)}var Le=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,re=class{static hasCaptures(n){return n===null?!1:(Le.lastIndex=0,Le.test(n))}static replaceCaptures(n,e,t){return n.replace(Le,(r,i,o,s)=>{let l=t[parseInt(i||o,10)];if(l){let a=e.substring(l.start,l.end);for(;a[0]===".";)a=a.substring(1);switch(s){case"downcase":return a.toLowerCase();case"upcase":return a.toUpperCase();default:return a}}else return r})}};function Pt(n,e){return ne?1:0}function St(n,e){if(n===null&&e===null)return 0;if(!n)return-1;if(!e)return 1;let t=n.length,r=e.length;if(t===r){for(let i=0;ithis._root.match(r))}static createFromRawTheme(n,e){return this.createFromParsedTheme(wn(n),e)}static createFromParsedTheme(n,e){return Cn(n,e)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(n){if(n===null)return this._defaults;const e=n.scopeName,r=this._cachedMatchRoot.get(e).find(i=>Sn(n.parent,i.parentScopes));return r?new Ot(r.fontStyle,r.foreground,r.background):null}},Te=class ae{constructor(e,t){this.parent=e,this.scopeName=t}static push(e,t){for(const r of t)e=new ae(e,r);return e}static from(...e){let t=null;for(let r=0;r"){if(t===e.length-1)return!1;r=e[++t],i=!0}for(;n&&!In(n.scopeName,r);){if(i)return!1;n=n.parent}if(!n)return!1;n=n.parent}return!0}function In(n,e){return e===n||n.startsWith(e)&&n[e.length]==="."}var Ot=class{constructor(n,e,t){this.fontStyle=n,this.foregroundId=e,this.backgroundId=t}};function wn(n){if(!n)return[];if(!n.settings||!Array.isArray(n.settings))return[];let e=n.settings,t=[],r=0;for(let i=0,o=e.length;i1&&(g=h.slice(0,h.length-1),g.reverse()),t[r++]=new On(E,g,i,a,c,d)}}return t}var On=class{constructor(n,e,t,r,i,o){this.scope=n,this.parentScopes=e,this.index=t,this.fontStyle=r,this.foreground=i,this.background=o}};function Cn(n,e){n.sort((a,c)=>{let d=Pt(a.scope,c.scope);return d!==0||(d=St(a.parentScopes,c.parentScopes),d!==0)?d:a.index-c.index});let t=0,r="#000000",i="#ffffff";for(;n.length>=1&&n[0].scope==="";){let a=n.shift();a.fontStyle!==-1&&(t=a.fontStyle),a.foreground!==null&&(r=a.foreground),a.background!==null&&(i=a.background)}let o=new kn(e),s=new Ot(t,o.getId(r),o.getId(i)),l=new Nn(new ke(0,null,-1,0,0),[]);for(let a=0,c=n.length;ae?console.log("how did this happen?"):this.scopeDepth=e,t!==-1&&(this.fontStyle=t),r!==0&&(this.foreground=r),i!==0&&(this.background=i)}},Nn=class De{constructor(e,t=[],r={}){this._mainRule=e,this._children=r,this._rulesWithParentScopes=t}static _cmpBySpecificity(e,t){if(e.scopeDepth!==t.scopeDepth)return t.scopeDepth-e.scopeDepth;let r=0,i=0;for(;e.parentScopes[r]===">"&&r++,t.parentScopes[i]===">"&&i++,!(r>=e.parentScopes.length||i>=t.parentScopes.length);){const o=t.parentScopes[i].length-e.parentScopes[r].length;if(o!==0)return o;r++,i++}return t.parentScopes.length-e.parentScopes.length}match(e){if(e!==""){let r=e.indexOf("."),i,o;if(r===-1?(i=e,o=""):(i=e.substring(0,r),o=e.substring(r+1)),this._children.hasOwnProperty(i))return this._children[i].match(o)}const t=this._rulesWithParentScopes.concat(this._mainRule);return t.sort(De._cmpBySpecificity),t}insert(e,t,r,i,o,s){if(t===""){this._doInsertHere(e,r,i,o,s);return}let l=t.indexOf("."),a,c;l===-1?(a=t,c=""):(a=t.substring(0,l),c=t.substring(l+1));let d;this._children.hasOwnProperty(a)?d=this._children[a]:(d=new De(this._mainRule.clone(),ke.cloneArr(this._rulesWithParentScopes)),this._children[a]=d),d.insert(e+1,c,r,i,o,s)}_doInsertHere(e,t,r,i,o){if(t===null){this._mainRule.acceptOverwrite(e,r,i,o);return}for(let s=0,l=this._rulesWithParentScopes.length;s>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(e,t,r,i,o,s,l){let a=k.getLanguageId(e),c=k.getTokenType(e),d=k.containsBalancedBrackets(e)?1:0,p=k.getFontStyle(e),_=k.getForeground(e),m=k.getBackground(e);return t!==0&&(a=t),r!==8&&(c=r),i!==null&&(d=i?1:0),o!==-1&&(p=o),s!==0&&(_=s),l!==0&&(m=l),(a<<0|c<<8|d<<10|p<<11|_<<15|m<<24)>>>0}};function ce(n,e){const t=[],r=xn(n);let i=r.next();for(;i!==null;){let a=0;if(i.length===2&&i.charAt(1)===":"){switch(i.charAt(0)){case"R":a=1;break;case"L":a=-1;break;default:console.log(`Unknown priority ${i} in scope selector`)}i=r.next()}let c=s();if(t.push({matcher:c,priority:a}),i!==",")break;i=r.next()}return t;function o(){if(i==="-"){i=r.next();const a=o();return c=>!!a&&!a(c)}if(i==="("){i=r.next();const a=l();return i===")"&&(i=r.next()),a}if(it(i)){const a=[];do a.push(i),i=r.next();while(it(i));return c=>e(a,c)}return null}function s(){const a=[];let c=o();for(;c;)a.push(c),c=o();return d=>a.every(p=>p(d))}function l(){const a=[];let c=s();for(;c&&(a.push(c),i==="|"||i===",");){do i=r.next();while(i==="|"||i===",");c=s()}return d=>a.some(p=>p(d))}}function it(n){return!!n&&!!n.match(/[\w\.:]+/)}function xn(n){let e=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,t=e.exec(n);return{next:()=>{if(!t)return null;const r=t[0];return t=e.exec(n),r}}}function kt(n){typeof n.dispose=="function"&&n.dispose()}var Q=class{constructor(n){this.scopeName=n}toKey(){return this.scopeName}},Vn=class{constructor(n,e){this.scopeName=n,this.ruleName=e}toKey(){return`${this.scopeName}#${this.ruleName}`}},Mn=class{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(n){const e=n.toKey();this._seenReferenceKeys.has(e)||(this._seenReferenceKeys.add(e),this._references.push(n))}},Bn=class{constructor(n,e){this.repo=n,this.initialScopeName=e,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Q(this.initialScopeName)]}processQueue(){const n=this.Q;this.Q=[];const e=new Mn;for(const t of n)Gn(t,this.initialScopeName,this.repo,e);for(const t of e.references)if(t instanceof Q){if(this.seenFullScopeRequests.has(t.scopeName))continue;this.seenFullScopeRequests.add(t.scopeName),this.Q.push(t)}else{if(this.seenFullScopeRequests.has(t.scopeName)||this.seenPartialScopeRequests.has(t.toKey()))continue;this.seenPartialScopeRequests.add(t.toKey()),this.Q.push(t)}}};function Gn(n,e,t,r){const i=t.lookup(n.scopeName);if(!i){if(n.scopeName===e)throw new Error(`No grammar provided for <${e}>`);return}const o=t.lookup(e);n instanceof Q?le({baseGrammar:o,selfGrammar:i},r):Ne(n.ruleName,{baseGrammar:o,selfGrammar:i,repository:i.repository},r);const s=t.injections(n.scopeName);if(s)for(const l of s)r.add(new Q(l))}function Ne(n,e,t){if(e.repository&&e.repository[n]){const r=e.repository[n];de([r],e,t)}}function le(n,e){n.selfGrammar.patterns&&Array.isArray(n.selfGrammar.patterns)&&de(n.selfGrammar.patterns,{...n,repository:n.selfGrammar.repository},e),n.selfGrammar.injections&&de(Object.values(n.selfGrammar.injections),{...n,repository:n.selfGrammar.repository},e)}function de(n,e,t){for(const r of n){if(t.visitedRule.has(r))continue;t.visitedRule.add(r);const i=r.repository?Lt({},e.repository,r.repository):e.repository;Array.isArray(r.patterns)&&de(r.patterns,{...e,repository:i},t);const o=r.include;if(!o)continue;const s=Dt(o);switch(s.kind){case 0:le({...e,selfGrammar:e.baseGrammar},t);break;case 1:le(e,t);break;case 2:Ne(s.ruleName,{...e,repository:i},t);break;case 3:case 4:const l=s.scopeName===e.selfGrammar.scopeName?e.selfGrammar:s.scopeName===e.baseGrammar.scopeName?e.baseGrammar:void 0;if(l){const a={baseGrammar:e.baseGrammar,selfGrammar:l,repository:i};s.kind===4?Ne(s.ruleName,a,t):le(a,t)}else s.kind===4?t.add(new Vn(s.scopeName,s.ruleName)):t.add(new Q(s.scopeName));break}}}var jn=class{constructor(){this.kind=0}},Fn=class{constructor(){this.kind=1}},$n=class{constructor(n){this.ruleName=n,this.kind=2}},Un=class{constructor(n){this.scopeName=n,this.kind=3}},Hn=class{constructor(n,e){this.scopeName=n,this.ruleName=e,this.kind=4}};function Dt(n){if(n==="$base")return new jn;if(n==="$self")return new Fn;const e=n.indexOf("#");if(e===-1)return new Un(n);if(e===0)return new $n(n.substring(1));{const t=n.substring(0,e),r=n.substring(e+1);return new Hn(t,r)}}var Wn=/\\(\d+)/,ot=/\\(\d+)/g,zn=-1,Nt=-2;var te=class{constructor(n,e,t,r){this.$location=n,this.id=e,this._name=t||null,this._nameIsCapturing=re.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=re.hasCaptures(this._contentName)}get debugName(){const n=this.$location?`${Tt(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${n}`}getName(n,e){return!this._nameIsCapturing||this._name===null||n===null||e===null?this._name:re.replaceCaptures(this._name,n,e)}getContentName(n,e){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:re.replaceCaptures(this._contentName,n,e)}},qn=class extends te{constructor(n,e,t,r,i){super(n,e,t,r),this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(n,e){throw new Error("Not supported!")}compile(n,e){throw new Error("Not supported!")}compileAG(n,e,t,r){throw new Error("Not supported!")}},Kn=class extends te{constructor(n,e,t,r,i){super(n,e,t,null),this._match=new Z(r,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(n,e){e.push(this._match)}compile(n,e){return this._getCachedCompiledPatterns(n).compile(n)}compileAG(n,e,t,r){return this._getCachedCompiledPatterns(n).compileAG(n,t,r)}_getCachedCompiledPatterns(n){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new ee,this.collectPatterns(n,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},st=class extends te{constructor(n,e,t,r,i){super(n,e,t,r),this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(n,e){for(const t of this.patterns)n.getRule(t).collectPatterns(n,e)}compile(n,e){return this._getCachedCompiledPatterns(n).compile(n)}compileAG(n,e,t,r){return this._getCachedCompiledPatterns(n).compileAG(n,t,r)}_getCachedCompiledPatterns(n){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new ee,this.collectPatterns(n,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},xe=class extends te{constructor(n,e,t,r,i,o,s,l,a,c){super(n,e,t,r),this._begin=new Z(i,this.id),this.beginCaptures=o,this._end=new Z(s||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=l,this.applyEndPatternLast=a||!1,this.patterns=c.patterns,this.hasMissingPatterns=c.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(n,e){return this._end.resolveBackReferences(n,e)}collectPatterns(n,e){e.push(this._begin)}compile(n,e){return this._getCachedCompiledPatterns(n,e).compile(n)}compileAG(n,e,t,r){return this._getCachedCompiledPatterns(n,e).compileAG(n,t,r)}_getCachedCompiledPatterns(n,e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new ee;for(const t of this.patterns)n.getRule(t).collectPatterns(n,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,e):this._cachedCompiledPatterns.setSource(0,e)),this._cachedCompiledPatterns}},pe=class extends te{constructor(n,e,t,r,i,o,s,l,a){super(n,e,t,r),this._begin=new Z(i,this.id),this.beginCaptures=o,this.whileCaptures=l,this._while=new Z(s,Nt),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=a.patterns,this.hasMissingPatterns=a.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(n,e){return this._while.resolveBackReferences(n,e)}collectPatterns(n,e){e.push(this._begin)}compile(n,e){return this._getCachedCompiledPatterns(n).compile(n)}compileAG(n,e,t,r){return this._getCachedCompiledPatterns(n).compileAG(n,t,r)}_getCachedCompiledPatterns(n){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new ee;for(const e of this.patterns)n.getRule(e).collectPatterns(n,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(n,e){return this._getCachedCompiledWhilePatterns(n,e).compile(n)}compileWhileAG(n,e,t,r){return this._getCachedCompiledWhilePatterns(n,e).compileAG(n,t,r)}_getCachedCompiledWhilePatterns(n,e){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new ee,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,e||"￿"),this._cachedCompiledWhilePatterns}},xt=class O{static createCaptureRule(e,t,r,i,o){return e.registerRule(s=>new qn(t,s,r,i,o))}static getCompiledRuleId(e,t,r){return e.id||t.registerRule(i=>{if(e.id=i,e.match)return new Kn(e.$vscodeTextmateLocation,e.id,e.name,e.match,O._compileCaptures(e.captures,t,r));if(typeof e.begin>"u"){e.repository&&(r=Lt({},r,e.repository));let o=e.patterns;return typeof o>"u"&&e.include&&(o=[{include:e.include}]),new st(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,O._compilePatterns(o,t,r))}return e.while?new pe(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,O._compileCaptures(e.beginCaptures||e.captures,t,r),e.while,O._compileCaptures(e.whileCaptures||e.captures,t,r),O._compilePatterns(e.patterns,t,r)):new xe(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,O._compileCaptures(e.beginCaptures||e.captures,t,r),e.end,O._compileCaptures(e.endCaptures||e.captures,t,r),e.applyEndPatternLast,O._compilePatterns(e.patterns,t,r))}),e.id}static _compileCaptures(e,t,r){let i=[];if(e){let o=0;for(const s in e){if(s==="$vscodeTextmateLocation")continue;const l=parseInt(s,10);l>o&&(o=l)}for(let s=0;s<=o;s++)i[s]=null;for(const s in e){if(s==="$vscodeTextmateLocation")continue;const l=parseInt(s,10);let a=0;e[s].patterns&&(a=O.getCompiledRuleId(e[s],t,r)),i[l]=O.createCaptureRule(t,e[s].$vscodeTextmateLocation,e[s].name,e[s].contentName,a)}}return i}static _compilePatterns(e,t,r){let i=[];if(e)for(let o=0,s=e.length;oe.substring(i.start,i.end));return ot.lastIndex=0,this.source.replace(ot,(i,o)=>It(r[parseInt(o,10)]||""))}_buildAnchorCache(){let e=[],t=[],r=[],i=[],o,s,l,a;for(o=0,s=this.source.length;ot.source);this._cached=new at(n,e,this._items.map(t=>t.ruleId))}return this._cached}compileAG(n,e,t){return this._hasAnchors?e?t?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(n,e,t)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(n,e,t)),this._anchorCache.A1_G0):t?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(n,e,t)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(n,e,t)),this._anchorCache.A0_G0):this.compile(n)}_resolveAnchors(n,e,t){let r=this._items.map(i=>i.resolveAnchors(e,t));return new at(n,r,this._items.map(i=>i.ruleId))}},at=class{constructor(n,e,t){this.regExps=e,this.rules=t,this.scanner=n.createOnigScanner(e)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const n=[];for(let e=0,t=this.rules.length;eu(()=>import("../k/8e8321f5-abap.js"),[])},{id:"actionscript-3",name:"ActionScript",import:()=>u(()=>import("../v/61229da6-actionscript-3.js"),[])},{id:"ada",name:"Ada",import:()=>u(()=>import("../u/5be42d0b-ada.js"),[])},{id:"angular-html",name:"Angular HTML",import:()=>u(()=>import("../o/4afaf00a-angular-html.js").then(n=>n.f),__vite__mapDeps([0,1,2,3]))},{id:"angular-ts",name:"Angular TypeScript",import:()=>u(()=>import("../i/3a85a67c-angular-ts.js"),__vite__mapDeps([4,0,1,2,3,5]))},{id:"apache",name:"Apache Conf",import:()=>u(()=>import("../q/938716c5-apache.js"),[])},{id:"apex",name:"Apex",import:()=>u(()=>import("../q/007f0941-apex.js"),[])},{id:"apl",name:"APL",import:()=>u(()=>import("../x/b236b504-apl.js"),__vite__mapDeps([6,1,2,3,7,8,9]))},{id:"applescript",name:"AppleScript",import:()=>u(()=>import("./475cc2ab-applescript.js"),[])},{id:"ara",name:"Ara",import:()=>u(()=>import("../o/93cddebf-ara.js"),[])},{id:"asciidoc",name:"AsciiDoc",aliases:["adoc"],import:()=>u(()=>import("./11d52843-asciidoc.js"),__vite__mapDeps([10,1,2,3,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,8,9,29,30,31,32,33,34,35,36,37,38,7,39,40,41,42,43,44,5,45,46,47]))},{id:"asm",name:"Assembly",import:()=>u(()=>import("../h/92988c72-asm.js"),[])},{id:"astro",name:"Astro",import:()=>u(()=>import("../t/19dbfd1f-astro.js"),__vite__mapDeps([48,9,2,47,49,43,3,5,34,50,51]))},{id:"awk",name:"AWK",import:()=>u(()=>import("../j/e52975a7-awk.js"),[])},{id:"ballerina",name:"Ballerina",import:()=>u(()=>import("../y/8fef3f49-ballerina.js"),[])},{id:"bat",name:"Batch File",aliases:["batch"],import:()=>u(()=>import("./9a3082aa-bat.js"),[])},{id:"beancount",name:"Beancount",import:()=>u(()=>import("../z/e315cc29-beancount.js"),[])},{id:"berry",name:"Berry",aliases:["be"],import:()=>u(()=>import("../o/9ecbc03e-berry.js"),[])},{id:"bibtex",name:"BibTeX",import:()=>u(()=>import("../y/624d8730-bibtex.js"),[])},{id:"bicep",name:"Bicep",import:()=>u(()=>import("../v/db1ead53-bicep.js"),[])},{id:"blade",name:"Blade",import:()=>u(()=>import("../k/7b2016aa-blade.js"),__vite__mapDeps([52,1,2,3,7,8,19,9]))},{id:"c",name:"C",import:()=>u(()=>import("../z/b14c5054-c.js"),[])},{id:"cadence",name:"Cadence",aliases:["cdc"],import:()=>u(()=>import("../n/6e7e93d4-cadence.js"),[])},{id:"clarity",name:"Clarity",import:()=>u(()=>import("../g/1a283012-clarity.js"),[])},{id:"clojure",name:"Clojure",aliases:["clj"],import:()=>u(()=>import("../w/b8aea33e-clojure.js"),[])},{id:"cmake",name:"CMake",import:()=>u(()=>import("../t/4c4f913c-cmake.js"),[])},{id:"cobol",name:"COBOL",import:()=>u(()=>import("../n/ee5639c4-cobol.js"),__vite__mapDeps([53,1,2,3,8]))},{id:"codeowners",name:"CODEOWNERS",import:()=>u(()=>import("../h/80915e8b-codeowners.js"),[])},{id:"codeql",name:"CodeQL",aliases:["ql"],import:()=>u(()=>import("../s/bd90256d-codeql.js"),[])},{id:"coffee",name:"CoffeeScript",aliases:["coffeescript"],import:()=>u(()=>import("../w/7cc897a9-coffee.js"),__vite__mapDeps([15,2]))},{id:"common-lisp",name:"Common Lisp",aliases:["lisp"],import:()=>u(()=>import("../u/e8cbd866-common-lisp.js"),[])},{id:"coq",name:"Coq",import:()=>u(()=>import("../j/bfcf6f08-coq.js"),[])},{id:"cpp",name:"C++",aliases:["c++"],import:()=>u(()=>import("../j/b94eddb1-cpp.js"),__vite__mapDeps([16,17,18,13,19]))},{id:"crystal",name:"Crystal",import:()=>u(()=>import("../q/5dc4cead-crystal.js"),__vite__mapDeps([54,1,2,3,19,13,40]))},{id:"csharp",name:"C#",aliases:["c#","cs"],import:()=>u(()=>import("../h/406d0fbe-csharp.js"),[])},{id:"css",name:"CSS",import:()=>u(()=>import("../p/c520d91a-css.js"),[])},{id:"csv",name:"CSV",import:()=>u(()=>import("../s/151a77c1-csv.js"),[])},{id:"cue",name:"CUE",import:()=>u(()=>import("../x/737784c5-cue.js"),[])},{id:"cypher",name:"Cypher",aliases:["cql"],import:()=>u(()=>import("./6a9635a2-cypher.js"),[])},{id:"d",name:"D",import:()=>u(()=>import("../g/9a736e5c-d.js"),[])},{id:"dart",name:"Dart",import:()=>u(()=>import("../n/0deed318-dart.js"),[])},{id:"dax",name:"DAX",import:()=>u(()=>import("../x/b0d49b28-dax.js"),[])},{id:"desktop",name:"Desktop",import:()=>u(()=>import("../i/48340711-desktop.js"),[])},{id:"diff",name:"Diff",import:()=>u(()=>import("../p/120433aa-diff.js"),[])},{id:"docker",name:"Dockerfile",aliases:["dockerfile"],import:()=>u(()=>import("../s/c96d1659-docker.js"),[])},{id:"dotenv",name:"dotEnv",import:()=>u(()=>import("../w/471ec22f-dotenv.js"),[])},{id:"dream-maker",name:"Dream Maker",import:()=>u(()=>import("../u/e6ca3785-dream-maker.js"),[])},{id:"edge",name:"Edge",import:()=>u(()=>import("../l/eacc9ae2-edge.js"),__vite__mapDeps([55,47,1,2,3,56]))},{id:"elixir",name:"Elixir",import:()=>u(()=>import("../t/3297c0e5-elixir.js"),__vite__mapDeps([23,1,2,3]))},{id:"elm",name:"Elm",import:()=>u(()=>import("../y/cf2eb088-elm.js"),__vite__mapDeps([24,18,13]))},{id:"emacs-lisp",name:"Emacs Lisp",aliases:["elisp"],import:()=>u(()=>import("../m/5e8261eb-emacs-lisp.js"),[])},{id:"erb",name:"ERB",import:()=>u(()=>import("../t/b8e7d5a1-erb.js"),__vite__mapDeps([57,1,2,3,39,7,8,19,13,40,41]))},{id:"erlang",name:"Erlang",aliases:["erl"],import:()=>u(()=>import("../t/272288ab-erlang.js"),[])},{id:"fennel",name:"Fennel",import:()=>u(()=>import("../s/4b9b4aac-fennel.js"),[])},{id:"fish",name:"Fish",import:()=>u(()=>import("../m/31175b2b-fish.js"),[])},{id:"fluent",name:"Fluent",aliases:["ftl"],import:()=>u(()=>import("../u/e3e6c082-fluent.js"),[])},{id:"fortran-fixed-form",name:"Fortran (Fixed Form)",aliases:["f","for","f77"],import:()=>u(()=>import("../y/8fe25c24-fortran-fixed-form.js"),__vite__mapDeps([58,59]))},{id:"fortran-free-form",name:"Fortran (Free Form)",aliases:["f90","f95","f03","f08","f18"],import:()=>u(()=>import("../o/8071d570-fortran-free-form.js"),[])},{id:"fsharp",name:"F#",aliases:["f#","fs"],import:()=>u(()=>import("../k/9e55abe1-fsharp.js"),__vite__mapDeps([60,61]))},{id:"gdresource",name:"GDResource",import:()=>u(()=>import("../v/b22a3b54-gdresource.js"),__vite__mapDeps([62,63,64]))},{id:"gdscript",name:"GDScript",import:()=>u(()=>import("../k/71a1d81d-gdscript.js"),[])},{id:"gdshader",name:"GDShader",import:()=>u(()=>import("../u/e481788e-gdshader.js"),[])},{id:"genie",name:"Genie",import:()=>u(()=>import("../g/990162b4-genie.js"),[])},{id:"gherkin",name:"Gherkin",import:()=>u(()=>import("../k/9ccb1fbc-gherkin.js"),[])},{id:"git-commit",name:"Git Commit Message",import:()=>u(()=>import("../y/92be414a-git-commit.js"),__vite__mapDeps([65,21]))},{id:"git-rebase",name:"Git Rebase Message",import:()=>u(()=>import("../v/57fe780a-git-rebase.js"),__vite__mapDeps([66,40]))},{id:"gleam",name:"Gleam",import:()=>u(()=>import("../y/c9e81430-gleam.js"),[])},{id:"glimmer-js",name:"Glimmer JS",aliases:["gjs"],import:()=>u(()=>import("../v/435d2aaa-glimmer-js.js"),__vite__mapDeps([67,2,47,3,1]))},{id:"glimmer-ts",name:"Glimmer TS",aliases:["gts"],import:()=>u(()=>import("../l/24e81f61-glimmer-ts.js"),__vite__mapDeps([68,47,3,2,1]))},{id:"glsl",name:"GLSL",import:()=>u(()=>import("../u/ba74d591-glsl.js"),__vite__mapDeps([18,13]))},{id:"gnuplot",name:"Gnuplot",import:()=>u(()=>import("../x/d968ac8e-gnuplot.js"),[])},{id:"go",name:"Go",import:()=>u(()=>import("../u/907b3c1b-go.js"),[])},{id:"graphql",name:"GraphQL",aliases:["gql"],import:()=>u(()=>import("./3624b300-graphql.js"),__vite__mapDeps([69,2,47,29,51]))},{id:"groovy",name:"Groovy",import:()=>u(()=>import("../y/edcf4dbb-groovy.js"),[])},{id:"hack",name:"Hack",import:()=>u(()=>import("../n/57221610-hack.js"),__vite__mapDeps([70,1,2,3,19]))},{id:"haml",name:"Ruby Haml",import:()=>u(()=>import("../y/1ee3e406-haml.js"),__vite__mapDeps([71,39,1,2,3,7,8,19,13,40,41,43,15,61]))},{id:"handlebars",name:"Handlebars",aliases:["hbs"],import:()=>u(()=>import("../k/19d2d0b8-handlebars.js"),__vite__mapDeps([72,1,2,3,11]))},{id:"haskell",name:"Haskell",aliases:["hs"],import:()=>u(()=>import("../g/e1f39bbe-haskell.js"),[])},{id:"haxe",name:"Haxe",import:()=>u(()=>import("../i/1373a358-haxe.js"),[])},{id:"hcl",name:"HashiCorp HCL",import:()=>u(()=>import("./848d848f-hcl.js"),[])},{id:"hjson",name:"Hjson",import:()=>u(()=>import("../m/10d9d733-hjson.js"),[])},{id:"hlsl",name:"HLSL",import:()=>u(()=>import("../v/f755eb15-hlsl.js"),[])},{id:"html",name:"HTML",import:()=>u(()=>import("../x/e38428e6-html.js"),__vite__mapDeps([1,2,3]))},{id:"html-derivative",name:"HTML (Derivative)",import:()=>u(()=>import("../x/68a703be-html-derivative.js"),__vite__mapDeps([56,1,2,3]))},{id:"http",name:"HTTP",import:()=>u(()=>import("../o/5fc51e02-http.js"),__vite__mapDeps([73,40,9,7,8,69,2,47,29,51]))},{id:"hxml",name:"HXML",import:()=>u(()=>import("../h/f68057b0-hxml.js"),__vite__mapDeps([74,75]))},{id:"hy",name:"Hy",import:()=>u(()=>import("../l/e55f352e-hy.js"),[])},{id:"imba",name:"Imba",import:()=>u(()=>import("../p/59e9e27b-imba.js"),__vite__mapDeps([76,47]))},{id:"ini",name:"INI",aliases:["properties"],import:()=>u(()=>import("../g/d26261a3-ini.js"),[])},{id:"java",name:"Java",import:()=>u(()=>import("../y/e82a05b5-java.js"),[])},{id:"javascript",name:"JavaScript",aliases:["js"],import:()=>u(()=>import("../z/1b15d7f4-javascript.js"),[])},{id:"jinja",name:"Jinja",import:()=>u(()=>import("../k/950bfec8-jinja.js"),__vite__mapDeps([77,1,2,3]))},{id:"jison",name:"Jison",import:()=>u(()=>import("../n/b88de73c-jison.js"),__vite__mapDeps([78,2]))},{id:"json",name:"JSON",import:()=>u(()=>import("../i/70527e34-json.js"),[])},{id:"json5",name:"JSON5",import:()=>u(()=>import("../v/078773de-json5.js"),[])},{id:"jsonc",name:"JSON with Comments",import:()=>u(()=>import("../h/01a8d07a-jsonc.js"),[])},{id:"jsonl",name:"JSON Lines",import:()=>u(()=>import("../q/5c0c9d2b-jsonl.js"),[])},{id:"jsonnet",name:"Jsonnet",import:()=>u(()=>import("../p/71c9a2b6-jsonnet.js"),[])},{id:"jssm",name:"JSSM",aliases:["fsl"],import:()=>u(()=>import("../l/094cff20-jssm.js"),[])},{id:"jsx",name:"JSX",import:()=>u(()=>import("../h/ba983b15-jsx.js"),[])},{id:"julia",name:"Julia",aliases:["jl"],import:()=>u(()=>import("../t/78fbc35d-julia.js"),__vite__mapDeps([30,16,17,18,13,19,31,2,32]))},{id:"kotlin",name:"Kotlin",aliases:["kt","kts"],import:()=>u(()=>import("../x/53e3afdc-kotlin.js"),[])},{id:"kusto",name:"Kusto",aliases:["kql"],import:()=>u(()=>import("../m/1d29250a-kusto.js"),[])},{id:"latex",name:"LaTeX",import:()=>u(()=>import("../i/0af9b20b-latex.js"),__vite__mapDeps([79,80,32,40,3,81,28,1,2,8,30,16,17,18,13,19,31,41,39,7,42,47,11,44]))},{id:"lean",name:"Lean 4",aliases:["lean4"],import:()=>u(()=>import("../w/cdce0ea7-lean.js"),[])},{id:"less",name:"Less",import:()=>u(()=>import("../z/d9d4dd46-less.js"),[])},{id:"liquid",name:"Liquid",import:()=>u(()=>import("../o/b30dc7e7-liquid.js"),__vite__mapDeps([82,1,2,3,9]))},{id:"log",name:"Log file",import:()=>u(()=>import("../i/57fc55c1-log.js"),[])},{id:"logo",name:"Logo",import:()=>u(()=>import("../t/08a9c632-logo.js"),[])},{id:"lua",name:"Lua",import:()=>u(()=>import("../i/87598344-lua.js"),__vite__mapDeps([41,13]))},{id:"luau",name:"Luau",import:()=>u(()=>import("../z/26c15cc6-luau.js"),[])},{id:"make",name:"Makefile",aliases:["makefile"],import:()=>u(()=>import("../u/40d539dd-make.js"),[])},{id:"markdown",name:"Markdown",aliases:["md"],import:()=>u(()=>import("../n/3888048c-markdown.js"),[])},{id:"marko",name:"Marko",import:()=>u(()=>import("../y/372d2309-marko.js"),__vite__mapDeps([83,3,34,5,2]))},{id:"matlab",name:"MATLAB",import:()=>u(()=>import("../l/1e82fa9d-matlab.js"),[])},{id:"mdc",name:"MDC",import:()=>u(()=>import("../o/5043b7c9-mdc.js"),__vite__mapDeps([84,61,11,56,1,2,3]))},{id:"mdx",name:"MDX",import:()=>u(()=>import("../p/96bac85b-mdx.js"),[])},{id:"mermaid",name:"Mermaid",import:()=>u(()=>import("../v/fc0061c0-mermaid.js"),[])},{id:"mojo",name:"Mojo",import:()=>u(()=>import("../x/768f4106-mojo.js"),[])},{id:"move",name:"Move",import:()=>u(()=>import("../z/78d6c375-move.js"),[])},{id:"narrat",name:"Narrat Language",aliases:["nar"],import:()=>u(()=>import("../o/dd425ded-narrat.js"),[])},{id:"nextflow",name:"Nextflow",aliases:["nf"],import:()=>u(()=>import("../n/c8d4c44f-nextflow.js"),[])},{id:"nginx",name:"Nginx",import:()=>u(()=>import("../o/bfb167d2-nginx.js"),__vite__mapDeps([85,41,13]))},{id:"nim",name:"Nim",import:()=>u(()=>import("../k/6dbe280e-nim.js"),__vite__mapDeps([86,13,1,2,3,7,8,18,61]))},{id:"nix",name:"Nix",import:()=>u(()=>import("../v/1c3e4369-nix.js"),[])},{id:"nushell",name:"nushell",aliases:["nu"],import:()=>u(()=>import("../j/06426070-nushell.js"),[])},{id:"objective-c",name:"Objective-C",aliases:["objc"],import:()=>u(()=>import("../z/cba7d2bd-objective-c.js"),[])},{id:"objective-cpp",name:"Objective-C++",import:()=>u(()=>import("../j/66c61008-objective-cpp.js"),[])},{id:"ocaml",name:"OCaml",import:()=>u(()=>import("../k/71eb2210-ocaml.js"),[])},{id:"pascal",name:"Pascal",import:()=>u(()=>import("../o/0bbdec4e-pascal.js"),[])},{id:"perl",name:"Perl",import:()=>u(()=>import("../v/e891edec-perl.js"),__vite__mapDeps([38,1,2,3,7,8,19]))},{id:"php",name:"PHP",import:()=>u(()=>import("../o/ed0287d9-php.js"),__vite__mapDeps([87,1,2,3,7,8,19,9]))},{id:"plsql",name:"PL/SQL",import:()=>u(()=>import("../w/0e2f8342-plsql.js"),[])},{id:"po",name:"Gettext PO",aliases:["pot","potx"],import:()=>u(()=>import("../j/14237320-po.js"),[])},{id:"postcss",name:"PostCSS",import:()=>u(()=>import("../j/e92cace0-postcss.js"),[])},{id:"powerquery",name:"PowerQuery",import:()=>u(()=>import("../j/0c50ab9c-powerquery.js"),[])},{id:"powershell",name:"PowerShell",aliases:["ps","ps1"],import:()=>u(()=>import("../t/691723bd-powershell.js"),[])},{id:"prisma",name:"Prisma",import:()=>u(()=>import("../s/6023351e-prisma.js"),[])},{id:"prolog",name:"Prolog",import:()=>u(()=>import("../z/6dde0d3e-prolog.js"),[])},{id:"proto",name:"Protocol Buffer 3",aliases:["protobuf"],import:()=>u(()=>import("../k/4924494e-proto.js"),[])},{id:"pug",name:"Pug",aliases:["jade"],import:()=>u(()=>import("../s/f5b17027-pug.js"),__vite__mapDeps([88,2,3,43,5,49,15,1]))},{id:"puppet",name:"Puppet",import:()=>u(()=>import("../q/dfed65b8-puppet.js"),[])},{id:"purescript",name:"PureScript",import:()=>u(()=>import("../l/290c81c3-purescript.js"),[])},{id:"python",name:"Python",aliases:["py"],import:()=>u(()=>import("../u/f4f6b046-python.js"),[])},{id:"qml",name:"QML",import:()=>u(()=>import("../q/f1c6e785-qml.js"),__vite__mapDeps([89,2]))},{id:"qmldir",name:"QML Directory",import:()=>u(()=>import("../p/0c3bddc1-qmldir.js"),[])},{id:"qss",name:"Qt Style Sheets",import:()=>u(()=>import("../j/40d7a06a-qss.js"),[])},{id:"r",name:"R",import:()=>u(()=>import("../u/21557613-r.js"),[])},{id:"racket",name:"Racket",import:()=>u(()=>import("../u/6cc3f1f7-racket.js"),[])},{id:"raku",name:"Raku",aliases:["perl6"],import:()=>u(()=>import("../v/8eeb1c16-raku.js"),[])},{id:"razor",name:"ASP.NET Razor",import:()=>u(()=>import("../y/4fa4e0aa-razor.js"),__vite__mapDeps([90,1,2,3,20]))},{id:"reg",name:"Windows Registry Script",import:()=>u(()=>import("../y/e09715c0-reg.js"),[])},{id:"regexp",name:"RegExp",aliases:["regex"],import:()=>u(()=>import("./cda85021-regexp.js"),[])},{id:"rel",name:"Rel",import:()=>u(()=>import("../j/885a29d3-rel.js"),[])},{id:"riscv",name:"RISC-V",import:()=>u(()=>import("./41e08637-riscv.js"),[])},{id:"rst",name:"reStructuredText",import:()=>u(()=>import("../l/b0d155a6-rst.js"),__vite__mapDeps([91,56,1,2,3,16,17,18,13,19,31,40,11,92,39,7,8,41]))},{id:"ruby",name:"Ruby",aliases:["rb"],import:()=>u(()=>import("../q/5bfd0fe1-ruby.js"),__vite__mapDeps([39,1,2,3,7,8,19,13,40,41]))},{id:"rust",name:"Rust",aliases:["rs"],import:()=>u(()=>import("../i/7f4dd7fd-rust.js"),[])},{id:"sas",name:"SAS",import:()=>u(()=>import("../n/cbe5f047-sas.js"),__vite__mapDeps([93,19]))},{id:"sass",name:"Sass",import:()=>u(()=>import("../i/6b477146-sass.js"),[])},{id:"scala",name:"Scala",import:()=>u(()=>import("../w/64842f97-scala.js"),[])},{id:"scheme",name:"Scheme",import:()=>u(()=>import("../p/6999c261-scheme.js"),[])},{id:"scss",name:"SCSS",import:()=>u(()=>import("../k/b333e6be-scss.js"),__vite__mapDeps([5,3]))},{id:"shaderlab",name:"ShaderLab",aliases:["shader"],import:()=>u(()=>import("../u/b8c91a1c-shaderlab.js"),__vite__mapDeps([94,95]))},{id:"shellscript",name:"Shell",aliases:["bash","sh","shell","zsh"],import:()=>u(()=>import("../x/06964942-shellscript.js"),[])},{id:"shellsession",name:"Shell Session",aliases:["console"],import:()=>u(()=>import("../o/b35900de-shellsession.js"),__vite__mapDeps([96,40]))},{id:"smalltalk",name:"Smalltalk",import:()=>u(()=>import("../l/edf8cf09-smalltalk.js"),[])},{id:"solidity",name:"Solidity",import:()=>u(()=>import("../h/a1afe6af-solidity.js"),[])},{id:"soy",name:"Closure Templates",aliases:["closure-templates"],import:()=>u(()=>import("../n/3e7444ec-soy.js"),__vite__mapDeps([97,1,2,3]))},{id:"sparql",name:"SPARQL",import:()=>u(()=>import("../z/8a1efabc-sparql.js"),__vite__mapDeps([98,99]))},{id:"splunk",name:"Splunk Query Language",aliases:["spl"],import:()=>u(()=>import("../p/df95ddf1-splunk.js"),[])},{id:"sql",name:"SQL",import:()=>u(()=>import("../w/28c37968-sql.js"),[])},{id:"ssh-config",name:"SSH Config",import:()=>u(()=>import("../p/1863aab5-ssh-config.js"),[])},{id:"stata",name:"Stata",import:()=>u(()=>import("../h/d322187b-stata.js"),__vite__mapDeps([100,19]))},{id:"stylus",name:"Stylus",aliases:["styl"],import:()=>u(()=>import("../s/861affef-stylus.js"),[])},{id:"svelte",name:"Svelte",import:()=>u(()=>import("../z/6083a91f-svelte.js"),__vite__mapDeps([101,2,47,15,49,43,3,5,34,50,88,1,61]))},{id:"swift",name:"Swift",import:()=>u(()=>import("../x/25246c4d-swift.js"),[])},{id:"system-verilog",name:"SystemVerilog",import:()=>u(()=>import("../i/f2c5ad82-system-verilog.js"),[])},{id:"systemd",name:"Systemd Units",import:()=>u(()=>import("../x/c4440e61-systemd.js"),[])},{id:"tasl",name:"Tasl",import:()=>u(()=>import("../w/cd9cf455-tasl.js"),[])},{id:"tcl",name:"Tcl",import:()=>u(()=>import("../j/224013e0-tcl.js"),[])},{id:"templ",name:"Templ",import:()=>u(()=>import("../m/f199b44d-templ.js"),__vite__mapDeps([102,26,2,3]))},{id:"terraform",name:"Terraform",aliases:["tf","tfvars"],import:()=>u(()=>import("../y/0c9f2029-terraform.js"),[])},{id:"tex",name:"TeX",import:()=>u(()=>import("../x/056d0d5e-tex.js"),__vite__mapDeps([80,32]))},{id:"toml",name:"TOML",import:()=>u(()=>import("../k/b698751f-toml.js"),[])},{id:"ts-tags",name:"TypeScript with Tags",aliases:["lit"],import:()=>u(()=>import("../n/ce01eb1e-ts-tags.js"),__vite__mapDeps([103,47,3,2,18,13,1,19,7,8]))},{id:"tsv",name:"TSV",import:()=>u(()=>import("../p/3f77c886-tsv.js"),[])},{id:"tsx",name:"TSX",import:()=>u(()=>import("./9311ae5c-tsx.js"),[])},{id:"turtle",name:"Turtle",import:()=>u(()=>import("../s/e0a97e38-turtle.js"),[])},{id:"twig",name:"Twig",import:()=>u(()=>import("../j/980de968-twig.js"),__vite__mapDeps([104,3,2,5,87,1,7,8,19,9,31,39,13,40,41]))},{id:"typescript",name:"TypeScript",aliases:["ts"],import:()=>u(()=>import("./1f201ade-typescript.js"),[])},{id:"typespec",name:"TypeSpec",aliases:["tsp"],import:()=>u(()=>import("../x/901e5d08-typespec.js"),[])},{id:"typst",name:"Typst",aliases:["typ"],import:()=>u(()=>import("../g/88d9c685-typst.js"),[])},{id:"v",name:"V",import:()=>u(()=>import("../y/60484198-v.js"),[])},{id:"vala",name:"Vala",import:()=>u(()=>import("../g/d17aa31e-vala.js"),[])},{id:"vb",name:"Visual Basic",aliases:["cmd"],import:()=>u(()=>import("../w/53277202-vb.js"),[])},{id:"verilog",name:"Verilog",import:()=>u(()=>import("../g/db5ca2ba-verilog.js"),[])},{id:"vhdl",name:"VHDL",import:()=>u(()=>import("../q/7c3b4e95-vhdl.js"),[])},{id:"viml",name:"Vim Script",aliases:["vim","vimscript"],import:()=>u(()=>import("../g/0f55c992-viml.js"),[])},{id:"vue",name:"Vue",import:()=>u(()=>import("../w/cd325325-vue.js"),__vite__mapDeps([105,1,2,3,61,88,43,5,49,15,34,47,29,51,9,106,107,11,46,69,56]))},{id:"vue-html",name:"Vue HTML",import:()=>u(()=>import("../y/b77a781c-vue-html.js"),__vite__mapDeps([108,105,1,2,3,61,88,43,5,49,15,34,47,29,51,9,106,107,11,46,69,56]))},{id:"vyper",name:"Vyper",aliases:["vy"],import:()=>u(()=>import("../m/1077ac1a-vyper.js"),[])},{id:"wasm",name:"WebAssembly",import:()=>u(()=>import("../g/2a2f1a13-wasm.js"),[])},{id:"wenyan",name:"Wenyan",aliases:["文言"],import:()=>u(()=>import("../y/6fe23e47-wenyan.js"),[])},{id:"wgsl",name:"WGSL",import:()=>u(()=>import("../l/89450e04-wgsl.js"),[])},{id:"wikitext",name:"Wikitext",aliases:["mediawiki","wiki"],import:()=>u(()=>import("../p/9eb1d7a6-wikitext.js"),__vite__mapDeps([109,1,2,3,110,8,41,13,35,38,7,19,32,39,40,87,9,111,112,11,113,14,15,16,17,18,21,22,26,27,88,43,5,49,106,34,36,45,114,115,31,30,42,44,47,20,60,61,116,72,25,23,79,80,81,28,117]))},{id:"wolfram",name:"Wolfram",aliases:["wl"],import:()=>u(()=>import("../g/497128fa-wolfram.js"),[])},{id:"xml",name:"XML",import:()=>u(()=>import("../x/4f94727e-xml.js"),__vite__mapDeps([7,8]))},{id:"xsl",name:"XSL",import:()=>u(()=>import("../j/4a587304-xsl.js"),__vite__mapDeps([112,7,8]))},{id:"yaml",name:"YAML",aliases:["yml"],import:()=>u(()=>import("../v/257b2462-yaml.js"),[])},{id:"zenscript",name:"ZenScript",import:()=>u(()=>import("../u/3edf7260-zenscript.js"),[])},{id:"zig",name:"Zig",import:()=>u(()=>import("../q/1347bcdc-zig.js"),[])}],yn=Object.fromEntries(At.map(n=>[n.id,n.import])),En=Object.fromEntries(At.flatMap(n=>n.aliases?.map(e=>[e,n.import])||[])),vn={...yn,...En},Rn=async n=>u(()=>import("../g/ee30f07b-wasm.js"),[]).then(e=>e.default(n)),bn=[{id:"andromeeda",displayName:"Andromeeda",type:"dark",import:()=>u(()=>import("../g/5351ccde-andromeeda.js"),[])},{id:"aurora-x",displayName:"Aurora X",type:"dark",import:()=>u(()=>import("../v/36548fcc-aurora-x.js"),[])},{id:"ayu-dark",displayName:"Ayu Dark",type:"dark",import:()=>u(()=>import("../y/10b564c6-ayu-dark.js"),[])},{id:"catppuccin-frappe",displayName:"Catppuccin Frappé",type:"dark",import:()=>u(()=>import("../p/f087d34e-catppuccin-frappe.js"),[])},{id:"catppuccin-latte",displayName:"Catppuccin Latte",type:"light",import:()=>u(()=>import("../p/06c73389-catppuccin-latte.js"),[])},{id:"catppuccin-macchiato",displayName:"Catppuccin Macchiato",type:"dark",import:()=>u(()=>import("../o/f6536b1c-catppuccin-macchiato.js"),[])},{id:"catppuccin-mocha",displayName:"Catppuccin Mocha",type:"dark",import:()=>u(()=>import("./31ac5e68-catppuccin-mocha.js"),[])},{id:"dark-plus",displayName:"Dark Plus",type:"dark",import:()=>u(()=>import("../v/0cd6149e-dark-plus.js"),[])},{id:"dracula",displayName:"Dracula Theme",type:"dark",import:()=>u(()=>import("../s/c98c877c-dracula.js"),[])},{id:"dracula-soft",displayName:"Dracula Theme Soft",type:"dark",import:()=>u(()=>import("../h/25574344-dracula-soft.js"),[])},{id:"everforest-dark",displayName:"Everforest Dark",type:"dark",import:()=>u(()=>import("../w/b00c437d-everforest-dark.js"),[])},{id:"everforest-light",displayName:"Everforest Light",type:"light",import:()=>u(()=>import("../u/0db92560-everforest-light.js"),[])},{id:"github-dark",displayName:"GitHub Dark",type:"dark",import:()=>u(()=>import("../m/029cfbdd-github-dark.js"),[])},{id:"github-dark-default",displayName:"GitHub Dark Default",type:"dark",import:()=>u(()=>import("../s/db03f843-github-dark-default.js"),[])},{id:"github-dark-dimmed",displayName:"GitHub Dark Dimmed",type:"dark",import:()=>u(()=>import("../v/0dc4ee25-github-dark-dimmed.js"),[])},{id:"github-dark-high-contrast",displayName:"GitHub Dark High Contrast",type:"dark",import:()=>u(()=>import("../q/8da2b777-github-dark-high-contrast.js"),[])},{id:"github-light",displayName:"GitHub Light",type:"light",import:()=>u(()=>import("../k/baf2b9b1-github-light.js"),[])},{id:"github-light-default",displayName:"GitHub Light Default",type:"light",import:()=>u(()=>import("../q/49ef4f81-github-light-default.js"),[])},{id:"github-light-high-contrast",displayName:"GitHub Light High Contrast",type:"light",import:()=>u(()=>import("../o/f76c38a9-github-light-high-contrast.js"),[])},{id:"houston",displayName:"Houston",type:"dark",import:()=>u(()=>import("../k/793e468e-houston.js"),[])},{id:"laserwave",displayName:"LaserWave",type:"dark",import:()=>u(()=>import("../q/e942b9af-laserwave.js"),[])},{id:"light-plus",displayName:"Light Plus",type:"light",import:()=>u(()=>import("../t/7e61f786-light-plus.js"),[])},{id:"material-theme",displayName:"Material Theme",type:"dark",import:()=>u(()=>import("../j/3cb1e567-material-theme.js"),[])},{id:"material-theme-darker",displayName:"Material Theme Darker",type:"dark",import:()=>u(()=>import("../h/bd7d4957-material-theme-darker.js"),[])},{id:"material-theme-lighter",displayName:"Material Theme Lighter",type:"light",import:()=>u(()=>import("../z/c0155539-material-theme-lighter.js"),[])},{id:"material-theme-ocean",displayName:"Material Theme Ocean",type:"dark",import:()=>u(()=>import("../m/f53cc198-material-theme-ocean.js"),[])},{id:"material-theme-palenight",displayName:"Material Theme Palenight",type:"dark",import:()=>u(()=>import("../k/cf7c3709-material-theme-palenight.js"),[])},{id:"min-dark",displayName:"Min Dark",type:"dark",import:()=>u(()=>import("../n/41969a9d-min-dark.js"),[])},{id:"min-light",displayName:"Min Light",type:"light",import:()=>u(()=>import("../l/43970207-min-light.js"),[])},{id:"monokai",displayName:"Monokai",type:"dark",import:()=>u(()=>import("../q/22fd51aa-monokai.js"),[])},{id:"night-owl",displayName:"Night Owl",type:"dark",import:()=>u(()=>import("../h/056832a2-night-owl.js"),[])},{id:"nord",displayName:"Nord",type:"dark",import:()=>u(()=>import("../v/310a60e6-nord.js"),[])},{id:"one-dark-pro",displayName:"One Dark Pro",type:"dark",import:()=>u(()=>import("../n/610275fc-one-dark-pro.js"),[])},{id:"one-light",displayName:"One Light",type:"light",import:()=>u(()=>import("../j/8c4dcecd-one-light.js"),[])},{id:"plastic",displayName:"Plastic",type:"dark",import:()=>u(()=>import("../s/30cffa80-plastic.js"),[])},{id:"poimandres",displayName:"Poimandres",type:"dark",import:()=>u(()=>import("../u/e1762d09-poimandres.js"),[])},{id:"red",displayName:"Red",type:"dark",import:()=>u(()=>import("../v/1c80bbdc-red.js"),[])},{id:"rose-pine",displayName:"Rosé Pine",type:"dark",import:()=>u(()=>import("../u/4691c5dc-rose-pine.js"),[])},{id:"rose-pine-dawn",displayName:"Rosé Pine Dawn",type:"light",import:()=>u(()=>import("../l/9da02494-rose-pine-dawn.js"),[])},{id:"rose-pine-moon",displayName:"Rosé Pine Moon",type:"dark",import:()=>u(()=>import("../g/e2822776-rose-pine-moon.js"),[])},{id:"slack-dark",displayName:"Slack Dark",type:"dark",import:()=>u(()=>import("../p/f07c839d-slack-dark.js"),[])},{id:"slack-ochin",displayName:"Slack Ochin",type:"light",import:()=>u(()=>import("../g/24956faf-slack-ochin.js"),[])},{id:"snazzy-light",displayName:"Snazzy Light",type:"light",import:()=>u(()=>import("../o/5350aa70-snazzy-light.js"),[])},{id:"solarized-dark",displayName:"Solarized Dark",type:"dark",import:()=>u(()=>import("../w/1030775d-solarized-dark.js"),[])},{id:"solarized-light",displayName:"Solarized Light",type:"light",import:()=>u(()=>import("../u/35a9779e-solarized-light.js"),[])},{id:"synthwave-84",displayName:"Synthwave '84",type:"dark",import:()=>u(()=>import("../u/0dc33224-synthwave-84.js"),[])},{id:"tokyo-night",displayName:"Tokyo Night",type:"dark",import:()=>u(()=>import("../p/471804e7-tokyo-night.js"),[])},{id:"vesper",displayName:"Vesper",type:"dark",import:()=>u(()=>import("../h/43e4c038-vesper.js"),[])},{id:"vitesse-black",displayName:"Vitesse Black",type:"dark",import:()=>u(()=>import("../l/7affc29c-vitesse-black.js"),[])},{id:"vitesse-dark",displayName:"Vitesse Dark",type:"dark",import:()=>u(()=>import("../u/e870db76-vitesse-dark.js"),[])},{id:"vitesse-light",displayName:"Vitesse Light",type:"light",import:()=>u(()=>import("../s/14b03783-vitesse-light.js"),[])}],An=Object.fromEntries(bn.map(n=>[n.id,n.import]));var M;(function(n){n[n.NotSet=-1]="NotSet",n[n.None=0]="None",n[n.Italic=1]="Italic",n[n.Bold=2]="Bold",n[n.Underline=4]="Underline"})(M||(M={}));function Ln(n){return Ue(n)}function Ue(n){return Array.isArray(n)?Tn(n):typeof n=="object"?Pn(n):n}function Tn(n){let e=[];for(let t=0,r=n.length;t{for(let r in t)n[r]=t[r]}),n}function Tt(n){const e=~n.lastIndexOf("/")||~n.lastIndexOf("\\");return e===0?n:~e===n.length-1?Tt(n.substring(0,n.length-1)):n.substr(~e+1)}var Le=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,re=class{static hasCaptures(n){return n===null?!1:(Le.lastIndex=0,Le.test(n))}static replaceCaptures(n,e,t){return n.replace(Le,(r,i,o,s)=>{let l=t[parseInt(i||o,10)];if(l){let a=e.substring(l.start,l.end);for(;a[0]===".";)a=a.substring(1);switch(s){case"downcase":return a.toLowerCase();case"upcase":return a.toUpperCase();default:return a}}else return r})}};function Pt(n,e){return ne?1:0}function St(n,e){if(n===null&&e===null)return 0;if(!n)return-1;if(!e)return 1;let t=n.length,r=e.length;if(t===r){for(let i=0;ithis._root.match(r))}static createFromRawTheme(n,e){return this.createFromParsedTheme(wn(n),e)}static createFromParsedTheme(n,e){return Cn(n,e)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(n){if(n===null)return this._defaults;const e=n.scopeName,r=this._cachedMatchRoot.get(e).find(i=>Sn(n.parent,i.parentScopes));return r?new Ot(r.fontStyle,r.foreground,r.background):null}},Te=class ae{constructor(e,t){this.parent=e,this.scopeName=t}static push(e,t){for(const r of t)e=new ae(e,r);return e}static from(...e){let t=null;for(let r=0;r"){if(t===e.length-1)return!1;r=e[++t],i=!0}for(;n&&!In(n.scopeName,r);){if(i)return!1;n=n.parent}if(!n)return!1;n=n.parent}return!0}function In(n,e){return e===n||n.startsWith(e)&&n[e.length]==="."}var Ot=class{constructor(n,e,t){this.fontStyle=n,this.foregroundId=e,this.backgroundId=t}};function wn(n){if(!n)return[];if(!n.settings||!Array.isArray(n.settings))return[];let e=n.settings,t=[],r=0;for(let i=0,o=e.length;i1&&(g=h.slice(0,h.length-1),g.reverse()),t[r++]=new On(E,g,i,a,c,d)}}return t}var On=class{constructor(n,e,t,r,i,o){this.scope=n,this.parentScopes=e,this.index=t,this.fontStyle=r,this.foreground=i,this.background=o}};function Cn(n,e){n.sort((a,c)=>{let d=Pt(a.scope,c.scope);return d!==0||(d=St(a.parentScopes,c.parentScopes),d!==0)?d:a.index-c.index});let t=0,r="#000000",i="#ffffff";for(;n.length>=1&&n[0].scope==="";){let a=n.shift();a.fontStyle!==-1&&(t=a.fontStyle),a.foreground!==null&&(r=a.foreground),a.background!==null&&(i=a.background)}let o=new kn(e),s=new Ot(t,o.getId(r),o.getId(i)),l=new Nn(new ke(0,null,-1,0,0),[]);for(let a=0,c=n.length;ae?console.log("how did this happen?"):this.scopeDepth=e,t!==-1&&(this.fontStyle=t),r!==0&&(this.foreground=r),i!==0&&(this.background=i)}},Nn=class De{constructor(e,t=[],r={}){this._mainRule=e,this._children=r,this._rulesWithParentScopes=t}static _cmpBySpecificity(e,t){if(e.scopeDepth!==t.scopeDepth)return t.scopeDepth-e.scopeDepth;let r=0,i=0;for(;e.parentScopes[r]===">"&&r++,t.parentScopes[i]===">"&&i++,!(r>=e.parentScopes.length||i>=t.parentScopes.length);){const o=t.parentScopes[i].length-e.parentScopes[r].length;if(o!==0)return o;r++,i++}return t.parentScopes.length-e.parentScopes.length}match(e){if(e!==""){let r=e.indexOf("."),i,o;if(r===-1?(i=e,o=""):(i=e.substring(0,r),o=e.substring(r+1)),this._children.hasOwnProperty(i))return this._children[i].match(o)}const t=this._rulesWithParentScopes.concat(this._mainRule);return t.sort(De._cmpBySpecificity),t}insert(e,t,r,i,o,s){if(t===""){this._doInsertHere(e,r,i,o,s);return}let l=t.indexOf("."),a,c;l===-1?(a=t,c=""):(a=t.substring(0,l),c=t.substring(l+1));let d;this._children.hasOwnProperty(a)?d=this._children[a]:(d=new De(this._mainRule.clone(),ke.cloneArr(this._rulesWithParentScopes)),this._children[a]=d),d.insert(e+1,c,r,i,o,s)}_doInsertHere(e,t,r,i,o){if(t===null){this._mainRule.acceptOverwrite(e,r,i,o);return}for(let s=0,l=this._rulesWithParentScopes.length;s>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(e,t,r,i,o,s,l){let a=k.getLanguageId(e),c=k.getTokenType(e),d=k.containsBalancedBrackets(e)?1:0,p=k.getFontStyle(e),_=k.getForeground(e),m=k.getBackground(e);return t!==0&&(a=t),r!==8&&(c=r),i!==null&&(d=i?1:0),o!==-1&&(p=o),s!==0&&(_=s),l!==0&&(m=l),(a<<0|c<<8|d<<10|p<<11|_<<15|m<<24)>>>0}};function ce(n,e){const t=[],r=xn(n);let i=r.next();for(;i!==null;){let a=0;if(i.length===2&&i.charAt(1)===":"){switch(i.charAt(0)){case"R":a=1;break;case"L":a=-1;break;default:console.log(`Unknown priority ${i} in scope selector`)}i=r.next()}let c=s();if(t.push({matcher:c,priority:a}),i!==",")break;i=r.next()}return t;function o(){if(i==="-"){i=r.next();const a=o();return c=>!!a&&!a(c)}if(i==="("){i=r.next();const a=l();return i===")"&&(i=r.next()),a}if(it(i)){const a=[];do a.push(i),i=r.next();while(it(i));return c=>e(a,c)}return null}function s(){const a=[];let c=o();for(;c;)a.push(c),c=o();return d=>a.every(p=>p(d))}function l(){const a=[];let c=s();for(;c&&(a.push(c),i==="|"||i===",");){do i=r.next();while(i==="|"||i===",");c=s()}return d=>a.some(p=>p(d))}}function it(n){return!!n&&!!n.match(/[\w\.:]+/)}function xn(n){let e=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,t=e.exec(n);return{next:()=>{if(!t)return null;const r=t[0];return t=e.exec(n),r}}}function kt(n){typeof n.dispose=="function"&&n.dispose()}var Q=class{constructor(n){this.scopeName=n}toKey(){return this.scopeName}},Vn=class{constructor(n,e){this.scopeName=n,this.ruleName=e}toKey(){return`${this.scopeName}#${this.ruleName}`}},Mn=class{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(n){const e=n.toKey();this._seenReferenceKeys.has(e)||(this._seenReferenceKeys.add(e),this._references.push(n))}},Bn=class{constructor(n,e){this.repo=n,this.initialScopeName=e,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Q(this.initialScopeName)]}processQueue(){const n=this.Q;this.Q=[];const e=new Mn;for(const t of n)Gn(t,this.initialScopeName,this.repo,e);for(const t of e.references)if(t instanceof Q){if(this.seenFullScopeRequests.has(t.scopeName))continue;this.seenFullScopeRequests.add(t.scopeName),this.Q.push(t)}else{if(this.seenFullScopeRequests.has(t.scopeName)||this.seenPartialScopeRequests.has(t.toKey()))continue;this.seenPartialScopeRequests.add(t.toKey()),this.Q.push(t)}}};function Gn(n,e,t,r){const i=t.lookup(n.scopeName);if(!i){if(n.scopeName===e)throw new Error(`No grammar provided for <${e}>`);return}const o=t.lookup(e);n instanceof Q?le({baseGrammar:o,selfGrammar:i},r):Ne(n.ruleName,{baseGrammar:o,selfGrammar:i,repository:i.repository},r);const s=t.injections(n.scopeName);if(s)for(const l of s)r.add(new Q(l))}function Ne(n,e,t){if(e.repository&&e.repository[n]){const r=e.repository[n];de([r],e,t)}}function le(n,e){n.selfGrammar.patterns&&Array.isArray(n.selfGrammar.patterns)&&de(n.selfGrammar.patterns,{...n,repository:n.selfGrammar.repository},e),n.selfGrammar.injections&&de(Object.values(n.selfGrammar.injections),{...n,repository:n.selfGrammar.repository},e)}function de(n,e,t){for(const r of n){if(t.visitedRule.has(r))continue;t.visitedRule.add(r);const i=r.repository?Lt({},e.repository,r.repository):e.repository;Array.isArray(r.patterns)&&de(r.patterns,{...e,repository:i},t);const o=r.include;if(!o)continue;const s=Dt(o);switch(s.kind){case 0:le({...e,selfGrammar:e.baseGrammar},t);break;case 1:le(e,t);break;case 2:Ne(s.ruleName,{...e,repository:i},t);break;case 3:case 4:const l=s.scopeName===e.selfGrammar.scopeName?e.selfGrammar:s.scopeName===e.baseGrammar.scopeName?e.baseGrammar:void 0;if(l){const a={baseGrammar:e.baseGrammar,selfGrammar:l,repository:i};s.kind===4?Ne(s.ruleName,a,t):le(a,t)}else s.kind===4?t.add(new Vn(s.scopeName,s.ruleName)):t.add(new Q(s.scopeName));break}}}var jn=class{constructor(){this.kind=0}},Fn=class{constructor(){this.kind=1}},$n=class{constructor(n){this.ruleName=n,this.kind=2}},Un=class{constructor(n){this.scopeName=n,this.kind=3}},Hn=class{constructor(n,e){this.scopeName=n,this.ruleName=e,this.kind=4}};function Dt(n){if(n==="$base")return new jn;if(n==="$self")return new Fn;const e=n.indexOf("#");if(e===-1)return new Un(n);if(e===0)return new $n(n.substring(1));{const t=n.substring(0,e),r=n.substring(e+1);return new Hn(t,r)}}var Wn=/\\(\d+)/,ot=/\\(\d+)/g,zn=-1,Nt=-2;var te=class{constructor(n,e,t,r){this.$location=n,this.id=e,this._name=t||null,this._nameIsCapturing=re.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=re.hasCaptures(this._contentName)}get debugName(){const n=this.$location?`${Tt(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${n}`}getName(n,e){return!this._nameIsCapturing||this._name===null||n===null||e===null?this._name:re.replaceCaptures(this._name,n,e)}getContentName(n,e){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:re.replaceCaptures(this._contentName,n,e)}},qn=class extends te{constructor(n,e,t,r,i){super(n,e,t,r),this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(n,e){throw new Error("Not supported!")}compile(n,e){throw new Error("Not supported!")}compileAG(n,e,t,r){throw new Error("Not supported!")}},Kn=class extends te{constructor(n,e,t,r,i){super(n,e,t,null),this._match=new Z(r,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(n,e){e.push(this._match)}compile(n,e){return this._getCachedCompiledPatterns(n).compile(n)}compileAG(n,e,t,r){return this._getCachedCompiledPatterns(n).compileAG(n,t,r)}_getCachedCompiledPatterns(n){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new ee,this.collectPatterns(n,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},st=class extends te{constructor(n,e,t,r,i){super(n,e,t,r),this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(n,e){for(const t of this.patterns)n.getRule(t).collectPatterns(n,e)}compile(n,e){return this._getCachedCompiledPatterns(n).compile(n)}compileAG(n,e,t,r){return this._getCachedCompiledPatterns(n).compileAG(n,t,r)}_getCachedCompiledPatterns(n){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new ee,this.collectPatterns(n,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},xe=class extends te{constructor(n,e,t,r,i,o,s,l,a,c){super(n,e,t,r),this._begin=new Z(i,this.id),this.beginCaptures=o,this._end=new Z(s||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=l,this.applyEndPatternLast=a||!1,this.patterns=c.patterns,this.hasMissingPatterns=c.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(n,e){return this._end.resolveBackReferences(n,e)}collectPatterns(n,e){e.push(this._begin)}compile(n,e){return this._getCachedCompiledPatterns(n,e).compile(n)}compileAG(n,e,t,r){return this._getCachedCompiledPatterns(n,e).compileAG(n,t,r)}_getCachedCompiledPatterns(n,e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new ee;for(const t of this.patterns)n.getRule(t).collectPatterns(n,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,e):this._cachedCompiledPatterns.setSource(0,e)),this._cachedCompiledPatterns}},pe=class extends te{constructor(n,e,t,r,i,o,s,l,a){super(n,e,t,r),this._begin=new Z(i,this.id),this.beginCaptures=o,this.whileCaptures=l,this._while=new Z(s,Nt),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=a.patterns,this.hasMissingPatterns=a.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(n,e){return this._while.resolveBackReferences(n,e)}collectPatterns(n,e){e.push(this._begin)}compile(n,e){return this._getCachedCompiledPatterns(n).compile(n)}compileAG(n,e,t,r){return this._getCachedCompiledPatterns(n).compileAG(n,t,r)}_getCachedCompiledPatterns(n){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new ee;for(const e of this.patterns)n.getRule(e).collectPatterns(n,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(n,e){return this._getCachedCompiledWhilePatterns(n,e).compile(n)}compileWhileAG(n,e,t,r){return this._getCachedCompiledWhilePatterns(n,e).compileAG(n,t,r)}_getCachedCompiledWhilePatterns(n,e){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new ee,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,e||"￿"),this._cachedCompiledWhilePatterns}},xt=class O{static createCaptureRule(e,t,r,i,o){return e.registerRule(s=>new qn(t,s,r,i,o))}static getCompiledRuleId(e,t,r){return e.id||t.registerRule(i=>{if(e.id=i,e.match)return new Kn(e.$vscodeTextmateLocation,e.id,e.name,e.match,O._compileCaptures(e.captures,t,r));if(typeof e.begin>"u"){e.repository&&(r=Lt({},r,e.repository));let o=e.patterns;return typeof o>"u"&&e.include&&(o=[{include:e.include}]),new st(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,O._compilePatterns(o,t,r))}return e.while?new pe(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,O._compileCaptures(e.beginCaptures||e.captures,t,r),e.while,O._compileCaptures(e.whileCaptures||e.captures,t,r),O._compilePatterns(e.patterns,t,r)):new xe(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,O._compileCaptures(e.beginCaptures||e.captures,t,r),e.end,O._compileCaptures(e.endCaptures||e.captures,t,r),e.applyEndPatternLast,O._compilePatterns(e.patterns,t,r))}),e.id}static _compileCaptures(e,t,r){let i=[];if(e){let o=0;for(const s in e){if(s==="$vscodeTextmateLocation")continue;const l=parseInt(s,10);l>o&&(o=l)}for(let s=0;s<=o;s++)i[s]=null;for(const s in e){if(s==="$vscodeTextmateLocation")continue;const l=parseInt(s,10);let a=0;e[s].patterns&&(a=O.getCompiledRuleId(e[s],t,r)),i[l]=O.createCaptureRule(t,e[s].$vscodeTextmateLocation,e[s].name,e[s].contentName,a)}}return i}static _compilePatterns(e,t,r){let i=[];if(e)for(let o=0,s=e.length;oe.substring(i.start,i.end));return ot.lastIndex=0,this.source.replace(ot,(i,o)=>It(r[parseInt(o,10)]||""))}_buildAnchorCache(){let e=[],t=[],r=[],i=[],o,s,l,a;for(o=0,s=this.source.length;ot.source);this._cached=new at(n,e,this._items.map(t=>t.ruleId))}return this._cached}compileAG(n,e,t){return this._hasAnchors?e?t?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(n,e,t)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(n,e,t)),this._anchorCache.A1_G0):t?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(n,e,t)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(n,e,t)),this._anchorCache.A0_G0):this.compile(n)}_resolveAnchors(n,e,t){let r=this._items.map(i=>i.resolveAnchors(e,t));return new at(n,r,this._items.map(i=>i.ruleId))}},at=class{constructor(n,e,t){this.regExps=e,this.rules=t,this.scanner=n.createOnigScanner(e)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const n=[];for(let e=0,t=this.rules.length;e{const i=this._scopeToLanguage(r),o=this._toStandardTokenType(r);return new Ve(i,o)}),this._defaultAttributes=new Ve(e,8),this._embeddedLanguagesMatcher=new Xn(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return e===null?Me._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(Me.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}};He._NULL_SCOPE_METADATA=new Ve(0,0);He.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;var Jn=He,Xn=class{constructor(n){if(n.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(n);const e=n.map(([t,r])=>It(t));e.sort(),e.reverse(),this.scopesRegExp=new RegExp(`^((${e.join(")|(")}))($|\\.)`,"")}}match(n){if(!this.scopesRegExp)return;const e=n.match(this.scopesRegExp);if(e)return this.values.get(e[1])}},lt=class{constructor(n,e){this.stack=n,this.stoppedEarly=e}};function Mt(n,e,t,r,i,o,s,l){const a=e.content.length;let c=!1,d=-1;if(s){const m=Yn(n,e,t,r,i,o);i=m.stack,r=m.linePos,t=m.isFirstLine,d=m.anchorPosition}const p=Date.now();for(;!c;){if(l!==0&&Date.now()-p>l)return new lt(i,!0);_()}return new lt(i,!1);function _(){const m=Qn(n,e,t,r,i,d);if(!m){o.produce(i,a),c=!0;return}const h=m.captureIndices,E=m.matchedRuleId,g=h&&h.length>0?h[0].end>r:!1;if(E===zn){const R=i.getRule(n);o.produce(i,h[0].start),i=i.withContentNameScopesList(i.nameScopesList),X(n,e,t,i,o,R.endCaptures,h),o.produce(i,h[0].end);const y=i;if(i=i.parent,d=y.getAnchorPos(),!g&&y.getEnterPos()===r){i=y,o.produce(i,a),c=!0;return}}else{const R=n.getRule(E);o.produce(i,h[0].start);const y=i,v=R.getName(e.content,h),w=i.contentNameScopesList.pushAttributed(v,n);if(i=i.push(E,r,d,h[0].end===a,null,w,w),R instanceof xe){const T=R;X(n,e,t,i,o,T.beginCaptures,h),o.produce(i,h[0].end),d=h[0].end;const x=T.getContentName(e.content,h),G=w.pushAttributed(x,n);if(i=i.withContentNameScopesList(G),T.endHasBackReferences&&(i=i.withEndRule(T.getEndWithResolvedBackReferences(e.content,h))),!g&&y.hasSameRuleAs(i)){i=i.pop(),o.produce(i,a),c=!0;return}}else if(R instanceof pe){const T=R;X(n,e,t,i,o,T.beginCaptures,h),o.produce(i,h[0].end),d=h[0].end;const x=T.getContentName(e.content,h),G=w.pushAttributed(x,n);if(i=i.withContentNameScopesList(G),T.whileHasBackReferences&&(i=i.withEndRule(T.getWhileWithResolvedBackReferences(e.content,h))),!g&&y.hasSameRuleAs(i)){i=i.pop(),o.produce(i,a),c=!0;return}}else if(X(n,e,t,i,o,R.captures,h),o.produce(i,h[0].end),i=i.pop(),!g){i=i.safePop(),o.produce(i,a),c=!0;return}}h[0].end>r&&(r=h[0].end,t=!1)}}function Yn(n,e,t,r,i,o){let s=i.beginRuleCapturedEOL?0:-1;const l=[];for(let a=i;a;a=a.pop()){const c=a.getRule(n);c instanceof pe&&l.push({rule:c,stack:a})}for(let a=l.pop();a;a=l.pop()){const{ruleScanner:c,findOptions:d}=tr(a.rule,n,a.stack.endRule,t,r===s),p=c.findNextMatchSync(e,r,d);if(p){if(p.ruleId!==Nt){i=a.stack.pop();break}p.captureIndices&&p.captureIndices.length&&(o.produce(a.stack,p.captureIndices[0].start),X(n,e,t,a.stack,o,a.rule.whileCaptures,p.captureIndices),o.produce(a.stack,p.captureIndices[0].end),s=p.captureIndices[0].end,p.captureIndices[0].end>r&&(r=p.captureIndices[0].end,t=!1))}else{i=a.stack.pop();break}}return{stack:i,linePos:r,anchorPosition:s,isFirstLine:t}}function Qn(n,e,t,r,i,o){const s=Zn(n,e,t,r,i,o),l=n.getInjections();if(l.length===0)return s;const a=er(l,n,e,t,r,i,o);if(!a)return s;if(!s)return a;const c=s.captureIndices[0].start,d=a.captureIndices[0].start;return d=l)&&(l=v,a=y.captureIndices,c=y.ruleId,d=h.priority,l===i))break}return a?{priorityMatch:d===-1,captureIndices:a,matchedRuleId:c}:null}function Bt(n,e,t,r,i){return{ruleScanner:n.compileAG(e,t,r,i),findOptions:0}}function tr(n,e,t,r,i){return{ruleScanner:n.compileWhileAG(e,t,r,i),findOptions:0}}function X(n,e,t,r,i,o,s){if(o.length===0)return;const l=e.content,a=Math.min(o.length,s.length),c=[],d=s[0].end;for(let p=0;pd)break;for(;c.length>0&&c[c.length-1].endPos<=m.start;)i.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop();if(c.length>0?i.produceFromScopes(c[c.length-1].scopes,m.start):i.produce(r,m.start),_.retokenizeCapturedWithRuleId){const E=_.getName(l,s),g=r.contentNameScopesList.pushAttributed(E,n),R=_.getContentName(l,s),y=g.pushAttributed(R,n),v=r.push(_.retokenizeCapturedWithRuleId,m.start,-1,!1,null,g,y),w=n.createOnigString(l.substring(0,m.end));Mt(n,w,t&&m.start===0,m.start,v,i,!1,0),kt(w);continue}const h=_.getName(l,s);if(h!==null){const g=(c.length>0?c[c.length-1].scopes:r.contentNameScopesList).pushAttributed(h,n);c.push(new nr(g,m.end))}}for(;c.length>0;)i.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop()}var nr=class{constructor(n,e){this.scopes=n,this.endPos=e}};function rr(n,e,t,r,i,o,s,l){return new or(n,e,t,r,i,o,s,l)}function ut(n,e,t,r,i){const o=ce(e,me),s=xt.getCompiledRuleId(t,r,i.repository);for(const l of o)n.push({debugSelector:e,matcher:l.matcher,ruleId:s,grammar:i,priority:l.priority})}function me(n,e){if(e.length{for(let i=t;it&&n.substr(0,t)===e&&n[t]==="."}var or=class{constructor(n,e,t,r,i,o,s,l){if(this._rootScopeName=n,this.balancedBracketSelectors=o,this._onigLib=l,this._basicScopeAttributesProvider=new Jn(t,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=s,this._grammar=ct(e,null),this._injections=null,this._tokenTypeMatchers=[],i)for(const a of Object.keys(i)){const c=ce(a,me);for(const d of c)this._tokenTypeMatchers.push({matcher:d.matcher,type:i[a]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const n of this._ruleId2desc)n&&n.dispose()}createOnigScanner(n){return this._onigLib.createOnigScanner(n)}createOnigString(n){return this._onigLib.createOnigString(n)}getMetadataForScope(n){return this._basicScopeAttributesProvider.getBasicScopeAttributes(n)}_collectInjections(){const n={lookup:i=>i===this._rootScopeName?this._grammar:this.getExternalGrammar(i),injections:i=>this._grammarRepository.injections(i)},e=[],t=this._rootScopeName,r=n.lookup(t);if(r){const i=r.injections;if(i)for(let s in i)ut(e,s,i[s],this,r);const o=this._grammarRepository.injections(t);o&&o.forEach(s=>{const l=this.getExternalGrammar(s);if(l){const a=l.injectionSelector;a&&ut(e,a,l,this,l)}})}return e.sort((i,o)=>i.priority-o.priority),e}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(n){const e=++this._lastRuleId,t=n(e);return this._ruleId2desc[e]=t,t}getRule(n){return this._ruleId2desc[n]}getExternalGrammar(n,e){if(this._includedGrammars[n])return this._includedGrammars[n];if(this._grammarRepository){const t=this._grammarRepository.lookup(n);if(t)return this._includedGrammars[n]=ct(t,e&&e.$base),this._includedGrammars[n]}}tokenizeLine(n,e,t=0){const r=this._tokenize(n,e,!1,t);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(n,e,t=0){const r=this._tokenize(n,e,!0,t);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(n,e,t,r){this._rootId===-1&&(this._rootId=xt.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let i;if(!e||e===Ge.NULL){i=!0;const c=this._basicScopeAttributesProvider.getDefaultAttributes(),d=this.themeProvider.getDefaults(),p=q.set(0,c.languageId,c.tokenType,null,d.fontStyle,d.foregroundId,d.backgroundId),_=this.getRule(this._rootId).getName(null,null);let m;_?m=Y.createRootAndLookUpScopeName(_,p,this):m=Y.createRoot("unknown",p),e=new Ge(null,this._rootId,-1,-1,!1,null,m,m)}else i=!1,e.reset();n=n+` `;const o=this.createOnigString(n),s=o.content.length,l=new ar(t,n,this._tokenTypeMatchers,this.balancedBracketSelectors),a=Mt(this,o,i,0,e,l,!0,r);return kt(o),{lineLength:s,lineTokens:l,ruleStack:a.stack,stoppedEarly:a.stoppedEarly}}};function ct(n,e){return n=Ln(n),n.repository=n.repository||{},n.repository.$self={$vscodeTextmateLocation:n.$vscodeTextmateLocation,patterns:n.patterns,name:n.scopeName},n.repository.$base=e||n.repository.$self,n}var Y=class V{constructor(e,t,r){this.parent=e,this.scopePath=t,this.tokenAttributes=r}static fromExtension(e,t){let r=e,i=e?.scopePath??null;for(const o of t)i=Te.push(i,o.scopeNames),r=new V(r,i,o.encodedTokenAttributes);return r}static createRoot(e,t){return new V(null,new Te(null,e),t)}static createRootAndLookUpScopeName(e,t,r){const i=r.getMetadataForScope(e),o=new Te(null,e),s=r.themeProvider.themeMatch(o),l=V.mergeAttributes(t,i,s);return new V(null,o,l)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(e){return V.equals(this,e)}static equals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}while(!0)}static mergeAttributes(e,t,r){let i=-1,o=0,s=0;return r!==null&&(i=r.fontStyle,o=r.foregroundId,s=r.backgroundId),q.set(e,t.languageId,t.tokenType,null,i,o,s)}pushAttributed(e,t){if(e===null)return this;if(e.indexOf(" ")===-1)return V._pushAttributed(this,e,t);const r=e.split(/ /g);let i=this;for(const o of r)i=V._pushAttributed(i,o,t);return i}static _pushAttributed(e,t,r){const i=r.getMetadataForScope(t),o=e.scopePath.push(t),s=r.themeProvider.themeMatch(o),l=V.mergeAttributes(e.tokenAttributes,i,s);return new V(e,o,l)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){const t=[];let r=this;for(;r&&r!==e;)t.push({encodedTokenAttributes:r.tokenAttributes,scopeNames:r.scopePath.getExtensionIfDefined(r.parent?.scopePath??null)}),r=r.parent;return r===e?t.reverse():void 0}},Be=class H{constructor(e,t,r,i,o,s,l,a){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=o,this.endRule=s,this.nameScopesList=l,this.contentNameScopesList=a,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=r,this._anchorPos=i}equals(e){return e===null?!1:H._equals(this,e)}static _equals(e,t){return e===t?!0:this._structuralEquals(e,t)?Y.equals(e.contentNameScopesList,t.contentNameScopesList):!1}static _structuralEquals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}while(!0)}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){H._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,r,i,o,s,l){return new H(this,e,t,r,i,o,s,l)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new H(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(e,t){const r=Y.fromExtension(e?.nameScopesList??null,t.nameScopesList);return new H(e,t.ruleId,t.enterPos??-1,t.anchorPos??-1,t.beginRuleCapturedEOL,t.endRule,r,Y.fromExtension(r,t.contentNameScopesList))}};Be.NULL=new Be(null,0,0,0,!1,null,null,null);var Ge=Be,sr=class{constructor(n,e){this.allowAny=!1,this.balancedBracketScopes=n.flatMap(t=>t==="*"?(this.allowAny=!0,[]):ce(t,me).map(r=>r.matcher)),this.unbalancedBracketScopes=e.flatMap(t=>ce(t,me).map(r=>r.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(n){for(const e of this.unbalancedBracketScopes)if(e(n))return!1;for(const e of this.balancedBracketScopes)if(e(n))return!0;return this.allowAny}},ar=class{constructor(n,e,t,r){this.balancedBracketSelectors=r,this._emitBinaryTokens=n,this._tokenTypeOverrides=t,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(n,e){this.produceFromScopes(n.contentNameScopesList,e)}produceFromScopes(n,e){if(this._lastTokenEndIndex>=e)return;if(this._emitBinaryTokens){let r=n?.tokenAttributes??0,i=!1;if(this.balancedBracketSelectors?.matchesAlways&&(i=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const o=n?.getScopeNames()??[];for(const s of this._tokenTypeOverrides)s.matcher(o)&&(r=q.set(r,0,s.type,null,-1,0,0));this.balancedBracketSelectors&&(i=this.balancedBracketSelectors.match(o))}if(i&&(r=q.set(r,0,8,i,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===r){this._lastTokenEndIndex=e;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(r),this._lastTokenEndIndex=e;return}const t=n?.getScopeNames()??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:e,scopes:t}),this._lastTokenEndIndex=e}getResult(n,e){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===e-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(n,e),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(n,e){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===e-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(n,e),this._binaryTokens[this._binaryTokens.length-2]=0);const t=new Uint32Array(this._binaryTokens.length);for(let r=0,i=this._binaryTokens.length;r0;)s.Q.map(l=>this._loadSingleGrammar(l.scopeName)),s.processQueue();return this._grammarForScopeName(e,t,r,i,o)}_loadSingleGrammar(e){this._ensureGrammarCache.has(e)||(this._doLoadSingleGrammar(e),this._ensureGrammarCache.set(e,!0))}_doLoadSingleGrammar(e){const t=this._options.loadGrammar(e);if(t){const r=typeof this._options.getInjections=="function"?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,r)}}addGrammar(e,t=[],r=0,i=null){return this._syncRegistry.addGrammar(e,t),this._grammarForScopeName(e.scopeName,r,i)}_grammarForScopeName(e,t=0,r=null,i=null,o=null){return this._syncRegistry.grammarForScopeName(e,t,r,i,o)}},Gt=Ge.NULL;(()=>{try{new RegExp("(?i:)")}catch{return!1}return!0})();(()=>{try{new RegExp("","v")}catch{return!1}return!0})();var jt="&!#$%*+,.:;<=>?@^`~",cr=String.raw`\(\?<(?![=!])(?[^>]+)>`,dr=String.raw`\((?!\?)(?!(?<=\(\?\()DEFINE\))|${cr}`,Ft=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;new RegExp(String.raw` (?\(\?<(?![=!])|\\[gk]<) @@ -85,4 +85,4 @@ ${hr} \f\r "&'<=>\``.split("")],[`\0 \f\r "&'<=>\``.split(""),`\0 \f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function Xi(n,e,t,r){const i=r.schema,o=i.space==="svg"?!1:r.settings.omitOptionalTags;let s=i.space==="svg"?r.settings.closeEmptyElements:r.settings.voids.includes(n.tagName.toLowerCase());const l=[];let a;i.space==="html"&&n.tagName==="svg"&&(r.schema=sn);const c=Yi(r,n.properties),d=r.all(i.space==="html"&&n.tagName==="template"?n.content:n);return r.schema=i,d&&(s=!1),(c||!o||!Hi(n,e,t))&&(l.push("<",n.tagName,c?" "+c:""),s&&(i.space==="svg"||r.settings.closeSelfClosing)&&(a=c.charAt(c.length-1),(!r.settings.tightSelfClosing||a==="/"||a&&a!=='"'&&a!=="'")&&l.push(" "),l.push("/")),l.push(">")),l.push(d),!s&&(!o||!Ye(n,e,t))&&l.push(""),l.join("")}function Yi(n,e){const t=[];let r=-1,i;if(e){for(i in e)if(e[i]!==null&&e[i]!==void 0){const o=Qi(n,i,e[i]);o&&t.push(o)}}for(;++r_t(t,n.alternative)&&(s=n.alternative),l=s+z(t,Object.assign({},n.settings.characterReferences,{subset:(s==="'"?se.single:se.double)[i][o],attribute:!0}))+s),a+(l&&"="+l))}const Zi=["<","&"];function dn(n,e,t,r){return t&&t.type==="element"&&(t.tagName==="script"||t.tagName==="style")?n.value:z(n.value,Object.assign({},r.settings.characterReferences,{subset:Zi}))}function eo(n,e,t,r){return r.settings.allowDangerousHtml?n.value:dn(n,e,t,r)}function to(n,e,t,r){return r.all(n)}const no=mi("type",{invalid:ro,unknown:io,handlers:{comment:Ti,doctype:Pi,element:Xi,raw:eo,root:to,text:dn}});function ro(n){throw new Error("Expected node, not `"+n+"`")}function io(n){const e=n;throw new Error("Cannot compile unknown node `"+e.type+"`")}const oo={},so={},ao=[];function lo(n,e){const t=oo,r=t.quote||'"',i=r==='"'?"'":'"';if(r!=='"'&&r!=="'")throw new Error("Invalid quote `"+r+"`, expected `'` or `\"`");return{one:uo,all:co,settings:{omitOptionalTags:t.omitOptionalTags||!1,allowParseErrors:t.allowParseErrors||!1,allowDangerousCharacters:t.allowDangerousCharacters||!1,quoteSmart:t.quoteSmart||!1,preferUnquoted:t.preferUnquoted||!1,tightAttributes:t.tightAttributes||!1,upperDoctype:t.upperDoctype||!1,tightDoctype:t.tightDoctype||!1,bogusComments:t.bogusComments||!1,tightCommaSeparatedLists:t.tightCommaSeparatedLists||!1,tightSelfClosing:t.tightSelfClosing||!1,collapseEmptyAttributes:t.collapseEmptyAttributes||!1,allowDangerousHtml:t.allowDangerousHtml||!1,voids:t.voids||ni,characterReferences:t.characterReferences||so,closeSelfClosing:t.closeSelfClosing||!1,closeEmptyElements:t.closeEmptyElements||!1},schema:t.space==="svg"?sn:pi,quote:r,alternative:i}.one(Array.isArray(n)?{type:"root",children:n}:n,void 0,void 0)}function uo(n,e,t){return no(n,e,t,this)}function co(n){const e=[],t=n&&n.children||ao;let r=-1;for(;++rge(n,o,s),codeToTokens:(o,s)=>_e(n,o,s)};let i=lo(ge(n,e,t,r));for(const o of fe(t))i=o.postprocess?.call(r,i,t)||i;return i}const vt={light:"#333333",dark:"#bbbbbb"},Rt={light:"#fffffe",dark:"#1e1e1e"},bt="__shiki_resolved";function Qe(n){if(n?.[bt])return n;const e={...n};e.tokenColors&&!e.settings&&(e.settings=e.tokenColors,delete e.tokenColors),e.type||="dark",e.colorReplacements={...e.colorReplacements},e.settings||=[];let{bg:t,fg:r}=e;if(!t||!r){const l=e.settings?e.settings.find(a=>!a.name&&!a.scope):void 0;l?.settings?.foreground&&(r=l.settings.foreground),l?.settings?.background&&(t=l.settings.background),!r&&e?.colors?.["editor.foreground"]&&(r=e.colors["editor.foreground"]),!t&&e?.colors?.["editor.background"]&&(t=e.colors["editor.background"]),r||(r=e.type==="light"?vt.light:vt.dark),t||(t=e.type==="light"?Rt.light:Rt.dark),e.fg=r,e.bg=t}e.settings[0]&&e.settings[0].settings&&!e.settings[0].scope||e.settings.unshift({settings:{foreground:e.fg,background:e.bg}});let i=0;const o=new Map;function s(l){if(o.has(l))return o.get(l);i+=1;const a=`#${i.toString(16).padStart(8,"0").toLowerCase()}`;return e.colorReplacements?.[`#${a}`]?s(l):(o.set(l,a),a)}e.settings=e.settings.map(l=>{const a=l.settings?.foreground&&!l.settings.foreground.startsWith("#"),c=l.settings?.background&&!l.settings.background.startsWith("#");if(!a&&!c)return l;const d={...l,settings:{...l.settings}};if(a){const p=s(l.settings.foreground);e.colorReplacements[p]=l.settings.foreground,d.settings.foreground=p}if(c){const p=s(l.settings.background);e.colorReplacements[p]=l.settings.background,d.settings.background=p}return d});for(const l of Object.keys(e.colors||{}))if((l==="editor.foreground"||l==="editor.background"||l.startsWith("terminal.ansi"))&&!e.colors[l]?.startsWith("#")){const a=s(e.colors[l]);e.colorReplacements[a]=e.colors[l],e.colors[l]=a}return Object.defineProperty(e,bt,{enumerable:!1,writable:!1,value:!0}),e}async function pn(n){return Array.from(new Set((await Promise.all(n.filter(e=>!Ut(e)).map(async e=>await zt(e).then(t=>Array.isArray(t)?t:[t])))).flat()))}async function mn(n){return(await Promise.all(n.map(async t=>Ht(t)?null:Qe(await zt(t))))).filter(t=>!!t)}class mo extends ur{_resolver;_themes;_langs;_alias;_resolvedThemes=new Map;_resolvedGrammars=new Map;_langMap=new Map;_langGraph=new Map;_textmateThemeCache=new WeakMap;_loadedThemesCache=null;_loadedLanguagesCache=null;constructor(e,t,r,i={}){super(e),this._resolver=e,this._themes=t,this._langs=r,this._alias=i,this._themes.map(o=>this.loadTheme(o)),this.loadLanguages(this._langs)}getTheme(e){return typeof e=="string"?this._resolvedThemes.get(e):this.loadTheme(e)}loadTheme(e){const t=Qe(e);return t.name&&(this._resolvedThemes.set(t.name,t),this._loadedThemesCache=null),t}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(e){let t=this._textmateThemeCache.get(e);t||(t=ue.createFromRawTheme(e),this._textmateThemeCache.set(e,t)),this._syncRegistry.setTheme(t)}getGrammar(e){if(this._alias[e]){const t=new Set([e]);for(;this._alias[e];){if(e=this._alias[e],t.has(e))throw new A(`Circular alias \`${Array.from(t).join(" -> ")} -> ${e}\``);t.add(e)}}return this._resolvedGrammars.get(e)}loadLanguage(e){if(this.getGrammar(e.name))return;const t=new Set([...this._langMap.values()].filter(o=>o.embeddedLangsLazy?.includes(e.name)));this._resolver.addLanguage(e);const r={balancedBracketSelectors:e.balancedBracketSelectors||["*"],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(e.scopeName,e);const i=this.loadGrammarWithConfiguration(e.scopeName,1,r);if(i.name=e.name,this._resolvedGrammars.set(e.name,i),e.aliases&&e.aliases.forEach(o=>{this._alias[o]=e.name}),this._loadedLanguagesCache=null,t.size)for(const o of t)this._resolvedGrammars.delete(o.name),this._loadedLanguagesCache=null,this._syncRegistry?._injectionGrammars?.delete(o.scopeName),this._syncRegistry?._grammars?.delete(o.scopeName),this.loadLanguage(this._langMap.get(o.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(e){for(const i of e)this.resolveEmbeddedLanguages(i);const t=Array.from(this._langGraph.entries()),r=t.filter(([i,o])=>!o);if(r.length){const i=t.filter(([o,s])=>s&&s.embeddedLangs?.some(l=>r.map(([a])=>a).includes(l))).filter(o=>!r.includes(o));throw new A(`Missing languages ${r.map(([o])=>`\`${o}\``).join(", ")}, required by ${i.map(([o])=>`\`${o}\``).join(", ")}`)}for(const[i,o]of t)this._resolver.addLanguage(o);for(const[i,o]of t)this.loadLanguage(o)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(e){if(this._langMap.set(e.name,e),this._langGraph.set(e.name,e),e.embeddedLangs)for(const t of e.embeddedLangs)this._langGraph.set(t,this._langMap.get(t))}}class ho{_langs=new Map;_scopeToLang=new Map;_injections=new Map;_onigLib;constructor(e,t){this._onigLib={createOnigScanner:r=>e.createScanner(r),createOnigString:r=>e.createString(r)},t.forEach(r=>this.addLanguage(r))}get onigLib(){return this._onigLib}getLangRegistration(e){return this._langs.get(e)}loadGrammar(e){return this._scopeToLang.get(e)}addLanguage(e){this._langs.set(e.name,e),e.aliases&&e.aliases.forEach(t=>{this._langs.set(t,e)}),this._scopeToLang.set(e.scopeName,e),e.injectTo&&e.injectTo.forEach(t=>{this._injections.get(t)||this._injections.set(t,[]),this._injections.get(t).push(e.scopeName)})}getInjections(e){const t=e.split(".");let r=[];for(let i=1;i<=t.length;i++){const o=t.slice(0,i).join(".");r=[...r,...this._injections.get(o)||[]]}return r}}let J=0;function fo(n){J+=1,n.warnings!==!1&&J>=10&&J%10===0&&console.warn(`[Shiki] ${J} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let e=!1;if(!n.engine)throw new A("`engine` option is required for synchronous mode");const t=(n.langs||[]).flat(1),r=(n.themes||[]).flat(1).map(Qe),i=new ho(n.engine,t),o=new mo(i,r,t,n.langAlias);let s;function l(y){g();const v=o.getGrammar(typeof y=="string"?y:y.name);if(!v)throw new A(`Language \`${y}\` not found, you may need to load it first`);return v}function a(y){if(y==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};g();const v=o.getTheme(y);if(!v)throw new A(`Theme \`${y}\` not found, you may need to load it first`);return v}function c(y){g();const v=a(y);s!==y&&(o.setTheme(v),s=y);const w=o.getColorMap();return{theme:v,colorMap:w}}function d(){return g(),o.getLoadedThemes()}function p(){return g(),o.getLoadedLanguages()}function _(...y){g(),o.loadLanguages(y.flat(1))}async function m(...y){return _(await pn(y))}async function h(...y){g();for(const v of y.flat(1))o.loadTheme(v)}async function E(...y){return g(),h(await mn(y))}function g(){if(e)throw new A("Shiki instance has been disposed")}function R(){e||(e=!0,o.dispose(),J-=1)}return{setTheme:c,getTheme:a,getLanguage:l,getLoadedThemes:d,getLoadedLanguages:p,loadLanguage:m,loadLanguageSync:_,loadTheme:E,loadThemeSync:h,dispose:R,[Symbol.dispose]:R}}let _o;async function go(n={}){const[e,t,r]=await Promise.all([mn(n.themes||[]),pn(n.langs||[]),n.engine||$t(n.loadWasm||_o)]);return fo({...n,loadWasm:void 0,themes:e,langs:t,engine:r})}async function yo(n={}){const e=await go(n);return{getLastGrammarState:(t,r)=>Wr(e,t,r),codeToTokensBase:(t,r)=>qe(e,t,r),codeToTokensWithThemes:(t,r)=>Xt(e,t,r),codeToTokens:(t,r)=>_e(e,t,r),codeToHast:(t,r)=>ge(e,t,r),codeToHtml:(t,r)=>po(e,t,r),...e,getInternalContext:()=>e}}function Eo(n,e,t){let r,i,o;{const l=n;r=l.langs,i=l.themes,o=l.engine}async function s(l){function a(m){if(typeof m=="string"){if(Ut(m))return[];const h=r[m];if(!h)throw new A(`Language \`${m}\` is not included in this bundle. You may want to load it from external source.`);return h}return m}function c(m){if(Ht(m))return"none";if(typeof m=="string"){const h=i[m];if(!h)throw new A(`Theme \`${m}\` is not included in this bundle. You may want to load it from external source.`);return h}return m}const d=(l.themes??[]).map(m=>c(m)),p=(l.langs??[]).map(m=>a(m)),_=await yo({engine:o(),...l,themes:d,langs:p});return{..._,loadLanguage(...m){return _.loadLanguage(...m.map(a))},loadTheme(...m){return _.loadTheme(...m.map(c))}}}return s}const vo=Eo({langs:vn,themes:An,engine:()=>$t(Rn)});var Ro={displayName:"Pseudocodice",name:"srs",scopeName:"source.srs",patterns:[{include:"#constant"},{include:"#entity"},{include:"#invalid"},{include:"#keywords"},{include:"#punctuation"},{include:"#storage"},{include:"#strings"},{include:"#support"}],repository:{constant:{patterns:[{match:"\\b-?\\d+(\\.\\d+)?\\b",name:"constant.numeric"}]},entity:{patterns:[{match:"(?<=function\\s+)\\w+(?=\\()",name:"entity.name.function"}]},invalid:{patterns:[{match:"\\[\\?+]",name:"invalid.illegal"}]},keywords:{patterns:[{match:"\\b(return|end|if|then|else|for|in|while|do)\\b",name:"keyword.control"},{match:"[<>]|\\b(mod|and|or|not)\\b",name:"keyword.operator"},{match:"[+/=×…←→≠≤≥-]",name:"keyword.operator"}]},punctuation:{patterns:[{match:"[\\[\\]()]",name:"punctuation"}]},storage:{patterns:[{match:"\\b(integer|variable|function)\\b",name:"storage.type"}]},strings:{patterns:[{match:'"(?:\\\\.|[^\\\\"])*"',name:"string.quoted.double"}]},support:{patterns:[{match:"\\b(max|min|output)\\b",name:"support.function"}]},$self:{},$base:{}}},bo=Ro,Ce=await vo({themes:["github-light","github-dark"],langs:[bo]});function Po({code:n,lang:e,inline:t,className:r}){let i=Ce.getLoadedLanguages();if(e!=="srs"&&e!=="text"&&!i.includes(e))throw Ce.loadLanguage(e);let o=_n.useMemo(()=>Ce.codeToHtml(n,{lang:e,themes:{light:"github-light",dark:"github-dark"},structure:t?"inline":"classic",transformers:[{pre(s){this.addClassToHast(s,gn.pre)}}]}),[n,e,t]);return t?Ae.jsx("span",{className:"not-prose",children:Ae.jsx("code",{dangerouslySetInnerHTML:{__html:o},className:nt("shiki",r)})}):Ae.jsx("div",{dangerouslySetInnerHTML:{__html:o},className:nt("not-prose",r)})}export{Po as default}; -//# sourceMappingURL=ebbb2af3-highlight-UOJF2D5K.js.map +//# sourceMappingURL=b5abcf0a-highlight-UOJF2D5K.js.map diff --git a/assets/r/ebbb2af3-highlight-UOJF2D5K.js.map b/assets/r/b5abcf0a-highlight-UOJF2D5K.js.map similarity index 99% rename from assets/r/ebbb2af3-highlight-UOJF2D5K.js.map rename to assets/r/b5abcf0a-highlight-UOJF2D5K.js.map index 21a8d7c..114e2e5 100644 --- a/assets/r/ebbb2af3-highlight-UOJF2D5K.js.map +++ b/assets/r/b5abcf0a-highlight-UOJF2D5K.js.map @@ -1 +1 @@ -{"version":3,"mappings":"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EAAS,GACf,IAAIruB,EAAQ,GAEZ,KAAO,EAAEA,EAAQouB,EAAO,QACtBC,EAAO,KAAKD,EAAOpuB,CAAK,EAAE,QAAQ,sBAAuB,MAAM,CAAC,EAGlE,OAAO,IAAI,OAAO,MAAQquB,EAAO,KAAK,GAAG,EAAI,IAAK,GAAG,CACvD,CAUA,SAASC,GAAclR,EAAMmR,EAAMC,EAAM,CACvC,MAAM1tB,EAAQ,MAAQsc,EAAK,SAAS,EAAE,EAAE,cACxC,OAAOoR,GAAQD,GAAQ,CAAC,aAAa,KAAK,OAAO,aAAaA,CAAI,CAAC,EAC/DztB,EACAA,EAAQ,GACd,CAUA,SAAS2tB,GAAUrR,EAAMmR,EAAMC,EAAM,CACnC,MAAM1tB,EAAQ,KAAO,OAAOsc,CAAI,EAChC,OAAOoR,GAAQD,GAAQ,CAAC,KAAK,KAAK,OAAO,aAAaA,CAAI,CAAC,EACvDztB,EACAA,EAAQ,GACd,CAOA,MAAM4tB,GAA0B,CAC9B,QACA,MACA,SACA,QACA,SACA,QACA,SACA,OACA,OACA,SACA,MACA,SACA,QACA,SACA,OACA,KACA,SACA,QACA,SACA,OACA,KACA,SACA,SACA,QACA,SACA,SACA,SACA,OACA,OACA,MACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,QACA,QACA,SACA,MACA,QACA,SACA,OACA,SACA,SACA,QACA,OACA,OACA,SACA,MACA,SACA,SACA,QACA,SACA,MACA,OACA,SACA,SACA,SACA,KACA,SACA,QACA,QACA,SACA,SACA,OACA,QACA,KACA,OACA,QACA,SACA,OACA,MACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,MACA,OACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,MACA,OACA,SACA,MACA,MACF,EAOMC,GAAyB,CAC7B,KAAM,IACN,MAAO,IACP,KAAM,IACN,MAAO,IACP,OAAQ,IACR,IAAK,IACL,OAAQ,IACR,KAAM,IACN,IAAK,IACL,KAAM,IACN,KAAM,IACN,MAAO,IACP,IAAK,I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","names":["bundledLanguagesInfo","__vitePreload","bundledLanguagesBase","i","bundledLanguagesAlias","a","bundledLanguages","getWasmInlined","info","wasm","bundledThemesInfo","bundledThemes","FontStyle","clone","something","doClone","cloneArray","cloneObj","arr","r","len","obj","key","mergeObjects","target","sources","source","basename","path","idx","CAPTURING_REGEX_SOURCE","RegexSource","regexSource","captureSource","captureIndices","match","index","commandIndex","command","capture","result","strcmp","b","strArrCmp","len1","len2","res","isValidHexColor","hex","escapeRegExpCharacters","value","CachedFn","fn","Theme","_colorMap","_defaults","_root","scopeName","colorMap","parseTheme","resolveParsedThemeRules","scopePath","effectiveRule","v","_scopePathMatchesParentScopes","StyleAttributes","ScopeStack","_ScopeStack","parent","scopeNames","name","segments","item","other","base","parentScopes","scopePattern","scopeMustMatch","_matchesScope","fontStyle","foregroundId","backgroundId","settings","resultLen","entry","scopes","_scope","j","lenJ","foreground","background","scope","ParsedThemeRule","parsedThemeRules","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","ColorMap","defaults","root","ThemeTrieElement","ThemeTrieElementRule","rule","color","emptyParentScopes","_ThemeTrieElementRule","scopeDepth","_ThemeTrieElement","_mainRule","rulesWithParentScopes","_children","aParentIndex","bParentIndex","parentScopeLengthDiff","dotIndex","head","tail","rules","child","EncodedTokenMetadata","_EncodedTokenMetadata","encodedTokenAttributes","languageId","tokenType","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","createMatchers","selector","matchesName","results","tokenizer","newTokenizer","token","priority","matcher","parseConjunction","parseOperand","expressionToNegate","matcherInput","expressionInParents","parseInnerExpression","isIdentifier","identifiers","matchers","matcher2","input","regex","disposeOnigString","str","TopLevelRuleReference","TopLevelRepositoryRuleReference","ruleName","ExternalReferenceCollector","reference","ScopeDependencyProcessor","repo","initialScopeName","q","deps","dep","collectReferencesOfReference","baseGrammarScopeName","selfGrammar","baseGrammar","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","injections","injection","context","collectExternalReferencesInRules","patternRepository","include","parseInclude","newContext","BaseReference","SelfReference","RelativeReference","TopLevelReference","TopLevelRepositoryReference","indexOfSharp","HAS_BACK_REFERENCES","BACK_REFERENCING_END","endRuleId","whileRuleId","Rule","$location","id","contentName","location","lineText","CaptureRule","retokenizeCapturedWithRuleId","grammar","out","endRegexSource","allowA","allowG","MatchRule","captures","RegExpSource","RegExpSourceList","IncludeOnlyRule","patterns","pattern","BeginEndRule","begin","beginCaptures","end","endCaptures","applyEndPatternLast","BeginWhileRule","_while","whileCaptures","RuleFactory","_RuleFactory","helper","desc","repository","maximumCaptureId","captureId","numericCaptureId","ruleId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","externalIncludedRule","skipRule","_RegExpSource","regExpSource","lastPushedPos","output","hasAnchor","pos","nextCh","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","ch","onigLib","regExps","e","CompiledRule","string","startPosition","options","BasicScopeAttributes","_BasicScopeAttributesProvider","initialLanguageId","embeddedLanguages","standardTokenType","ScopeMatcher","m","BasicScopeAttributesProvider","values","escapedScopes","TokenizeStringResult","stack","stoppedEarly","_tokenizeString","isFirstLine","linePos","lineTokens","checkWhileConditions","timeLimit","lineLength","STOP","anchorPosition","whileCheckResult","_checkWhileConditions","startTime","scanNext","matchRuleOrInjections","matchedRuleId","hasAdvanced","poppedRule","handleCaptures","popped","_rule","beforePush","nameScopesList","pushedRule","contentNameScopesList","whileRules","node","nodeRule","whileRule","ruleScanner","findOptions","prepareRuleWhileSearch","matchResult","matchRule","injectionResult","matchInjections","matchResultScore","injectionResultScore","prepareRuleSearch","bestMatchRating","bestMatchCaptureIndices","bestMatchRuleId","bestMatchResultPriority","matchRating","lineTextContent","localStack","maxEnd","captureRule","captureIndex","stackClone","onigSubStr","captureRuleScopeName","captureRuleScopesList","LocalStackElement","endPos","createGrammar","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","Grammar","collectInjections","ruleFactoryHelper","nameMatcher","identifers","lastIndex","identifier","scopesAreMatching","thisScopeName","_rootScopeName","_onigLib","initGrammar","scopeName2","rawInjections","expression","injectionScopeNames","injectionScopeName","injectionGrammar","i1","i2","factory","rawIncludedGrammar","prevState","emitBinaryTokens","StateStackImpl","rawDefaultMetadata","defaultStyle","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","onigLineText","LineTokens","_AttributedScopeStack","tokenAttributes","namesScopeList","current","frame","rawRootMetadata","rootStyle","resolvedTokenAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","metadata","self","_StateStackImpl","enterPos","anchorPos","beginRuleCapturedEOL","endRule","el","outIndex","contentNameScopeStack","BalancedBracketSelectors","balancedBracketScopes","unbalancedBracketScopes","excluder","includer","tokenTypeOverrides","endIndex","scopesList","scopes2","SyncRegistry","theme","targetScope","rawGrammar","Registry","configuration","dependencyProcessor","request","INITIAL","doublePunctuatorChars","namedCapturingDelim","capturingDelim","noncapturingDelim","stringPropertyNames","baseQuantifier","subroutinePattern","incompatibleEscapeChars","ShikiError","message","getHeapMax","_emscripten_get_now","alignUp","x","multiple","main","init","wasmMemory","buffer","binding","updateGlobalBufferAndViews","buf","_emscripten_memcpy_big","dest","src","num","emscripten_realloc_buffer","size","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","newSize","UTF8Decoder","UTF8ArrayToString","heapOrArray","maxBytesToRead","endIdx","endPtr","u0","u1","u2","UTF8ToString","ptr","asmLibraryArg","createWasm","exports","onigBinding","throwLastOnigError","UtfString","charCode","codepoint","wasSurrogatePair","nextCharCode","utf16Length","utf8Length","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","codePoint","OnigString","utfString","utf8Offset","utf16Offset","OnigScanner","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","arg","debugCall","resultPtr","HEAPU32","offset","count","beg","isInstantiatorOptionsObject","dataOrOptions","isInstantiatorModule","isDataOptionsObject","isResponse","isArrayBuffer","data","initPromise","loadWasm","_load","instance","_makeResponseStreamingLoader","_makeResponseNonStreamingLoader","_makeArrayBufferLoader","importObject","arrayBuffer","createWasmOnigEngine","s","splitLines","code","preserveEnding","parts","lines","line","isPlainLang","lang","isSpecialLang","isNoneTheme","isSpecialTheme","addClassToHast","className","targets","c","splitToken","offsets","lastOffset","tokens","splitTokens","breakpoints","sorted","breakpointsInToken","normalizeGetter","p","resolveColorReplacements","replacements","themeName","applyColorReplacements","getTokenStyleObject","styles","stringifyTokenStyle","createPositionConverter","indexToPos","character","posToIndex","transformerDecorations","map","getContext","shiki","normalizePosition","converter","decorations","d","verifyIntersections","codeEl","ctx","applyLineSection","start","decoration","lineEl","text","startIndex","stringify$2","children","applyDecoration","wrapper","applyLine","type","properties","transform","lineApplies","items","foo","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","builtInTransformers","getTransformers","GrammarState","_stack","getScopes","visited","pushScope","getGrammarStack","state","namedColors","findSequence","position","nextEscape","nextClose","parseColor","sequence","colorMode","rgb","colorIndex","parseSequence","commands","codeInt","createAnsiSequenceParser","decorations2","findResult","styleToken","defaultNamedColorsMap","createColorPalette","namedColorsMap","namedColor","rgbColor","colorTable","getColorTable","levels","g","level","tableColor","tokenizeAnsiWithTheme","fileContents","colorReplacements","colorPalette","parser","bgColor","dimColor","hexMatch","alpha","cssVarMatch","codeToTokensBase","internal","_grammar","tokenizeWithTheme","getLastGrammarState","_tokenizeWithTheme","tokenizeMaxLineLength","tokenizeTimeLimit","stateStack","actual","final","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","tokensLength","nextStartIndex","themeSettingsSelectors","setting","selectors","tokenWithScopes","tokenWithScopesText","explainThemeScopesNameOnly","explainThemeScopesFull","themeSelectors","explainThemeScope","matchesOne","matches","selectorParentIndex","parentIndex","selectorPieces","codeToTokensWithThemes","themes","syncThemesTokenization","t","lineIdx","_token","tokenIdx","mergedToken","themeIdx","_","__","___","outThemes","outLines","indexes","l","minLength","n","codeToTokens","bg","fg","defaultColor","cssVariablePrefix","themeTokens","themeRegs","themesOrder","mergeToken","themeColorReplacements","_theme","merged","variantsOrder","styleKeys","mergedStyles","acc","cur","keyName","varKey","codeToHast","transformerContext","_code","_options","transformer","mergeWhitespaces","mergeWhitespaceTokens","splitWhitespaceTokens","contextSource","tokensToHast","transformers","structure","preNode","codeNode","lineNodes","lineNode","col","tokenNode","style","newLine","carryOnContent","firstOffset","couldMerge","leading","content","trailing","expanded","htmlVoidElements","Schema","property","normal","space","merge","definitions","normalize","Info","attribute","powers","boolean","increment","booleanish","overloadedBoolean","number","spaceSeparated","commaSeparated","commaOrSpaceSeparated","types","checks","DefinedInfo","mask","mark","check","own$3","create","definition","prop","xlink","xml","caseSensitiveTransform","attributes","caseInsensitiveTransform","xmlns","aria","html$3","svg$1","valid","dash","cap","find","schema","Type","rest","camelcase","dashes","kebab","$0","html$2","svg","own$2","zwitch","one","parameters","handlers","core","charactersToExpression","basic","surrogate","pair","all","subset","groups","toHexadecimal","next","omit","toDecimal","characterEntitiesLegacy","characterEntitiesHtml4","dangerous","own$1","characters","toNamed","formatSmart","numeric","named","decimal","stringifyEntities","htmlCommentRegex","bogusCommentEntitySubset","commentEntitySubset","comment","_1","_2","encode","doctype","_3","ccount","stringify$1","stringify","re","whitespace","thing","empty","siblingAfter","siblings","siblingBefore","emptyChildren$1","sibling","includeWhitespace","own","omission","closing","body$1","headOrColgroupOrCaption","dd","dt","html$1","li","optgroup","option","rubyElement","tbody$1","cells","tfoot","thead","tr","opening","body","colgroup","html","tbody","seen","previous","constants","element","selfClosing","last","serializeAttributes","serializeAttribute","y","quote","textEntitySubset","raw","handle","invalid","unknown","node_","emptyOptions","emptyCharacterReferences","emptyChildren","toHtml","tree","options_","alternative","codeToHtml","VSCODE_FALLBACK_EDITOR_FG","VSCODE_FALLBACK_EDITOR_BG","RESOLVED_KEY","normalizeTheme","rawTheme","globalSetting","replacementCount","replacementMap","getReplacementColor","replaceFg","replaceBg","replacement","resolveLangs","langs","resolveThemes","Registry$1","_resolver","_themes","_langs","_alias","textmateTheme","resolved","embeddedLazilyBy","grammarConfig","alias","langsGraphArray","missingLangs","dependents","embeddedLang","Resolver","engine","langIdOrAlias","scopeParts","subScopeName","instancesCount","createShikiInternalSync","isDisposed","resolver","_registry","_lastTheme","getLanguage","ensureNotDisposed","_lang","getTheme","setTheme","getLoadedThemes","getLoadedLanguages","loadLanguageSync","loadLanguage","loadThemeSync","loadTheme","dispose","_defaultWasmLoader","createShikiInternal","createHighlighterCore","createdBundledHighlighter","arg1","arg2","arg3","createHighlighter","resolveLang","bundle","resolveTheme","u","o","h"],"ignoreList":[0,1,2,3,4,5,6,7,8],"sources":["../../../node_modules/shiki/dist/langs.mjs","../../../node_modules/shiki/dist/chunks/wasm-dynamic.mjs","../../../node_modules/shiki/dist/themes.mjs","../../../node_modules/@shikijs/core/dist/types.mjs","../../../node_modules/@shikijs/vscode-textmate/dist/index.mjs","../../../node_modules/regex/dist/regex.mjs","../../../node_modules/@shikijs/core/dist/index.mjs","../../../node_modules/shiki/dist/bundle-full.mjs","../../../node_modules/@olinfo/react-components/dist/highlight-UOJF2D5K.js"],"sourcesContent":["const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": () => import('./langs/abap.mjs')\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": () => import('./langs/actionscript-3.mjs')\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": () => import('./langs/ada.mjs')\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": () => import('./langs/angular-html.mjs')\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": () => import('./langs/angular-ts.mjs')\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": () => import('./langs/apache.mjs')\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": () => import('./langs/apex.mjs')\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": () => import('./langs/apl.mjs')\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": () => import('./langs/applescript.mjs')\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": () => import('./langs/ara.mjs')\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": () => import('./langs/asciidoc.mjs')\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": () => import('./langs/asm.mjs')\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": () => import('./langs/astro.mjs')\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": () => import('./langs/awk.mjs')\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": () => import('./langs/ballerina.mjs')\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": () => import('./langs/bat.mjs')\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": () => import('./langs/beancount.mjs')\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": () => import('./langs/berry.mjs')\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": () => import('./langs/bibtex.mjs')\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": () => import('./langs/bicep.mjs')\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": () => import('./langs/blade.mjs')\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": () => import('./langs/c.mjs')\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": () => import('./langs/cadence.mjs')\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": () => import('./langs/clarity.mjs')\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": () => import('./langs/clojure.mjs')\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": () => import('./langs/cmake.mjs')\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": () => import('./langs/cobol.mjs')\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": () => import('./langs/codeowners.mjs')\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": () => import('./langs/codeql.mjs')\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": () => import('./langs/coffee.mjs')\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": () => import('./langs/common-lisp.mjs')\n },\n {\n \"id\": \"coq\",\n \"name\": \"Coq\",\n \"import\": () => import('./langs/coq.mjs')\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": () => import('./langs/cpp.mjs')\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": () => import('./langs/crystal.mjs')\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": () => import('./langs/csharp.mjs')\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": () => import('./langs/css.mjs')\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": () => import('./langs/csv.mjs')\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": () => import('./langs/cue.mjs')\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": () => import('./langs/cypher.mjs')\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": () => import('./langs/d.mjs')\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": () => import('./langs/dart.mjs')\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": () => import('./langs/dax.mjs')\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": () => import('./langs/desktop.mjs')\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": () => import('./langs/diff.mjs')\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": () => import('./langs/docker.mjs')\n },\n {\n \"id\": \"dotenv\",\n \"name\": \"dotEnv\",\n \"import\": () => import('./langs/dotenv.mjs')\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": () => import('./langs/dream-maker.mjs')\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": () => import('./langs/edge.mjs')\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": () => import('./langs/elixir.mjs')\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": () => import('./langs/elm.mjs')\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": () => import('./langs/emacs-lisp.mjs')\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": () => import('./langs/erb.mjs')\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": () => import('./langs/erlang.mjs')\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": () => import('./langs/fennel.mjs')\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": () => import('./langs/fish.mjs')\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": () => import('./langs/fluent.mjs')\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": () => import('./langs/fortran-fixed-form.mjs')\n },\n {\n \"id\": \"fortran-free-form\",\n \"name\": \"Fortran (Free Form)\",\n \"aliases\": [\n \"f90\",\n \"f95\",\n \"f03\",\n \"f08\",\n \"f18\"\n ],\n \"import\": () => import('./langs/fortran-free-form.mjs')\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": () => import('./langs/fsharp.mjs')\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": () => import('./langs/gdresource.mjs')\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": () => import('./langs/gdscript.mjs')\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": () => import('./langs/gdshader.mjs')\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": () => import('./langs/genie.mjs')\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": () => import('./langs/gherkin.mjs')\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": () => import('./langs/git-commit.mjs')\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": () => import('./langs/git-rebase.mjs')\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": () => import('./langs/gleam.mjs')\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": () => import('./langs/glimmer-js.mjs')\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": () => import('./langs/glimmer-ts.mjs')\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": () => import('./langs/glsl.mjs')\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": () => import('./langs/gnuplot.mjs')\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": () => import('./langs/go.mjs')\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": () => import('./langs/graphql.mjs')\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": () => import('./langs/groovy.mjs')\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": () => import('./langs/hack.mjs')\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": () => import('./langs/haml.mjs')\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": () => import('./langs/handlebars.mjs')\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": () => import('./langs/haskell.mjs')\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": () => import('./langs/haxe.mjs')\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": () => import('./langs/hcl.mjs')\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": () => import('./langs/hjson.mjs')\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": () => import('./langs/hlsl.mjs')\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": () => import('./langs/html.mjs')\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": () => import('./langs/html-derivative.mjs')\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": () => import('./langs/http.mjs')\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": () => import('./langs/hxml.mjs')\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": () => import('./langs/hy.mjs')\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": () => import('./langs/imba.mjs')\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": () => import('./langs/ini.mjs')\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": () => import('./langs/java.mjs')\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\"\n ],\n \"import\": () => import('./langs/javascript.mjs')\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": () => import('./langs/jinja.mjs')\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": () => import('./langs/jison.mjs')\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": () => import('./langs/json.mjs')\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": () => import('./langs/json5.mjs')\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": () => import('./langs/jsonc.mjs')\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": () => import('./langs/jsonl.mjs')\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": () => import('./langs/jsonnet.mjs')\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": () => import('./langs/jssm.mjs')\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": () => import('./langs/jsx.mjs')\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": () => import('./langs/julia.mjs')\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": () => import('./langs/kotlin.mjs')\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": () => import('./langs/kusto.mjs')\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": () => import('./langs/latex.mjs')\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": () => import('./langs/lean.mjs')\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": () => import('./langs/less.mjs')\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": () => import('./langs/liquid.mjs')\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": () => import('./langs/log.mjs')\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": () => import('./langs/logo.mjs')\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": () => import('./langs/lua.mjs')\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": () => import('./langs/luau.mjs')\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": () => import('./langs/make.mjs')\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": () => import('./langs/markdown.mjs')\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": () => import('./langs/marko.mjs')\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": () => import('./langs/matlab.mjs')\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": () => import('./langs/mdc.mjs')\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": () => import('./langs/mdx.mjs')\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"import\": () => import('./langs/mermaid.mjs')\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": () => import('./langs/mojo.mjs')\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": () => import('./langs/move.mjs')\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": () => import('./langs/narrat.mjs')\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": () => import('./langs/nextflow.mjs')\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": () => import('./langs/nginx.mjs')\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": () => import('./langs/nim.mjs')\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": () => import('./langs/nix.mjs')\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": () => import('./langs/nushell.mjs')\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": () => import('./langs/objective-c.mjs')\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": () => import('./langs/objective-cpp.mjs')\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": () => import('./langs/ocaml.mjs')\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": () => import('./langs/pascal.mjs')\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": () => import('./langs/perl.mjs')\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": () => import('./langs/php.mjs')\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": () => import('./langs/plsql.mjs')\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": () => import('./langs/po.mjs')\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": () => import('./langs/postcss.mjs')\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": () => import('./langs/powerquery.mjs')\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": () => import('./langs/powershell.mjs')\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": () => import('./langs/prisma.mjs')\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": () => import('./langs/prolog.mjs')\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"aliases\": [\n \"protobuf\"\n ],\n \"import\": () => import('./langs/proto.mjs')\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": () => import('./langs/pug.mjs')\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": () => import('./langs/puppet.mjs')\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": () => import('./langs/purescript.mjs')\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": () => import('./langs/python.mjs')\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": () => import('./langs/qml.mjs')\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": () => import('./langs/qmldir.mjs')\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": () => import('./langs/qss.mjs')\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": () => import('./langs/r.mjs')\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": () => import('./langs/racket.mjs')\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": () => import('./langs/raku.mjs')\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": () => import('./langs/razor.mjs')\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": () => import('./langs/reg.mjs')\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": () => import('./langs/regexp.mjs')\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": () => import('./langs/rel.mjs')\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": () => import('./langs/riscv.mjs')\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": () => import('./langs/rst.mjs')\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": () => import('./langs/ruby.mjs')\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": () => import('./langs/rust.mjs')\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": () => import('./langs/sas.mjs')\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": () => import('./langs/sass.mjs')\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": () => import('./langs/scala.mjs')\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": () => import('./langs/scheme.mjs')\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": () => import('./langs/scss.mjs')\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": () => import('./langs/shaderlab.mjs')\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": () => import('./langs/shellscript.mjs')\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": () => import('./langs/shellsession.mjs')\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": () => import('./langs/smalltalk.mjs')\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": () => import('./langs/solidity.mjs')\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": () => import('./langs/soy.mjs')\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": () => import('./langs/sparql.mjs')\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": () => import('./langs/splunk.mjs')\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": () => import('./langs/sql.mjs')\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": () => import('./langs/ssh-config.mjs')\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": () => import('./langs/stata.mjs')\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": () => import('./langs/stylus.mjs')\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": () => import('./langs/svelte.mjs')\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": () => import('./langs/swift.mjs')\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": () => import('./langs/system-verilog.mjs')\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": () => import('./langs/systemd.mjs')\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": () => import('./langs/tasl.mjs')\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": () => import('./langs/tcl.mjs')\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": () => import('./langs/templ.mjs')\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": () => import('./langs/terraform.mjs')\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": () => import('./langs/tex.mjs')\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": () => import('./langs/toml.mjs')\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": () => import('./langs/ts-tags.mjs')\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": () => import('./langs/tsv.mjs')\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": () => import('./langs/tsx.mjs')\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": () => import('./langs/turtle.mjs')\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": () => import('./langs/twig.mjs')\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\"\n ],\n \"import\": () => import('./langs/typescript.mjs')\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": () => import('./langs/typespec.mjs')\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": () => import('./langs/typst.mjs')\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": () => import('./langs/v.mjs')\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": () => import('./langs/vala.mjs')\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": () => import('./langs/vb.mjs')\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": () => import('./langs/verilog.mjs')\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": () => import('./langs/vhdl.mjs')\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": () => import('./langs/viml.mjs')\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": () => import('./langs/vue.mjs')\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": () => import('./langs/vue-html.mjs')\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": () => import('./langs/vyper.mjs')\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": () => import('./langs/wasm.mjs')\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": () => import('./langs/wenyan.mjs')\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": () => import('./langs/wgsl.mjs')\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": () => import('./langs/wikitext.mjs')\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": () => import('./langs/wolfram.mjs')\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": () => import('./langs/xml.mjs')\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": () => import('./langs/xsl.mjs')\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": () => import('./langs/yaml.mjs')\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": () => import('./langs/zenscript.mjs')\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": () => import('./langs/zig.mjs')\n }\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n ...bundledLanguagesBase,\n ...bundledLanguagesAlias\n};\n\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo };\n","const getWasmInlined = async (info) => {\n return import('shiki/wasm').then((wasm) => wasm.default(info));\n};\n\nexport { getWasmInlined as g };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/andromeeda.mjs')\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/aurora-x.mjs')\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/ayu-dark.mjs')\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-frappe.mjs')\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": () => import('./themes/catppuccin-latte.mjs')\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-macchiato.mjs')\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-mocha.mjs')\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dark-plus.mjs')\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula.mjs')\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula-soft.mjs')\n },\n {\n \"id\": \"everforest-dark\",\n \"displayName\": \"Everforest Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/everforest-dark.mjs')\n },\n {\n \"id\": \"everforest-light\",\n \"displayName\": \"Everforest Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/everforest-light.mjs')\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark.mjs')\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-default.mjs')\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-dimmed.mjs')\n },\n {\n \"id\": \"github-dark-high-contrast\",\n \"displayName\": \"GitHub Dark High Contrast\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-high-contrast.mjs')\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light.mjs')\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-default.mjs')\n },\n {\n \"id\": \"github-light-high-contrast\",\n \"displayName\": \"GitHub Light High Contrast\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-high-contrast.mjs')\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/houston.mjs')\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/laserwave.mjs')\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": () => import('./themes/light-plus.mjs')\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme.mjs')\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-darker.mjs')\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": () => import('./themes/material-theme-lighter.mjs')\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-ocean.mjs')\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-palenight.mjs')\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/min-dark.mjs')\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/min-light.mjs')\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/monokai.mjs')\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/night-owl.mjs')\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/nord.mjs')\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/one-dark-pro.mjs')\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/one-light.mjs')\n },\n {\n \"id\": \"plastic\",\n \"displayName\": \"Plastic\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/plastic.mjs')\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/poimandres.mjs')\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/red.mjs')\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine.mjs')\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": () => import('./themes/rose-pine-dawn.mjs')\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine-moon.mjs')\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/slack-dark.mjs')\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": () => import('./themes/slack-ochin.mjs')\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/snazzy-light.mjs')\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/solarized-dark.mjs')\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/solarized-light.mjs')\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/synthwave-84.mjs')\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/tokyo-night.mjs')\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vesper.mjs')\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-black.mjs')\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-dark.mjs')\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/vitesse-light.mjs')\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n","var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Italic\"] = 1] = \"Italic\";\n FontStyle[FontStyle[\"Bold\"] = 2] = \"Bold\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n})(FontStyle || (FontStyle = {}));\n\nexport { FontStyle };\n","// src/utils.ts\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (typeof something === \"object\") {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach((source) => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf(\"/\") || ~path.lastIndexOf(\"\\\\\");\n if (idx === 0) {\n return path;\n } else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n } else {\n return path.substr(~idx + 1);\n }\n}\nvar CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nvar RegexSource = class {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n while (result[0] === \".\") {\n result = result.substring(1);\n }\n switch (command) {\n case \"downcase\":\n return result.toLowerCase();\n case \"upcase\":\n return result.toUpperCase();\n default:\n return result;\n }\n } else {\n return match;\n }\n });\n }\n};\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n return true;\n }\n return false;\n}\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\");\n}\nvar CachedFn = class {\n constructor(fn) {\n this.fn = fn;\n this.cache = /* @__PURE__ */ new Map();\n }\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n};\n\n// src/theme.ts\nvar Theme = class {\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n this._cachedMatchRoot = new CachedFn(\n (scopeName) => this._root.match(scopeName)\n );\n }\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find(\n (v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes)\n );\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(\n effectiveRule.fontStyle,\n effectiveRule.foreground,\n effectiveRule.background\n );\n }\n};\nvar ScopeStack = class _ScopeStack {\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new _ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new _ScopeStack(result, segments[i]);\n }\n return result;\n }\n push(scopeName) {\n return new _ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(\" \");\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : void 0;\n }\n};\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes.length === 0) {\n return true;\n }\n for (let index = 0; index < parentScopes.length; index++) {\n let scopePattern = parentScopes[index];\n let scopeMustMatch = false;\n if (scopePattern === \">\") {\n if (index === parentScopes.length - 1) {\n return false;\n }\n scopePattern = parentScopes[++index];\n scopeMustMatch = true;\n }\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n break;\n }\n if (scopeMustMatch) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n if (!scopePath) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n return true;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === \".\";\n}\nvar StyleAttributes = class {\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n};\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === \"string\") {\n let _scope = entry.scope;\n _scope = _scope.replace(/^[,]+/, \"\");\n _scope = _scope.replace(/[,]+$/, \"\");\n scopes = _scope.split(\",\");\n } else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n } else {\n scopes = [\"\"];\n }\n let fontStyle = -1 /* NotSet */;\n if (typeof entry.settings.fontStyle === \"string\") {\n fontStyle = 0 /* None */;\n let segments = entry.settings.fontStyle.split(\" \");\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case \"italic\":\n fontStyle = fontStyle | 1 /* Italic */;\n break;\n case \"bold\":\n fontStyle = fontStyle | 2 /* Bold */;\n break;\n case \"underline\":\n fontStyle = fontStyle | 4 /* Underline */;\n break;\n case \"strikethrough\":\n fontStyle = fontStyle | 8 /* Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === \"string\" && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === \"string\" && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(\" \");\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(\n scope,\n parentScopes,\n i,\n fontStyle,\n foreground,\n background\n );\n }\n }\n return result;\n}\nvar ParsedThemeRule = class {\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n};\nvar FontStyle = /* @__PURE__ */ ((FontStyle2) => {\n FontStyle2[FontStyle2[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle2[FontStyle2[\"None\"] = 0] = \"None\";\n FontStyle2[FontStyle2[\"Italic\"] = 1] = \"Italic\";\n FontStyle2[FontStyle2[\"Bold\"] = 2] = \"Bold\";\n FontStyle2[FontStyle2[\"Underline\"] = 4] = \"Underline\";\n FontStyle2[FontStyle2[\"Strikethrough\"] = 8] = \"Strikethrough\";\n return FontStyle2;\n})(FontStyle || {});\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n let defaultFontStyle = 0 /* None */;\n let defaultForeground = \"#000000\";\n let defaultBackground = \"#ffffff\";\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === \"\") {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nvar ColorMap = class {\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = /* @__PURE__ */ Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n } else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n};\nvar emptyParentScopes = Object.freeze([]);\nvar ThemeTrieElementRule = class _ThemeTrieElementRule {\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes || emptyParentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new _ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log(\"how did this happen?\");\n } else {\n this.scopeDepth = scopeDepth;\n }\n if (fontStyle !== -1 /* NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n};\nvar ThemeTrieElement = class _ThemeTrieElement {\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth !== b.scopeDepth) {\n return b.scopeDepth - a.scopeDepth;\n }\n let aParentIndex = 0;\n let bParentIndex = 0;\n while (true) {\n if (a.parentScopes[aParentIndex] === \">\") {\n aParentIndex++;\n }\n if (b.parentScopes[bParentIndex] === \">\") {\n bParentIndex++;\n }\n if (aParentIndex >= a.parentScopes.length || bParentIndex >= b.parentScopes.length) {\n break;\n }\n const parentScopeLengthDiff = b.parentScopes[bParentIndex].length - a.parentScopes[aParentIndex].length;\n if (parentScopeLengthDiff !== 0) {\n return parentScopeLengthDiff;\n }\n aParentIndex++;\n bParentIndex++;\n }\n return b.parentScopes.length - a.parentScopes.length;\n }\n match(scope) {\n if (scope !== \"\") {\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n }\n const rules = this._rulesWithParentScopes.concat(this._mainRule);\n rules.sort(_ThemeTrieElement._cmpBySpecificity);\n return rules;\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === \"\") {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n } else {\n child = new _ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n if (fontStyle === -1 /* NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n};\n\n// src/encodedTokenAttributes.ts\nvar EncodedTokenMetadata = class _EncodedTokenMetadata {\n static toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n static print(encodedTokenAttributes) {\n const languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n const tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n const fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n const foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n const background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n console.log({\n languageId,\n tokenType,\n fontStyle,\n foreground,\n background\n });\n }\n static getLanguageId(encodedTokenAttributes) {\n return (encodedTokenAttributes & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */;\n }\n static getTokenType(encodedTokenAttributes) {\n return (encodedTokenAttributes & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */;\n }\n static containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* BALANCED_BRACKETS_MASK */) !== 0;\n }\n static getFontStyle(encodedTokenAttributes) {\n return (encodedTokenAttributes & 30720 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */;\n }\n static getForeground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 16744448 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */;\n }\n static getBackground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 4278190080 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */;\n }\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n static set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n let _tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = _EncodedTokenMetadata.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n let _foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n let _background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0;\n }\n};\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n// src/matcher.ts\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === \":\") {\n switch (token.charAt(0)) {\n case \"R\":\n priority = 1;\n break;\n case \"L\":\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== \",\") {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === \"-\") {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return (matcherInput) => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === \"(\") {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === \")\") {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return (matcherInput) => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return (matcherInput) => matchers.every((matcher2) => matcher2(matcherInput));\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === \"|\" || token === \",\") {\n do {\n token = tokenizer.next();\n } while (token === \"|\" || token === \",\");\n } else {\n break;\n }\n matcher = parseConjunction();\n }\n return (matcherInput) => matchers.some((matcher2) => matcher2(matcherInput));\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n// src/onigLib.ts\nvar FindOption = /* @__PURE__ */ ((FindOption2) => {\n FindOption2[FindOption2[\"None\"] = 0] = \"None\";\n FindOption2[FindOption2[\"NotBeginString\"] = 1] = \"NotBeginString\";\n FindOption2[FindOption2[\"NotEndString\"] = 2] = \"NotEndString\";\n FindOption2[FindOption2[\"NotBeginPosition\"] = 4] = \"NotBeginPosition\";\n FindOption2[FindOption2[\"DebugCall\"] = 8] = \"DebugCall\";\n return FindOption2;\n})(FindOption || {});\nfunction disposeOnigString(str) {\n if (typeof str.dispose === \"function\") {\n str.dispose();\n }\n}\n\n// src/grammar/grammarDependencies.ts\nvar TopLevelRuleReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n};\nvar TopLevelRepositoryRuleReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n};\nvar ExternalReferenceCollector = class {\n constructor() {\n this._references = [];\n this._seenReferenceKeys = /* @__PURE__ */ new Set();\n this.visitedRule = /* @__PURE__ */ new Set();\n }\n get references() {\n return this._references;\n }\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n};\nvar ScopeDependencyProcessor = class {\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests = /* @__PURE__ */ new Set();\n this.seenPartialScopeRequests = /* @__PURE__ */ new Set();\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n } else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n};\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n } else {\n collectExternalReferencesInTopLevelRepositoryRule(\n reference.ruleName,\n { baseGrammar, selfGrammar, repository: selfGrammar.repository },\n result\n );\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(\n context.selfGrammar.patterns,\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(\n Object.values(context.selfGrammar.injections),\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName ? context.selfGrammar : reference.scopeName === context.baseGrammar.scopeName ? context.baseGrammar : void 0;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n } else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n } else {\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n } else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nvar BaseReference = class {\n constructor() {\n this.kind = 0 /* Base */;\n }\n};\nvar SelfReference = class {\n constructor() {\n this.kind = 1 /* Self */;\n }\n};\nvar RelativeReference = class {\n constructor(ruleName) {\n this.ruleName = ruleName;\n this.kind = 2 /* RelativeReference */;\n }\n};\nvar TopLevelReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n this.kind = 3 /* TopLevelReference */;\n }\n};\nvar TopLevelRepositoryReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n this.kind = 4 /* TopLevelRepositoryReference */;\n }\n};\nfunction parseInclude(include) {\n if (include === \"$base\") {\n return new BaseReference();\n } else if (include === \"$self\") {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n } else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n } else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n// src/rule.ts\nvar HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nvar BACK_REFERENCING_END = /\\\\(\\d+)/g;\nvar ruleIdSymbol = Symbol(\"RuleId\");\nvar endRuleId = -1;\nvar whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nvar Rule = class {\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : \"unknown\";\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n};\nvar CaptureRule = class extends Rule {\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n }\n collectPatterns(grammar, out) {\n throw new Error(\"Not supported!\");\n }\n compile(grammar, endRegexSource) {\n throw new Error(\"Not supported!\");\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error(\"Not supported!\");\n }\n};\nvar MatchRule = class extends Rule {\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar IncludeOnlyRule = class extends Rule {\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginEndRule = class extends Rule {\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : \"\\uFFFF\", -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n } else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n } else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginWhileRule = class extends Rule {\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : \"\\uFFFF\");\n }\n return this._cachedCompiledWhilePatterns;\n }\n};\nvar RuleFactory = class _RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.match,\n _RuleFactory._compileCaptures(desc.captures, helper, repository)\n );\n }\n if (typeof desc.begin === \"undefined\") {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === \"undefined\" && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n _RuleFactory._compilePatterns(patterns, helper, repository)\n );\n }\n if (desc.while) {\n return new BeginWhileRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.while,\n _RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository),\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n }\n return new BeginEndRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.end,\n _RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository),\n desc.applyEndPatternLast,\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = _RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = _RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* Base */:\n case 1 /* Self */:\n ruleId = _RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* RelativeReference */:\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n } else {\n }\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* TopLevelRepositoryReference */ ? reference.ruleName : null;\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n } else {\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n } else {\n }\n break;\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: (patterns ? patterns.length : 0) !== r.length\n };\n }\n};\nvar RegExpSource = class _RegExpSource {\n constructor(regExpSource, ruleId) {\n if (regExpSource) {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === \"z\") {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push(\"$(?!\\\\n)(? {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || \"\");\n });\n }\n _buildAnchorCache() {\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === \"A\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"\\uFFFF\";\n A1_G0_result[pos + 1] = \"A\";\n A1_G1_result[pos + 1] = \"A\";\n } else if (nextCh === \"G\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"G\";\n A1_G0_result[pos + 1] = \"\\uFFFF\";\n A1_G1_result[pos + 1] = \"G\";\n } else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(\"\"),\n A0_G1: A0_G1_result.join(\"\"),\n A1_G0: A1_G0_result.join(\"\"),\n A1_G1: A1_G1_result.join(\"\")\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache) {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n } else {\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n } else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n};\nvar RegExpSourceList = class {\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map((e) => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n } else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n } else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n } else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map((e) => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n};\nvar CompiledRule = class {\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices\n };\n }\n};\n\n// src/grammar/basicScopesAttributeProvider.ts\nvar BasicScopeAttributes = class {\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n};\nvar _BasicScopeAttributesProvider = class _BasicScopeAttributesProvider {\n constructor(initialLanguageId, embeddedLanguages) {\n this._getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return _BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* Comment */;\n case \"string\":\n return 2 /* String */;\n case \"regex\":\n return 3 /* RegEx */;\n case \"meta.embedded\":\n return 0 /* Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n};\n_BasicScopeAttributesProvider._NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\nvar BasicScopeAttributesProvider = _BasicScopeAttributesProvider;\nvar ScopeMatcher = class {\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n } else {\n this.values = new Map(values);\n const escapedScopes = values.map(\n ([scopeName, value]) => escapeRegExpCharacters(scopeName)\n );\n escapedScopes.sort();\n escapedScopes.reverse();\n this.scopesRegExp = new RegExp(\n `^((${escapedScopes.join(\")|(\")}))($|\\\\.)`,\n \"\"\n );\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return void 0;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n return void 0;\n }\n return this.values.get(m[1]);\n }\n};\n\n// src/debug.ts\nvar DebugFlags = {\n InDebugMode: typeof process !== \"undefined\" && !!process.env[\"VSCODE_TEXTMATE_DEBUG\"]\n};\nvar UseOnigurumaFindOptions = false;\n\n// src/grammar/tokenizeString.ts\nvar TokenizeStringResult = class {\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n};\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n lineTokens\n );\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext();\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n if (false) {\n console.log(\"\");\n console.log(\n `@@scanNext ${linePos}: |${lineText.content.substr(linePos).replace(/\\n$/, \"\\\\n\")}|`\n );\n }\n const r = matchRuleOrInjections(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n anchorPosition\n );\n if (!r) {\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0 ? captureIndices[0].end > linePos : false;\n if (matchedRuleId === endRuleId) {\n const poppedRule = stack.getRule(grammar);\n if (false) {\n console.log(\n \" popping \" + poppedRule.debugName + \" - \" + poppedRule.debugEndRegExp\n );\n }\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n poppedRule.endCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n if (false) {\n console.error(\n \"[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing\"\n );\n }\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(\n scopeName,\n grammar\n );\n stack = stack.push(\n matchedRuleId,\n linePos,\n anchorPosition,\n captureIndices[0].end === lineLength,\n null,\n nameScopesList,\n nameScopesList\n );\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\n \" pushing \" + pushedRule.debugName + \" - \" + pushedRule.debugBeginRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getEndWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\" pushing \" + pushedRule.debugName);\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getWhileWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const matchingRule = _rule;\n if (false) {\n console.log(\n \" matched \" + matchingRule.debugName + \" - \" + matchingRule.debugMatchRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n matchingRule.captures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n stack = stack.pop();\n if (!hasAdvanced) {\n if (false) {\n console.error(\n \"[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping\"\n );\n }\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = stack.beginRuleCapturedEOL ? 0 : -1;\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (false) {\n console.log(\" scanning for while rule\");\n console.log(ruleScanner.toString());\n }\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n } else {\n if (false) {\n console.log(\" popping \" + whileRule.rule.debugName + \" - \" + whileRule.rule.debugWhileRegExp);\n }\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack, linePos, anchorPosition, isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n return matchResult;\n }\n if (!matchResult) {\n return injectionResult;\n }\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || injectionResult.priorityMatch && injectionResultScore === matchResultScore) {\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n if (false) {\n console.log(` matched injection: ${injection.debugSelector}`);\n console.log(ruleScanner.toString());\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compileWhile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction getFindOptions(allowA, allowG) {\n let options = 0 /* None */;\n if (!allowA) {\n options |= 1 /* NotBeginString */;\n }\n if (!allowG) {\n options |= 4 /* NotBeginPosition */;\n }\n return options;\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n continue;\n }\n if (captureIndex.start > maxEnd) {\n break;\n }\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n } else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(\n grammar,\n onigSubStr,\n isFirstLine && captureIndex.start === 0,\n captureIndex.start,\n stackClone,\n lineTokens,\n false,\n /* no time limit */\n 0\n );\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nvar LocalStackElement = class {\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n};\n\n// src/grammar/grammar.ts\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(\n scopeName,\n grammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n grammarRepository,\n onigLib\n );\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId,\n grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every((identifier) => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === \".\";\n}\nvar Grammar = class {\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(\n initialLanguage,\n embeddedLanguages\n );\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector]\n });\n }\n }\n }\n }\n get themeProvider() {\n return this._grammarRepository;\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName2) => {\n if (scopeName2 === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName2);\n },\n injections: (scopeName2) => {\n return this._grammarRepository.injections(scopeName2);\n }\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(\n result,\n expression,\n rawInjections[expression],\n this,\n grammar\n );\n }\n }\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(\n result,\n selector,\n injectionGrammar,\n this,\n injectionGrammar\n );\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority);\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n } else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n this._includedGrammars[scopeName] = initGrammar(\n rawIncludedGrammar,\n repository && repository.$base\n );\n return this._includedGrammars[scopeName];\n }\n }\n return void 0;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(\n this._grammar.repository.$self,\n this,\n this._grammar.repository\n );\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenMetadata.set(\n 0,\n rawDefaultMetadata.languageId,\n rawDefaultMetadata.tokenType,\n null,\n defaultStyle.fontStyle,\n defaultStyle.foregroundId,\n defaultStyle.backgroundId\n );\n const rootScopeName = this.getRule(this._rootId).getName(\n null,\n null\n );\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(\n rootScopeName,\n defaultMetadata,\n this\n );\n } else {\n scopeList = AttributedScopeStack.createRoot(\n \"unknown\",\n defaultMetadata\n );\n }\n prevState = new StateStackImpl(\n null,\n this._rootId,\n -1,\n -1,\n false,\n null,\n scopeList,\n scopeList\n );\n } else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(\n emitBinaryTokens,\n lineText,\n this._tokenTypeMatchers,\n this.balancedBracketSelectors\n );\n const r = _tokenizeString(\n this,\n onigLineText,\n isFirstLine,\n 0,\n prevState,\n lineTokens,\n true,\n timeLimit\n );\n disposeOnigString(onigLineText);\n return {\n lineLength,\n lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly\n };\n }\n};\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nvar AttributedScopeStack = class _AttributedScopeStack {\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new _AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new _AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = _AttributedScopeStack.mergeAttributes(\n tokenAttributes,\n rawRootMetadata,\n rootStyle\n );\n return new _AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() {\n return this.scopePath.scopeName;\n }\n toString() {\n return this.getScopeNames().join(\" \");\n }\n equals(other) {\n return _AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenMetadata.set(\n existingTokenAttributes,\n basicScopeAttributes.languageId,\n basicScopeAttributes.tokenType,\n null,\n fontStyle,\n foreground,\n background\n );\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(\" \") === -1) {\n return _AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = _AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = _AttributedScopeStack.mergeAttributes(\n target.tokenAttributes,\n rawMetadata,\n scopeThemeMatchResult\n );\n return new _AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null)\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : void 0;\n }\n};\nvar _StateStackImpl = class _StateStackImpl {\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this._stackElementBrand = void 0;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n equals(other) {\n if (other === null) {\n return false;\n }\n return _StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.depth !== b.depth || a.ruleId !== b.ruleId || a.endRule !== b.endRule) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n _StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new _StateStackImpl(\n this,\n ruleId,\n enterPos,\n anchorPos,\n beginRuleCapturedEOL,\n endRule,\n nameScopesList,\n contentNameScopesList\n );\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n this.endRule,\n this.nameScopesList,\n contentNameScopeStack\n );\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new _StateStackImpl(\n this.parent,\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n endRule,\n this.nameScopesList,\n this.contentNameScopesList\n );\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? []\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new _StateStackImpl(\n self,\n ruleIdFromNumber(frame.ruleId),\n frame.enterPos ?? -1,\n frame.anchorPos ?? -1,\n frame.beginRuleCapturedEOL,\n frame.endRule,\n namesScopeList,\n AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList)\n );\n }\n};\n// TODO remove me\n_StateStackImpl.NULL = new _StateStackImpl(\n null,\n 0,\n 0,\n 0,\n false,\n null,\n null,\n null\n);\nvar StateStackImpl = _StateStackImpl;\nvar BalancedBracketSelectors = class {\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.allowAny = false;\n this.balancedBracketScopes = balancedBracketScopes.flatMap(\n (selector) => {\n if (selector === \"*\") {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n }\n );\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap(\n (selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher)\n );\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n};\nvar LineTokens = class {\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n if (false) {\n this._lineText = lineText;\n } else {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever) {\n const scopes2 = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes2)) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n toOptionalTokenType(tokenType.type),\n null,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes2);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n 8 /* NotSet */,\n containsBalancedBrackets,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n};\n\n// src/registry.ts\nvar SyncRegistry = class {\n constructor(theme, _onigLib) {\n this._onigLib = _onigLib;\n this._grammars = /* @__PURE__ */ new Map();\n this._rawGrammars = /* @__PURE__ */ new Map();\n this._injectionGrammars = /* @__PURE__ */ new Map();\n this._theme = theme;\n }\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(\n scopeName,\n rawGrammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n this,\n this._onigLib\n ));\n }\n return this._grammars.get(scopeName);\n }\n};\n\n// src/index.ts\nvar Registry = class {\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(\n Theme.createFromRawTheme(options.theme, options.colorMap),\n options.onigLib\n );\n this._ensureGrammarCache = /* @__PURE__ */ new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(\n initialScopeName,\n initialLanguage,\n configuration.embeddedLanguages,\n configuration.tokenTypes,\n new BalancedBracketSelectors(\n configuration.balancedBracketSelectors || [],\n configuration.unbalancedBracketSelectors || []\n )\n );\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(\n initialScopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._doLoadSingleGrammar(scopeName);\n this._ensureGrammarCache.set(scopeName, true);\n }\n }\n _doLoadSingleGrammar(scopeName) {\n const grammar = this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : void 0;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages);\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(\n scopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n};\nvar INITIAL = StateStackImpl.NULL;\nexport {\n EncodedTokenMetadata,\n FindOption,\n FontStyle,\n INITIAL,\n Registry,\n Theme,\n disposeOnigString\n};\n","// node_modules/regex-utilities/src/index.js\nvar Context = Object.freeze({\n DEFAULT: \"DEFAULT\",\n CHAR_CLASS: \"CHAR_CLASS\"\n});\nfunction replaceUnescaped(expression, needle, replacement, context) {\n const re = new RegExp(String.raw`${needle}|(?<$skip>\\[\\^?|\\\\?.)`, \"gsu\");\n const negated = [false];\n let numCharClassesOpen = 0;\n let result = \"\";\n for (const match of expression.matchAll(re)) {\n const { 0: m, groups: { $skip } } = match;\n if (!$skip && (!context || context === Context.DEFAULT === !numCharClassesOpen)) {\n if (replacement instanceof Function) {\n result += replacement(match, {\n context: numCharClassesOpen ? Context.CHAR_CLASS : Context.DEFAULT,\n negated: negated[negated.length - 1]\n });\n } else {\n result += replacement;\n }\n continue;\n }\n if (m[0] === \"[\") {\n numCharClassesOpen++;\n negated.push(m[1] === \"^\");\n } else if (m === \"]\" && numCharClassesOpen) {\n numCharClassesOpen--;\n negated.pop();\n }\n result += m;\n }\n return result;\n}\nfunction forEachUnescaped(expression, needle, callback, context) {\n replaceUnescaped(expression, needle, callback, context);\n}\nfunction execUnescaped(expression, needle, pos = 0, context) {\n if (!new RegExp(needle, \"su\").test(expression)) {\n return null;\n }\n const re = new RegExp(`${needle}|(?<$skip>\\\\\\\\?.)`, \"gsu\");\n re.lastIndex = pos;\n let numCharClassesOpen = 0;\n let match;\n while (match = re.exec(expression)) {\n const { 0: m, groups: { $skip } } = match;\n if (!$skip && (!context || context === Context.DEFAULT === !numCharClassesOpen)) {\n return match;\n }\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (m === \"]\" && numCharClassesOpen) {\n numCharClassesOpen--;\n }\n if (re.lastIndex == match.index) {\n re.lastIndex++;\n }\n }\n return null;\n}\nfunction hasUnescaped(expression, needle, context) {\n return !!execUnescaped(expression, needle, 0, context);\n}\nfunction getGroupContents(expression, contentsStartPos) {\n const token5 = /\\\\?./gsu;\n token5.lastIndex = contentsStartPos;\n let contentsEndPos = expression.length;\n let numCharClassesOpen = 0;\n let numGroupsOpen = 1;\n let match;\n while (match = token5.exec(expression)) {\n const [m] = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (m === \"(\") {\n numGroupsOpen++;\n } else if (m === \")\") {\n numGroupsOpen--;\n if (!numGroupsOpen) {\n contentsEndPos = match.index;\n break;\n }\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n return expression.slice(contentsStartPos, contentsEndPos);\n}\n\n// src/pattern.js\nvar Pattern = class {\n #value;\n /** @param {string} value */\n constructor(value) {\n this.#value = value;\n }\n /** @returns {string} */\n toString() {\n return String(this.#value);\n }\n};\nfunction pattern(first, ...substitutions) {\n if (Array.isArray(first?.raw)) {\n return new Pattern(\n // Intersperse raw template strings and substitutions\n first.raw.flatMap((raw, i) => i < first.raw.length - 1 ? [raw, substitutions[i]] : raw).join(\"\")\n );\n } else if (!substitutions.length) {\n return new Pattern(first ?? \"\");\n }\n throw new Error(`Unexpected arguments: ${JSON.stringify([first, ...substitutions])}`);\n}\n\n// src/utils.js\nvar RegexContext = {\n DEFAULT: \"R_DEFAULT\",\n CHAR_CLASS: \"R_CHAR_CLASS\",\n GROUP_NAME: \"R_GROUP_NAME\",\n ENCLOSED_TOKEN: \"R_ENCLOSED_TOKEN\",\n INTERVAL_QUANTIFIER: \"R_INTERVAL_QUANTIFIER\",\n INVALID_INCOMPLETE_TOKEN: \"R_INVALID_INCOMPLETE_TOKEN\"\n};\nvar CharClassContext = {\n DEFAULT: \"CC_DEFAULT\",\n RANGE: \"CC_RANGE\",\n ENCLOSED_TOKEN: \"CC_ENCLOSED_TOKEN\",\n Q_TOKEN: \"CC_Q_TOKEN\",\n INVALID_INCOMPLETE_TOKEN: \"CC_INVALID_INCOMPLETE_TOKEN\"\n};\nvar patternModsSupported = (() => {\n try {\n new RegExp(\"(?i:)\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nvar flagVSupported = (() => {\n try {\n new RegExp(\"\", \"v\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nvar doublePunctuatorChars = \"&!#$%*+,.:;<=>?@^`~\";\nvar emulationGroupMarker = \"$E$\";\nvar namedCapturingDelim = String.raw`\\(\\?<(?![=!])(?[^>]+)>`;\nvar capturingDelim = String.raw`\\((?!\\?)(?!(?<=\\(\\?\\()DEFINE\\))|${namedCapturingDelim}`;\nvar noncapturingDelim = String.raw`\\(\\?(?:[:=!>A-Za-z\\-]|<[=!]|\\(DEFINE\\))`;\nfunction escapeV(str, context) {\n if (context === Context.CHAR_CLASS) {\n return str.replace(new RegExp(String.raw`[()\\[\\]{}|\\\\/\\-${doublePunctuatorChars}]`, \"g\"), \"\\\\$&\");\n }\n return str.replace(/[()\\[\\]{}|\\\\^$*+?.]/g, \"\\\\$&\");\n}\nfunction sandboxLoneDoublePunctuatorChar(str) {\n return str.replace(new RegExp(`^([${doublePunctuatorChars}])(?!\\\\1)`), (m, _, pos) => {\n return `\\\\${m}${pos + 1 === str.length ? \"\" : m}`;\n });\n}\nfunction sandboxLoneCharClassCaret(str) {\n return str.replace(/^\\^/, \"\\\\^^\");\n}\nfunction sandboxUnsafeNulls(str, context) {\n return replaceUnescaped(str, String.raw`\\\\0(?!\\d)`, \"\\\\x00\", context);\n}\nfunction getUnbalancedChar(expression, leftChar, rightChar) {\n let numOpen = 0;\n for (const [m] of expression.matchAll(new RegExp(`[${escapeV(leftChar + rightChar, Context.CHAR_CLASS)}]`, \"g\"))) {\n numOpen += m === leftChar ? 1 : -1;\n if (numOpen < 0) {\n return rightChar;\n }\n }\n if (numOpen > 0) {\n return leftChar;\n }\n return \"\";\n}\nfunction getBreakoutChar(expression, regexContext, charClassContext) {\n const escapesRemoved = expression.replace(/\\\\./gsu, \"\");\n if (escapesRemoved.endsWith(\"\\\\\")) {\n return \"\\\\\";\n }\n if (regexContext === RegexContext.DEFAULT) {\n return getUnbalancedChar(escapesRemoved, \"(\", \")\");\n } else if (regexContext === RegexContext.CHAR_CLASS && !(charClassContext === CharClassContext.ENCLOSED_TOKEN || charClassContext === CharClassContext.Q_TOKEN)) {\n return getUnbalancedChar(escapesRemoved, \"[\", \"]\");\n } else if (regexContext === RegexContext.ENCLOSED_TOKEN || regexContext === RegexContext.INTERVAL_QUANTIFIER || charClassContext === CharClassContext.ENCLOSED_TOKEN || charClassContext === CharClassContext.Q_TOKEN) {\n if (escapesRemoved.includes(\"}\")) {\n return \"}\";\n }\n } else if (regexContext === RegexContext.GROUP_NAME) {\n if (escapesRemoved.includes(\">\")) {\n return \">\";\n }\n }\n return \"\";\n}\nvar contextToken = new RegExp(String.raw`\n(?\\(\\?<(?![=!])|\\\\[gk]<)\n| (?\\\\[pPu]\\{)\n| (?\\\\q\\{)\n| (?\\{)\n| (?\\\\(?: $\n | c(?![A-Za-z])\n | u(?![A-Fa-f\\d]{4})[A-Fa-f\\d]{0,3}\n | x(?![A-Fa-f\\d]{2})[A-Fa-f\\d]?\n )\n)\n| --\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction getEndContextForIncompleteExpression(incompleteExpression, {\n regexContext = RegexContext.DEFAULT,\n charClassContext = CharClassContext.DEFAULT,\n charClassDepth = 0,\n lastPos = 0\n} = {}) {\n contextToken.lastIndex = lastPos;\n let match;\n while (match = contextToken.exec(incompleteExpression)) {\n const { 0: m, groups: { groupN, enclosedT, qT, intervalQ, incompleteT } } = match;\n if (m === \"[\") {\n charClassDepth++;\n regexContext = RegexContext.CHAR_CLASS;\n charClassContext = CharClassContext.DEFAULT;\n } else if (m === \"]\" && regexContext === RegexContext.CHAR_CLASS) {\n if (charClassDepth) {\n charClassDepth--;\n }\n if (!charClassDepth) {\n regexContext = RegexContext.DEFAULT;\n }\n charClassContext = CharClassContext.DEFAULT;\n } else if (regexContext === RegexContext.CHAR_CLASS) {\n if (incompleteT) {\n charClassContext = CharClassContext.INVALID_INCOMPLETE_TOKEN;\n } else if (m === \"-\") {\n charClassContext = CharClassContext.RANGE;\n } else if (enclosedT) {\n charClassContext = CharClassContext.ENCLOSED_TOKEN;\n } else if (qT) {\n charClassContext = CharClassContext.Q_TOKEN;\n } else if (m === \"}\" && (charClassContext === CharClassContext.ENCLOSED_TOKEN || charClassContext === CharClassContext.Q_TOKEN) || // Don't continue in these contexts since we've advanced another token\n charClassContext === CharClassContext.INVALID_INCOMPLETE_TOKEN || charClassContext === CharClassContext.RANGE) {\n charClassContext = CharClassContext.DEFAULT;\n }\n } else {\n if (incompleteT) {\n regexContext = RegexContext.INVALID_INCOMPLETE_TOKEN;\n } else if (groupN) {\n regexContext = RegexContext.GROUP_NAME;\n } else if (enclosedT) {\n regexContext = RegexContext.ENCLOSED_TOKEN;\n } else if (intervalQ) {\n regexContext = RegexContext.INTERVAL_QUANTIFIER;\n } else if (m === \">\" && regexContext === RegexContext.GROUP_NAME || m === \"}\" && (regexContext === RegexContext.ENCLOSED_TOKEN || regexContext === RegexContext.INTERVAL_QUANTIFIER) || // Don't continue in this context since we've advanced another token\n regexContext === RegexContext.INVALID_INCOMPLETE_TOKEN) {\n regexContext = RegexContext.DEFAULT;\n }\n }\n }\n return {\n regexContext,\n charClassContext,\n charClassDepth,\n lastPos: incompleteExpression.length\n };\n}\nfunction countCaptures(expression) {\n let num = 0;\n forEachUnescaped(expression, capturingDelim, () => num++, Context.DEFAULT);\n return num;\n}\nfunction adjustNumberedBackrefs(expression, precedingCaptures) {\n return replaceUnescaped(\n expression,\n String.raw`\\\\(?[1-9]\\d*)`,\n ({ groups: { num } }) => `\\\\${+num + precedingCaptures}`,\n Context.DEFAULT\n );\n}\nfunction spliceStr(str, pos, oldValue, newValue) {\n return str.slice(0, pos) + newValue + str.slice(pos + oldValue.length);\n}\nvar stringPropertyNames = [\n \"Basic_Emoji\",\n \"Emoji_Keycap_Sequence\",\n \"RGI_Emoji_Modifier_Sequence\",\n \"RGI_Emoji_Flag_Sequence\",\n \"RGI_Emoji_Tag_Sequence\",\n \"RGI_Emoji_ZWJ_Sequence\",\n \"RGI_Emoji\"\n].join(\"|\");\nvar charClassUnionToken = new RegExp(String.raw`\n\\\\(?: c[A-Za-z]\n | p\\{(?${stringPropertyNames})\\}\n | [pP]\\{[^\\}]+\\}\n | (?q)\n | u(?:[A-Fa-f\\d]{4}|\\{[A-Fa-f\\d]+\\})\n | x[A-Fa-f\\d]{2}\n | .\n)\n| --\n| &&\n| .\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction containsCharClassUnion(charClassPattern) {\n let hasFirst = false;\n let lastM;\n for (const { 0: m, groups } of charClassPattern.matchAll(charClassUnionToken)) {\n if (groups.pStrProp || groups.qStrProp) {\n return true;\n }\n if (m === \"[\" && hasFirst) {\n return true;\n }\n if ([\"-\", \"--\", \"&&\"].includes(m)) {\n hasFirst = false;\n } else if (m !== \"[\" && m !== \"]\") {\n if (hasFirst || lastM === \"]\") {\n return true;\n }\n hasFirst = true;\n }\n lastM = m;\n }\n return false;\n}\nfunction preprocess(template, substitutions, preprocessor, options) {\n let newTemplate = { raw: [] };\n let newSubstitutions = [];\n let runningContext;\n template.raw.forEach((raw, i) => {\n const result = preprocessor(raw, { ...runningContext, lastPos: 0 }, options);\n newTemplate.raw.push(result.transformed);\n runningContext = result.runningContext;\n if (i < template.raw.length - 1) {\n const substitution = substitutions[i];\n if (substitution instanceof Pattern) {\n const result2 = preprocessor(substitution, { ...runningContext, lastPos: 0 }, options);\n newSubstitutions.push(pattern(result2.transformed));\n runningContext = result2.runningContext;\n } else {\n newSubstitutions.push(substitution);\n }\n }\n });\n return {\n template: newTemplate,\n substitutions: newSubstitutions\n };\n}\n\n// src/flag-n.js\nvar token = new RegExp(String.raw`\n${noncapturingDelim}\n| \\(\\?<\n| (?\\\\[1-9]\\d*)\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction flagNPreprocessor(value, runningContext) {\n value = String(value);\n let expression = \"\";\n let transformed = \"\";\n for (const { 0: m, groups: { backrefNum } } of value.matchAll(token)) {\n expression += m;\n runningContext = getEndContextForIncompleteExpression(expression, runningContext);\n const { regexContext } = runningContext;\n if (regexContext === RegexContext.DEFAULT) {\n if (m === \"(\") {\n transformed += \"(?:\";\n } else if (backrefNum) {\n throw new Error(`Invalid decimal escape \"${m}\" with implicit flag n; replace with named backreference`);\n } else {\n transformed += m;\n }\n } else {\n transformed += m;\n }\n }\n return {\n transformed,\n runningContext\n };\n}\n\n// src/flag-x.js\nvar ws = /^\\s$/;\nvar escapedWsOrHash = /^\\\\[\\s#]$/;\nvar charClassWs = /^[ \\t]$/;\nvar escapedCharClassWs = /^\\\\[ \\t]$/;\nvar token2 = new RegExp(String.raw`\n\\\\(?: [gk]<\n | [pPu]\\{\n | c[A-Za-z]\n | u[A-Fa-f\\d]{4}\n | x[A-Fa-f\\d]{2}\n | 0\\d+\n)\n| \\[\\^\n| ${noncapturingDelim}\n| \\(\\?<\n| (?[${doublePunctuatorChars}])\\k\n| --\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction flagXPreprocessor(value, runningContext, options) {\n value = String(value);\n let ignoringWs = false;\n let ignoringCharClassWs = false;\n let ignoringComment = false;\n let expression = \"\";\n let transformed = \"\";\n let lastSignificantToken = \"\";\n let lastSignificantCharClassContext = \"\";\n let separatorNeeded = false;\n const update = (str, { prefix = true, postfix = false } = {}) => {\n str = (separatorNeeded && prefix ? \"(?:)\" : \"\") + str + (postfix ? \"(?:)\" : \"\");\n separatorNeeded = false;\n return str;\n };\n for (const { 0: m, index } of value.matchAll(token2)) {\n if (ignoringComment) {\n if (m === \"\\n\") {\n ignoringComment = false;\n separatorNeeded = true;\n }\n continue;\n }\n if (ignoringWs) {\n if (ws.test(m)) {\n continue;\n }\n ignoringWs = false;\n separatorNeeded = true;\n } else if (ignoringCharClassWs) {\n if (charClassWs.test(m)) {\n continue;\n }\n ignoringCharClassWs = false;\n }\n expression += m;\n runningContext = getEndContextForIncompleteExpression(expression, runningContext);\n const { regexContext, charClassContext } = runningContext;\n if (\n // `--` is matched in one step, so boundary chars aren't `-` unless separated by whitespace\n m === \"-\" && regexContext === RegexContext.CHAR_CLASS && lastSignificantCharClassContext === CharClassContext.RANGE && (options.flags.includes(\"v\") || options.unicodeSetsPlugin)\n ) {\n throw new Error(\"Invalid unescaped hyphen as the end value for a range\");\n }\n if (\n // `??` is matched in one step by the double punctuator token\n regexContext === RegexContext.DEFAULT && /^(?:[?*+]|\\?\\?)$/.test(m) || regexContext === RegexContext.INTERVAL_QUANTIFIER && m === \"{\"\n ) {\n transformed += update(m, { prefix: false, postfix: lastSignificantToken === \"(\" && m === \"?\" });\n } else if (regexContext === RegexContext.DEFAULT) {\n if (ws.test(m)) {\n ignoringWs = true;\n } else if (m.startsWith(\"#\")) {\n ignoringComment = true;\n } else if (escapedWsOrHash.test(m)) {\n transformed += update(m[1], { prefix: false });\n } else {\n transformed += update(m);\n }\n } else if (regexContext === RegexContext.CHAR_CLASS && m !== \"[\" && m !== \"[^\") {\n if (charClassWs.test(m) && (charClassContext === CharClassContext.DEFAULT || charClassContext === CharClassContext.RANGE || charClassContext === CharClassContext.Q_TOKEN)) {\n ignoringCharClassWs = true;\n } else if (charClassContext === CharClassContext.INVALID_INCOMPLETE_TOKEN) {\n throw new Error(`Invalid incomplete token in character class: \"${m}\"`);\n } else if (escapedCharClassWs.test(m) && (charClassContext === CharClassContext.DEFAULT || charClassContext === CharClassContext.Q_TOKEN)) {\n transformed += update(m[1], { prefix: false });\n } else if (charClassContext === CharClassContext.DEFAULT) {\n const nextChar = value[index + 1] ?? \"\";\n let updated = sandboxUnsafeNulls(m);\n if (charClassWs.test(nextChar) || m === \"^\") {\n updated = sandboxLoneDoublePunctuatorChar(updated);\n }\n transformed += update(updated);\n } else {\n transformed += update(m);\n }\n } else {\n transformed += update(m);\n }\n if (!(ignoringWs || ignoringCharClassWs || ignoringComment)) {\n lastSignificantToken = m;\n lastSignificantCharClassContext = charClassContext;\n }\n }\n return {\n transformed,\n runningContext\n };\n}\nfunction cleanPlugin(expression) {\n const sep = String.raw`\\(\\?:\\)`;\n expression = replaceUnescaped(expression, `(?:${sep}){2,}`, \"(?:)\", Context.DEFAULT);\n const marker = emulationGroupMarker.replace(/\\$/g, \"\\\\$\");\n expression = replaceUnescaped(\n expression,\n String.raw`(?:${sep}(?=[)|.[$\\\\]|\\((?!DEFINE)|$)|(?<=[()|.\\]^>]|\\\\[bBdDfnrsStvwW]|\\(\\?(?:[:=!]|<[=!])|^)${sep}(?![?*+{]))(?!${marker})`,\n \"\",\n Context.DEFAULT\n );\n return expression;\n}\n\n// src/atomic.js\nvar atomicPluginToken = new RegExp(String.raw`(?${noncapturingDelim})|(?\\((?:\\?<[^>]+>)?)|\\\\?.`, \"gsu\");\nfunction atomicPlugin(expression, data) {\n if (!/\\(\\?>/.test(expression)) {\n return expression;\n }\n const aGDelim = \"(?>\";\n const emulatedAGDelim = `(?:(?=(${data.useEmulationGroups ? emulationGroupMarker : \"\"}`;\n const captureNumMap = [0];\n let numCapturesBeforeAG = 0;\n let numAGs = 0;\n let aGPos = NaN;\n let hasProcessedAG;\n do {\n hasProcessedAG = false;\n let numCharClassesOpen = 0;\n let numGroupsOpenInAG = 0;\n let inAG = false;\n let match;\n atomicPluginToken.lastIndex = Number.isNaN(aGPos) ? 0 : aGPos + emulatedAGDelim.length;\n while (match = atomicPluginToken.exec(expression)) {\n const { 0: m, index, groups: { capturingStart, noncapturingStart } } = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (m === aGDelim && !inAG) {\n aGPos = index;\n inAG = true;\n } else if (inAG && noncapturingStart) {\n numGroupsOpenInAG++;\n } else if (capturingStart) {\n if (inAG) {\n numGroupsOpenInAG++;\n } else {\n numCapturesBeforeAG++;\n captureNumMap.push(numCapturesBeforeAG + numAGs);\n }\n } else if (m === \")\" && inAG) {\n if (!numGroupsOpenInAG) {\n numAGs++;\n expression = `${expression.slice(0, aGPos)}${emulatedAGDelim}${expression.slice(aGPos + aGDelim.length, index)}))<$$${numAGs + numCapturesBeforeAG}>)${expression.slice(index + 1)}`;\n hasProcessedAG = true;\n break;\n }\n numGroupsOpenInAG--;\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n } while (hasProcessedAG);\n expression = replaceUnescaped(\n expression,\n String.raw`\\\\(?[1-9]\\d*)|<\\$\\$(?\\d+)>`,\n ({ 0: m, groups: { backrefNum, wrappedBackrefNum } }) => {\n if (backrefNum) {\n const bNum = +backrefNum;\n if (bNum > captureNumMap.length - 1) {\n throw new Error(`Backref \"${m}\" greater than number of captures`);\n }\n return `\\\\${captureNumMap[bNum]}`;\n }\n return `\\\\${wrappedBackrefNum}`;\n },\n Context.DEFAULT\n );\n return expression;\n}\nvar baseQuantifier = String.raw`(?:[?*+]|\\{\\d+(?:,\\d*)?\\})`;\nvar possessivePluginToken = new RegExp(String.raw`\n\\\\(?: \\d+\n | c[A-Za-z]\n | [gk]<[^>]+>\n | [pPu]\\{[^\\}]+\\}\n | u[A-Fa-f\\d]{4}\n | x[A-Fa-f\\d]{2}\n )\n| \\((?: \\? (?: [:=!>]\n | <(?:[=!]|[^>]+>)\n | [A-Za-z\\-]+:\n | \\(DEFINE\\)\n ))?\n| (?${baseQuantifier})(?[?+]?)(?[?*+\\{]?)\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction possessivePlugin(expression) {\n if (!new RegExp(`${baseQuantifier}\\\\+`).test(expression)) {\n return expression;\n }\n const openGroupIndices = [];\n let lastGroupIndex = null;\n let lastCharClassIndex = null;\n let lastToken = \"\";\n let numCharClassesOpen = 0;\n let match;\n possessivePluginToken.lastIndex = 0;\n while (match = possessivePluginToken.exec(expression)) {\n const { 0: m, index, groups: { qBase, qMod, invalidQ } } = match;\n if (m === \"[\") {\n if (!numCharClassesOpen) {\n lastCharClassIndex = index;\n }\n numCharClassesOpen++;\n } else if (m === \"]\") {\n if (numCharClassesOpen) {\n numCharClassesOpen--;\n } else {\n lastCharClassIndex = null;\n }\n } else if (!numCharClassesOpen) {\n if (qMod === \"+\" && lastToken && !lastToken.startsWith(\"(\")) {\n if (invalidQ) {\n throw new Error(`Invalid quantifier \"${m}\"`);\n }\n let charsAdded = -1;\n if (/^\\{\\d+\\}$/.test(qBase)) {\n expression = spliceStr(expression, index + qBase.length, qMod, \"\");\n } else {\n if (lastToken === \")\" || lastToken === \"]\") {\n const nodeIndex = lastToken === \")\" ? lastGroupIndex : lastCharClassIndex;\n if (nodeIndex === null) {\n throw new Error(`Invalid unmatched \"${lastToken}\"`);\n }\n expression = `${expression.slice(0, nodeIndex)}(?>${expression.slice(nodeIndex, index)}${qBase})${expression.slice(index + m.length)}`;\n } else {\n expression = `${expression.slice(0, index - lastToken.length)}(?>${lastToken}${qBase})${expression.slice(index + m.length)}`;\n }\n charsAdded += 4;\n }\n possessivePluginToken.lastIndex += charsAdded;\n } else if (m[0] === \"(\") {\n openGroupIndices.push(index);\n } else if (m === \")\") {\n lastGroupIndex = openGroupIndices.length ? openGroupIndices.pop() : null;\n }\n }\n lastToken = m;\n }\n return expression;\n}\n\n// src/subroutines.js\nfunction subroutinesPlugin(expression, data) {\n const namedGroups = getNamedCapturingGroups(expression, { includeContents: true });\n const transformed = processSubroutines(expression, namedGroups, data.useEmulationGroups);\n return processDefinitionGroup(transformed, namedGroups);\n}\nvar subroutinePattern = String.raw`\\\\g<(?[^>&]+)>`;\nvar token3 = new RegExp(String.raw`\n${subroutinePattern}\n| (?${capturingDelim})\n| \\\\(?[1-9]\\d*)\n| \\\\k<(?[^>]+)>\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction processSubroutines(expression, namedGroups, useEmulationGroups) {\n if (!/\\\\g]+>)\", Context.DEFAULT);\n const subroutineWrapper = hasBackrefs ? `(${useEmulationGroups ? emulationGroupMarker : \"\"}` : \"(?:\";\n const openSubroutines = /* @__PURE__ */ new Map();\n const openSubroutinesStack = [];\n const captureNumMap = [0];\n let numCapturesPassedOutsideSubroutines = 0;\n let numCapturesPassedInsideSubroutines = 0;\n let numCapturesPassedInsideThisSubroutine = 0;\n let numSubroutineCapturesTrackedInRemap = 0;\n let numCharClassesOpen = 0;\n let result = expression;\n let match;\n token3.lastIndex = 0;\n while (match = token3.exec(result)) {\n const { 0: m, index, groups: { subroutineName, capturingStart, backrefNum, backrefName } } = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (subroutineName) {\n if (!namedGroups.has(subroutineName)) {\n throw new Error(`Invalid named capture referenced by subroutine ${m}`);\n }\n if (openSubroutines.has(subroutineName)) {\n throw new Error(`Subroutine ${m} followed a recursive reference`);\n }\n const contents = namedGroups.get(subroutineName).contents;\n const subroutineValue = `${subroutineWrapper}${contents})`;\n if (hasBackrefs) {\n numCapturesPassedInsideThisSubroutine = 0;\n numCapturesPassedInsideSubroutines++;\n }\n openSubroutines.set(subroutineName, {\n // Incrementally decremented to track when we've left the group\n unclosedGroupCount: countOpenParens(subroutineValue)\n });\n openSubroutinesStack.push(subroutineName);\n result = spliceStr(result, index, m, subroutineValue);\n token3.lastIndex -= m.length - subroutineWrapper.length;\n } else if (capturingStart) {\n if (openSubroutines.size) {\n if (hasBackrefs) {\n numCapturesPassedInsideThisSubroutine++;\n numCapturesPassedInsideSubroutines++;\n }\n if (m !== \"(\") {\n result = spliceStr(result, index, m, subroutineWrapper);\n token3.lastIndex -= m.length - subroutineWrapper.length;\n }\n } else if (hasBackrefs) {\n captureNumMap.push(\n lastOf(captureNumMap) + 1 + numCapturesPassedInsideSubroutines - numSubroutineCapturesTrackedInRemap\n );\n numSubroutineCapturesTrackedInRemap = numCapturesPassedInsideSubroutines;\n numCapturesPassedOutsideSubroutines++;\n }\n } else if ((backrefNum || backrefName) && openSubroutines.size) {\n const num = backrefNum ? +backrefNum : namedGroups.get(backrefName)?.groupNum;\n let isGroupFromThisSubroutine = false;\n for (const s of openSubroutinesStack) {\n const group = namedGroups.get(s);\n if (num >= group.groupNum && num <= group.groupNum + group.numCaptures) {\n isGroupFromThisSubroutine = true;\n break;\n }\n }\n if (isGroupFromThisSubroutine) {\n const group = namedGroups.get(lastOf(openSubroutinesStack));\n const subroutineNum = numCapturesPassedOutsideSubroutines + numCapturesPassedInsideSubroutines - numCapturesPassedInsideThisSubroutine;\n const metadata = `\\\\k<$$b${num}s${subroutineNum}r${group.groupNum}c${group.numCaptures}>`;\n result = spliceStr(result, index, m, metadata);\n token3.lastIndex += metadata.length - m.length;\n }\n } else if (m === \")\") {\n if (openSubroutines.size) {\n const subroutine = openSubroutines.get(lastOf(openSubroutinesStack));\n subroutine.unclosedGroupCount--;\n if (!subroutine.unclosedGroupCount) {\n openSubroutines.delete(openSubroutinesStack.pop());\n }\n }\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n if (hasBackrefs) {\n result = replaceUnescaped(\n result,\n String.raw`\\\\(?:(?[1-9]\\d*)|k<\\$\\$b(?\\d+)s(?\\d+)r(?\\d+)c(?\\d+)>)`,\n ({ 0: m, groups: { bNum, bNumSub, subNum, refNum, refCaps } }) => {\n if (bNum) {\n const backrefNum = +bNum;\n if (backrefNum > captureNumMap.length - 1) {\n throw new Error(`Backref \"${m}\" greater than number of captures`);\n }\n return `\\\\${captureNumMap[backrefNum]}`;\n }\n const backrefNumInSubroutine = +bNumSub;\n const subroutineGroupNum = +subNum;\n const refGroupNum = +refNum;\n const numCapturesInRef = +refCaps;\n if (backrefNumInSubroutine < refGroupNum || backrefNumInSubroutine > refGroupNum + numCapturesInRef) {\n return `\\\\${captureNumMap[backrefNumInSubroutine]}`;\n }\n return `\\\\${subroutineGroupNum - refGroupNum + backrefNumInSubroutine}`;\n },\n Context.DEFAULT\n );\n }\n return result;\n}\nvar defineGroupToken = new RegExp(String.raw`${namedCapturingDelim}|\\(\\?:\\)|(?\\\\?.)`, \"gsu\");\nfunction processDefinitionGroup(expression, namedGroups) {\n const defineMatch = execUnescaped(expression, String.raw`\\(\\?\\(DEFINE\\)`, 0, Context.DEFAULT);\n if (!defineMatch) {\n return expression;\n }\n const defineGroup = getGroup(expression, defineMatch);\n if (defineGroup.afterPos < expression.length) {\n throw new Error(\"DEFINE group allowed only at the end of a regex\");\n } else if (defineGroup.afterPos > expression.length) {\n throw new Error(\"DEFINE group is unclosed\");\n }\n let match;\n defineGroupToken.lastIndex = 0;\n while (match = defineGroupToken.exec(defineGroup.contents)) {\n const { captureName, invalid } = match.groups;\n if (captureName) {\n const group = getGroup(defineGroup.contents, match);\n let duplicateName;\n if (!namedGroups.get(captureName).isUnique) {\n duplicateName = captureName;\n } else {\n const nestedNamedGroups = getNamedCapturingGroups(group.contents);\n for (const name of nestedNamedGroups.keys()) {\n if (!namedGroups.get(name).isUnique) {\n duplicateName = name;\n break;\n }\n }\n }\n if (duplicateName) {\n throw new Error(`Duplicate group name \"${duplicateName}\" within DEFINE`);\n }\n defineGroupToken.lastIndex = group.afterPos;\n } else if (invalid) {\n throw new Error(`DEFINE group includes unsupported syntax at top level`);\n }\n }\n return expression.slice(0, defineMatch.index);\n}\nfunction countOpenParens(expression) {\n let num = 0;\n forEachUnescaped(expression, \"\\\\(\", () => num++, Context.DEFAULT);\n return num;\n}\nfunction getCaptureNum(expression, groupName) {\n let num = 0;\n let pos = 0;\n let match;\n while (match = execUnescaped(expression, capturingDelim, pos, Context.DEFAULT)) {\n const { 0: m, index, groups: { captureName } } = match;\n num++;\n if (captureName === groupName) {\n break;\n }\n pos = index + m.length;\n }\n return num;\n}\nfunction getGroup(expression, delimMatch) {\n const contentsStart = delimMatch.index + delimMatch[0].length;\n const contents = getGroupContents(expression, contentsStart);\n const afterPos = contentsStart + contents.length + 1;\n return {\n contents,\n afterPos\n };\n}\nfunction getNamedCapturingGroups(expression, { includeContents } = {}) {\n const namedGroups = /* @__PURE__ */ new Map();\n forEachUnescaped(\n expression,\n namedCapturingDelim,\n ({ 0: m, index, groups: { captureName } }) => {\n if (namedGroups.has(captureName)) {\n namedGroups.get(captureName).isUnique = false;\n } else {\n const group = { isUnique: true };\n if (includeContents) {\n const contents = getGroupContents(expression, index + m.length);\n Object.assign(group, {\n contents,\n groupNum: getCaptureNum(expression, captureName),\n numCaptures: countCaptures(contents)\n });\n }\n namedGroups.set(captureName, group);\n }\n },\n Context.DEFAULT\n );\n return namedGroups;\n}\nfunction lastOf(arr) {\n return arr[arr.length - 1];\n}\n\n// src/backcompat.js\nvar incompatibleEscapeChars = \"&!#%,:;<=>@`~\";\nvar token4 = new RegExp(String.raw`\n\\[\\^?-?\n| --?\\]\n| (?[${doublePunctuatorChars}])\\k\n| --\n| \\\\(?[${incompatibleEscapeChars}])\n| \\\\[pPu]\\{[^}]+\\}\n| \\\\?.\n`.replace(/\\s+/g, \"\"), \"gsu\");\nfunction backcompatPlugin(expression) {\n const unescapedLiteralHyphenMsg = 'Invalid unescaped \"-\" in character class';\n let inCharClass = false;\n let result = \"\";\n for (const { 0: m, groups: { dp, vOnlyEscape } } of expression.matchAll(token4)) {\n if (m[0] === \"[\") {\n if (inCharClass) {\n throw new Error(\"Invalid nested character class when flag v not supported; possibly from interpolation\");\n }\n if (m.endsWith(\"-\")) {\n throw new Error(unescapedLiteralHyphenMsg);\n }\n inCharClass = true;\n } else if (m.endsWith(\"]\")) {\n if (m[0] === \"-\") {\n throw new Error(unescapedLiteralHyphenMsg);\n }\n inCharClass = false;\n } else if (inCharClass) {\n if (m === \"&&\" || m === \"--\") {\n throw new Error(`Invalid set operator \"${m}\" when flag v not supported`);\n } else if (dp) {\n throw new Error(`Invalid double punctuator \"${m}\", reserved by flag v`);\n } else if (\"(){}/|\".includes(m)) {\n throw new Error(`Invalid unescaped \"${m}\" in character class`);\n } else if (vOnlyEscape) {\n result += vOnlyEscape;\n continue;\n }\n }\n result += m;\n }\n return result;\n}\n\n// src/regex.js\nvar regex = (first, ...substitutions) => {\n if (Array.isArray(first?.raw)) {\n return regexFromTemplate({}, first, ...substitutions);\n } else if ((typeof first === \"string\" || first === void 0) && !substitutions.length) {\n return regexFromTemplate.bind(null, { flags: first ?? \"\" });\n } else if ({}.toString.call(first) === \"[object Object]\" && !substitutions.length) {\n return regexFromTemplate.bind(null, first);\n }\n throw new Error(`Unexpected arguments: ${JSON.stringify([first, ...substitutions])}`);\n};\nvar regexFromTemplate = (options, template, ...substitutions) => {\n const opts = getOptions(options);\n const prepped = handlePreprocessors(template, substitutions, opts);\n let precedingCaptures = 0;\n let expression = \"\";\n let runningContext;\n prepped.template.raw.forEach((raw, i) => {\n const wrapEscapedStr = !!(prepped.template.raw[i] || prepped.template.raw[i + 1]);\n precedingCaptures += countCaptures(raw);\n expression += sandboxUnsafeNulls(raw, Context.CHAR_CLASS);\n runningContext = getEndContextForIncompleteExpression(expression, runningContext);\n const { regexContext, charClassContext } = runningContext;\n if (i < prepped.template.raw.length - 1) {\n const substitution = prepped.substitutions[i];\n expression += interpolate(substitution, opts.flags, regexContext, charClassContext, wrapEscapedStr, precedingCaptures);\n if (substitution instanceof RegExp) {\n precedingCaptures += countCaptures(substitution.source);\n } else if (substitution instanceof Pattern) {\n precedingCaptures += countCaptures(String(substitution));\n }\n }\n });\n expression = handlePlugins(expression, opts);\n if (opts.subclass) {\n const unmarked = unmarkEmulationGroups(expression);\n return new WrappedRegExp(unmarked.expression, opts.flags, { captureMap: unmarked.captureMap });\n }\n return new RegExp(expression, opts.flags);\n};\nfunction rewrite(expression = \"\", options = {}) {\n const opts = getOptions(options);\n if (opts.subclass) {\n throw new Error(\"Cannot use option subclass\");\n }\n return {\n expression: handlePlugins(\n handlePreprocessors({ raw: [expression] }, [], opts).template.raw[0],\n opts\n ),\n flags: opts.flags\n };\n}\nfunction getOptions(options) {\n const opts = {\n flags: \"\",\n subclass: false,\n plugins: [],\n unicodeSetsPlugin: backcompatPlugin,\n disable: {\n /* n, v, x, atomic, subroutines */\n },\n force: {\n /* v */\n },\n ...options\n };\n if (/[nuvx]/.test(opts.flags)) {\n throw new Error(\"Implicit flags v/u/x/n cannot be explicitly added\");\n }\n const useFlagV = opts.force.v || (opts.disable.v ? false : flagVSupported);\n opts.flags += useFlagV ? \"v\" : \"u\";\n if (useFlagV) {\n opts.unicodeSetsPlugin = null;\n }\n return opts;\n}\nfunction handlePreprocessors(template, substitutions, options) {\n const preprocessors = [];\n if (!options.disable.x) {\n preprocessors.push(flagXPreprocessor);\n }\n if (!options.disable.n) {\n preprocessors.push(flagNPreprocessor);\n }\n for (const pp of preprocessors) {\n ({ template, substitutions } = preprocess(template, substitutions, pp, options));\n }\n return {\n template,\n substitutions\n };\n}\nfunction handlePlugins(expression, options) {\n const { flags, plugins, unicodeSetsPlugin, disable, subclass } = options;\n [\n ...plugins,\n // Run first, so provided plugins can output extended syntax\n ...disable.subroutines ? [] : [subroutinesPlugin],\n ...disable.atomic ? [] : [possessivePlugin, atomicPlugin],\n ...disable.x ? [] : [cleanPlugin],\n // Run last, so it doesn't have to worry about parsing extended syntax\n ...!unicodeSetsPlugin ? [] : [unicodeSetsPlugin]\n ].forEach((p) => expression = p(expression, { flags, useEmulationGroups: subclass }));\n return expression;\n}\nvar WrappedRegExp = class _WrappedRegExp extends RegExp {\n #captureMap;\n /**\n @param {string | WrappedRegExp} expression\n @param {string} [flags]\n @param {{captureMap: Array;}} [data]\n */\n constructor(expression, flags, data) {\n super(expression, flags);\n if (data) {\n this.#captureMap = data.captureMap;\n } else if (expression instanceof _WrappedRegExp) {\n this.#captureMap = expression.#captureMap;\n }\n }\n /**\n Called internally by all String/RegExp methods that use regexes.\n @override\n @param {string} str\n @returns {RegExpExecArray | null}\n */\n exec(str) {\n const match = RegExp.prototype.exec.call(this, str);\n if (!match || !this.#captureMap) {\n return match;\n }\n const copy = [...match];\n match.length = 1;\n for (let i = 1; i < copy.length; i++) {\n if (this.#captureMap[i]) {\n match.push(copy[i]);\n }\n }\n return match;\n }\n};\nfunction interpolate(value, flags, regexContext, charClassContext, wrapEscapedStr, precedingCaptures) {\n if (value instanceof RegExp && regexContext !== RegexContext.DEFAULT) {\n throw new Error(\"Cannot interpolate a RegExp at this position because the syntax context does not match\");\n }\n if (regexContext === RegexContext.INVALID_INCOMPLETE_TOKEN || charClassContext === CharClassContext.INVALID_INCOMPLETE_TOKEN) {\n throw new Error(\"Interpolation preceded by invalid incomplete token\");\n }\n const isPattern = value instanceof Pattern;\n let escapedValue = \"\";\n if (!(value instanceof RegExp)) {\n value = String(value);\n if (!isPattern) {\n escapedValue = escapeV(\n value,\n regexContext === RegexContext.CHAR_CLASS ? Context.CHAR_CLASS : Context.DEFAULT\n );\n }\n const breakoutChar = getBreakoutChar(escapedValue || value, regexContext, charClassContext);\n if (breakoutChar) {\n throw new Error(`Unescaped stray \"${breakoutChar}\" in the interpolated value would have side effects outside it`);\n }\n }\n if (regexContext === RegexContext.ENCLOSED_TOKEN || regexContext === RegexContext.INTERVAL_QUANTIFIER || regexContext === RegexContext.GROUP_NAME || charClassContext === CharClassContext.ENCLOSED_TOKEN || charClassContext === CharClassContext.Q_TOKEN) {\n return isPattern ? String(value) : escapedValue;\n } else if (regexContext === RegexContext.CHAR_CLASS) {\n if (isPattern) {\n if (hasUnescaped(String(value), \"^-|^&&|-$|&&$\")) {\n throw new Error(\"Cannot use range or set operator at boundary of interpolated pattern; move the operation into the pattern or the operator outside of it\");\n }\n const sandboxedValue = sandboxLoneCharClassCaret(sandboxLoneDoublePunctuatorChar(value));\n return containsCharClassUnion(value) ? `[${sandboxedValue}]` : sandboxUnsafeNulls(sandboxedValue);\n }\n return containsCharClassUnion(escapedValue) ? `[${escapedValue}]` : escapedValue;\n }\n if (value instanceof RegExp) {\n const transformed = transformForLocalFlags(value, flags);\n const backrefsAdjusted = adjustNumberedBackrefs(transformed.value, precedingCaptures);\n return transformed.usedModifier ? backrefsAdjusted : `(?:${backrefsAdjusted})`;\n }\n if (isPattern) {\n return `(?:${value})`;\n }\n return wrapEscapedStr ? `(?:${escapedValue})` : escapedValue;\n}\nfunction transformForLocalFlags(re, outerFlags) {\n const modFlagsObj = {\n i: null,\n m: null,\n s: null\n };\n const newlines = \"\\\\n\\\\r\\\\u2028\\\\u2029\";\n let value = re.source;\n if (re.ignoreCase !== outerFlags.includes(\"i\")) {\n if (patternModsSupported) {\n modFlagsObj.i = re.ignoreCase;\n } else {\n throw new Error(\"Pattern modifiers not supported, so flag i on the outer and interpolated regex must match\");\n }\n }\n if (re.dotAll !== outerFlags.includes(\"s\")) {\n if (patternModsSupported) {\n modFlagsObj.s = re.dotAll;\n } else {\n value = replaceUnescaped(value, \"\\\\.\", re.dotAll ? \"[^]\" : `[^${newlines}]`, Context.DEFAULT);\n }\n }\n if (re.multiline !== outerFlags.includes(\"m\")) {\n if (patternModsSupported) {\n modFlagsObj.m = re.multiline;\n } else {\n value = replaceUnescaped(value, \"\\\\^\", re.multiline ? `(?<=^|[${newlines}])` : \"(? modFlagsObj[k] === true).join(\"\");\n const modOff = keys.filter((k) => modFlagsObj[k] === false).join(\"\");\n if (modOff) {\n modifier += `-${modOff}`;\n }\n if (modifier) {\n return {\n value: `(?${modifier}:${value})`,\n usedModifier: true\n };\n }\n }\n return { value };\n}\nfunction unmarkEmulationGroups(expression) {\n const marker = emulationGroupMarker.replace(/\\$/g, \"\\\\$\");\n const captureMap = [true];\n expression = replaceUnescaped(\n expression,\n `(?:${capturingDelim})(?${marker})?`,\n ({ 0: m, groups: { mark } }) => {\n if (mark) {\n captureMap.push(false);\n return m.slice(0, -emulationGroupMarker.length);\n }\n captureMap.push(true);\n return m;\n },\n Context.DEFAULT\n );\n return {\n captureMap,\n expression\n };\n}\nexport {\n pattern,\n regex,\n rewrite\n};\n//# sourceMappingURL=regex.mjs.map\n","import { FontStyle } from './types.mjs';\nimport { INITIAL, EncodedTokenMetadata, Registry as Registry$1, Theme } from '@shikijs/vscode-textmate';\nexport { EncodedTokenMetadata as StackElementMetadata } from '@shikijs/vscode-textmate';\nimport { onigurumaToRegexp } from 'oniguruma-to-js';\nimport { rewrite } from 'regex';\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\nfunction getHeapMax() {\n return 2147483648;\n}\nfunction _emscripten_get_now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\nconst alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple);\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n }\n catch { }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = '';\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode(((u0 & 31) << 6) | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n }\n else {\n u0 = ((u0 & 7) << 18)\n | (u1 << 12)\n | (u2 << 6)\n | (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n }\n else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : '';\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0,\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg,\n };\n const exports = await init(info);\n wasmMemory = exports.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\nlet onigBinding = null;\n// let defaultDebugCall = false\nfunction throwLastOnigError(onigBinding) {\n throw new ShikiError(onigBinding.UTF8ToString(onigBinding.getLastOnigError()));\n}\nclass UtfString {\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codepoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 0x7F)\n result += 1;\n else if (codepoint <= 0x7FF)\n result += 2;\n else if (codepoint <= 0xFFFF)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n utf16Length;\n utf8Length;\n utf16Value;\n utf8Value;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n constructor(str) {\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = (utf8Length !== utf16Length);\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codePoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 0x7F) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n }\n else if (codePoint <= 0x7FF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n }\n else if (codePoint <= 0xFFFF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n }\n else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 0x7F) {\n utf8Value[i8++] = codePoint;\n }\n else if (codePoint <= 0x7FF) {\n utf8Value[i8++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint <= 0xFFFF) {\n utf8Value[i8++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n utf8Value[i8++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n createString(onigBinding) {\n const result = onigBinding.omalloc(this.utf8Length);\n onigBinding.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nclass OnigString {\n static LAST_ID = 0;\n static _sharedPtr = 0; // a pointer to a string of 10000 bytes\n static _sharedPtrInUse = false;\n id = (++OnigString.LAST_ID);\n _onigBinding;\n content;\n utf16Length;\n utf8Length;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n ptr;\n constructor(str) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 10000 && !OnigString._sharedPtrInUse) {\n if (!OnigString._sharedPtr)\n OnigString._sharedPtr = onigBinding.omalloc(10000);\n OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, OnigString._sharedPtr);\n this.ptr = OnigString._sharedPtr;\n }\n else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === OnigString._sharedPtr)\n OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n}\nclass OnigScanner {\n _onigBinding;\n _ptr;\n constructor(patterns) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n // let debugCall = defaultDebugCall\n let options = 0 /* FindOption.None */;\n if (typeof arg === 'number') {\n // if (arg & FindOption.DebugCall)\n // debugCall = true\n options = arg;\n }\n if (typeof string === 'string') {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, false, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, false, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding = this._onigBinding;\n // let resultPtr: Pointer\n // if (debugCall)\n // resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options)\n // else\n const resultPtr = onigBinding.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n // no match\n return null;\n }\n const HEAPU32 = onigBinding.HEAPU32;\n let offset = resultPtr / 4; // byte offset -> uint32 offset\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg,\n };\n }\n return {\n index,\n captureIndices,\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.instantiator === 'function');\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return (typeof dataOrOptions.default === 'function');\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.data !== 'undefined');\n}\nfunction isResponse(dataOrOptions) {\n return (typeof Response !== 'undefined' && dataOrOptions instanceof Response);\n}\nfunction isArrayBuffer(data) {\n return (typeof ArrayBuffer !== 'undefined' && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)))\n // eslint-disable-next-line node/prefer-global/buffer\n || (typeof Buffer !== 'undefined' && Buffer.isBuffer?.(data))\n || (typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer)\n || (typeof Uint32Array !== 'undefined' && data instanceof Uint32Array);\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === 'function')\n instance = await instance(info);\n if (typeof instance === 'function')\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n }\n else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n }\n else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === 'function')\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n }\n else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n // import(\"shiki/onig.wasm\") returns `{ default: WebAssembly.Module }` on cloudflare workers\n // https://developers.cloudflare.com/workers/wrangler/bundling/\n else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n else if ('default' in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if ('instance' in instance)\n instance = instance.instance;\n if ('exports' in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return importObject => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return importObject => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\n// export function createOnigString(str: string) {\n// return new OnigString(str)\n// }\n// export function createOnigScanner(patterns: string[]) {\n// return new OnigScanner(patterns)\n// }\n// export function setDefaultDebugCall(_defaultDebugCall: boolean): void {\n// defaultDebugCall = _defaultDebugCall\n// }\n\nasync function createWasmOnigEngine(options) {\n if (options)\n await loadWasm(options);\n return {\n createScanner(patterns) {\n return new OnigScanner(patterns);\n },\n createString(s) {\n return new OnigString(s);\n },\n };\n}\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Split a string into lines, each line preserves the line ending.\n */\nfunction splitLines(code, preserveEnding = false) {\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding\n ? parts[i] + (parts[i + 1] || '')\n : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\n/**\n * Check if the language is plaintext that is ignored by Shiki.\n *\n * Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isPlainLang(lang) {\n return !lang || ['plaintext', 'txt', 'text', 'plain'].includes(lang);\n}\n/**\n * Check if the language is specially handled or bypassed by Shiki.\n *\n * Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isSpecialLang(lang) {\n return lang === 'ansi' || isPlainLang(lang);\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isNoneTheme(theme) {\n return theme === 'none';\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n/**\n * Utility to append class to a hast node\n *\n * If the `property.class` is a string, it will be splitted by space and converted to an array.\n */\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === 'string')\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n/**\n * Split a token into multiple tokens by given offsets.\n *\n * The offsets are relative to the token, and should be sorted.\n */\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset,\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset,\n });\n }\n return tokens;\n}\n/**\n * Split 2D tokens array by given breakpoints.\n */\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array\n .from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints))\n .sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted\n .filter(i => token.offset < i && i < token.offset + token.content.length)\n .map(i => i - token.offset)\n .sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\n/**\n * Normalize a getter to a promise.\n */\nasync function normalizeGetter(p) {\n return Promise.resolve(typeof p === 'function' ? p() : p).then(r => r.default || r);\n}\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === 'string' ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === 'string' ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === 'string')\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles['background-color'] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles['font-style'] = 'italic';\n if (token.fontStyle & FontStyle.Bold)\n styles['font-weight'] = 'bold';\n if (token.fontStyle & FontStyle.Underline)\n styles['text-decoration'] = 'underline';\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(';');\n}\n/**\n * Creates a converter between index and position in a code block.\n *\n * Overflow/underflow are unchecked.\n */\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length,\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex,\n };\n}\n\n/**\n * A built-in transformer to add decorations to the highlighted code.\n */\nfunction transformerDecorations() {\n const map = new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n const converter = createPositionConverter(shiki.source);\n function normalizePosition(p) {\n if (typeof p === 'number') {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\n const line = converter.lines[p.line];\n if (line === undefined)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n if (p.character < 0 || p.character > line.length)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character),\n };\n }\n }\n const decorations = (shiki.options.decorations || [])\n .map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end),\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source,\n });\n }\n return map.get(shiki.meta);\n }\n return {\n name: 'shiki:decorations',\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap(d => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter(i => i.type === 'element' && i.tagName === 'span');\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = '';\n let startIndex = -1;\n let endIndex = -1;\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify$2(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n // Full line decoration\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, 'line');\n }\n // Single token decoration\n else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === 'element') {\n applyDecoration(children[0], decoration, 'token');\n }\n // Create a wrapper for the decoration\n else {\n const wrapper = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children,\n };\n applyDecoration(wrapper, decoration, 'wrapper');\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, 'line');\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || (i => i);\n el.tagName = decoration.tagName || 'span';\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class,\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n // Apply decorations in reverse order so the nested ones get applied first.\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n }\n else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach(i => i());\n },\n };\n}\nfunction verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset < bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset < foo.end.offset;\n const isBarHasFooStart = bar.start.offset < foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset < bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarEnd && isFooHasBarEnd)\n continue; // nested\n if (isBarHasFooStart && isBarHasFooEnd)\n continue; // nested\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n}\nfunction stringify$2(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify$2).join('');\n return '';\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\n}\n\n/**\n * GrammarState is a special reference object that holds the state of a grammar.\n *\n * It's used to highlight code snippets that are part of the target language.\n */\nclass GrammarState {\n _stack;\n lang;\n theme;\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, theme) {\n return new GrammarState(INITIAL, lang, theme);\n }\n constructor(_stack, lang, theme) {\n this._stack = _stack;\n this.lang = lang;\n this.theme = theme;\n }\n get scopes() {\n return getScopes(this._stack);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n scopes: this.scopes,\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = new Set();\n function pushScope(stack) {\n if (visited.has(stack))\n return;\n visited.add(stack);\n const name = stack?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack.parent)\n pushScope(stack.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state) {\n if (!(state instanceof GrammarState))\n throw new ShikiError('Invalid grammar state');\n // @ts-expect-error _stack is private\n return state._stack;\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(Object.fromEntries(namedColors.map(name => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`],\n ])));\n const parser = createAnsiSequenceParser();\n return lines.map(line => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has('reverse')) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n }\n else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : undefined;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has('dim'))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has('bold'))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has('italic'))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has('underline'))\n fontStyle |= FontStyle.Underline;\n return {\n content: token.value,\n offset: line[1], // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle,\n };\n }));\n}\n/**\n * Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n */\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n // convert from #rrggbbaa to #rrggbb(aa/2)\n const alpha = Math\n .round(Number.parseInt(hexMatch[3], 16) / 2)\n .toString(16)\n .padStart(2, '0');\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n }\n else if (hexMatch[2]) {\n // convert from #rrggbb to #rrggbb80\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n }\n else {\n // convert from #rgb to #rrggbb80\n return `#${Array\n .from(hexMatch[1])\n .map(x => `${x}${x}`)\n .join('')}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\n/**\n * Code to tokens, with a simple theme.\n */\nfunction codeToTokensBase(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map(line => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === 'ansi')\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (options.grammarState.theme !== themeName) {\n throw new ShikiError(`Grammar state theme \"${options.grammarState.theme}\" does not match highlight theme \"${themeName}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError('Plain language does not have grammar state');\n if (lang === 'ansi')\n throw new ShikiError('ANSI language does not have grammar state');\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n return _tokenizeWithTheme(code, grammar, theme, colorMap, options).tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState\n ? getGrammarStack(options.grammarState)\n : options.grammarContextCode != null\n ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n ...options,\n grammarState: undefined,\n grammarContextCode: undefined,\n }).stateStack\n : INITIAL;\n let actual = [];\n const final = [];\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === '') {\n actual = [];\n final.push([]);\n continue;\n }\n // Do not attempt to tokenize if the line length is longer than the `tokenizationMaxLineLength`\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: '',\n fontStyle: 0,\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(colorMap[EncodedTokenMetadata.getForeground(metadata)], colorReplacements);\n const fontStyle = EncodedTokenMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle,\n };\n if (options.includeExplanation) {\n const themeSettingsSelectors = [];\n if (options.includeExplanation !== 'scopeName') {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case 'string':\n selectors = setting.scope.split(/,/).map(scope => scope.trim());\n break;\n case 'object':\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map(selector => selector.split(/ /)),\n });\n }\n }\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: options.includeExplanation === 'scopeName'\n ? explainThemeScopesNameOnly(tokenWithScopes.scopes)\n : explainThemeScopesFull(themeSettingsSelectors, tokenWithScopes.scopes),\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack,\n };\n}\nfunction explainThemeScopesNameOnly(scopes) {\n return scopes.map(scope => ({ scopeName: scope }));\n}\nfunction explainThemeScopesFull(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, scopes.slice(0, i)),\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope\n || (scope.substring(0, selector.length) === selector && scope[selector.length] === '.');\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object\n .entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset,\n };\n if ('includeExplanation' in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\n */\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map(t => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i) => t.push(outLines[i]));\n const indexes = lines.map(() => 0);\n const current = lines.map(l => l[0]);\n while (current.every(t => t)) {\n const minLength = Math.min(...current.map(t => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n }\n else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength),\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength,\n };\n }\n }\n }\n }\n return outThemes;\n}\n\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object\n .entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map(t => internal.getTheme(t.theme));\n const themesOrder = themes.map(t => t.color);\n tokens = themeTokens\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset,\n };\n const styles = variantsOrder.map(t => getTokenStyleObject(merged.variants[t]));\n // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let { tokens, fg, bg, themeName, rootStyle, } = codeToTokens(internal, input, options);\n const { mergeWhitespaces = true, } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === 'never')\n tokens = splitWhitespaceTokens(tokens);\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n },\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(tokens, {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle,\n }, contextSource);\n}\nfunction tokensToHast(tokens, options, transformerContext) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: 'root',\n children: [],\n };\n const { structure = 'classic', } = options;\n let preNode = {\n type: 'element',\n tagName: 'pre',\n properties: {\n class: `shiki ${options.themeName || ''}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n tabindex: '0',\n ...Object.fromEntries(Array.from(Object.entries(options.meta || {}))\n .filter(([key]) => !key.startsWith('_'))),\n },\n children: [],\n };\n let codeNode = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: lines,\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n },\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === 'inline')\n root.children.push({ type: 'element', tagName: 'br', properties: {}, children: [] });\n else if (structure === 'classic')\n lines.push({ type: 'text', value: '\\n' });\n }\n let lineNode = {\n type: 'element',\n tagName: 'span',\n properties: { class: 'line' },\n children: [],\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children: [{ type: 'text', value: token.content }],\n };\n const style = token.htmlStyle || stringifyTokenStyle(getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode) || tokenNode;\n if (structure === 'inline')\n root.children.push(tokenNode);\n else if (structure === 'classic')\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === 'classic') {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n }\n });\n if (structure === 'classic') {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = '';\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n }\n else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content,\n });\n }\n else {\n newLine.push({\n content: carryOnContent,\n offset: firstOffset,\n }, token);\n }\n firstOffset = 0;\n carryOnContent = '';\n }\n else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content,\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset,\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length,\n });\n }\n return expanded;\n });\n });\n}\n\n/**\n * List of HTML void tag names.\n *\n * @type {Array}\n */\nconst htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n];\n\n/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nclass Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nfunction merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n\n return new Schema(property, normal, space)\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction normalize(value) {\n return value.toLowerCase()\n}\n\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n\nlet powers = 0;\n\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return 2 ** ++powers\n}\n\nvar types = /*#__PURE__*/Object.freeze({\n __proto__: null,\n boolean: boolean,\n booleanish: booleanish,\n commaOrSpaceSeparated: commaOrSpaceSeparated,\n commaSeparated: commaSeparated,\n number: number,\n overloadedBoolean: overloadedBoolean,\n spaceSeparated: spaceSeparated\n});\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\n\nclass DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1;\n\n super(property, attribute);\n\n mark(this, 'space', space);\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index];\n mark(this, checks[index], (mask & types[check]) === types[check]);\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true;\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\n\nconst own$3 = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nfunction create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n\n for (prop in definition.properties) {\n if (own$3.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n );\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n\nconst xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nconst xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n});\n\n/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n\nconst xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n});\n\nconst aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n});\n\nconst html$3 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `