From 816393a6038910ab325aa62e0692a8e848851a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Pelay?= Date: Tue, 14 Nov 2023 16:28:49 -0400 Subject: [PATCH] revert codemirror changes --- build-tools/heroku/generate-grammars-and-js | 3 - build-tools/heroku/generate-lezer-parsers | 9 - highlighting/lezer-grammars/level1.grammar | 34 - highlighting/lezer-grammars/level10.grammar | 118 --- highlighting/lezer-grammars/level11.grammar | 120 --- highlighting/lezer-grammars/level12.grammar | 135 ---- highlighting/lezer-grammars/level13.grammar | 136 ---- highlighting/lezer-grammars/level14.grammar | 140 ---- highlighting/lezer-grammars/level15.grammar | 143 ---- highlighting/lezer-grammars/level16.grammar | 144 ---- highlighting/lezer-grammars/level17.grammar | 145 ---- highlighting/lezer-grammars/level18.grammar | 138 ---- highlighting/lezer-grammars/level2.grammar | 39 - highlighting/lezer-grammars/level3.grammar | 50 -- highlighting/lezer-grammars/level4.grammar | 73 -- highlighting/lezer-grammars/level5.grammar | 92 --- highlighting/lezer-grammars/level6.grammar | 115 --- highlighting/lezer-grammars/level7.grammar | 119 --- highlighting/lezer-grammars/level8.grammar | 115 --- highlighting/lezer-grammars/level9.grammar | 116 --- package-lock.json | 676 ++++++---------- package.json | 8 - static/js/ace-editor.ts | 84 +- static/js/app.ts | 69 +- static/js/appbundle.js | 75 +- static/js/appbundle.js.map | 6 +- static/js/cm-decorations.ts | 250 ------ static/js/cm-editor.ts | 458 ----------- static/js/cm-monokai-theme.ts | 157 ---- static/js/debugging.ts | 63 +- static/js/editor.ts | 31 +- static/js/lezer-parsers/language-packages.ts | 40 - .../js/lezer-parsers/level1-parser.terms.ts | 17 - static/js/lezer-parsers/level1-parser.ts | 22 - .../js/lezer-parsers/level10-parser.terms.ts | 48 -- static/js/lezer-parsers/level10-parser.ts | 22 - .../js/lezer-parsers/level11-parser.terms.ts | 50 -- static/js/lezer-parsers/level11-parser.ts | 22 - .../js/lezer-parsers/level12-parser.terms.ts | 58 -- static/js/lezer-parsers/level12-parser.ts | 22 - .../js/lezer-parsers/level13-parser.terms.ts | 60 -- static/js/lezer-parsers/level13-parser.ts | 22 - .../js/lezer-parsers/level14-parser.terms.ts | 60 -- static/js/lezer-parsers/level14-parser.ts | 22 - .../js/lezer-parsers/level15-parser.terms.ts | 62 -- static/js/lezer-parsers/level15-parser.ts | 22 - .../js/lezer-parsers/level16-parser.terms.ts | 61 -- static/js/lezer-parsers/level16-parser.ts | 22 - .../js/lezer-parsers/level17-parser.terms.ts | 63 -- static/js/lezer-parsers/level17-parser.ts | 22 - .../js/lezer-parsers/level18-parser.terms.ts | 60 -- static/js/lezer-parsers/level18-parser.ts | 22 - .../js/lezer-parsers/level2-parser.terms.ts | 19 - static/js/lezer-parsers/level2-parser.ts | 22 - .../js/lezer-parsers/level3-parser.terms.ts | 30 - static/js/lezer-parsers/level3-parser.ts | 22 - .../js/lezer-parsers/level4-parser.terms.ts | 33 - static/js/lezer-parsers/level4-parser.ts | 22 - .../js/lezer-parsers/level5-parser.terms.ts | 42 - static/js/lezer-parsers/level5-parser.ts | 22 - .../js/lezer-parsers/level6-parser.terms.ts | 44 -- static/js/lezer-parsers/level6-parser.ts | 22 - .../js/lezer-parsers/level7-parser.terms.ts | 47 -- static/js/lezer-parsers/level7-parser.ts | 22 - .../js/lezer-parsers/level8-parser.terms.ts | 46 -- static/js/lezer-parsers/level8-parser.ts | 22 - .../js/lezer-parsers/level9-parser.terms.ts | 46 -- static/js/lezer-parsers/level9-parser.ts | 22 - static/js/lezer-parsers/tokens.ts | 728 ------------------ static/js/modal.ts | 43 +- templates/incl/editor-and-output.html | 4 +- tests/cypress/e2e/hedy_page/debugger.cy.js | 711 ++++++++--------- tests/cypress/e2e/hedy_page/editor_box.cy.js | 22 +- .../e2e/hedy_page/keyword_language.cy.js | 8 +- .../e2e/hedy_page/syntax_highlighting.cy.js | 21 + tests/cypress/e2e/hedy_page/try_button.cy.js | 2 +- tests/cypress/e2e/lezer-tests/level_01.cy.js | 112 --- tests/cypress/e2e/lezer-tests/level_02.cy.js | 96 --- tests/cypress/e2e/lezer-tests/level_03.cy.js | 51 -- tests/cypress/e2e/lezer-tests/level_06.cy.js | 32 - .../e2e/public_programs/programs_page.cy.js | 4 +- tests/cypress/e2e/tools/lezer/lezer_tester.js | 58 -- 82 files changed, 753 insertions(+), 6282 deletions(-) delete mode 100755 build-tools/heroku/generate-lezer-parsers delete mode 100644 highlighting/lezer-grammars/level1.grammar delete mode 100644 highlighting/lezer-grammars/level10.grammar delete mode 100644 highlighting/lezer-grammars/level11.grammar delete mode 100644 highlighting/lezer-grammars/level12.grammar delete mode 100644 highlighting/lezer-grammars/level13.grammar delete mode 100644 highlighting/lezer-grammars/level14.grammar delete mode 100644 highlighting/lezer-grammars/level15.grammar delete mode 100644 highlighting/lezer-grammars/level16.grammar delete mode 100644 highlighting/lezer-grammars/level17.grammar delete mode 100644 highlighting/lezer-grammars/level18.grammar delete mode 100644 highlighting/lezer-grammars/level2.grammar delete mode 100644 highlighting/lezer-grammars/level3.grammar delete mode 100644 highlighting/lezer-grammars/level4.grammar delete mode 100644 highlighting/lezer-grammars/level5.grammar delete mode 100644 highlighting/lezer-grammars/level6.grammar delete mode 100644 highlighting/lezer-grammars/level7.grammar delete mode 100644 highlighting/lezer-grammars/level8.grammar delete mode 100644 highlighting/lezer-grammars/level9.grammar delete mode 100644 static/js/cm-decorations.ts delete mode 100644 static/js/cm-editor.ts delete mode 100644 static/js/cm-monokai-theme.ts delete mode 100644 static/js/lezer-parsers/language-packages.ts delete mode 100644 static/js/lezer-parsers/level1-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level1-parser.ts delete mode 100644 static/js/lezer-parsers/level10-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level10-parser.ts delete mode 100644 static/js/lezer-parsers/level11-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level11-parser.ts delete mode 100644 static/js/lezer-parsers/level12-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level12-parser.ts delete mode 100644 static/js/lezer-parsers/level13-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level13-parser.ts delete mode 100644 static/js/lezer-parsers/level14-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level14-parser.ts delete mode 100644 static/js/lezer-parsers/level15-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level15-parser.ts delete mode 100644 static/js/lezer-parsers/level16-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level16-parser.ts delete mode 100644 static/js/lezer-parsers/level17-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level17-parser.ts delete mode 100644 static/js/lezer-parsers/level18-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level18-parser.ts delete mode 100644 static/js/lezer-parsers/level2-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level2-parser.ts delete mode 100644 static/js/lezer-parsers/level3-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level3-parser.ts delete mode 100644 static/js/lezer-parsers/level4-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level4-parser.ts delete mode 100644 static/js/lezer-parsers/level5-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level5-parser.ts delete mode 100644 static/js/lezer-parsers/level6-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level6-parser.ts delete mode 100644 static/js/lezer-parsers/level7-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level7-parser.ts delete mode 100644 static/js/lezer-parsers/level8-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level8-parser.ts delete mode 100644 static/js/lezer-parsers/level9-parser.terms.ts delete mode 100644 static/js/lezer-parsers/level9-parser.ts delete mode 100644 static/js/lezer-parsers/tokens.ts delete mode 100644 tests/cypress/e2e/lezer-tests/level_01.cy.js delete mode 100644 tests/cypress/e2e/lezer-tests/level_02.cy.js delete mode 100644 tests/cypress/e2e/lezer-tests/level_03.cy.js delete mode 100644 tests/cypress/e2e/lezer-tests/level_06.cy.js delete mode 100644 tests/cypress/e2e/tools/lezer/lezer_tester.js diff --git a/build-tools/heroku/generate-grammars-and-js b/build-tools/heroku/generate-grammars-and-js index 3e580cb1aad..1a8be99a2e7 100755 --- a/build-tools/heroku/generate-grammars-and-js +++ b/build-tools/heroku/generate-grammars-and-js @@ -9,8 +9,5 @@ python3 ../../content/yaml_to_lark_utils.py echo '-----> Creating python prefixes for TypeScript' ./generate-prefixes-ts -echo '-----> Generating the lezer parsers' -./generate-lezer-parsers - echo '-----> Compiling TypeScript' ./generate-typescript diff --git a/build-tools/heroku/generate-lezer-parsers b/build-tools/heroku/generate-lezer-parsers deleted file mode 100755 index dcb857193be..00000000000 --- a/build-tools/heroku/generate-lezer-parsers +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -eu - -# Generate the lezer parsers from the grammars specified in highlighting/lezer-grammars/ -for grammarFile in ../../highlighting/lezer-grammars/level*.grammar ; do - baseName=$(basename "$grammarFile") - tsFile=${baseName%.grammar}-parser.ts - npx lezer-generator --typeScript "$grammarFile" -o ../../static/js/lezer-parsers/$tsFile -done \ No newline at end of file diff --git a/highlighting/lezer-grammars/level1.grammar b/highlighting/lezer-grammars/level1.grammar deleted file mode 100644 index 0eafa772ab5..00000000000 --- a/highlighting/lezer-grammars/level1.grammar +++ /dev/null @@ -1,34 +0,0 @@ -@top Program { eol* (Command eol+)* Command? } -Command { - Print | Ask | Echo | Turtle | ErrorInvalid -} -Print { print+ Text+ } -Ask { ask+ Text+ } -Echo { echo+ Text* } - -Turtle[@isGroup=turtle] { - Forward { forward+ Text } | - Turn { turn+ Text } | - Color { color+ Text } -} - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - echo[@name="echo"], - ask[@name="ask"], - color[@name="color"] -} - - -@tokens { - Comment { "#" ![\n]* } - eol { "\n" } - space { " " } - Text { ![\n #]+ } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/highlighting/lezer-grammars/level10.grammar b/highlighting/lezer-grammars/level10.grammar deleted file mode 100644 index 18ce033aa44..00000000000 --- a/highlighting/lezer-grammars/level10.grammar +++ /dev/null @@ -1,118 +0,0 @@ -@top Program { eol* (Command eol+)* Command? } -Command { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove| If | Else | Repeat | For | ErrorInvalid -} - -@local tokens { - singleQuoteStringEnd { "'" | "\n" } - @else singleQuoteStringContent - } - - @skip {} { - singleQuotedString { "'" (singleQuoteStringContent)* singleQuoteStringEnd } -} - -@local tokens { - doubleQuoteStringEnd { '"' | "\n" } - @else doubleQuoteStringContent - } - - @skip {} { - doubleQuotedString { '"' (doubleQuoteStringContent)* doubleQuoteStringEnd } -} - -String { doubleQuotedString | singleQuotedString } - -Print { print ( String | ListAccess | Expression )+ } -Ask { Text (is+ | Op<"=">) ask+ ( String | ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Int ) ~ambig (Comma (Text+ | Int ))+ } // comma doesn't really parse well if it is not separated by spaces -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess )? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ Text toList+ Text } -Remove { remove+ Text from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess ) } | - Turn { turn+ (Expression | ListAccess ) } | - Color { color+ (Expression | ListAccess) } -} - -If { ifs+ Condition } -Else { elses+ } - -Condition { - EqualityCheck { Text is+ (String | Expression | pressed+) } | - InListCheck { Text ins+ Text } | - NotInListCheck { Text not_in+ Text } -} - -Repeat { repeat+ (Int | Text) times+ } - -For { fors+ Text ins+ Text } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -Expression { - Int | - Text | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - is[@name="is"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"], - fors[@name="for"] -} - -@tokens { - @precedence { - Int, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=]+ } // a little bit of a hack not to parse commas never, but lezer adds them as error nodes, so it still - space { " " } - digit { $[٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹0123456789] } // latin, arab and pa_PK (Panjabi) scripts - Int { digit+ } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/highlighting/lezer-grammars/level11.grammar b/highlighting/lezer-grammars/level11.grammar deleted file mode 100644 index 84a2c1b78a2..00000000000 --- a/highlighting/lezer-grammars/level11.grammar +++ /dev/null @@ -1,120 +0,0 @@ -@top Program { eol* (Command eol+)* Command? } -Command { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove| If | Else | Repeat | For | ErrorInvalid -} - -@local tokens { - singleQuoteStringEnd { "'" | "\n" } - @else singleQuoteStringContent - } - - @skip {} { - singleQuotedString { "'" (singleQuoteStringContent)* singleQuoteStringEnd } -} - -@local tokens { - doubleQuoteStringEnd { '"' | "\n" } - @else doubleQuoteStringContent - } - - @skip {} { - doubleQuotedString { '"' (doubleQuoteStringContent)* doubleQuoteStringEnd } -} - -String { doubleQuotedString | singleQuotedString } - -Print { print+ ( String | ListAccess | Expression )+ } -Ask { Text (is+ | Op<"=">) ask+ ( String | ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Int ) ~ambig (Comma (Text+ | Int ))+ } // comma doesn't really parse well if it is not separated by spaces -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess )? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ Text toList+ Text } -Remove { remove+ Text from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess ) } | - Turn { turn+ (Expression | ListAccess ) } | - Color { color+ (Expression | ListAccess) } -} - -If { ifs+ Condition } -Else { elses+ } - -Condition { - EqualityCheck { Text is+ (String | Expression | pressed+) } | - InListCheck { Text ins+ Text } | - NotInListCheck { Text not_in+ Text } -} - -Repeat { repeat+ (Int | Text) times+ } - -For { fors+ Text ins+ (Text | range+ (Text | Int) to+ (Text | Int)) } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -Expression { - Int | - Text | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - is[@name="is"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"], - fors[@name="for"], - to[@name="to"], - range[@name="range"] -} - -@tokens { - @precedence { - Int, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=]+ } // a little bit of a hack not to parse commas never, but lezer adds them as error nodes, so it still - space { " " } - digit { $[٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹0123456789] } // latin, arab and pa_PK (Panjabi) scripts - Int { digit+ } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/highlighting/lezer-grammars/level12.grammar b/highlighting/lezer-grammars/level12.grammar deleted file mode 100644 index ede0629fb6c..00000000000 --- a/highlighting/lezer-grammars/level12.grammar +++ /dev/null @@ -1,135 +0,0 @@ -@top Program { eol* (Command eol+)* Command? } - -Command { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove | If | Else | Repeat | For | Define | Call | Return | ErrorInvalid -} - -@local tokens { - singleQuoteStringEnd { "'" | "\n" } - @else singleQuoteStringContent - } - - @skip {} { - singleQuotedString { "'" (singleQuoteStringContent)* singleQuoteStringEnd } -} - -@local tokens { - doubleQuoteStringEnd { '"' | "\n" } - @else doubleQuoteStringContent - } - - @skip {} { - doubleQuotedString { '"' (doubleQuoteStringContent)* doubleQuoteStringEnd } -} - -String { doubleQuotedString | singleQuotedString } - - -Print { print+ ( ListAccess | Expression | Call )+ } -Ask { Text (is+ | Op<"=">) ask+ ( ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Number ) ~ambig (Comma (Text+ | Number ))+ } -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess | Call)? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ (Expression | Call ) toList+ Text } -Remove { remove+ (Expression | Call) from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess | Call) } | - Turn { turn+ (Expression | ListAccess | Call) } | - Color { color+ (Expression | ListAccess | Call) } -} - -If { ifs+ Condition } -Else { elses+ } - -Condition { - EqualityCheck { Text is+ (Expression | pressed+) } | - InListCheck { Text ins+ Text } | - NotInListCheck { Text not_in+ Text } -} - -Repeat { repeat+ (Number | Text) times+ } - -For { fors+ Text ins+ (Text | range+ (Text | Number) to+ (Text | Number)) } - -Define { define+ Text (with+ Arguments)? } -Call { call+ Text (with+ Arguments)? } -Return { returns+ ( ListAccess | Expression | Call)+ } - -Arguments { argument (Comma argument)* } -argument { Expression | ListAccess } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -// I should add Call here, but it works for now -Expression { - Number | - Text | - String | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - is[@name="is"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"], - fors[@name="for"], - to[@name="to"], - range[@name="range"], - call[@name="call"], - define[@name="define"], - returns[@name="resturns"], - with[@name="with"] -} - -@tokens { - @precedence { - Number, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=]+ } // a little bit of a hack not to parse commas never, but lezer adds them as error nodes, so it still - space { " " } - digit { $[٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹0123456789] } // latin, arab and pa_PK (Panjabi) scripts - Number { digit+ ("." digit+)? } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/highlighting/lezer-grammars/level13.grammar b/highlighting/lezer-grammars/level13.grammar deleted file mode 100644 index f7162d4b10b..00000000000 --- a/highlighting/lezer-grammars/level13.grammar +++ /dev/null @@ -1,136 +0,0 @@ -@top Program { eol* (Command eol+)* Command? } - -Command { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove | If | Else | Repeat | For | Define | Call | Return | ErrorInvalid -} - -@local tokens { - singleQuoteStringEnd { "'" | "\n" } - @else singleQuoteStringContent - } - - @skip {} { - singleQuotedString { "'" (singleQuoteStringContent)* singleQuoteStringEnd } -} - -@local tokens { - doubleQuoteStringEnd { '"' | "\n" } - @else doubleQuoteStringContent - } - - @skip {} { - doubleQuotedString { '"' (doubleQuoteStringContent)* doubleQuoteStringEnd } -} - -String { doubleQuotedString | singleQuotedString } - - -Print { print+ ( ListAccess | Expression | Call )+ } -Ask { Text (is+ | Op<"=">) ask+ ( ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Number ) ~ambig (Comma (Text+ | Number ))+ } -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess | Call)? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ (Expression | Call ) toList+ Text } -Remove { remove+ (Expression | Call) from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess | Call) } | - Turn { turn+ (Expression | ListAccess | Call) } | - Color { color+ (Expression | ListAccess | Call) } -} - -If { ifs+ Condition ((and+ | or+) Condition)* } -Else { elses+ } - -Condition { - EqualityCheck { Text is+ (Expression | pressed+) } | - InListCheck { Text ins+ Text } | - NotInListCheck { Text not_in+ Text } -} - -Repeat { repeat+ (Number | Text) times+ } - -For { fors+ Text ins+ (Text | range+ (Text | Number) to+ (Text | Number)) } - -Define { define+ Text (with+ Arguments)? } -Call { call+ Text (with+ Arguments)? } -Return { returns+ ( ListAccess | Expression | Call)+ } - -Arguments { argument (Comma argument)* } -argument { Expression | ListAccess } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -// I should add Call here, but it works for now -Expression { - Number | - Text | - String | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"], - and[@name="and"], - or[@name="or"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - is[@name="is"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"], - fors[@name="for"], - to[@name="to"], - range[@name="range"], - call[@name="call"], - define[@name="define"], - returns[@name="resturns"], - with[@name="with"] -} -@tokens { - @precedence { - Number, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=]+ } // a little bit of a hack not to parse commas never, but lezer adds them as error nodes, so it still - space { " " } - digit { $[٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹0123456789] } // latin, arab and pa_PK (Panjabi) scripts - Number { digit+ ("." digit+)? } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/highlighting/lezer-grammars/level14.grammar b/highlighting/lezer-grammars/level14.grammar deleted file mode 100644 index d698fb1b869..00000000000 --- a/highlighting/lezer-grammars/level14.grammar +++ /dev/null @@ -1,140 +0,0 @@ -@top Program { eol* (Command eol+)* Command? } - -Command { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove | If | Else | Repeat | For | Define | Call | Return | ErrorInvalid -} - -@local tokens { - singleQuoteStringEnd { "'" | "\n" } - @else singleQuoteStringContent - } - - @skip {} { - singleQuotedString { "'" (singleQuoteStringContent)* singleQuoteStringEnd } -} - -@local tokens { - doubleQuoteStringEnd { '"' | "\n" } - @else doubleQuoteStringContent - } - - @skip {} { - doubleQuotedString { '"' (doubleQuoteStringContent)* doubleQuoteStringEnd } -} - -String { doubleQuotedString | singleQuotedString } - - -Print { print+ ( ListAccess | Expression | Call )+ } -Ask { Text (is+ | Op<"=">) ask+ ( ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Number ) ~ambig (Comma (Text+ | Number ))+ } -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess | Call)? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ (Expression | Call ) toList+ Text } -Remove { remove+ (Expression | Call) from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess | Call) } | - Turn { turn+ (Expression | ListAccess | Call) } | - Color { color+ (Expression | ListAccess | Call) } -} - -If { ifs+ Condition ((and+ | or+) Condition)* } -Else { elses+ } - -Condition { - PressedCheck { Text ~cond is+ pressed+ } | - EqualityCheck { (Expression | Call) (is+ | Op<"="> Op<"=">? ) (Expression | Call) } | - NotEqualCheck { (Expression | Call) (Op<"!=">) (Expression | Call) } | - ComparisonCheck { (Expression | Call) (Op<">"> | Op<"<">) Op<"=">? (Expression | Call) } | - InListCheck { (Expression ~cond | Call) ins+ Text } | - NotInListCheck { (Expression ~cond | Call) not_in+ Text } -} - -Repeat { repeat+ (Number | Text) times+ } - -For { fors+ Text ins+ (Text | range+ (Text | Number) to+ (Text | Number)) } - -Define { define+ Text (with+ Arguments)? } -Call { call+ Text (with+ Arguments)? } -Return { returns+ ( ListAccess | Expression | Call)+ } - -Arguments { argument (Comma argument)* } -argument { Expression | ListAccess } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -// I should add Call here, but it works for now -Expression { - Number | - Text | - String | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"], - and[@name="and"], - or[@name="or"], - is[@name="is"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"], - fors[@name="for"], - to[@name="to"], - range[@name="range"], - call[@name="call"], - define[@name="define"], - returns[@name="resturns"], - with[@name="with"] -} - -@tokens { - @precedence { - Number, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=>) ask+ ( ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Number ) ~ambig (Comma (Text+ | Number ))+ } -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess | Call)? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ (Expression | Call ) toList+ Text } -Remove { remove+ (Expression | Call) from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess | Call) } | - Turn { turn+ (Expression | ListAccess | Call) } | - Color { color+ (Expression | ListAccess | Call) } -} - -If { ifs+ Condition ((and+ | or+) Condition)* } -Else { elses+ } - -Condition { - PressedCheck { Text ~cond is+ pressed+ } | - EqualityCheck { (Expression | Call) (is+ | Op<"="> Op<"=">? ) (Expression | Call) } | - NotEqualCheck { (Expression | Call) (Op<"!=">) (Expression | Call) } | - ComparisonCheck { (Expression | Call) (Op<">"> | Op<"<">) Op<"=">? (Expression | Call) } | - InListCheck { (Expression ~cond | Call) ins+ Text } | - NotInListCheck { (Expression ~cond | Call) not_in+ Text } -} - -Repeat { repeat+ (Number | Text) times+ } - -For { fors+ Text ins+ (Text | range+ (Text | Number) to+ (Text | Number)) } -While { while+ Condition ((and+ | or+) Condition)* } - - -Define { define+ Text (with+ Arguments)? } -Call { call+ Text (with+ Arguments)? } -Return { returns+ ( ListAccess | Expression | Call)+ } - -Arguments { argument (Comma argument)* } -argument { Expression | ListAccess } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -// I should add Call here, but it works for now -Expression { - Number | - Text | - String | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"], - and[@name="and"], - or[@name="or"], - is[@name="is"], - while[@name="while"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"], - fors[@name="for"], - to[@name="to"], - range[@name="range"], - call[@name="call"], - define[@name="define"], - returns[@name="resturns"], - with[@name="with"] -} - -@tokens { - @precedence { - Number, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=>) ask+ ( Expression )+ } - -AssignList { Text (is+ | Op<"=">) Op<"["> (String | Number ) ~ambig (Comma (String | Number ))+ Op<"]">} -Assign { (Text | ListAccess) (is+ | Op<"=">) (Expression ~ambig )+ } -Sleep { sleep+ (Expression | Call)? } -ListAccess { Text Op<"["> (random+ | Text) Op<"]"> } -Add { add+ (Expression | Call ) toList+ Text } -Remove { remove+ (Expression | Call) from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | Call) } | - Turn { turn+ (Expression | Call) } | - Color { color+ (Expression | Call) } -} - -If { ifs+ Condition ((and+ | or+) Condition)* } -Else { elses+ } - -Condition { - PressedCheck { Text ~cond is+ pressed+ } | - EqualityCheck { (Expression | Call) (is+ | Op<"="> Op<"=">? ) (Expression | Call) } | - NotEqualCheck { (Expression | Call) (Op<"!=">) (Expression | Call) } | - ComparisonCheck { (Expression | Call) (Op<">"> | Op<"<">) Op<"=">? (Expression | Call) } | - InListCheck { (Expression ~cond | Call) ins+ Text } | - NotInListCheck { (Expression ~cond | Call) not_in+ Text } -} - - -Repeat { repeat+ (Number | Text) times+ } - -For { fors+ Text ins+ (Text | range+ (Text | Number) to+ (Text | Number)) } -While { while+ Condition ((and+ | or+) Condition)* } - -Define { define+ Text (with+ Arguments)? } -Call { call+ Text (with+ Arguments)? } -Return { returns+ (Expression | Call)+ } - -Arguments { argument (Comma argument)* } -argument { Expression } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -// I should add Call here, but it works for now -Expression { - Number | - Text | - String | - ListAccess | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"], - and[@name="and"], - or[@name="or"], - is[@name="is"], - while[@name="while"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"], - fors[@name="for"], - to[@name="to"], - range[@name="range"], - call[@name="call"], - define[@name="define"], - returns[@name="resturns"], - with[@name="with"] -} - - -@tokens { - @precedence { - Number, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { !["\n,،,、 '+#/*\-=>) ask+ ( Expression )+ } - -AssignList { Text (is+ | Op<"=">) Op<"["> (String | Number ) ~ambig (Comma (String | Number ))+ Op<"]">} -Assign { (Text | ListAccess) (is+ | Op<"=">) (Expression ~ambig )+ } -Sleep { sleep+ (Expression | Call)? } -ListAccess { Text Op<"["> (random+ | Text) Op<"]"> } -Add { add+ (Expression | Call ) toList+ Text } -Remove { remove+ (Expression | Call) from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | Call) } | - Turn { turn+ (Expression | Call) } | - Color { color+ (Expression | Call) } -} - -If { ifs+ Condition ((and+ | or+) Condition)* Op<':'> } -Else { elses+ Op<':'> } -Elif { elif+ Condition ((and+ | or+) Condition)* Op<':'> } -Condition { - PressedCheck { Text ~cond is+ pressed+ } | - EqualityCheck { (Expression | Call) (is+ | Op<"="> Op<"=">? ) (Expression | Call) } | - NotEqualCheck { (Expression | Call) (Op<"!=">) (Expression | Call) } | - ComparisonCheck { (Expression | Call) (Op<">"> | Op<"<">) Op<"=">? (Expression | Call) } | - InListCheck { (Expression ~cond | Call) ins+ Text } | - NotInListCheck { (Expression ~cond | Call) not_in+ Text } -} - - -Repeat { repeat+ (Number | Text) times+ } - -For { fors+ Text ins+ (Text | range+ (Text | Number) to+ (Text | Number)) Op<':'> } -While { while+ Condition ((and+ | or+) Condition)* Op<':'>} - -Define { define+ Text (with+ Arguments)? Op<':'>} -Call { call+ Text (with+ Arguments)? } -Return { returns+ (Expression | Call)+ } - -Arguments { argument (Comma argument)* } -argument { Expression } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -// I should add Call here, but it works for now -Expression { - Number | - Text | - String | - ListAccess | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"], - and[@name="and"], - or[@name="or"], - is[@name="is"], - while[@name="while"], - elif[@name="elif"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"], - fors[@name="for"], - to[@name="to"], - range[@name="range"], - call[@name="call"], - define[@name="define"], - returns[@name="resturns"], - with[@name="with"] -} - - -@tokens { - @precedence { - Number, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { !["\n,،,、 '+#/*\-=> Arguments? Op<")"> } - -AssignList { Text (is+ | Op<"=">) Op<"["> (String | Number ) ~ambig (Comma (String | Number ))+ Op<"]">} // Comma doesn't really parse well if it is not separated by spaces -Assign { (Text | ListAccess) (is+ | Op<"=">) (Expression ~ambig )+ } -Input { Text (is+ | Op<"=">) input+ Op<"("> Arguments? Op<")"> } -Sleep { sleep+ (Expression | Call)? } - -ListAccess { Text Op<"["> (random+ | Text) Op<"]">} - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | Call) } | - Turn { turn+ (Expression | Call) } | - Color { color+ (Expression | Call) } -} - -Add { add+ (Expression | Call ) toList+ Text } -Remove { remove+ (Expression | Call) from+ Text } -Clear { clear+ } -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -If { ifs+ Condition ((and+| or+) Condition)* Op<":"> } -Else { elses+ Op<":"> } -Elif { elif+ Condition ((and+| or+) Condition)* Op<":"> } -Condition { - PressedCheck { Text ~cond is+ pressed+ } | - EqualityCheck { (Expression | Call) (is+ | Op<"="> Op<"=">? ) (Expression | Call) } | - NotEqualCheck { (Expression | Call) (Op<"!=">) (Expression | Call) } | - ComparisonCheck { (Expression | Call) (Op<">"> | Op<"<">) Op<"=">? (Expression | Call) } | - ListCheck { (Expression ~cond | Call) notIn+ Text } -} - - -Repeat { repeat+ (Number | Text) times+ } - -For { fors+ Text ins+ (Text | range+ Op<"("> (Number | Text) Comma (Number | Text) (Comma (Number | Text))? Op<")">) Op<":"> } -While { whiles+ Condition ((and+| or+) Condition)* Op<":">} -Define { def+ Text Op<"("> Arguments? Op<")"> Op<":">} -Call { Text Op<"("> Arguments? Op<")"> } -Return { returns+ (Call)+ } - - -Arguments { argument (Comma argument)* } -argument { Expression | Call} - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -// I should add Call here, but it works for now -Expression { - Number | - Text | - String | - ListAccess | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - - -@external specialize { Text } specializeKeyword from "./tokens" { - print[@name="print"], - is[@name="is"], - input[@name="input"], - sleep[@name="sleep"], - random[@name="random"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - add[@name="add"], - remove[@name="remove"], - from[@name="from"], - clear[@name="clear"], - ifs[@name="if"], - elses[@name="else"], - and[@name="and"], - or[@name="or"], - pressed[@name="pressed"], - notIn[@name="notIn"], - ins[@name="in"], - repeat[@name="repeat"], - times[@name="times"], - range[@name="range"], - whiles[@name="while"], - def[@name="def"], - returns[@name="return"], - fors[@name="for"], - toList[@name="toList"], - elif[@name="elif"] -} - -@tokens { - @precedence { - Number, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { !["\n,،,、 '+#/*\-=>) ask+ ( String | ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Int ) ~ambig (Comma (Text+ | Int ))+ } // comma doesn't really parse well if it is not separated by spaces -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess )? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ Text toList+ Text } -Remove { remove+ Text from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess ) } | - Turn { turn+ (Expression | ListAccess ) } | - Color { color+ (Expression | ListAccess) } -} - -If { ifs+ Condition IfLessCommand? Else? } -Else { elses+ IfLessCommand? } - -Condition { - EqualityCheck { Text is+ (String | Expression | pressed+) } | - InListCheck { Text ins+ Text } | - NotInListCheck { Text not_in+ Text } -} - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -Expression { - Int | - Text | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - elses[@name="else"], - pressed[@name="pressed"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - is[@name="is"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"] -} - -@tokens { - @precedence { - Int, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=]+ } // a little bit of a hack not to parse commas never, but lezer adds them as error nodes, so it still - space { " " } - digit { $[٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹0123456789] } // latin, arab and pa_PK (Panjabi) scripts - Int { digit+ } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/highlighting/lezer-grammars/level7.grammar b/highlighting/lezer-grammars/level7.grammar deleted file mode 100644 index edb0089f97f..00000000000 --- a/highlighting/lezer-grammars/level7.grammar +++ /dev/null @@ -1,119 +0,0 @@ -@top Program { eol* (Command eol+)* Command? } -Command { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove| If | Else | Repeat |ErrorInvalid -} - -IfLessCommand { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove | Repeat | ErrorInvalid -} - -@local tokens { - singleQuoteStringEnd { "'" | "\n" } - @else singleQuoteStringContent - } - - @skip {} { - singleQuotedString { "'" (singleQuoteStringContent)* singleQuoteStringEnd } -} - -@local tokens { - doubleQuoteStringEnd { '"' | "\n" } - @else doubleQuoteStringContent - } - - @skip {} { - doubleQuotedString { '"' (doubleQuoteStringContent)* doubleQuoteStringEnd } -} - -String { doubleQuotedString | singleQuotedString } - -Print { print ( String | ListAccess | Expression )+ } -Ask { Text (is+ | Op<"=">) ask+ ( String | ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Int ) ~ambig (Comma (Text+ | Int ))+ } // comma doesn't really parse well if it is not separated by spaces -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess )? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ Text toList+ Text } -Remove { remove+ Text from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess ) } | - Turn { turn+ (Expression | ListAccess ) } | - Color { color+ (Expression | ListAccess) } -} - -If { ifs+ Condition IfLessCommand? Else? } -Else { elses+ IfLessCommand? } - -Condition { - EqualityCheck { Text is+ (String | Expression | pressed+) } | - InListCheck { Text ins+ Text } | - NotInListCheck { Text not_in+ Text } -} - -Repeat { repeat+ (Int | Text) times+ IfLessCommand? } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -Expression { - Int | - Text | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - is[@name="is"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"] -} - -@tokens { - @precedence { - Int, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=]+ } // a little bit of a hack not to parse commas never, but lezer adds them as error nodes, so it still - space { " " } - digit { $[٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹0123456789] } // latin, arab and pa_PK (Panjabi) scripts - Int { digit+ } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/highlighting/lezer-grammars/level8.grammar b/highlighting/lezer-grammars/level8.grammar deleted file mode 100644 index 1d984dd8a8d..00000000000 --- a/highlighting/lezer-grammars/level8.grammar +++ /dev/null @@ -1,115 +0,0 @@ -@top Program { eol* (Command eol+)* Command? } -Command { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove| If | Else | Repeat |ErrorInvalid -} - -@local tokens { - singleQuoteStringEnd { "'" | "\n" } - @else singleQuoteStringContent - } - - @skip {} { - singleQuotedString { "'" (singleQuoteStringContent)* singleQuoteStringEnd } -} - -@local tokens { - doubleQuoteStringEnd { '"' | "\n" } - @else doubleQuoteStringContent - } - - @skip {} { - doubleQuotedString { '"' (doubleQuoteStringContent)* doubleQuoteStringEnd } -} - -String { doubleQuotedString | singleQuotedString } - -Print { print ( String | ListAccess | Expression )+ } -Ask { Text (is+ | Op<"=">) ask+ ( String | ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Int ) ~ambig (Comma (Text+ | Int ))+ } // comma doesn't really parse well if it is not separated by spaces -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess )? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ Text toList+ Text } -Remove { remove+ Text from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess ) } | - Turn { turn+ (Expression | ListAccess ) } | - Color { color+ (Expression | ListAccess) } -} - -If { ifs+ Condition } -Else { elses+ } - -Condition { - EqualityCheck { Text is+ (String | Expression | pressed+) } | - InListCheck { Text ins+ Text } | - NotInListCheck { Text not_in+ Text } -} - -Repeat { repeat+ (Int | Text) times+ } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -Expression { - Int | - Text | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - is[@name="is"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"] -} - -@tokens { - @precedence { - Int, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=]+ } // a little bit of a hack not to parse commas never, but lezer adds them as error nodes, so it still - space { " " } - digit { $[٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹0123456789] } // latin, arab and pa_PK (Panjabi) scripts - Int { digit+ } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/highlighting/lezer-grammars/level9.grammar b/highlighting/lezer-grammars/level9.grammar deleted file mode 100644 index ac5da63aad8..00000000000 --- a/highlighting/lezer-grammars/level9.grammar +++ /dev/null @@ -1,116 +0,0 @@ -// Same as level 8 -@top Program { eol* (Command eol+)* Command? } -Command { - Assign | AssignList | Ask | Clear |Print | Turtle | Sleep | Add | Remove| If | Else | Repeat |ErrorInvalid -} - -@local tokens { - singleQuoteStringEnd { "'" | "\n" } - @else singleQuoteStringContent - } - - @skip {} { - singleQuotedString { "'" (singleQuoteStringContent)* singleQuoteStringEnd } -} - -@local tokens { - doubleQuoteStringEnd { '"' | "\n" } - @else doubleQuoteStringContent - } - - @skip {} { - doubleQuotedString { '"' (doubleQuoteStringContent)* doubleQuoteStringEnd } -} - -String { doubleQuotedString | singleQuotedString } - -Print { print ( String | ListAccess | Expression )+ } -Ask { Text (is+ | Op<"=">) ask+ ( String | ListAccess | Expression )+ } - -AssignList { Text (is+ | Op<"=">) (Text+ | Int ) ~ambig (Comma (Text+ | Int ))+ } // comma doesn't really parse well if it is not separated by spaces -Assign { Text (is+ | Op<"=">) (Expression ~ambig | ListAccess)+ } -Sleep { sleep+ (Expression | ListAccess )? } -ListAccess { Text at+ (random+ | Text) } -Add { add+ Text toList+ Text } -Remove { remove+ Text from+ Text } -Clear { clear+ } - -Turtle[@isGroup=turtle] { - Forward { forward+ (Expression | ListAccess ) } | - Turn { turn+ (Expression | ListAccess ) } | - Color { color+ (Expression | ListAccess) } -} - -If { ifs+ Condition } -Else { elses+ } - -Condition { - EqualityCheck { Text is+ (String | Expression | pressed+) } | - InListCheck { Text ins+ Text } | - NotInListCheck { Text not_in+ Text } -} - -Repeat { repeat+ (Int | Text) times+ } - -ErrorInvalid[@dynamicPrecedence=-10] { Text+ } - -Op { expr } - -binaryExpression { - Expression !times Op<"*" | "/"> Expression | - Expression !plus Op<"+" | "-"> Expression -} - -Expression { - Int | - Text | - binaryExpression -} - -@precedence { - times @left, - plus @right -} - -@external specialize { Text } specializeKeyword from "./tokens" { - ask[@name="ask"], - at[@name="at"], - random[@name="random"], - ifs[@name="if"], - pressed[@name="pressed"], - elses[@name="else"] -} - -@external extend { Text } extendKeyword from "./tokens" { - print[@name="print"], - forward[@name="forward"], - turn[@name="turn"], - color[@name="color"], - sleep[@name="sleep"], - is[@name="is"], - add[@name="add"], - from[@name="from"], - remove[@name="remove"], - toList[@name="toList"], - clear[@name="clear"], - ins[@name="in"], - not_in[@name="not_in"], - repeat[@name="repeat"], - times[@name="times"] -} - -@tokens { - @precedence { - Int, - Text - } - Comment { "#" ![\n]* } - eol { "\n" } - Comma { $[,،,、] } // every language comma is valid here - Text { ![^\n,،,、 '"#+\-*/=]+ } // a little bit of a hack not to parse commas never, but lezer adds them as error nodes, so it still - space { " " } - digit { $[٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹0123456789] } // latin, arab and pa_PK (Panjabi) scripts - Int { digit+ } -} - -@skip { Comment | space } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f040182cc30..cc4cddf7844 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,19 +9,11 @@ "version": "0.0.1", "license": "ISC", "dependencies": { - "@codemirror/commands": "^6.2.5", - "@codemirror/state": "^6.2.1", - "@codemirror/theme-one-dark": "^6.1.2", - "@codemirror/view": "^6.18.0", "@istanbuljs/nyc-config-typescript": "^1.0.2", - "@lezer/generator": "^1.5.1", - "@lezer/highlight": "^1.1.6", - "@lezer/lr": "^1.3.13", "@types/dompurify": "^2.3.3", "@types/jqueryui": "^1.12.16", "autoprefixer": "^10.4.2", "chart.js": "^3.6.2", - "codemirror": "^6.0.1", "dompurify": "^2.3.5", "istanbul-lib-coverage": "^3.2.0", "jquery-ui-dist": "^1.13.1", @@ -1848,93 +1840,6 @@ "node": ">=6.9.0" } }, - "node_modules/@codemirror/autocomplete": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.9.0.tgz", - "integrity": "sha512-Fbwm0V/Wn3BkEJZRhr0hi5BhCo5a7eBL6LYaliPjOSwCyfOpnjXY59HruSxOUNV+1OYer0Tgx1zRNQttjXyDog==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.6.0", - "@lezer/common": "^1.0.0" - }, - "peerDependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.2.5.tgz", - "integrity": "sha512-dSi7ow2P2YgPBZflR9AJoaTHvqmeGIgkhignYMd5zK5y6DANTvxKxp6eMEpIDUJkRAaOY/TFZ4jP1ADIO/GLVA==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.2.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/language": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.9.0.tgz", - "integrity": "sha512-nFu311/0ne/qGuGCL3oKuktBgzVOaxCHZPZv1tLSZkNjPYxxvkjSbzno3MlErG2tgw1Yw1yF8BxMCegeMXqpiw==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.1.tgz", - "integrity": "sha512-2Hx945qKX7FBan5/gUdTM8fsMYrNG9clIgEcPXestbLVFAUyQYFAuju/5BMNf/PwgpVaX5pvRm4+ovjbp9D9gQ==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.2.tgz", - "integrity": "sha512-WRihpqd0l9cEh9J3IZe45Yi+Z5MfTsEXnyc3V7qXHP4ZYtIYpGOn+EJ7fyLIkyAm/8S6QIr7/mMISfAadf8zCg==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.2.1.tgz", - "integrity": "sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==" - }, - "node_modules/@codemirror/theme-one-dark": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz", - "integrity": "sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.18.0.tgz", - "integrity": "sha512-T6q1yYAoU+gSWfJFR4ryvDQcyOqS+Mw5RCvh26y0KiNksOOLYhNvdB3BTyLz8vy4fKaYlzbAOyBU7OQPUGHzjQ==", - "dependencies": { - "@codemirror/state": "^6.1.4", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -1985,6 +1890,12 @@ "cypress": "*" } }, + "node_modules/@cypress/code-coverage/node_modules/dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", + "dev": true + }, "node_modules/@cypress/code-coverage/node_modules/istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", @@ -2111,9 +2022,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2140,9 +2051,9 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -2155,45 +2066,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lezer/common": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.4.tgz", - "integrity": "sha512-lZHlk8p67x4aIDtJl6UQrXSOP6oi7dQR3W/geFVrENdA1JDaAJWldnVqVjPMJupbTKbzDfFcePfKttqVidS/dg==" - }, - "node_modules/@lezer/generator": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@lezer/generator/-/generator-1.5.1.tgz", - "integrity": "sha512-vodJv2JPwsFsiBBHE463yBhvUI9TmhIu5duF/8MH304xNS6FyWH/vTyG61pjhERm5f+VBP94co0eiN+afWcvXw==", - "dependencies": { - "@lezer/common": "^1.0.2", - "@lezer/lr": "^1.3.0" - }, - "bin": { - "lezer-generator": "src/lezer-generator.cjs" - } - }, - "node_modules/@lezer/highlight": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.6.tgz", - "integrity": "sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.13.tgz", - "integrity": "sha512-RLAbau/4uSzKgIKj96mI5WUtG1qtiR0Frn0Ei9zhPj8YOkHM+1Bb8SgdVvmR/aWJCFIzjo2KFnDiRZ75Xf5NdQ==", - "dependencies": { - "@lezer/common": "^1.0.0" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@nodelib/fs.scandir": { @@ -2598,7 +2476,7 @@ "node_modules/ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "dependencies": { "co": "^4.6.0", @@ -2792,9 +2670,9 @@ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" }, "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", "dev": true }, "node_modules/argparse": { @@ -3230,7 +3108,7 @@ "node_modules/cfb": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/cfb/-/cfb-0.11.1.tgz", - "integrity": "sha512-1GEqpcO365hTRpP+GzHXNiUF5SB7qmY5aVYwrJm8ISx27HzHpaFlTQhnOCMNhqP0WPkHR0OGE9WDSqtksV4anw==", + "integrity": "sha1-qW248nKmw/uZ27sj70EiP0i+Hqc=", "dev": true, "dependencies": { "commander": "" @@ -3322,9 +3200,9 @@ "dev": true }, "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz", + "integrity": "sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==", "dev": true, "dependencies": { "source-map": "~0.6.0" @@ -3417,42 +3295,15 @@ "node": ">= 0.12.0" } }, - "node_modules/codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, "node_modules/codepage": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.12.2.tgz", - "integrity": "sha512-FAN+oPs/ocaPLFvIt4vEOHgWA6UJ6t+fVbbVBoXDpTpC+4JYasomYZEEjR/Miph3qQrVnIShRwwmwu4P35JW1w==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", "dev": true, - "dependencies": { - "commander": "~2.14.1", - "exit-on-epipe": "~1.0.1" - }, - "bin": { - "codepage": "bin/codepage.njs" - }, "engines": { "node": ">=0.8" } }, - "node_modules/codepage/node_modules/commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", - "dev": true - }, "node_modules/coffee-script": { "version": "1.12.7", "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", @@ -3608,11 +3459,6 @@ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3791,9 +3637,9 @@ } }, "node_modules/dayjs": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", - "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==", "dev": true }, "node_modules/deasync": { @@ -4609,7 +4455,7 @@ "node_modules/fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "node_modules/fast-glob": { @@ -4787,7 +4633,7 @@ "node_modules/frac": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/frac/-/frac-0.3.1.tgz", - "integrity": "sha512-1Lzf2jOjhIkRaa013KlxNOn2D9FemmQNeYUDpEIyPeFXmpLvbZXJOlaayMBT6JKXx+afQFgQ1QJ4kaF7Z07QFQ==", + "integrity": "sha1-V3Z3t/3L5vr3xGHxgB00E3zaQ1Q=", "dev": true, "engines": { "node": ">=0.8" @@ -5170,9 +5016,9 @@ } }, "node_modules/html-minifier-terser/node_modules/clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", "dev": true, "dependencies": { "source-map": "~0.6.0" @@ -5848,7 +5694,7 @@ "node_modules/json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, "node_modules/json-stringify-safe": { @@ -5860,7 +5706,7 @@ "node_modules/json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true, "bin": { "json5": "lib/cli.js" @@ -6960,6 +6806,11 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -7225,9 +7076,24 @@ } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/safefs": { "version": "4.2.0", @@ -7259,16 +7125,16 @@ "dev": true }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", + "ajv": "^8.8.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "ajv-keywords": "^5.0.0" }, "engines": { "node": ">= 12.13.0" @@ -7465,7 +7331,7 @@ "node_modules/ssf": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.8.2.tgz", - "integrity": "sha512-+ZkFDAG+ImJ48DcZvabx6YTrZ67DKkM0kbyOOtH73mbUEvNhQWWgRZrHC8+k7GuGKWQnACYLi7bj0eCt1jmosQ==", + "integrity": "sha1-udTcahwbz3b4q/qW19dlb7Kr7NY=", "dev": true, "dependencies": { "colors": "0.6.2", @@ -7512,6 +7378,11 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/string-extended": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/string-extended/-/string-extended-0.0.8.tgz", @@ -7600,11 +7471,6 @@ "node": ">=0.10.0" } }, - "node_modules/style-mod": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz", - "integrity": "sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==" - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7678,13 +7544,13 @@ } }, "node_modules/terser": { - "version": "5.19.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", - "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -7772,9 +7638,9 @@ "peer": true }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "peer": true, "dependencies": { @@ -7791,9 +7657,9 @@ } }, "node_modules/terser/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -7953,9 +7819,9 @@ } }, "node_modules/ts-node/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "bin": { "acorn": "bin/acorn" }, @@ -8036,9 +7902,9 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8229,11 +8095,6 @@ "node": ">=0.8" } }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" - }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -8307,9 +8168,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "peer": true, "bin": { @@ -8371,9 +8232,9 @@ "peer": true }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "peer": true, "dependencies": { @@ -8501,7 +8362,7 @@ "node_modules/xlsx/node_modules/cfb": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.0.8.tgz", - "integrity": "sha512-oA7VomcgZRWTo8V20UYLlXu4ZOCFEAfwwrcxE8PcVzXW12WOhsi38PVnymb6Xoj8y7ghoZQOOOVRBMdLJ4jCjg==", + "integrity": "sha1-d/ITST1pfXVP2cD1UR6rWtctAs8=", "dev": true, "dependencies": { "commander": "^2.14.1", @@ -8520,6 +8381,28 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/xlsx/node_modules/codepage": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.12.2.tgz", + "integrity": "sha512-FAN+oPs/ocaPLFvIt4vEOHgWA6UJ6t+fVbbVBoXDpTpC+4JYasomYZEEjR/Miph3qQrVnIShRwwmwu4P35JW1w==", + "dev": true, + "dependencies": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "bin": { + "codepage": "bin/codepage.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xlsx/node_modules/codepage/node_modules/commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "dev": true + }, "node_modules/xlsx/node_modules/commander": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", @@ -9945,87 +9828,6 @@ "to-fast-properties": "^2.0.0" } }, - "@codemirror/autocomplete": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.9.0.tgz", - "integrity": "sha512-Fbwm0V/Wn3BkEJZRhr0hi5BhCo5a7eBL6LYaliPjOSwCyfOpnjXY59HruSxOUNV+1OYer0Tgx1zRNQttjXyDog==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.6.0", - "@lezer/common": "^1.0.0" - } - }, - "@codemirror/commands": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.2.5.tgz", - "integrity": "sha512-dSi7ow2P2YgPBZflR9AJoaTHvqmeGIgkhignYMd5zK5y6DANTvxKxp6eMEpIDUJkRAaOY/TFZ4jP1ADIO/GLVA==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.2.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "@codemirror/language": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.9.0.tgz", - "integrity": "sha512-nFu311/0ne/qGuGCL3oKuktBgzVOaxCHZPZv1tLSZkNjPYxxvkjSbzno3MlErG2tgw1Yw1yF8BxMCegeMXqpiw==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "@codemirror/lint": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.1.tgz", - "integrity": "sha512-2Hx945qKX7FBan5/gUdTM8fsMYrNG9clIgEcPXestbLVFAUyQYFAuju/5BMNf/PwgpVaX5pvRm4+ovjbp9D9gQ==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "@codemirror/search": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.2.tgz", - "integrity": "sha512-WRihpqd0l9cEh9J3IZe45Yi+Z5MfTsEXnyc3V7qXHP4ZYtIYpGOn+EJ7fyLIkyAm/8S6QIr7/mMISfAadf8zCg==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "@codemirror/state": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.2.1.tgz", - "integrity": "sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==" - }, - "@codemirror/theme-one-dark": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz", - "integrity": "sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "@codemirror/view": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.18.0.tgz", - "integrity": "sha512-T6q1yYAoU+gSWfJFR4ryvDQcyOqS+Mw5RCvh26y0KiNksOOLYhNvdB3BTyLz8vy4fKaYlzbAOyBU7OQPUGHzjQ==", - "requires": { - "@codemirror/state": "^6.1.4", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -10069,6 +9871,12 @@ "nyc": "15.1.0" }, "dependencies": { + "dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", + "dev": true + }, "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", @@ -10176,9 +9984,9 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" }, "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -10196,9 +10004,9 @@ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", @@ -10211,42 +10019,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@lezer/common": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.4.tgz", - "integrity": "sha512-lZHlk8p67x4aIDtJl6UQrXSOP6oi7dQR3W/geFVrENdA1JDaAJWldnVqVjPMJupbTKbzDfFcePfKttqVidS/dg==" - }, - "@lezer/generator": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@lezer/generator/-/generator-1.5.1.tgz", - "integrity": "sha512-vodJv2JPwsFsiBBHE463yBhvUI9TmhIu5duF/8MH304xNS6FyWH/vTyG61pjhERm5f+VBP94co0eiN+afWcvXw==", - "requires": { - "@lezer/common": "^1.0.2", - "@lezer/lr": "^1.3.0" - } - }, - "@lezer/highlight": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.6.tgz", - "integrity": "sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg==", - "requires": { - "@lezer/common": "^1.0.0" - } - }, - "@lezer/lr": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.13.tgz", - "integrity": "sha512-RLAbau/4uSzKgIKj96mI5WUtG1qtiR0Frn0Ei9zhPj8YOkHM+1Bb8SgdVvmR/aWJCFIzjo2KFnDiRZ75Xf5NdQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "requires": { - "@lezer/common": "^1.0.0" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@nodelib/fs.scandir": { @@ -10624,7 +10402,7 @@ "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { "co": "^4.6.0", @@ -10762,9 +10540,9 @@ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" }, "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", "dev": true }, "argparse": { @@ -11075,7 +10853,7 @@ "cfb": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/cfb/-/cfb-0.11.1.tgz", - "integrity": "sha512-1GEqpcO365hTRpP+GzHXNiUF5SB7qmY5aVYwrJm8ISx27HzHpaFlTQhnOCMNhqP0WPkHR0OGE9WDSqtksV4anw==", + "integrity": "sha1-qW248nKmw/uZ27sj70EiP0i+Hqc=", "dev": true, "requires": { "commander": "" @@ -11143,9 +10921,9 @@ "dev": true }, "clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz", + "integrity": "sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -11213,37 +10991,11 @@ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, - "codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, "codepage": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.12.2.tgz", - "integrity": "sha512-FAN+oPs/ocaPLFvIt4vEOHgWA6UJ6t+fVbbVBoXDpTpC+4JYasomYZEEjR/Miph3qQrVnIShRwwmwu4P35JW1w==", - "dev": true, - "requires": { - "commander": "~2.14.1", - "exit-on-epipe": "~1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", - "dev": true - } - } + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "dev": true }, "coffee-script": { "version": "1.12.7", @@ -11363,11 +11115,6 @@ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, - "crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -11504,9 +11251,9 @@ } }, "dayjs": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", - "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==", "dev": true }, "deasync": { @@ -12080,7 +11827,7 @@ "fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "fast-glob": { @@ -12224,7 +11971,7 @@ "frac": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/frac/-/frac-0.3.1.tgz", - "integrity": "sha512-1Lzf2jOjhIkRaa013KlxNOn2D9FemmQNeYUDpEIyPeFXmpLvbZXJOlaayMBT6JKXx+afQFgQ1QJ4kaF7Z07QFQ==", + "integrity": "sha1-V3Z3t/3L5vr3xGHxgB00E3zaQ1Q=", "dev": true }, "fraction.js": { @@ -12484,9 +12231,9 @@ }, "dependencies": { "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -12976,7 +12723,7 @@ "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, "json-stringify-safe": { @@ -12988,7 +12735,7 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "jsonfile": { @@ -13779,6 +13526,13 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, "readdirp": { @@ -13979,9 +13733,10 @@ } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true }, "safefs": { "version": "4.2.0", @@ -14006,16 +13761,16 @@ "dev": true }, "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "peer": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", + "ajv": "^8.8.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "ajv-keywords": "^5.0.0" }, "dependencies": { "ajv": { @@ -14173,7 +13928,7 @@ "ssf": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.8.2.tgz", - "integrity": "sha512-+ZkFDAG+ImJ48DcZvabx6YTrZ67DKkM0kbyOOtH73mbUEvNhQWWgRZrHC8+k7GuGKWQnACYLi7bj0eCt1jmosQ==", + "integrity": "sha1-udTcahwbz3b4q/qW19dlb7Kr7NY=", "dev": true, "requires": { "colors": "0.6.2", @@ -14204,6 +13959,13 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, "string-extended": { @@ -14273,11 +14035,6 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, - "style-mod": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz", - "integrity": "sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==" - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14328,21 +14085,21 @@ "peer": true }, "terser": { - "version": "5.19.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", - "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "requires": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "dependencies": { "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, "commander": { @@ -14403,9 +14160,9 @@ "peer": true }, "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "peer": true, "requires": { @@ -14520,9 +14277,9 @@ }, "dependencies": { "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==" + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" }, "acorn-walk": { "version": "8.2.0", @@ -14581,9 +14338,9 @@ } }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==" }, "unbox-primitive": { "version": "1.0.1", @@ -14715,11 +14472,6 @@ "integrity": "sha512-BOuDjFFYvJdZO6e/N65AlaDItXo2TgyLjeyRYcqgAPkXpp5yTJcvkL2n+syO1r9Qc5g96tfBD2tuiMhYDmaGcA==", "dev": true }, - "w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" - }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -14765,9 +14517,9 @@ }, "dependencies": { "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "peer": true }, @@ -14815,9 +14567,9 @@ "peer": true }, "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "peer": true, "requires": { @@ -14919,7 +14671,7 @@ "cfb": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.0.8.tgz", - "integrity": "sha512-oA7VomcgZRWTo8V20UYLlXu4ZOCFEAfwwrcxE8PcVzXW12WOhsi38PVnymb6Xoj8y7ghoZQOOOVRBMdLJ4jCjg==", + "integrity": "sha1-d/ITST1pfXVP2cD1UR6rWtctAs8=", "dev": true, "requires": { "commander": "^2.14.1", @@ -14934,6 +14686,24 @@ } } }, + "codepage": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.12.2.tgz", + "integrity": "sha512-FAN+oPs/ocaPLFvIt4vEOHgWA6UJ6t+fVbbVBoXDpTpC+4JYasomYZEEjR/Miph3qQrVnIShRwwmwu4P35JW1w==", + "dev": true, + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "dev": true + } + } + }, "commander": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", diff --git a/package.json b/package.json index 3df0a8c9e79..6b9cd597b3d 100644 --- a/package.json +++ b/package.json @@ -29,19 +29,11 @@ }, "license": "ISC", "dependencies": { - "@codemirror/commands": "^6.2.5", - "@codemirror/state": "^6.2.1", - "@codemirror/theme-one-dark": "^6.1.2", - "@codemirror/view": "^6.18.0", "@istanbuljs/nyc-config-typescript": "^1.0.2", - "@lezer/generator": "^1.5.1", - "@lezer/highlight": "^1.1.6", - "@lezer/lr": "^1.3.13", "@types/dompurify": "^2.3.3", "@types/jqueryui": "^1.12.16", "autoprefixer": "^10.4.2", "chart.js": "^3.6.2", - "codemirror": "^6.0.1", "dompurify": "^2.3.5", "istanbul-lib-coverage": "^3.2.0", "jquery-ui-dist": "^1.13.1", diff --git a/static/js/ace-editor.ts b/static/js/ace-editor.ts index 8428a1de6c5..328193727ea 100644 --- a/static/js/ace-editor.ts +++ b/static/js/ace-editor.ts @@ -1,16 +1,8 @@ -import { theGlobalSourcemap, theLevel } from "./app"; -import { ClientMessages } from "./client-messages"; -import { HedyEditorCreator, HedyEditor, Breakpoints, EditorType, EditorEvent, SourceRange } from "./editor"; +import { theLevel } from "./app"; +import { HedyEditorCreator, HedyEditor, Breakpoints, EditorType, EditorEvent } from "./editor"; import { EventEmitter } from "./event-emitter"; -import { error } from "./modal"; // const MOVE_CURSOR_TO_BEGIN = -1; const MOVE_CURSOR_TO_END = 1; - -/** - * The 'ace_breakpoint' style has been overridden to show a sleeping emoji in the gutter - */ -const BP_DISABLED_LINE = 'ace_breakpoint'; - export class HedyAceEditorCreator implements HedyEditorCreator { /** * This function should initialize the editor and set up all the required @@ -52,8 +44,7 @@ export class HedyAceEditor implements HedyEditor { private editorEvent = new EventEmitter({ change: true, guttermousedown: true, - changeBreakpoint: true, - click: true + changeBreakpoint: true }); private markerClasses = new Map(); private currentLineMarker?: MarkerLocation; @@ -219,7 +210,7 @@ export class HedyAceEditor implements HedyEditor { * It's actually a map of number-to-class. Class is usually 'ace_breakpoint' * but can be something you pick yourself. */ - getDeactivatedLines(): Breakpoints { + getBreakpoints(): Breakpoints { return this._editor.session.getBreakpoints() as unknown as Breakpoints; } @@ -240,7 +231,7 @@ export class HedyAceEditor implements HedyEditor { } } - public on(key: Parameters[0], handler: any) { + public on(key: Parameters[0], handler: Parameters[1]) { const ret = this.editorEvent.on(key, handler); // This particular event needs to be attached to the session if (key == 'changeBreakpoint'){ @@ -293,20 +284,14 @@ export class HedyAceEditor implements HedyEditor { /** - * Set incorrect line marker + * Set incorrect line marker => Part of skip line feature */ - public setIncorrectLine(range: SourceRange, lineIndex: number){ - // Positions in Ace are 0-based - const aceRange = new ace.Range( - range.startLine - 1, range.startColumn - 1, - range.endLine - 1, range.endColumn - 1 - ); - - this.addMarker(aceRange, `ace_incorrect_hedy_code_${lineIndex}`, "text", true); + public setIncorrectLine(range: AceAjax.Range, lineIndex: number){ + this.addMarker(range, `ace_incorrect_hedy_code_${lineIndex}`, "text", true); } /** - * Remove all incorrect lines + * Remove all incorrect lines markers => Part of skip line feature */ public clearIncorrectLines() { const markers = this._editor.session.getMarkers(true); @@ -333,12 +318,11 @@ export class HedyAceEditor implements HedyEditor { this.currentLineMarker = undefined; return; } - line = line - 1; let id: number; - if (startPos === undefined || finishPos === undefined) { + if (startPos === undefined && finishPos === undefined) { id = this.addMarker(new ace.Range(line, 0, line, 999), 'debugger-current-line', 'fullLine'); } else { - id = this.addMarker(new ace.Range(line, startPos - 1, line, finishPos - 1), 'debugger-current-line', 'text'); + id = this.addMarker(new ace.Range(line, startPos, line, finishPos), 'debugger-current-line', 'text'); } this.currentLineMarker = { line, id }; } @@ -385,51 +369,9 @@ export class HedyAceEditor implements HedyEditor { .filter(([_, k]) => k === klass) .map(([id, _]) => id); } - public getActiveContents(debugLine: string | null): string { - let code = this._editor.session.getValue(); - const breakpoints = this.getDeactivatedLines(); - - if (code) { - let lines = code.split('\n'); - if(debugLine != null){ - lines = lines.slice(0, parseInt(debugLine) + 1); - } - for (let i = 0; i < lines.length; i++) { - if (breakpoints[i] == BP_DISABLED_LINE) { - lines[i] = ''; - } - } - code = lines.join('\n'); - } - return code; - } - - public skipFaultyHandler(): void { - $(document).on("click", 'div[class*=ace_content], div[class*=ace_incorrect_hedy_code]', function(e) { - let className = e.target.className; - - // Only do this if skipping faulty is used - if ($('div[class*=ace_incorrect_hedy_code]')[0]) { - if (className === 'ace_content') { - // Hide error, warning or okbox - $('#okbox').hide(); - $('#warningbox').hide(); - $('#errorbox').hide(); - } else { - // Show error for this line - let mapIndex = className; - mapIndex = mapIndex.replace('ace_incorrect_hedy_code_', ''); - mapIndex = mapIndex.replace('ace_start ace_br15', ''); - let mapError = theGlobalSourcemap[Number(mapIndex)]; - - $('#okbox').hide(); - $('#warningbox').hide(); - $('#errorbox').hide(); - error.show(ClientMessages['Transpile_error'], mapError.error); - } - } - }); + public get session() { + return this._editor.session; } } diff --git a/static/js/app.ts b/static/js/app.ts index b7b5fe007c7..796ec9a6f49 100644 --- a/static/js/app.ts +++ b/static/js/app.ts @@ -9,24 +9,21 @@ import { Achievement, Adventure, isServerSaveInfo, ServerSaveInfo } from './type import { startIntroTutorial } from './tutorials/tutorial'; import { loadParsonsExercise } from './parsons'; import { checkNow, onElementBecomesVisible } from './browser-helpers/on-element-becomes-visible'; -import { incrementDebugLine, initializeDebugger, load_variables, startDebug } from './debugging'; +import { incrementDebugLine, initializeDebugger, load_variables, returnLinesWithoutBreakpoints, startDebug } from './debugging'; import { localDelete, localLoad, localSave } from './local'; import { initializeLoginLinks } from './auth'; import { postJson } from './comm'; import { LocalSaveWarning } from './local-save-warning'; import { HedyEditor, EditorType } from './editor'; -import { stopDebug } from "./debugging"; import { HedyAceEditorCreator } from './ace-editor'; -import { HedyCodeMirrorEditorCreator } from './cm-editor'; -import { initializeTranslation } from './lezer-parsers/tokens'; +import { stopDebug } from "./debugging"; export let theGlobalDebugger: any; export let theGlobalEditor: HedyEditor; export let theModalEditor: HedyEditor; export let theGlobalSourcemap: { [x: string]: any; }; export const theLocalSaveWarning = new LocalSaveWarning(); -const editorCreator: HedyCodeMirrorEditorCreator = new HedyCodeMirrorEditorCreator(); -const aceEditorCreator: HedyAceEditorCreator = new HedyAceEditorCreator(); +const editorCreator: HedyAceEditorCreator = new HedyAceEditorCreator(); let last_code: string; /** @@ -210,7 +207,6 @@ export function initializeCodePage(options: InitializeCodePageOptions) { if ($editor.length) { const dir = $("body").attr("dir"); theGlobalEditor = editorCreator.initializeEditorWithGutter($editor, EditorType.MAIN, dir); - initializeTranslation({keywordLanguage: theKeywordLanguage, level: theLevel}); attachMainEditorEvents(theGlobalEditor); error.setEditor(theGlobalEditor); initializeDebugger({ @@ -276,7 +272,8 @@ export function initializeCodePage(options: InitializeCodePageOptions) { function attachMainEditorEvents(editor: HedyEditor) { editor.on('change', () => { - theLocalSaveWarning.setProgramLength(theGlobalEditor.contents.split('\n').length); + theLocalSaveWarning.setProgramLength(theGlobalEditor.contents.split('\n').length); + theGlobalEditor.clearIncorrectLines(); }); // If prompt is shown and user enters text in the editor, hide the prompt. @@ -289,16 +286,12 @@ function attachMainEditorEvents(editor: HedyEditor) { askPromptOpen = false; $('#runit').css('background-color', ''); theGlobalEditor.clearErrors(); - theGlobalEditor.clearIncorrectLines(); //removing the debugging state when loading in the editor stopDebug(); }); - editor.on('click', (event: MouseEvent) => { - editor.skipFaultyHandler(event); - }); - // *** KEYBOARD SHORTCUTS *** + let altPressed: boolean | undefined; // alt is 18, enter is 13 window.addEventListener ('keydown', function (ev) { @@ -329,6 +322,32 @@ function attachMainEditorEvents(editor: HedyEditor) { return; } }); + + // We show the error message when clicking on the skipped code or hide them if ace editor is clicked + $(document).on("click", 'div[class*=ace_content], div[class*=ace_incorrect_hedy_code]', function(e) { + let className = e.target.className; + + // Only do this if skipping faulty is used + if ($('div[class*=ace_incorrect_hedy_code]')[0]) { + if (className === 'ace_content') { + // Hide error, warning or okbox + $('#okbox').hide(); + $('#warningbox').hide(); + $('#errorbox').hide(); + } else { + // Show error for this line + let mapIndex = className; + mapIndex = mapIndex.replace('ace_incorrect_hedy_code_', ''); + mapIndex = mapIndex.replace('ace_start ace_br15', ''); + let mapError = theGlobalSourcemap[Number(mapIndex)]; + + $('#okbox').hide(); + $('#warningbox').hide(); + $('#errorbox').hide(); + error.show(ClientMessages['Transpile_error'], mapError.error); + } + } + }); } export interface InitializeViewProgramPageOptions { @@ -370,7 +389,7 @@ export function initializeHighlightedCodeBlocks(where: Element) { // Otherwise, the teacher manual Frequent Mistakes page is SUPER SLOW to load. onElementBecomesVisible(preview, () => { // Create this example editor - const exampleEditor = aceEditorCreator.initializeReadOnlyEditor(preview, dir); + const exampleEditor = editorCreator.initializeReadOnlyEditor(preview, dir); // Strip trailing newline, it renders better exampleEditor.contents = exampleEditor.contents.trimRight(); // And add an overlay button to the editor if requested via a show-copy-button class, either @@ -829,16 +848,15 @@ export function runPythonProgram(this: any, code: string, sourceMap: any, hasTur if (sourceMap){ theGlobalSourcemap = sourceMap; + let Range = ace.require("ace/range").Range + // We loop through the mappings and underline a mapping if it contains an error for (const index in sourceMap) { const map = sourceMap[index]; - - const range = { - startLine: map.hedy_range.from_line, - startColumn: map.hedy_range.from_column, - endLine: map.hedy_range.to_line, - endColumn: map.hedy_range.to_column - } + const range = new Range( + map.hedy_range.from_line-1, map.hedy_range.from_column-1, + map.hedy_range.to_line-1, map.hedy_range.to_column-1 + ) if (map.error != null) { skip_faulty_found_errors = true; @@ -1485,10 +1503,8 @@ function get_parsons_code() { } export function get_active_and_trimmed_code() { - theGlobalEditor.trimTrailingSpace(); - const storage = window.localStorage; - const debugLine = storage.getItem("debugLine"); - return theGlobalEditor.getActiveContents(debugLine); + theGlobalEditor.trimTrailingSpace() + return returnLinesWithoutBreakpoints(theGlobalEditor); } export function confetti_cannon(){ @@ -1574,12 +1590,11 @@ export function toggle_developers_mode(enforced: boolean) { $('#editor-area').removeClass('mt-5'); $('#code_editor').css('height', 36 + "em"); $('#code_output').css('height', 36 + "em"); - theGlobalEditor.resize(576); + theGlobalEditor.resize(); } else { $('#editor-area').addClass('mt-5'); $('#code_editor').height('22rem'); $('#code_output').height('22rem'); - theGlobalEditor.resize(352); } } diff --git a/static/js/appbundle.js b/static/js/appbundle.js index 9a2615e6ac5..8f823ae7630 100644 --- a/static/js/appbundle.js +++ b/static/js/appbundle.js @@ -1,4 +1,4 @@ -var hedyApp=(()=>{var XQ=Object.defineProperty,jQ=Object.defineProperties;var WQ=Object.getOwnPropertyDescriptors;var P_=Object.getOwnPropertySymbols;var BQ=Object.prototype.hasOwnProperty,VQ=Object.prototype.propertyIsEnumerable;var L_=(r,e,t)=>e in r?XQ(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Xc=(r,e)=>{for(var t in e||(e={}))BQ.call(e,t)&&L_(r,t,e[t]);if(P_)for(var t of P_(e))VQ.call(e,t)&&L_(r,t,e[t]);return r},Kh=(r,e)=>jQ(r,WQ(e));var ul=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(e,t)=>(typeof require!="undefined"?require:e)[t]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var We=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Q_=We((W2,UQ)=>{UQ.exports=[{name:"level1",rules:{start:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start"},{regex:"_\\?_",token:"invalid",next:"start"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^ *)(__ask__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__print__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__echo__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__forward__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__turn__)",token:["text","keyword"],next:"direction",unicode:!0},{regex:"(^ *)(__color__)",token:["text","keyword"],next:"color",unicode:!0}],value:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"value"},{regex:"_\\?_",token:"invalid",next:"value"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}],color:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"color"},{regex:"_\\?_",token:"invalid",next:"color"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(__black__|__gray__|__white__|__green__|__blue__|__purple__|__brown__|__pink__|__red__|__orange__|__yellow__)",token:["text"],unicode:!0}],direction:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"direction"},{regex:"_\\?_",token:"invalid",next:"direction"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(__right__|__left__)",token:["text"],unicode:!0}]}},{name:"level2",rules:{start:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start"},{regex:"_\\?_",token:"invalid",next:"start"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^ *)(__print__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)( +)(__ask__)",token:["text","text","text","keyword","text","keyword"],next:"value",unicode:!0},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)",token:["text","text","text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__sleep__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__forward__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__turn__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__color__)",token:["text","keyword"],next:"value",unicode:!0}],value:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"value"},{regex:"_\\?_",token:"invalid",next:"value"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}]}},{name:"level3",rules:{start:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start"},{regex:"_\\?_",token:"invalid",next:"start"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)( *)(__ask__)",token:["text","text","text","keyword","text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)",token:["text","text","text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__print__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__turn__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__sleep__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__forward__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__add__)",token:["text","keyword"],next:"valAdd",unicode:!0},{regex:"(^ *)(__remove__)",token:["text","keyword"],next:"valRemove",unicode:!0},{regex:"(^ *)(__color__)",token:["text","keyword"],next:"value",unicode:!0}],value:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"value"},{regex:"_\\?_",token:"invalid",next:"value"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0},{regex:"(__comma__)",token:["keyword"],unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueExpr:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueExpr"},{regex:"_\\?_",token:"invalid",next:"valueExpr"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0}],valAdd:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valAdd"},{regex:"_\\?_",token:"invalid",next:"valAdd"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"valueTo",unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueTo:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueTo"},{regex:"_\\?_",token:"invalid",next:"valueTo"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}],valRemove:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valRemove"},{regex:"_\\?_",token:"invalid",next:"valRemove"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"valueFrom",unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueFrom:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueFrom"},{regex:"_\\?_",token:"invalid",next:"valueFrom"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}]}},{name:"level4",rules:{start:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start"},{regex:"_\\?_",token:"invalid",next:"start"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)( *)(__ask__)",token:["text","text","text","keyword","text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)",token:["text","text","text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__print__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__turn__)",token:["text","keyword"],next:"valueSimple",unicode:!0},{regex:"(^ *)(__sleep__)",token:["text","keyword"],next:"valueSimple",unicode:!0},{regex:"(^ *)(__forward__)",token:["text","keyword"],next:"valueSimple",unicode:!0},{regex:"(^ *)(__color__)",token:["text","keyword"],next:"valueSimple",unicode:!0},{regex:"(^ *)(__add__)",token:["text","keyword"],next:"valAdd",unicode:!0},{regex:"(^ *)(__remove__)",token:["text","keyword"],next:"valRemove",unicode:!0},{regex:"(^ *)(__clear__)",token:["text","event"],unicode:!0}],value:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"value"},{regex:"_\\?_",token:"invalid",next:"value"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0},{regex:"(__comma__)",token:["keyword"],unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueExpr:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueExpr"},{regex:"_\\?_",token:"invalid",next:"valueExpr"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0},{regex:'"[^"]*"',token:"constant.character",unicode:!0},{regex:"'[^']*'",token:"constant.character",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0}],valueSimple:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueSimple"},{regex:"_\\?_",token:"invalid",next:"valueSimple"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valAdd:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valAdd"},{regex:"_\\?_",token:"invalid",next:"valAdd"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"valueTo",unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueTo:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueTo"},{regex:"_\\?_",token:"invalid",next:"valueTo"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}],valRemove:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valRemove"},{regex:"_\\?_",token:"invalid",next:"valRemove"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"valueFrom",unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueFrom:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueFrom"},{regex:"_\\?_",token:"invalid",next:"valueFrom"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}]}},{name:"level5",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level6",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level7",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level8",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level9",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level10",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level11",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level12",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level13",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level14",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level15",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__while__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level16",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\[)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\])([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__while__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\[)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\])",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level17",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\[)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\])([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(:)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__while__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\[)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\])",token:["keyword"],next:"start",unicode:!0},{regex:"(:)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__elif__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level18",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\[)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\])([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(:)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\()([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\))([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__while__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__input__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__def__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\[)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\])",token:["keyword"],next:"start",unicode:!0},{regex:"(:)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\()",token:["keyword"],next:"start",unicode:!0},{regex:"(\\))",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__elif__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}}]});var jc=We((B2,qQ)=>{qQ.exports={ar:{add:"\u0640*\u0627\u0640*\u0636\u0640*\u0641\u0640*|add",and:"\u0640*\u0648\u0640*|and",ask:"\u0640*\u0627\u0640*\u0633\u0640*\u0623\u0640*\u0644\u0640*|ask",at:"\u0640*\u0628\u0640*\u0634\u0640*\u0643\u0640*\u0644\u0640*|at",black:"\u0640*\u0627\u0640*\u0633\u0640*\u0648\u0640*\u062F\u0640*|black",blue:"\u0640*\u0627\u0640*\u0632\u0640*\u0631\u0640*\u0642\u0640*|blue",brown:"\u0640*\u0628\u0640*\u0646\u0640*\u064A\u0640*|brown",call:"\u0640*c\u0640*a\u0640*l\u0640*l\u0640*|call",clear:"\u0640*c\u0640*l\u0640*e\u0640*a\u0640*r\u0640*|clear",color:"\u0640*\u0644\u0640*\u0648\u0640*\u0646\u0640*|color",comma:"\u0640*\u060C\u0640*|,",def:"\u0640*d\u0640*e\u0640*f\u0640*|def",define:"\u0640*d\u0640*e\u0640*f\u0640*i\u0640*n\u0640*e\u0640*|define",echo:"\u0640*\u0631\u0640*\u062F\u0640*\u062F\u0640*|echo",elif:"\u0640*\u0648\u0640*\u0625\u0640*\u0644\u0640*\u0627\u0640* \u0640*\u0627\u0640*\u0630\u0640*\u0627\u0640*|elif",else:"\u0640*\u0648\u0640*\u0625\u0640*\u0644\u0640*\u0627\u0640*|else",for:"\u0640*\u0644\u0640*\u0643\u0640*\u0644\u0640*|for",forward:"\u0640*\u062A\u0640*\u0642\u0640*\u062F\u0640*\u0645\u0640*|forward",from:"\u0640*\u0645\u0640*\u0646\u0640*|from",gray:"\u0640*\u0631\u0640*\u0645\u0640*\u0627\u0640*\u062F\u0640*\u064A\u0640*|gray",green:"\u0640*\u0627\u0640*\u062E\u0640*\u0636\u0640*\u0631\u0640*|green",if:"\u0640*\u0627\u0640*\u0630\u0640*\u0627\u0640*|if",in:"\u0640*\u0641\u0640*\u064A\u0640*|in",input:"\u0640*\u0627\u0640*\u062F\u0640*\u062E\u0640*\u0644\u0640*|input",is:"\u0640*\u0647\u0640*\u0648\u0640*|\u0640*\u0647\u0640*\u064A\u0640*|is",left:"\u0640*\u064A\u0640*\u0633\u0640*\u0627\u0640*\u0631\u0640*|left",length:"\u0640*\u0637\u0640*\u0648\u0640*\u0644\u0640*|length",or:"\u0640*\u0623\u0640*\u0648\u0640*|or",orange:"\u0640*\u0628\u0640*\u0631\u0640*\u062A\u0640*\u0642\u0640*\u0627\u0640*\u0644\u0640*\u064A\u0640*|orange",pink:"\u0640*\u0632\u0640*\u0647\u0640*\u0631\u0640*\u064A\u0640*|pink",pressed:"\u0640*p\u0640*r\u0640*e\u0640*s\u0640*s\u0640*e\u0640*d\u0640*|pressed",print:"\u0640*\u0642\u0640*\u0648\u0640*\u0644\u0640*|print",purple:"\u0640*\u0628\u0640*\u0646\u0640*\u0641\u0640*\u0633\u0640*\u062C\u0640*\u064A\u0640*|purple",random:"\u0640*\u0639\u0640*\u0634\u0640*\u0648\u0640*\u0627\u0640*\u0626\u0640*\u064A\u0640*|random",range:"\u0640*\u0646\u0640*\u0637\u0640*\u0627\u0640*\u0642\u0640*|range",red:"\u0640*\u0627\u0640*\u062D\u0640*\u0645\u0640*\u0631\u0640*|red",remove:"\u0640*\u0627\u0640*\u0632\u0640*\u0644\u0640*|remove",repeat:"\u0640*\u0643\u0640*\u0631\u0640*\u0631\u0640*|repeat",return:"\u0640*r\u0640*e\u0640*t\u0640*u\u0640*r\u0640*n\u0640*|return",right:"\u0640*\u064A\u0640*\u0645\u0640*\u064A\u0640*\u0646\u0640*|right",sleep:"\u0640*\u0627\u0640*\u0646\u0640*\u062A\u0640*\u0638\u0640*\u0631\u0640*|sleep",step:"\u0640*\u062E\u0640*\u0637\u0640*\u0648\u0640*\u0629\u0640*|step",times:"\u0640*\u0645\u0640*\u0631\u0640*\u0629\u0640*|times",to:"\u0640*\u0627\u0640*\u0644\u0640*\u0649\u0640*|to",to_list:"\u0640*\u0627\u0640*\u0644\u0640*\u0649\u0640*|to",turn:"\u0640*\u0627\u0640*\u0633\u0640*\u062A\u0640*\u062F\u0640*\u0631\u0640*|turn",while:"\u0640*\u0628\u0640*\u064A\u0640*\u0646\u0640*\u0645\u0640*\u0627\u0640*|while",white:"\u0640*\u0627\u0640*\u0628\u0640*\u064A\u0640*\u0636\u0640*|white",with:"\u0640*w\u0640*i\u0640*t\u0640*h\u0640*|with",yellow:"\u0640*\u0627\u0640*\u0635\u0640*\u0641\u0640*\u0631\u0640*|yellow",DIGIT:"0\u06601\u06612\u06623\u06634\u06645\u06656\u06667\u06678\u06689\u0669"},bg:{add:"\u0434\u043E\u0431\u0430\u0432\u0438|add",and:"\u0438|and",ask:"\u043F\u043E\u043F\u0438\u0442\u0430\u0439|ask",at:"\u0432|at",black:"\u0447\u0435\u0440\u043D\u043E|black",blue:"\u0441\u0438\u043D\u044C\u043E|blue",brown:"\u043A\u0430\u0444\u044F\u0432\u043E|brown",call:"\u0438\u0437\u0432\u0438\u043A\u0430\u0439|call",clear:"\u0438\u0437\u0447\u0438\u0441\u0442\u0438|clear",color:"\u0446\u0432\u044F\u0442|color",comma:",",def:"\u0434\u0435\u0444|def",define:"\u0434\u0435\u0444\u0438\u043D\u0438\u0440\u0430\u0439|define",echo:"\u043F\u043E\u043A\u0430\u0436\u0438|echo",elif:"\u0438\u043D\u0430\u0447\u0435 \u0430\u043A\u043E|elif",else:"\u0438\u043D\u0430\u0447\u0435|else",for:"\u0437\u0430|for",forward:"\u043D\u0430\u043F\u0440\u0435\u0434|forward",from:"\u043E\u0442|from",gray:"\u0441\u0438\u0432\u043E|gray",green:"\u0437\u0435\u043B\u0435\u043D\u043E|green",if:"\u0430\u043A\u043E|if",in:"\u0432|in",input:"\u0432\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435|input",is:"\u0435|is",left:"\u043B\u044F\u0432\u043E|left",length:"\u0434\u044A\u043B\u0436\u0438\u043D\u0430|length",or:"\u0438\u043B\u0438|or",orange:"\u043E\u0440\u0430\u043D\u0436\u0435\u0432\u043E|orange",pink:"\u0440\u043E\u0437\u043E\u0432\u043E|pink",pressed:"\u043D\u0430\u0442\u0438\u0441\u043D\u0430\u0442|pressed",print:"\u043F\u0440\u0438\u043D\u0442\u0438\u0440\u0430\u0439|print",purple:"\u043B\u0438\u043B\u0430\u0432\u043E|purple",random:"\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u043D\u043E|random",range:"\u043E\u0431\u0445\u0432\u0430\u0442|range",red:"\u0447\u0435\u0440\u0432\u0435\u043D\u043E|red",remove:"\u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0438|remove",repeat:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438|repeat",return:"\u0432\u044A\u0440\u043D\u0438|return",right:"\u0434\u044F\u0441\u043D\u043E|right",sleep:"\u0441\u043F\u0438|sleep",step:"\u0441\u0442\u044A\u043F\u043A\u0430|step",times:"\u043F\u044A\u0442\u0438|times",to:"\u0434\u043E|to",to_list:"\u0434\u043E|to",turn:"\u0437\u0430\u0432\u0438\u0439|turn",while:"\u0434\u043E\u043A\u0430\u0442\u043E|while",white:"\u0431\u044F\u043B\u043E|white",with:"\u0441/\u0441\u044A\u0441|with",yellow:"\u0436\u044A\u043B\u0442\u043E|yellow",DIGIT:"0123456789"},bn:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},ca:{add:"afegeix|add",and:"i|and",ask:"pregunta|ask",at:"a|at",black:"negre|black",blue:"blau|blue",brown:"marr\xF3|brown",call:"crida|call",clear:"neteja|clear",color:"color",comma:",",def:"def",define:"defineix|define",echo:"eco|echo",elif:"sinosi|elif",else:"sino|else",for:"per|for",forward:"avan\xE7a|forward",from:"de|from",gray:"gris|gray",green:"verd|green",if:"si|if",in:"dins|in",input:"entra|input",is:"\xE9s|is",left:"esquerra|left",length:"mida|length",or:"o|or",orange:"taronja|orange",pink:"rosa|pink",pressed:"pressionat|pressed",print:"imprimeix|print",purple:"lila|purple",random:"aleatori|random",range:"rang|range",red:"vermell|red",remove:"esborra|remove",repeat:"repeteix|repeat",return:"retorna|return",right:"dreta|right",sleep:"dorm|sleep",step:"pas|step",times:"vegades|times",to:"fins|to",to_list:"a|to",turn:"gira|turn",while:"mentre|while",white:"blanc|white",with:"amb|with",yellow:"groc|yellow",DIGIT:"0123456789"},cs:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},cy:{add:"adio|add",and:"a|and",ask:"gofyn|ask",at:"ar|at",black:"du|black",blue:"glas|blue",brown:"brown",call:"call",clear:"clear",color:"lliw|color",comma:",",def:"def",define:"define",echo:"adleisio|echo",elif:"elif",else:"arall|else",for:"ar gyfer|for",forward:"ymlaen|forward",from:"o|from",gray:"llwyd|gray",green:"gwyrdd|green",if:"os|if",in:"mewn|in",input:"mewnbwn|input",is:"yw|is",left:"chwith|left",length:"hyd|length",or:"neu|or",orange:"oren|orange",pink:"pinc|pink",pressed:"gwasgu|pressed",print:"argraffu|print",purple:"porffor|purple",random:"hap|random",range:"ystod|range",red:"coch|red",remove:"dileu|remove",repeat:"ailadrodd|repeat",return:"return",right:"dde|right",sleep:"cysgu|sleep",step:"cam|step",times:"gwaith|times",to:"i|to",to_list:"i|to",turn:"troi|turn",while:"tra|while",white:"gwyn|white",with:"with",yellow:"melyn|yellow",DIGIT:"0123456789"},da:{add:"add",and:"and",ask:"sp\xF8rg|ask",at:"at",black:"sort|black",blue:"bl\xE5|blue",brown:"brun|brown",call:"call",clear:"clear",color:"farve|color",comma:",",def:"def",define:"define",echo:"ekko|echo",elif:"elif",else:"else",for:"for",forward:"fremad|forward",from:"from",gray:"gr\xE5|gray",green:"gr\xF8n|green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"lyser\xF8d|pink",pressed:"pressed",print:"print",purple:"lila|purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"drej|turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},de:{add:"addiere|add",and:"und|and",ask:"frage|ask",at:"an|at",black:"Schwarz|black",blue:"Blau|blue",brown:"Braun|brown",call:"call",clear:"abwischen|clear",color:"farbe|color",comma:",",def:"def",define:"define",echo:"echo",elif:"sofalls|elif",else:"sonst|else",for:"f\xFCr|for",forward:"vorw\xE4rts|forward",from:"aus|from",gray:"Grau|gray",green:"Gr\xFCn|green",if:"falls|if",in:"in",input:"eingabe|input",is:"ist|is",left:"links|left",length:"l\xE4nge|length",or:"oder|or",orange:"Orange|orange",pink:"Pink|pink",pressed:"gedr\xFCckt|pressed",print:"drucke|print",purple:"Lila|purple",random:"zuf\xE4llig|random",range:"bereich|range",red:"Rot|red",remove:"entferne|remove",repeat:"wiederhole|repeat",return:"return",right:"rechts|right",sleep:"schlafe|sleep",step:"schritt|step",times:"mal|times",to:"bis|to",to_list:"zu|to",turn:"drehe|turn",while:"solange|while",white:"Wei\xDF|white",with:"with",yellow:"Gelb|yellow",DIGIT:"0123456789"},el:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},en:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},eo:{add:"aldonu|add",and:"kaj|and",ask:"demandu|ask",at:"la\u016D|at",black:"nigra|black",blue:"blua|blue",brown:"bruna|brown",call:"call",clear:"clear",color:"koloro|color",comma:",",def:"def",define:"define",echo:"e\u0125u|echo",elif:"alie se|elif",else:"alie|else",for:"por|for",forward:"anta\u016Den|forward",from:"el|from",gray:"griza|gray",green:"verda|green",if:"se|if",in:"en|in",input:"enigu|input",is:"estas|is",left:"maldekstren|left",length:"longo|length",or:"a\u016D|or",orange:"oran\u011Da|orange",pink:"rozkolora|pink",pressed:"pressed",print:"presu|print",purple:"purpura|purple",random:"hazardo|random",range:"intervalo|range",red:"ru\u011Da|red",remove:"forigu|remove",repeat:"ripetu|repeat",return:"return",right:"dekstren|right",sleep:"dormu|sleep",step:"pa\u015Do|step",times:"fojojn|times",to:"\u011Dis|to",to_list:"al|to",turn:"turnu|turn",while:"dum|while",white:"blanka|white",with:"with",yellow:"flava|yellow",DIGIT:"0123456789"},es:{add:"a\xF1adir|add",and:"y|and",ask:"preguntar|ask",at:"en|at",black:"negro|black",blue:"azul|blue",brown:"marr\xF3n|brown",call:"llamar|call",clear:"limpiar|clear",color:"color",comma:",",def:"def",define:"definir|define",echo:"eco|echo",elif:"sinosi|elif",else:"sino|else",for:"para|for",forward:"adelante|forward",from:"de|from",gray:"gris|gray",green:"verde|green",if:"si|if",in:"en|in",input:"entrada|input",is:"es|is",left:"izquierda|left",length:"longitud|length",or:"o|or",orange:"naranja|orange",pink:"rosa|pink",pressed:"presionada|pressed",print:"imprimir|print",purple:"p\xFArpura|purple",random:"aleatorio|random",range:"rango|range",red:"rojo|red",remove:"borrar|remove",repeat:"repetir|repeat",return:"retornar|return",right:"derecha|right",sleep:"dormir|sleep",step:"paso|step",times:"veces|times",to:"a|to",to_list:"a|to",turn:"girar|turn",while:"mientras|while",white:"blanco|white",with:"con|with",yellow:"amarillo|yellow",DIGIT:"0123456789"},et:{add:"lisa|add",and:"ja|and",ask:"k\xFCsi|ask",at:"t\xE4itsa|at",black:"must|black",blue:"sinine|blue",brown:"pruun|brown",call:"call",clear:"clear",color:"v\xE4rv|color",comma:",",def:"def",define:"define",echo:"peegelda|echo",elif:"muidukui|elif",else:"muidu|else",for:"jaoks|for",forward:"edasi|forward",from:"nimistust|from",gray:"hall|gray",green:"roheline|green",if:"kui|if",in:"nimistus|in",input:"sisesta|input",is:"on|is",left:"vasakule|left",length:"pikkus|length",or:"v\xF5i|or",orange:"oran\u017E|orange",pink:"roosa|pink",pressed:"pressed",print:"prindi|print",purple:"lilla|purple",random:"juhuslikult|random",range:"vahemik|range",red:"punane|red",remove:"kustuta|remove",repeat:"korda|repeat",return:"return",right:"paremale|right",sleep:"oota|sleep",step:"sammuga|step",times:"korda|times",to:"kuni|to",to_list:"nimistusse|to",turn:"p\xF6\xF6ra|turn",while:"senikui|while",white:"valge|white",with:"with",yellow:"kollane|yellow",DIGIT:"0123456789"},fa:{add:"add",and:"and",ask:"\u0628\u067E\u0631\u0633|ask",at:"at",black:"\u0633\u06CC\u0627\u0647|black",blue:"\u0622\u0628\u06CC|blue",brown:"\u0642\u0647\u0648\u0647 \u0627\u06CC|brown",call:"call",clear:"clear",color:"\u0631\u0646\u06AF|color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"\u0628\u0647 \u062C\u0644\u0648|forward",from:"from",gray:"\u062E\u0627\u06A9\u0633\u062A\u0631\u06CC|gray",green:"\u0633\u0628\u0632|green",if:"if",in:"in",input:"input",is:"is",left:"\u0686\u067E|left",length:"length",or:"or",orange:"\u0646\u0627\u0631\u0646\u062C\u06CC|orange",pink:"\u0635\u0648\u0631\u062A\u06CC|pink",pressed:"pressed",print:"\u0686\u0627\u067E|print",purple:"\u0628\u0646\u0641\u0634|purple",random:"random",range:"range",red:"\u0642\u0631\u0645\u0632|red",remove:"remove",repeat:"repeat",return:"return",right:"\u0631\u0627\u0633\u062A|right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"\u062F\u0648\u0631 \u0628\u0632\u0646|turn",while:"while",white:"\u0633\u0641\u06CC\u062F|white",with:"with",yellow:"\u0632\u0631\u062F|yellow",DIGIT:"0123456789"},fi:{add:"lis\xE4\xE4|add",and:"ja|and",ask:"kysy|ask",at:"ota|at",black:"musta|black",blue:"sininen|blue",brown:"ruskea|brown",call:"call",clear:"nollaa|clear",color:"v\xE4ri|color",comma:",",def:"def",define:"define",echo:"kaiku|echo",elif:"muutenjos|elif",else:"muuten|else",for:"jokaiselle|for",forward:"eteenp\xE4in|forward",from:"listasta|from",gray:"harmaa|gray",green:"vihre\xE4|green",if:"jos|if",in:"listassa|in",input:"sy\xF6te|input",is:"on|is",left:"vasen|left",length:"pituus|length",or:"tai|or",orange:"oranssi|orange",pink:"vaaleanpunainen|pink",pressed:"painettu|pressed",print:"tulosta|print",purple:"violetti|purple",random:"satunnainen|random",range:"v\xE4li|range",red:"punainen|red",remove:"poista|remove",repeat:"toista|repeat",return:"return",right:"oikea|right",sleep:"nuku|sleep",step:"askel|step",times:"kertaa|times",to:"asti|to",to_list:"listaksi|to",turn:"k\xE4\xE4nny|turn",while:"kun|while",white:"valkoinen|white",with:"with",yellow:"keltainen|yellow",DIGIT:"0123456789"},fr:{add:"ajoute|add",and:"et|and",ask:"demande|ask",at:"au|at",black:"noir|black",blue:"bleu|blue",brown:"marron|brown",call:"call",clear:"effacer|clear",color:"couleur|color",comma:",",def:"def",define:"define",echo:"r\xE9p\xE8te|echo",elif:"sinon si|elif",else:"sinon|else",for:"pour|for",forward:"avance|forward",from:"de|from",gray:"gris|gray",green:"vert|green",if:"si|if",in:"dans|in",input:"demande|input",is:"est|is",left:"gauche|left",length:"longueur|length",or:"ou|or",orange:"orange",pink:"rose|pink",pressed:"press\xE9|pressed",print:"affiche|print",purple:"violet|purple",random:"hasard|random",range:"intervalle|range",red:"rouge|red",remove:"supprime|remove",repeat:"r\xE9p\xE8te|repete|repeat",return:"return",right:"droite|right",sleep:"dors|sleep",step:"pas|step",times:"fois|times",to:"\xE0|to",to_list:"\xE0|to",turn:"tourne|turn",while:"tant que|while",white:"blanc|white",with:"with",yellow:"jaune|yellow",DIGIT:"0123456789"},fy:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},he:{add:"\u05D4\u05D5\u05E1\u05E3|add",and:"\u05D5\u05D2\u05DD|and",ask:"\u05E9\u05D0\u05DC|ask",at:"\u05D1|at",black:"\u05E9\u05D7\u05D5\u05E8|black",blue:"\u05DB\u05D7\u05D5\u05DC|blue",brown:"\u05D7\u05D5\u05DD|brown",call:"call",clear:"clear",color:"\u05E6\u05D1\u05E2|color",comma:",",def:"def",define:"define",echo:"\u05D4\u05D3\u05D4\u05D3|echo",elif:"\u05D0\u05D7\u05E8\u05EA\u05D0\u05DD|elif",else:"\u05D0\u05D7\u05E8\u05EA|else",for:"\u05DC\u05DB\u05DC|for",forward:"\u05E7\u05D3\u05D9\u05DE\u05D4|forward",from:"\u05DE|from",gray:"\u05D0\u05E4\u05D5\u05E8|gray",green:"\u05D9\u05E8\u05D5\u05E7|green",if:"\u05D0\u05DD|if",in:"\u05D1\u05EA\u05D5\u05DA|in",input:"\u05E7\u05DC\u05D8|input",is:"\u05D4\u05D5\u05D0|is",left:"\u05E9\u05DE\u05D0\u05DC\u05D4|left",length:"\u05D0\u05D5\u05E8\u05DA|length",or:"\u05D0\u05D5|or",orange:"\u05DB\u05EA\u05D5\u05DD|orange",pink:"\u05D5\u05E8\u05D5\u05D3|pink",pressed:"pressed",print:"\u05D4\u05D3\u05E4\u05E1|print",purple:"\u05E1\u05D2\u05D5\u05DC|purple",random:"\u05D0\u05E7\u05E8\u05D0\u05D9|random",range:"\u05D8\u05D5\u05D5\u05D7|range",red:"\u05D0\u05D3\u05D5\u05DD|red",remove:"\u05D4\u05E1\u05E8|remove",repeat:"\u05D7\u05D6\u05D5\u05E8|repeat",return:"return",right:"\u05D9\u05DE\u05D9\u05E0\u05D4|right",sleep:"\u05D4\u05DE\u05EA\u05DF|sleep",step:"\u05E6\u05E2\u05D3|step",times:"\u05E4\u05E2\u05DE\u05D9\u05DD|times",to:"\u05E2\u05D3|to",to_list:"\u05D0\u05DC|to",turn:"\u05E4\u05E0\u05D4|turn",while:"\u05DB\u05DC\u05E2\u05D5\u05D3|while",white:"\u05DC\u05D1\u05DF|white",with:"with",yellow:"\u05E6\u05D4\u05D5\u05D1|yellow",DIGIT:"0123456789"},hi:{add:"\u091C\u094B\u0921\u093C\u0928\u093E|add",and:"\u0914\u0930|and",ask:"\u092A\u0942\u091B\u0947\u0902|ask",at:"\u092A\u0930|at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"\u0917\u0942\u0902\u091C|echo",elif:"\u090F\u0932\u093F\u092B|elif",else:"\u0905\u0928\u094D\u092F\u0925\u093E|else",for:"\u0915\u0947 \u0932\u093F\u092F\u0947|for",forward:"\u0906\u0917\u0947|forward",from:"\u0938\u0947|from",gray:"gray",green:"green",if:"\u0905\u0917\u0930|if",in:"\u092E\u0947\u0902|in",input:"\u0907\u0928\u092A\u0941\u091F|input",is:"\u0939\u0948|is",left:"left",length:"\u0932\u0902\u092C\u093E\u0908|length",or:"\u092F\u093E|or",orange:"orange",pink:"pink",pressed:"pressed",print:"\u092A\u094D\u0930\u093F\u0902\u091F|print",purple:"purple",random:"\u0905\u0928\u093F\u092F\u092E\u093F\u0924|random",range:"\u0936\u094D\u0930\u0947\u0923\u0940|range",red:"red",remove:"\u0939\u091F\u093E\u0928\u093E|remove",repeat:"\u0926\u094B\u0939\u0930\u093E\u0928\u093E|repeat",return:"return",right:"right",sleep:"\u0928\u0940\u0902\u0926|sleep",step:"\u0915\u093C\u0926\u092E|step",times:"\u092C\u093E\u0930|times",to:"\u0938\u0947|to",to_list:"\u0938\u0947|to",turn:"\u092E\u094B\u0921\u093C|turn",while:"\u0935\u094D\u0939\u093E\u0907\u0932|while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},hu:{add:"besz\xFAr|add",and:"\xE9s|and",ask:"k\xE9rdez|ask",at:"list\xE1b\xF3l|at",black:"fekete|black",blue:"k\xE9k|blue",brown:"barna|brown",call:"call",clear:"t\xF6rl\xE9s|clear",color:"sz\xEDn|color",comma:",",def:"def",define:"define",echo:"ut\xE1noz|echo",elif:"egybk-ha|elif",else:"egy\xE9bk\xE9nt|else",for:"minden|for",forward:"el\u0151re|forward",from:"ebb\u0151l|from",gray:"sz\xFCrke|gray",green:"z\xF6ld|green",if:"ha|if",in:"eleme|in",input:"bek\xE9r|input",is:"egyenl\u0151|is",left:"balra|left",length:"hossz|length",or:"vagy|or",orange:"narancs|orange",pink:"pink",pressed:"lenyomva|pressed",print:"ki\xEDr|print",purple:"lila|purple",random:"random",range:"szakasz|range",red:"piros|red",remove:"kivesz|remove",repeat:"ism\xE9teld|repeat",return:"return",right:"jobbra|right",sleep:"szundi|sleep",step:"l\xE9p\xE9senk\xE9nt|step",times:"alkalommal|times",to:"t\u0151l|to",to_list:"ebbe|to",turn:"fordul|turn",while:"am\xEDg|while",white:"feh\xE9r|white",with:"with",yellow:"s\xE1rga|yellow",DIGIT:"0123456789"},id:{add:"tambah|add",and:"dan|and",ask:"tanya|ask",at:"secara|at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"warna|color",comma:",",def:"def",define:"define",echo:"gaungkan|echo",elif:"lain_jika|elif",else:"lainnya|else",for:"untuk|for",forward:"maju|forward",from:"dari|from",gray:"gray",green:"green",if:"jika|if",in:"dalam|in",input:"masukan|input",is:"adalah|is",left:"kiri|left",length:"panjang|length",or:"atau|or",orange:"orange",pink:"pink",pressed:"pressed",print:"cetak|print",purple:"purple",random:"acak|random",range:"batasan|range",red:"red",remove:"hapus|remove",repeat:"ulangi|repeat",return:"return",right:"kanan|right",sleep:"tidur|sleep",step:"langkah|step",times:"kali|times",to:"ke|to",to_list:"ke|to",turn:"belok|turn",while:"selama|while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},it:{add:"add",and:"e|and",ask:"chiedi|ask",at:"at",black:"nero|black",blue:"blu|blue",brown:"marrone|brown",call:"call",clear:"Elimina|clear",color:"colore|color",comma:",",def:"def",define:"define",echo:"eco|echo",elif:"altrimenti se|elif",else:"altrimenti|else",for:"for",forward:"avanti|forward",from:"da|from",gray:"grigio|gray",green:"verde|green",if:"if",in:"in",input:"input",is:"is",left:"sinistra|left",length:"lunghezza|length",or:"or",orange:"arancione|orange",pink:"rosa|pink",pressed:"Premuto|pressed",print:"stampa|print",purple:"viola|purple",random:"a caso|random",range:"intervallo|range",red:"rosso|red",remove:"rimuovi|remove",repeat:"ripeti|repeat",return:"return",right:"right",sleep:"dormi|sleep",step:"passo|step",times:"volte|times",to:"to",to_list:"to",turn:"gira|turn",while:"mentre|while",white:"bianco|white",with:"with",yellow:"giallo|yellow",DIGIT:"0123456789"},ja:{add:"\u305F\u3059|add",and:"and",ask:"\u304D\u3051|ask",at:"at",black:"\u304F\u308D|black",blue:"\u3042\u304A|blue",brown:"\u3061\u3083\u3044\u308D|brown",call:"call",clear:"clear",color:"\u3044\u308D|color",comma:",",def:"def",define:"define",echo:"\u307E\u306D|echo",elif:"elif",else:"else",for:"for",forward:"\u3059\u3059\u3081|forward",from:"from",gray:"\u306F\u3044\u3044\u308D|gray",green:"\u307F\u3069\u308A|green",if:"if",in:"in",input:"input",is:"is",left:"\u3072\u3060\u308A|left",length:"length",or:"or",orange:"\u304A\u308C\u3093\u3058|orange",pink:"\u3074\u3093\u304F|pink",pressed:"pressed",print:"\u304B\u3051|print",purple:"\u3080\u3089\u3055\u304D|purple",random:"random",range:"range",red:"\u3042\u304B|red",remove:"remove",repeat:"repeat",return:"return",right:"\u307F\u304E|right",sleep:"\u3084\u3059\u3081|sleep",step:"step",times:"\u304B\u3044|times",to:"to",to_list:"to",turn:"\u307E\u308F\u308C|turn",while:"while",white:"\u3057\u308D|white",with:"with",yellow:"\u304D\u3044\u308D|yellow",DIGIT:"0123456789"},kmr:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},ko:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},nb_NO:{add:"legg|add",and:"og|and",ask:"sp\xF8r|ask",at:"p\xE5|at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"ekko|echo",elif:"elhvis|elif",else:"ellers|else",for:"for",forward:"frem|forward",from:"fra|from",gray:"gray",green:"green",if:"hvis|if",in:"i|in",input:"inndata|input",is:"er|is",left:"venstre|left",length:"lengde|length",or:"eller|or",orange:"orange",pink:"pink",pressed:"pressed",print:"skriv|print",purple:"purple",random:"tilfeldig|random",range:"sekvens|range",red:"red",remove:"fjern|remove",repeat:"gjenta|repeat",return:"return",right:"h\xF8yre|right",sleep:"sov|sleep",step:"steg|step",times:"ganger|times",to:"til|to",to_list:"til|to",turn:"snu|turn",while:"mens|while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},nl:{add:"voeg|add",and:"en|and",ask:"vraag|ask",at:"op|at",black:"zwart|black",blue:"blauw|blue",brown:"bruin|brown",call:"call",clear:"wis|clear",color:"kleur|color",comma:",",def:"def",define:"define",echo:"echo",elif:"alsanders|elif",else:"anders|else",for:"voor|for",forward:"vooruit|forward",from:"uit|from",gray:"grijs|gray",green:"groen|green",if:"als|if",in:"in",input:"invoer|input",is:"is",left:"links|left",length:"lengte|length",or:"of|or",orange:"oranje|orange",pink:"roze|pink",pressed:"ingedrukt|pressed",print:"print",purple:"paars|purple",random:"willekeurig|random",range:"bereik|range",red:"rood|red",remove:"verwijder|remove",repeat:"herhaal|repeat",return:"return",right:"rechts|right",sleep:"slaap|sleep",step:"stap|step",times:"keer|times",to:"tot|to",to_list:"toe aan|to",turn:"draai|turn",while:"zolang|while",white:"wit|white",with:"with",yellow:"geel|yellow",DIGIT:"0123456789"},pa_PK:{add:"\u062F\u06BE\u0646|add",and:"\u062A\u06D2|and",ask:"\u0633\u0648\u0627\u0644|ask",at:"\u0633\u062A\u06BE\u062A\u06CC|at",black:"\u06A9\u0627\u0644\u0627|black",blue:"\u0646\u06CC\u0644\u0627|blue",brown:"\u0628\u06BE\u0648\u0631\u0627|brown",call:"call",clear:"clear",color:"\u0631\u0646\u06AF|color",comma:"\u060C|,",def:"def",define:"define",echo:"\u0641\u06CC\u0631|echo",elif:"\u06C1\u0648\u0631|elif",else:"\u0648\u06A9\u06BE\u0631\u0627|else",for:"\u062C\u062F\u0648\u06BA|for",forward:"\u0627\u06AF\u06D2|forward",from:"\u0633\u0631\u0648\u062A|from",gray:"\u0633\u0644\u06CC\u0679\u06CC|gray",green:"\u06C1\u0631\u0627|green",if:"\u062C\u06D2|if",in:"\u0627\u0646\u062F\u0631|in",input:"\u0627\u06CC\u0646\u067E\u0679|input",is:"\u0633\u0645\u0627\u0646|is",left:"\u06A9\u06BE\u0628\u06D2|left",length:"\u0644\u0645\u0628\u0627\u0626\u06CC|length",or:"\u06CC\u0627|or",orange:"\u0633\u0646\u062A\u0631\u0627|orange",pink:"\u06AF\u0644\u0627\u0628\u06CC|pink",pressed:"pressed",print:"\u0686\u067E\u0627\u0626\u06CC|print",purple:"\u062C\u0627\u0645\u0646\u06CC|purple",random:"\u0631\u0644\u0648\u0627\u0646|random",range:"\u0633\u0644\u0633\u0644\u06C1|range",red:"\u0644\u0627\u0644|red",remove:"\u0645\u0679\u0627\u06A9\u06D2|remove",repeat:"\u062F\u06C1\u0631\u0627|repeat",return:"return",right:"\u0633\u062C\u06D2|right",sleep:"\u0646\u06CC\u0646\u062F|sleep",step:"\u0633\u0637\u0631|step",times:"\u0636\u0631\u0628|times",to:"\u0645\u0646\u0632\u0644|to",to_list:"\u0645\u0646\u0632\u0644|to",turn:"\u0645\u0648\u0691\u0646|turn",while:"\u062C\u062F\u06A9\u06C1|while",white:"\u0686\u0679\u0627|white",with:"with",yellow:"\u067E\u06CC\u0644\u0627|yellow",DIGIT:"0\u06F01\u06F12\u06F23\u06F34\u06F45\u06F56\u06F67\u06F78\u06F89\u06F9"},pl:{add:"dodaj|add",and:"i|and",ask:"zapytaj|ask",at:"pozycja|at",black:"czarny|black",blue:"niebieski|blue",brown:"br\u0105zowy|brown",call:"call",clear:"wyczy\u015B\u0107|clear",color:"kolor|color",comma:",",def:"def",define:"define",echo:"do\u0142\u0105cz|echo",elif:"albo|elif",else:"inaczej|else",for:"dla|for",forward:"naprz\xF3d|forward",from:"z|from",gray:"szary|gray",green:"zielony|green",if:"je\u017Celi|if",in:"w|in",input:"wprowad\u017A|input",is:"to|is",left:"lewo|left",length:"d\u0142ugo\u015B\u0107|length",or:"lub|or",orange:"pomara\u0144czowy|orange",pink:"r\xF3\u017Cowy|pink",pressed:"naci\u015Bni\u0119ty|pressed",print:"napisz|print",purple:"fioletowy|purple",random:"losowa|random",range:"zakres|range",red:"czerwony|red",remove:"usu\u0144|remove",repeat:"powt\xF3rz|repeat",return:"return",right:"prawo|right",sleep:"\u015Bpij|sleep",step:"krok|step",times:"razy|times",to:"do|to",to_list:"do|to",turn:"obr\xF3\u0107|turn",while:"dop\xF3ki|while",white:"bia\u0142y|white",with:"with",yellow:"\u017C\xF3\u0142ty|yellow",DIGIT:"0123456789"},pt_BR:{add:"some|add",and:"e|and",ask:"pergunte|ask",at:"em|at",black:"preto|black",blue:"azul|blue",brown:"marrom|brown",call:"call",clear:"limpar|clear",color:"cor|color",comma:",",def:"def",define:"define",echo:"eco|echo",elif:"sen\xE3ose|elif",else:"sen\xE3o|else",for:"para|for",forward:"adiante|forward",from:"de|from",gray:"cinza|gray",green:"verde|green",if:"se|if",in:"em|in",input:"entrada|input",is:"\xE9|is",left:"esquerda|left",length:"comprimento|length",or:"ou|or",orange:"laranja|orange",pink:"rosa|pink",pressed:"apertado|pressed",print:"imprima|print",purple:"roxo|purple",random:"aleat\xF3rio|random",range:"intervalo|range",red:"vermelho|red",remove:"remova|remove",repeat:"repita|repeat",return:"return",right:"direita|right",sleep:"durma|sleep",step:"passo|step",times:"vezes|times",to:"para|to",to_list:"at\xE9|to",turn:"gire|turn",while:"enquanto|while",white:"branco|white",with:"with",yellow:"amarelo|yellow",DIGIT:"0123456789"},pt_PT:{add:"adicionar|add",and:"e|and",ask:"perguntar|ask",at:"em|at",black:"preto|black",blue:"azul|blue",brown:"castanho|brown",call:"call",clear:"clear",color:"cor|color",comma:",",def:"def",define:"define",echo:"eco|echo",elif:"elif",else:"else",for:"for",forward:"avan\xE7ar|forward",from:"de|from",gray:"cinzento|gray",green:"verde|green",if:"if",in:"in",input:"input",is:"is",left:"esquerda|left",length:"comprimento|length",or:"or",orange:"cor de laranja|orange",pink:"cor de rosa|pink",pressed:"pressed",print:"imprimir|print",purple:"roxo|purple",random:"random",range:"intervalo|range",red:"vermelho|red",remove:"remover|remove",repeat:"repetir|repeat",return:"return",right:"direita|right",sleep:"dormir|sleep",step:"passo|step",times:"vezes|times",to:"to",to_list:"para|to",turn:"virar|turn",while:"enquanto|while",white:"branco|white",with:"with",yellow:"amarelo|yellow",DIGIT:"0123456789"},ro:{add:"adun\u0103|add",and:"si|and",ask:"\xEEntreab\u0103|ask",at:"la|at",black:"negru|black",blue:"albastru|blue",brown:"maro|brown",call:"call",clear:"\u0219terge|clear",color:"culoare|color",comma:",",def:"def",define:"define",echo:"echo",elif:"altfel dac\u0103|elif",else:"else",for:"pentru|for",forward:"\xEEnainte|forward",from:"de la|from",gray:"gri|gray",green:"verde|green",if:"if",in:"in",input:"intrare|input",is:"is",left:"st\xE2nga|left",length:"lungime|length",or:"sau|or",orange:"portocaliu|orange",pink:"roz|pink",pressed:"ap\u0103sat|pressed",print:"print",purple:"mov|purple",random:"aleatoriu|random",range:"interval|range",red:"ro\u0219u|red",remove:"elimin\u0103|remove",repeat:"repet\u0103|repeat",return:"return",right:"dreapta|right",sleep:"sleep",step:"pas|step",times:"inmul\u021Bit|times",to:"c\u0103tre|to",to_list:"c\u0103tre|to",turn:"intoarce|turn",while:"\xEEn timp ce|while",white:"alb|white",with:"with",yellow:"galben|yellow",DIGIT:"0123456789"},ru:{add:"\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C|add",and:"\u0438|and",ask:"\u0437\u0430\u043F\u0440\u043E\u0441\u0438\u0442\u044C|ask",at:"\u0432|at",black:"\u0447\u0451\u0440\u043D\u044B\u0439|black",blue:"\u0441\u0438\u043D\u0438\u0439|blue",brown:"\u043A\u043E\u0440\u0438\u0447\u043D\u0435\u0432\u044B\u0439|brown",call:"call",clear:"\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C|clear",color:"\u0446\u0432\u0435\u0442|color",comma:",",def:"def",define:"define",echo:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C|echo",elif:"\u0438\u043D\u0430\u0447\u0435, \u0435\u0441\u043B\u0438|elif",else:"\u0438\u043D\u0430\u0447\u0435|else",for:"\u0434\u043B\u044F|for",forward:"\u0432\u043F\u0435\u0440\u0451\u0434|forward",from:"\u0438\u0437|from",gray:"\u0441\u0435\u0440\u044B\u0439|gray",green:"\u0437\u0435\u043B\u0451\u043D\u044B\u0439|green",if:"\u0435\u0441\u043B\u0438|if",in:"\u0432|in",input:"\u0432\u0432\u043E\u0434|input",is:"\u044D\u0442\u043E|is",left:"\u043D\u0430\u043B\u0435\u0432\u043E|left",length:"\u0434\u043B\u0438\u043D\u0430|length",or:"\u0438\u043B\u0438|or",orange:"\u043E\u0440\u0430\u043D\u0436\u0435\u0432\u044B\u0439|orange",pink:"\u0440\u043E\u0437\u043E\u0432\u044B\u0439|pink",pressed:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435|pressed",print:"\u043F\u0435\u0447\u0430\u0442\u0430\u0442\u044C|print",purple:"\u043F\u0443\u0440\u043F\u0443\u0440\u043D\u044B\u0439|purple",random:"\u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u043C|random",range:"\u043F\u0440\u043E\u043C\u0435\u0436\u0443\u0442\u043E\u043A|range",red:"\u043A\u0440\u0430\u0441\u043D\u044B\u0439|red",remove:"\u0443\u0434\u0430\u043B\u0438\u0442\u044C|remove",repeat:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C|repeat",return:"return",right:"\u043D\u0430\u043F\u0440\u0430\u0432\u043E|right",sleep:"\u0437\u0430\u0441\u043D\u0443\u0442\u044C|sleep",step:"\u0448\u0430\u0433|step",times:"\u0440\u0430\u0437|times",to:"\u0434\u043E|to",to_list:"\u0432|to",turn:"\u043F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C|turn",while:"\u043F\u043E\u043A\u0430|while",white:"\u0431\u0435\u043B\u044B\u0439|white",with:"with",yellow:"\u0436\u0451\u043B\u0442\u044B\u0439|yellow",DIGIT:"0123456789"},sq:{add:"shtoni|add",and:"dhe|and",ask:"pyet|ask",at:"n\xEB|at",black:"zez\xEB|black",blue:"blu|blue",brown:"kafe|brown",call:"thirr|call",clear:"pastro|clear",color:"ngjyr\xEB|color",comma:",",def:"def",define:"defino|define",echo:"p\xEBrs\xEBrit|echo",elif:"nendryshe|elif",else:"ndryshe|else",for:"p\xEBr|for",forward:"p\xEBrpara|forward",from:"nga|from",gray:"gri|gray",green:"jeshile|green",if:"n\xEBse|if",in:"n\xEB|in",input:"hyrje|input",is:"\xEBsht\xEB|is",left:"majtas|left",length:"gjat\xEBsia|length",or:"ose|or",orange:"portokalli|orange",pink:"roz\xEB|pink",pressed:"shtypur|pressed",print:"printo|print",purple:"vjollc\xEB|purple",random:"rast\xEBsi|random",range:"varg|range",red:"kuqe|red",remove:"hiqni|remove",repeat:"p\xEBrs\xEBrit|repeat",return:"rikthe|return",right:"drejt\xEB|right",sleep:"fle|sleep",step:"hap|step",times:"her|times",to:"deri|to",to_list:"deri|to",turn:"kthes\xEB|turn",while:"derisa|while",white:"bardh\xEB|white",with:"me|with",yellow:"verdh\xEB|yellow",DIGIT:"0123456789"},sr:{add:"dodaj|add",and:"i|and",ask:"pitaj|ask",at:"na|at",black:"crna|black",blue:"plava|blue",brown:"braon|brown",call:"call",clear:"o\u010Disti|clear",color:"boja|color",comma:",",def:"def",define:"defini\u0161i|define",echo:"poka\u017Ei|echo",elif:"ina\u010De ako|elif",else:"ina\u010De|else",for:"za|for",forward:"napred|forward",from:"od|from",gray:"siva|gray",green:"zelena|green",if:"ako|if",in:"u|in",input:"ulaz|input",is:"je|is",left:"levo|left",length:"du\u017Eina|length",or:"ili|or",orange:"narand\u017Easta|orange",pink:"roze|pink",pressed:"pritisnuto|pressed",print:"\u0161tampaj|print",purple:"ljubi\u010Dasta|purple",random:"nasumi\u010Dno|random",range:"opseg|range",red:"crvena|red",remove:"obri\u0161i|remove",repeat:"ponovi|repeat",return:"vrati|return",right:"desno|right",sleep:"spavanje|sleep",step:"korak|step",times:"vremena|times",to:"u|to",to_list:"u|to",turn:"okreni|turn",while:"dok|while",white:"bela|white",with:"sa|with",yellow:"\u017Euta|yellow",DIGIT:"0123456789"},sv:{add:"addera|add",and:"och|and",ask:"fr\xE5ga|ask",at:"vid|at",black:"svart|black",blue:"bl\xE5|blue",brown:"brun|brown",call:"anropa|call",clear:"rensa|clear",color:"f\xE4rg|color",comma:",",def:"def",define:"definiera|define",echo:"eko|echo",elif:"anom|elif",else:"annars|else",for:"f\xF6r|for",forward:"fram\xE5t|forward",from:"fr\xE5n|from",gray:"gr\xE5|gray",green:"gr\xF6n|green",if:"om|if",in:"i|in",input:"inmatning|input",is:"\xE4r|is",left:"v\xE4nster|left",length:"l\xE4ngd|length",or:"eller|or",orange:"orange",pink:"rosa|pink",pressed:"nedtryckt|pressed",print:"skriv|print",purple:"lila|purple",random:"slump|random",range:"intervall|range",red:"r\xF6d|red",remove:"radera|remove",repeat:"upprepa|repeat",return:"returnera|return",right:"h\xF6ger|right",sleep:"sov|sleep",step:"steg|step",times:"g\xE5nger|times",to:"till|to",to_list:"till|to",turn:"sv\xE4ng|turn",while:"medan|while",white:"vit|white",with:"med|with",yellow:"gul|yellow",DIGIT:"0123456789"},sw:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},te:{add:"\u0C1C\u0C4B\u0C21\u0C3F\u0C02\u0C1A\u0C41|add",and:"\u0C2E\u0C30\u0C3F\u0C2F\u0C41|and",ask:"\u0C05\u0C21\u0C17\u0C02\u0C21\u0C3F|ask",at:"\u0C35\u0C26\u0C4D\u0C26|at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"\u0C2A\u0C4D\u0C30\u0C24\u0C3F\u0C27\u0C4D\u0C35\u0C28\u0C3F|echo",elif:"\u0C2E\u0C30\u0C4A\u0C15\u0C1F\u0C3F \u0C09\u0C02\u0C1F\u0C47|elif",else:"\u0C32\u0C47\u0C15\u0C2A\u0C4B\u0C24\u0C47|else",for:"\u0C15\u0C4B\u0C38\u0C02|for",forward:"\u0C2E\u0C41\u0C02\u0C26\u0C41\u0C15\u0C41|forward",from:"\u0C28\u0C41\u0C02\u0C21\u0C3F|from",gray:"gray",green:"green",if:"\u0C09\u0C02\u0C1F\u0C47|if",in:"\u092E\u0947\u0C32\u0C4B|in",input:"\u0C07\u0C28\u0C4D\u0C2A\u0C41\u0C1F\u0C4D|input",is:"\u0C09\u0C02\u0C26\u0C3F|is",left:"left",length:"\u0C2A\u0C4A\u0C21\u0C35\u0C41|length",or:"\u0C32\u0C47\u0C26\u0C3E|or",orange:"orange",pink:"pink",pressed:"pressed",print:"\u0C2E\u0C41\u0C26\u0C4D\u0C30\u0C23|print",purple:"purple",random:"\u0C2F\u0C3E\u0C26\u0C43\u0C1A\u0C4D\u0C1B\u0C3F\u0C15\u0C02\u0C17\u0C3E|random",range:"\u0C2A\u0C30\u0C3F\u0C27\u0C3F|range",red:"red",remove:"\u0C24\u0C4A\u0C32\u0C17\u0C3F\u0C02\u0C1A\u0C41|remove",repeat:"\u0C2A\u0C41\u0C28\u0C30\u0C3E\u0C35\u0C43\u0C24\u0C02|repeat",return:"return",right:"right",sleep:"\u0C28\u0C3F\u0C26\u0C4D\u0C30|sleep",step:"\u0C05\u0C21\u0C41\u0C17\u0C41|step",times:"\u0C38\u0C3E\u0C30\u0C4D\u0C32\u0C41|times",to:"\u0C15\u0C41|to",to_list:"\u0C15\u0C41|to",turn:"\u0C2E\u0C32\u0C41\u0C2A\u0C41|turn",while:"\u0C05\u0C2F\u0C3F\u0C24\u0C47|while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},th:{add:"\u0E40\u0E1E\u0E34\u0E48\u0E21|add",and:"\u0E41\u0E25\u0E30|and",ask:"\u0E16\u0E32\u0E21\u0E27\u0E48\u0E32|ask",at:"\u0E41\u0E1A\u0E1A|at",black:"\u0E14\u0E33|black",blue:"\u0E19\u0E49\u0E33\u0E40\u0E07\u0E34\u0E19|blue",brown:"\u0E19\u0E49\u0E33\u0E15\u0E32\u0E25|brown",call:"call",clear:"\u0E25\u0E1A\u0E01\u0E23\u0E30\u0E14\u0E32\u0E19|clear",color:"\u0E2A\u0E35|color",comma:",",def:"def",define:"define",echo:"\u0E1E\u0E39\u0E14|echo",elif:"\u0E2B\u0E23\u0E37\u0E2D\u0E16\u0E49\u0E32|elif",else:"\u0E44\u0E21\u0E48\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E31\u0E49\u0E19|else",for:"\u0E43\u0E2B\u0E49|for",forward:"\u0E40\u0E14\u0E34\u0E19\u0E2B\u0E19\u0E49\u0E32|forward",from:"\u0E08\u0E32\u0E01|from",gray:"\u0E40\u0E17\u0E32|gray",green:"\u0E40\u0E02\u0E35\u0E22\u0E27|green",if:"\u0E16\u0E49\u0E32|if",in:"\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19|in",input:"\u0E23\u0E31\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25|input",is:"\u0E04\u0E37\u0E2D|is",left:"\u0E0B\u0E49\u0E32\u0E22|left",length:"\u0E04\u0E27\u0E32\u0E21\u0E22\u0E32\u0E27|length",or:"\u0E2B\u0E23\u0E37\u0E2D|or",orange:"\u0E2A\u0E49\u0E21|orange",pink:"\u0E0A\u0E21\u0E1E\u0E39|pink",pressed:"\u0E1B\u0E38\u0E48\u0E21\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E01\u0E14|pressed",print:"\u0E41\u0E2A\u0E14\u0E07|print",purple:"\u0E21\u0E48\u0E27\u0E07|purple",random:"\u0E2A\u0E38\u0E48\u0E21|random",range:"\u0E0A\u0E48\u0E27\u0E07|range",red:"\u0E41\u0E14\u0E07|red",remove:"\u0E25\u0E1A|remove",repeat:"\u0E17\u0E33\u0E0B\u0E49\u0E33|repeat",return:"return",right:"\u0E02\u0E27\u0E32|right",sleep:"\u0E23\u0E2D|sleep",step:"\u0E40\u0E14\u0E34\u0E19|step",times:"\u0E04\u0E23\u0E31\u0E49\u0E07|times",to:"\u0E08\u0E19\u0E16\u0E36\u0E07|to",to_list:"\u0E44\u0E1B\u0E22\u0E31\u0E07|to",turn:"\u0E40\u0E25\u0E35\u0E49\u0E22\u0E27|turn",while:"\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E44\u0E2B\u0E23\u0E48\u0E01\u0E47\u0E15\u0E32\u0E21\u0E17\u0E35\u0E48|while",white:"\u0E02\u0E32\u0E27|white",with:"with",yellow:"\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E07|yellow",DIGIT:"0123456789"},tl:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},tn:{add:"tsenya|add",and:"and",ask:"botsa|ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"faese|else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"fa|if",in:"in",input:"input",is:"ke|is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"gatisa|print",purple:"purple",random:"random",range:"range",red:"red",remove:"ntsha|remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},tr:{add:"ekle|add",and:"ve|and",ask:"sor|ask",at:"i\xE7inden|at",black:"siyah|black",blue:"mavi|blue",brown:"kahverengi|brown",call:"\xE7a\u011F\u0131r|call",clear:"temizle|clear",color:"renk|color",comma:",",def:"tan\u0131|def",define:"tan\u0131mla|define",echo:"yank\u0131la|echo",elif:"de\u011File\u011Fer|elif",else:"de\u011Filse|else",for:"\u015Funun i\xE7in|for",forward:"ileri|forward",from:"\u015Furadan|from",gray:"gri|gray",green:"ye\u015Fil|green",if:"e\u011Fer|if",in:"\u015Funda|in",input:"girdi|input",is:"e\u015Fit|is",left:"sol|left",length:"uzunluk|length",or:"veya|or",orange:"turuncu|orange",pink:"pembe|pink",pressed:"bas\u0131l\u0131|pressed",print:"yazd\u0131r|print",purple:"mor|purple",random:"rastgele|random",range:"aral\u0131k|range",red:"k\u0131rm\u0131z\u0131|red",remove:"kald\u0131r|remove",repeat:"tekrarla|repeat",return:"gerid\xF6n|return",right:"sa\u011F|right",sleep:"uyu|sleep",step:"ad\u0131m|step",times:"kere|times",to:"\u015Furaya|to",to_list:"\u015Furaya|to",turn:"d\xF6nd\xFCr|turn",while:"\u015Fu iken|while",white:"beyaz|white",with:"ile|with",yellow:"sar\u0131|yellow",DIGIT:"0123456789"},uk:{add:"\u0434\u043E\u0434\u0430\u0439|add",and:"\u0456|and",ask:"\u0437\u0430\u043F\u0438\u0442\u0430\u0439|ask",at:"\u043D\u0430 \u043F\u043E\u0437\u0438\u0446\u0456\u0457|at",black:"\u0447\u043E\u0440\u043D\u0438\u0439|black",blue:"\u0441\u0438\u043D\u0456\u0439|blue",brown:"\u043A\u043E\u0440\u0438\u0447\u043D\u0435\u0432\u0438\u0439|brown",call:"call",clear:"\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u0438|clear",color:"\u043A\u043E\u043B\u0456\u0440|color",comma:",",def:"def",define:"define",echo:"\u0435\u0445\u043E|echo",elif:"\u0456\u043D\u0430\u043A\u0448\u0435 \u044F\u043A\u0449\u043E|elif",else:"\u0456\u043D\u0430\u043A\u0448\u0435|else",for:"\u0434\u043B\u044F|for",forward:"\u0432\u043F\u0435\u0440\u0435\u0434|forward",from:"i\u0437|\u0437|from",gray:"\u0441\u0456\u0440\u0438\u0439|gray",green:"\u0437\u0435\u043B\u0435\u043D\u0438\u0439|green",if:"\u044F\u043A\u0449\u043E|if",in:"\u0432|in",input:"\u0432\u0432\u0435\u0434\u0438|input",is:"\u0446\u0435|is",left:"\u0432\u043B\u0456\u0432\u043E|left",length:"\u0434\u043E\u0432\u0436\u0438\u043D\u0430|length",or:"\u0430\u0431\u043E|or",orange:"\u043E\u0440\u0430\u043D\u0436\u0435\u0432\u0438\u0439|orange",pink:"\u0440\u043E\u0436\u0435\u0432\u0438\u0439|pink",pressed:"\u043D\u0430\u0442\u0438\u0441\u043D\u0443\u0432|pressed",print:"\u0434\u0440\u0443\u043A\u0443\u0439|print",purple:"\u0444\u0456\u043E\u043B\u0435\u0442\u043E\u0432\u0438\u0439|purple",random:"\u0432\u0438\u043F\u0430\u0434\u043A\u043E\u0432\u0438\u0439|\u0432\u0438\u043F\u0430\u0434\u043A\u043E\u0432\u0456\u0439|random",range:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D|\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043Di|range",red:"\u0447\u0435\u0440\u0432\u043E\u043D\u0438\u0439|red",remove:"\u0432\u0438\u0434\u0430\u043B\u0438|remove",repeat:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438|repeat",return:"return",right:"\u0432\u043F\u0440\u0430\u0432\u043E|right",sleep:"\u043F\u043E\u0447\u0435\u043A\u0430\u0439|sleep",step:"\u043A\u0440\u043E\u043A|step",times:"\u0440\u0430\u0437\u0456\u0432|\u0440\u0430\u0437\u0438|\u0440\u0430\u0437|times",to:"\u0434\u043E|to",to_list:"\u0434\u043E|to",turn:"\u043F\u043E\u0432\u0435\u0440\u043D\u0438|turn",while:"\u0442\u043E\u0434\u0456 \u044F\u043A|while",white:"\u0431\u0456\u043B\u0438\u0439|white",with:"with",yellow:"\u0436\u043E\u0432\u0442\u0438\u0439|yellow",DIGIT:"0123456789"},ur:{add:"\u0634\u0627\u0645\u0644|add",and:"\u0627\u0648\u0631|and",ask:"\u0628\u062A\u0627\u0624|ask",at:"\u06A9\u0648\u0626\u06CC|at",black:"\u06A9\u0627\u0644\u0627|black",blue:"\u0646\u06CC\u0644\u0627|blue",brown:"\u0628\u0631\u0627\u0624\u0646|brown",call:"call",clear:"\u0635\u0627\u0641|clear",color:"\u0631\u0646\u06AF|color",comma:"\u060C|,",def:"def",define:"define",echo:"\u067E\u06A9\u0627\u0631|echo",elif:"\u06CC\u0627\u0627\u06AF\u0631|elif",else:"\u0648\u0631\u0646\u06C1|else",for:"\u0641\u06CC|for",forward:"\u0622\u06AF\u06D2|forward",from:"\u0633\u06D2|from",gray:"\u06AF\u0631\u06D2|gray",green:"\u0633\u0628\u0632|green",if:"\u0627\u06AF\u0631|if",in:"\u0645\u06CC\u06BA|in",input:"\u0628\u062A\u0627\u0624|input",is:"\u06C1\u06D2|is",left:"\u0628\u0627\u0626\u06CC\u06BA|left",length:"\u0644\u0645\u0628\u0627\u0626\u06CC|length",or:"\u06CC\u0627|or",orange:"\u0627\u0648\u0631\u06CC\u0646\u062C|orange",pink:"\u06AF\u0644\u0627\u0628\u06CC|pink",pressed:"\u062F\u0628\u0627 \u06C1\u0648\u0627|pressed",print:"\u062F\u06A9\u06BE\u0627\u0624|print",purple:"\u062C\u0627\u0645\u0646\u06CC|purple",random:"\u0633\u0627|random",range:"\u062D\u062F|range",red:"\u0633\u0631\u062E|red",remove:"\u0646\u06A9\u0627\u0644\u0648|remove",repeat:"\u0645\u06A9\u0631\u0631|repeat",return:"return",right:"\u062F\u0627\u0626\u06CC\u06BA|right",sleep:"\u0622\u0631\u0627\u0645|sleep",step:"\u0642\u062F\u0645|step",times:"\u062F\u0641\u0639\u06C1|times",to:"\u0633\u06D2|to",to_list:"\u0627\u0646\u062F\u0631|to",turn:"\u0645\u0691\u0648|turn",while:"\u062C\u0628\u062A\u06A9|while",white:"\u0633\u0641\u06CC\u062F|white",with:"with",yellow:"\u067E\u06CC\u0644\u0627|yellow",DIGIT:"0123456789"},vi:{add:"add",and:"v\xE0|and",ask:"h\u1ECFi|ask",at:"at",black:"\u0111en|black",blue:"lam|blue",brown:"n\xE2u|brown",call:"call",clear:"clear",color:"m\xE0u|color",comma:",",def:"def",define:"define",echo:"\u0111\xE1p|echo",elif:"elif",else:"else",for:"for",forward:"ti\u1EBFn|forward",from:"from",gray:"x\xE1m|gray",green:"l\u1EE5c|green",if:"n\u1EBFu|if",in:"in",input:"input",is:"l\xE0|is",left:"tr\xE1i|left",length:"length",or:"ho\u1EB7c|or",orange:"cam|orange",pink:"h\u1ED3ng|pink",pressed:"pressed",print:"xu\u1EA5t|print",purple:"t\xEDm|purple",random:"ng\u1EABu_nhi\xEAn|random",range:"range",red:"\u0111\u1ECF|red",remove:"remove",repeat:"repeat",return:"return",right:"ph\u1EA3i|right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"quay|turn",while:"while",white:"tr\u1EAFng|white",with:"with",yellow:"v\xE0ng|yellow",DIGIT:"0123456789"},zh_Hans:{add:"\u52A0|add",and:"\u5E76\u4E14|and",ask:"\u63D0\u95EE|ask",at:"\u5728|at",black:"\u9ED1\u8272|black",blue:"\u84DD\u8272|blue",brown:"\u68D5\u8272|brown",call:"call",clear:"\u6E05\u9664|clear",color:"\u989C\u8272|color",comma:"\uFF0C|\u3001|,",def:"def",define:"define",echo:"\u56DE\u58F0|echo",elif:"\u5426\u5219\u5982\u679C|elif",else:"\u5426\u5219|else",for:"\u53D6|for",forward:"\u5411\u524D|forward",from:"\u4ECE|from",gray:"\u7070\u8272|gray",green:"\u7EFF\u8272|green",if:"\u5982\u679C|if",in:"\u5728\u91CC\u9762|in",input:"\u8F93\u5165|input",is:"\u662F|is",left:"\u5DE6|left",length:"\u957F\u5EA6|length",or:"\u6216|or",orange:"\u6A59\u8272|orange",pink:"\u7C89\u7EA2\u8272|pink",pressed:"\u6309\u4E0B|pressed",print:"\u6253\u5370|print",purple:"\u7D2B\u8272|purple",random:"\u968F\u673A|random",range:"\u8303\u56F4|range",red:"\u7EA2\u8272|red",remove:"\u79FB\u9664|remove",repeat:"\u91CD\u590D|repeat",return:"return",right:"\u53F3|right",sleep:"\u7761\u7720|sleep",step:"\u6B65|step",times:"\u6B21|times",to:"\u5230|to",to_list:"\u5230|to",turn:"\u65CB\u8F6C|turn",while:"\u5F53\u7684\u65F6\u5019|while",white:"\u767D\u8272|white",with:"with",yellow:"\u9EC4\u8272|yellow",DIGIT:"0123456789"},zh_Hant:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"}}});var ep=We(uo=>{"use strict";var D_=uo&&uo.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(uo,"__esModule",{value:!0});uo.convertReg=uo.convert=uo.initializeSyntaxHighlighter=void 0;var FQ=D_(Q_()),YQ=D_(jc());function HQ(r){let e=Jh(YQ.default),t=r.keywordLanguage;e.has(t)||(t="en");var n=e.get(t),i=JSON.stringify(FQ.default),s=S_(i,n),c=JSON.parse(s);if(window.define)for(let h of c)define("ace/mode/"+h.name,[],function(f,O,m){var x=f("ace/lib/oop"),v=f("ace/mode/text").Mode,y=f("ace/mode/text_highlight_rules").TextHighlightRules;function P(){this.$rules=h.rules,this.normalizeRules()}x.inherits(P,y);function L(){this.HighlightRules=P}x.inherits(L,v),O.Mode=L})}uo.initializeSyntaxHighlighter=HQ;function Jh(r){if(typeof r=="object"){let e=new Map(Object.entries(r)),t=new Map;return e.forEach((n,i)=>{t.set(i,Jh(n))}),t}else return r}uo.convert=Jh;function S_(r,e){var t=r;return e.forEach((n,i)=>{i=i;var s=new RegExp("__"+i+"__","g");t=t.replace(s,n)}),t}uo.convertReg=S_});var E_=We(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Wc.TRANSLATIONS=void 0;Wc.TRANSLATIONS={ar:{CheckInternet:"\u0623\u0644\u0642\u064A \u0646\u0638\u0631\u0629 \u0625\u0630\u0627 \u0643\u0627\u0646 \u0627\u062A\u0635\u0627\u0644\u0643 \u0628\u0627\u0644\u0625\u0646\u062A\u0631\u0646\u062A \u064A\u0639\u0645\u0644 \u0628\u0634\u0643\u0644 \u0635\u062D\u064A\u062D.",Connection_error:"\u0644\u0645 \u0646\u062A\u0645\u0643\u0646 \u0645\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u062E\u0627\u062F\u0645.",Empty_output:"\u0647\u0630\u0627 \u0627\u0644\u0631\u0645\u0632 \u064A\u0639\u0645\u0644 \u0648\u0644\u0643\u0646 \u0644\u0627 \u064A\u0637\u0628\u0639 \u0623\u064A \u0634\u064A\u0621. \u0623\u0636\u0641 \u0623\u0645\u0631 \u0637\u0628\u0627\u0639\u0629 \u0625\u0644\u0649 \u0627\u0644\u0643\u0648\u062F \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0623\u0648 \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u0644\u0633\u0644\u062D\u0641\u0627\u0629 \u0644\u0637\u0628\u0627\u0639\u0629 \u0634\u064A\u0621 \u0645\u0627.",Errors_found:"You made a mistake! Don't worry, Hedy is trying to find the mistakes",Execute_error:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0645\u0627 \u0623\u062B\u0646\u0627\u0621 \u062A\u0634\u063A\u064A\u0644 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062C.",Other_error:"\u0639\u0641\u0648\u0627! \u0631\u0628\u0645\u0627 \u0627\u0631\u062A\u0643\u0628\u0646\u0627 \u062E\u0637\u0623 \u0628\u0633\u064A\u0637\u0627.",Program_repair:"\u0642\u062F \u064A\u0643\u0648\u0646 \u0647\u0630\u0627 \u0647\u0648 \u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0635\u062D\u064A\u062D \u060C \u0647\u0644 \u064A\u0645\u0643\u0646\u0643 \u0625\u0635\u0644\u0627\u062D\u0647\u061F",Program_too_long:"\u064A\u0633\u062A\u063A\u0631\u0642 \u0628\u0631\u0646\u0627\u0645\u062C\u0643 \u0648\u0642\u062A\u064B\u0627 \u0637\u0648\u064A\u0644\u0627\u064B \u0644\u0644\u062A\u0634\u063A\u064A\u0644.",ServerError:"\u0644\u0642\u062F \u0643\u062A\u0628\u062A \u0628\u0631\u0646\u0627\u0645\u062C\u0627 \u0644\u0645 \u0646\u0643\u0646 \u0646\u062A\u0648\u0642\u0639\u0647. \u0625\u0630\u0627 \u0643\u0646\u062A \u062A\u0631\u063A\u0628 \u0641\u064A \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u0629 \u060C \u0641\u0623\u0631\u0633\u0644 \u0644\u0646\u0627 \u0628\u0631\u064A\u062F\u0627 \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A\u0627 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u062A\u0648\u0649 \u0648\u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0639\u0644\u0649 hello@hedy.org. \u0641\u064A \u063A\u0636\u0648\u0646 \u0630\u0644\u0643 \u060C \u062C\u0631\u0628 \u0634\u064A\u0626\u0627 \u0645\u062E\u062A\u0644\u0641\u0627 \u0642\u0644\u064A\u0644\u0627 \u0648\u0623\u0644\u0642 \u0646\u0638\u0631\u0629 \u0623\u062E\u0631\u0649 \u0639\u0644\u0649 \u0627\u0644\u0623\u0645\u062B\u0644\u0629. \u0634\u0643\u0631\u0627!",Transpile_error:"\u0644\u0627 \u064A\u0645\u0643\u0646\u0646\u0627 \u062A\u0634\u063A\u064A\u0644 \u0628\u0631\u0646\u0627\u0645\u062C\u0643.",Transpile_success:`\u0623\u062D\u0633\u0646\u062A! +var hedyApp=(()=>{var yh=Object.defineProperty,bh=Object.defineProperties;var wh=Object.getOwnPropertyDescriptors;var Gl=Object.getOwnPropertySymbols;var Lh=Object.prototype.hasOwnProperty,Mh=Object.prototype.propertyIsEnumerable;var Hl=(l,u,p)=>u in l?yh(l,u,{enumerable:!0,configurable:!0,writable:!0,value:p}):l[u]=p,xi=(l,u)=>{for(var p in u||(u={}))Lh.call(u,p)&&Hl(l,p,u[p]);if(Gl)for(var p of Gl(u))Mh.call(u,p)&&Hl(l,p,u[p]);return l},ya=(l,u)=>bh(l,wh(u));var Ao=(l=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(l,{get:(u,p)=>(typeof require!="undefined"?require:u)[p]}):l)(function(l){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+l+'" is not supported')});var ut=(l,u)=>()=>(u||l((u={exports:{}}).exports,u),u.exports);var Wl=ut((Sm,Nh)=>{Nh.exports=[{name:"level1",rules:{start:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start"},{regex:"_\\?_",token:"invalid",next:"start"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^ *)(__ask__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__print__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__echo__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__forward__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__turn__)",token:["text","keyword"],next:"direction",unicode:!0},{regex:"(^ *)(__color__)",token:["text","keyword"],next:"color",unicode:!0}],value:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"value"},{regex:"_\\?_",token:"invalid",next:"value"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}],color:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"color"},{regex:"_\\?_",token:"invalid",next:"color"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(__black__|__gray__|__white__|__green__|__blue__|__purple__|__brown__|__pink__|__red__|__orange__|__yellow__)",token:["text"],unicode:!0}],direction:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"direction"},{regex:"_\\?_",token:"invalid",next:"direction"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(__right__|__left__)",token:["text"],unicode:!0}]}},{name:"level2",rules:{start:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start"},{regex:"_\\?_",token:"invalid",next:"start"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^ *)(__print__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)( +)(__ask__)",token:["text","text","text","keyword","text","keyword"],next:"value",unicode:!0},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)",token:["text","text","text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__sleep__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__forward__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__turn__)",token:["text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__color__)",token:["text","keyword"],next:"value",unicode:!0}],value:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"value"},{regex:"_\\?_",token:"invalid",next:"value"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}]}},{name:"level3",rules:{start:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start"},{regex:"_\\?_",token:"invalid",next:"start"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)( *)(__ask__)",token:["text","text","text","keyword","text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)",token:["text","text","text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__print__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__turn__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__sleep__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__forward__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__add__)",token:["text","keyword"],next:"valAdd",unicode:!0},{regex:"(^ *)(__remove__)",token:["text","keyword"],next:"valRemove",unicode:!0},{regex:"(^ *)(__color__)",token:["text","keyword"],next:"value",unicode:!0}],value:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"value"},{regex:"_\\?_",token:"invalid",next:"value"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0},{regex:"(__comma__)",token:["keyword"],unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueExpr:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueExpr"},{regex:"_\\?_",token:"invalid",next:"valueExpr"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0}],valAdd:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valAdd"},{regex:"_\\?_",token:"invalid",next:"valAdd"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"valueTo",unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueTo:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueTo"},{regex:"_\\?_",token:"invalid",next:"valueTo"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}],valRemove:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valRemove"},{regex:"_\\?_",token:"invalid",next:"valRemove"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"valueFrom",unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueFrom:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueFrom"},{regex:"_\\?_",token:"invalid",next:"valueFrom"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}]}},{name:"level4",rules:{start:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start"},{regex:"_\\?_",token:"invalid",next:"start"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)( *)(__ask__)",token:["text","text","text","keyword","text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7]+)( +)(__is__)",token:["text","text","text","keyword"],next:"value",unicode:!0},{regex:"(^ *)(__print__)",token:["text","keyword"],next:"valueExpr",unicode:!0},{regex:"(^ *)(__turn__)",token:["text","keyword"],next:"valueSimple",unicode:!0},{regex:"(^ *)(__sleep__)",token:["text","keyword"],next:"valueSimple",unicode:!0},{regex:"(^ *)(__forward__)",token:["text","keyword"],next:"valueSimple",unicode:!0},{regex:"(^ *)(__color__)",token:["text","keyword"],next:"valueSimple",unicode:!0},{regex:"(^ *)(__add__)",token:["text","keyword"],next:"valAdd",unicode:!0},{regex:"(^ *)(__remove__)",token:["text","keyword"],next:"valRemove",unicode:!0},{regex:"(^ *)(__clear__)",token:["text","event"],unicode:!0}],value:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"value"},{regex:"_\\?_",token:"invalid",next:"value"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0},{regex:"(__comma__)",token:["keyword"],unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueExpr:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueExpr"},{regex:"_\\?_",token:"invalid",next:"valueExpr"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0},{regex:'"[^"]*"',token:"constant.character",unicode:!0},{regex:"'[^']*'",token:"constant.character",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0}],valueSimple:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueSimple"},{regex:"_\\?_",token:"invalid",next:"valueSimple"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__at__)( +)(__random__)",token:["text","keyword","keyword","keyword"],unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valAdd:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valAdd"},{regex:"_\\?_",token:"invalid",next:"valAdd"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"valueTo",unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueTo:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueTo"},{regex:"_\\?_",token:"invalid",next:"valueTo"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}],valRemove:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valRemove"},{regex:"_\\?_",token:"invalid",next:"valRemove"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"valueFrom",unicode:!0},{regex:"(__black__|__blue__|__brown__|__gray__|__green__|__orange__|__pink__|__purple__|__red__|__white__|__yellow__)",token:["text"],unicode:!0}],valueFrom:[{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"valueFrom"},{regex:"_\\?_",token:"invalid",next:"valueFrom"},{regex:"#.*$",token:"comment",next:"start"},{regex:"(^|$)",token:["text"],next:"start"}]}},{name:"level5",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level6",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level7",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level8",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level9",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level10",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level11",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level12",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level13",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level14",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level15",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__else__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__while__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level16",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\[)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\])([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__while__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\[)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\])",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level17",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\[)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\])([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(:)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__while__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__define__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__call__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__with__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\[)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\])",token:["keyword"],next:"start",unicode:!0},{regex:"(:)",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__elif__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}},{name:"level18",rules:{start:[{regex:"(^| )(__is__)( +)(__ask__)",token:["text","keyword","text","keyword"]},{regex:"(=)( +)(__ask__)",token:["keyword","text","keyword"]},{regex:"#.*$",token:"comment",next:"start",unicode:!0},{regex:'"[^"]*"',token:"constant.character",next:"start",unicode:!0},{regex:"'[^']*'",token:"constant.character",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*\xBB",token:"constant.character",next:"start",unicode:!0},{regex:'"[^"]*$',token:"text",next:"start",unicode:!0},{regex:"'[^']*$",token:"text",next:"start",unicode:!0},{regex:"\xAB[^\xBB]*$",token:"text",next:"start",unicode:!0},{regex:"_\\?_",token:"invalid",next:"start",unicode:!0},{regex:"(^| )(_)(?= |$)",token:["text","invalid"],next:"start",unicode:!0},{regex:"(^| )([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","variable"],next:"start",unicode:!0},{regex:"(^| )(__print__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__forward__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__turn__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__random__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__times__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword","variable"],next:"start",unicode:!0},{regex:"(__comma__)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(-)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(=)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(/)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\*)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\+)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(<)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(>)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(!)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\[)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\])([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(:)([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\()([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(\\))([__DIGIT__]*\\.?[__DIGIT__]+)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword","variable"],next:"start",unicode:!0},{regex:"(^| )(__is__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__at__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__add__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to_list__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__remove__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__from__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__in__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(not_in)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__if__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__else__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__for__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__range__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__to__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__and__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__or__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__while__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__input__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__repeat__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__color__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__def__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","support.function"],next:"start",unicode:!0},{regex:"(^| )(__return__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__comma__)",token:["keyword"],next:"start",unicode:!0},{regex:"(-)",token:["keyword"],next:"start",unicode:!0},{regex:"(=)",token:["keyword"],next:"start",unicode:!0},{regex:"(/)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\*)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\+)",token:["keyword"],next:"start",unicode:!0},{regex:"(<)",token:["keyword"],next:"start",unicode:!0},{regex:"(>)",token:["keyword"],next:"start",unicode:!0},{regex:"(!)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\[)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\])",token:["keyword"],next:"start",unicode:!0},{regex:"(:)",token:["keyword"],next:"start",unicode:!0},{regex:"(\\()",token:["keyword"],next:"start",unicode:!0},{regex:"(\\))",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__print__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__sleep__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__forward__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__turn__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__random__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(^| )(__times__)",token:["text","keyword"],next:"start",unicode:!0},{regex:"(__elif__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["keyword"],next:"start",unicode:!0},{regex:"(^| )(__black__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__blue__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__brown__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__gray__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__green__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__orange__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pink__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__purple__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__red__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__white__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__yellow__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","text"],next:"start",unicode:!0},{regex:"(^| )(__pressed__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0},{regex:"(^| )(__clear__)(?![\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}_\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\xB7])",token:["text","event"],next:"start",unicode:!0}]}}]});var ba=ut((Dm,Th)=>{Th.exports={ar:{add:"\u0640*\u0627\u0640*\u0636\u0640*\u0641\u0640*|add",and:"\u0640*\u0648\u0640*|and",ask:"\u0640*\u0627\u0640*\u0633\u0640*\u0623\u0640*\u0644\u0640*|ask",at:"\u0640*\u0628\u0640*\u0634\u0640*\u0643\u0640*\u0644\u0640*|at",black:"\u0640*\u0627\u0640*\u0633\u0640*\u0648\u0640*\u062F\u0640*|black",blue:"\u0640*\u0627\u0640*\u0632\u0640*\u0631\u0640*\u0642\u0640*|blue",brown:"\u0640*\u0628\u0640*\u0646\u0640*\u064A\u0640*|brown",call:"\u0640*c\u0640*a\u0640*l\u0640*l\u0640*|call",clear:"\u0640*c\u0640*l\u0640*e\u0640*a\u0640*r\u0640*|clear",color:"\u0640*\u0644\u0640*\u0648\u0640*\u0646\u0640*|color",comma:"\u0640*\u060C\u0640*|,",def:"\u0640*d\u0640*e\u0640*f\u0640*|def",define:"\u0640*d\u0640*e\u0640*f\u0640*i\u0640*n\u0640*e\u0640*|define",echo:"\u0640*\u0631\u0640*\u062F\u0640*\u062F\u0640*|echo",elif:"\u0640*\u0648\u0640*\u0625\u0640*\u0644\u0640*\u0627\u0640* \u0640*\u0627\u0640*\u0630\u0640*\u0627\u0640*|elif",else:"\u0640*\u0648\u0640*\u0625\u0640*\u0644\u0640*\u0627\u0640*|else",for:"\u0640*\u0644\u0640*\u0643\u0640*\u0644\u0640*|for",forward:"\u0640*\u062A\u0640*\u0642\u0640*\u062F\u0640*\u0645\u0640*|forward",from:"\u0640*\u0645\u0640*\u0646\u0640*|from",gray:"\u0640*\u0631\u0640*\u0645\u0640*\u0627\u0640*\u062F\u0640*\u064A\u0640*|gray",green:"\u0640*\u0627\u0640*\u062E\u0640*\u0636\u0640*\u0631\u0640*|green",if:"\u0640*\u0627\u0640*\u0630\u0640*\u0627\u0640*|if",in:"\u0640*\u0641\u0640*\u064A\u0640*|in",input:"\u0640*\u0627\u0640*\u062F\u0640*\u062E\u0640*\u0644\u0640*|input",is:"\u0640*\u0647\u0640*\u0648\u0640*|\u0640*\u0647\u0640*\u064A\u0640*|is",left:"\u0640*\u064A\u0640*\u0633\u0640*\u0627\u0640*\u0631\u0640*|left",length:"\u0640*\u0637\u0640*\u0648\u0640*\u0644\u0640*|length",or:"\u0640*\u0623\u0640*\u0648\u0640*|or",orange:"\u0640*\u0628\u0640*\u0631\u0640*\u062A\u0640*\u0642\u0640*\u0627\u0640*\u0644\u0640*\u064A\u0640*|orange",pink:"\u0640*\u0632\u0640*\u0647\u0640*\u0631\u0640*\u064A\u0640*|pink",pressed:"\u0640*p\u0640*r\u0640*e\u0640*s\u0640*s\u0640*e\u0640*d\u0640*|pressed",print:"\u0640*\u0642\u0640*\u0648\u0640*\u0644\u0640*|print",purple:"\u0640*\u0628\u0640*\u0646\u0640*\u0641\u0640*\u0633\u0640*\u062C\u0640*\u064A\u0640*|purple",random:"\u0640*\u0639\u0640*\u0634\u0640*\u0648\u0640*\u0627\u0640*\u0626\u0640*\u064A\u0640*|random",range:"\u0640*\u0646\u0640*\u0637\u0640*\u0627\u0640*\u0642\u0640*|range",red:"\u0640*\u0627\u0640*\u062D\u0640*\u0645\u0640*\u0631\u0640*|red",remove:"\u0640*\u0627\u0640*\u0632\u0640*\u0644\u0640*|remove",repeat:"\u0640*\u0643\u0640*\u0631\u0640*\u0631\u0640*|repeat",return:"\u0640*r\u0640*e\u0640*t\u0640*u\u0640*r\u0640*n\u0640*|return",right:"\u0640*\u064A\u0640*\u0645\u0640*\u064A\u0640*\u0646\u0640*|right",sleep:"\u0640*\u0627\u0640*\u0646\u0640*\u062A\u0640*\u0638\u0640*\u0631\u0640*|sleep",step:"\u0640*\u062E\u0640*\u0637\u0640*\u0648\u0640*\u0629\u0640*|step",times:"\u0640*\u0645\u0640*\u0631\u0640*\u0629\u0640*|times",to:"\u0640*\u0627\u0640*\u0644\u0640*\u0649\u0640*|to",to_list:"\u0640*\u0627\u0640*\u0644\u0640*\u0649\u0640*|to",turn:"\u0640*\u0627\u0640*\u0633\u0640*\u062A\u0640*\u062F\u0640*\u0631\u0640*|turn",while:"\u0640*\u0628\u0640*\u064A\u0640*\u0646\u0640*\u0645\u0640*\u0627\u0640*|while",white:"\u0640*\u0627\u0640*\u0628\u0640*\u064A\u0640*\u0636\u0640*|white",with:"\u0640*w\u0640*i\u0640*t\u0640*h\u0640*|with",yellow:"\u0640*\u0627\u0640*\u0635\u0640*\u0641\u0640*\u0631\u0640*|yellow",DIGIT:"0\u06601\u06612\u06623\u06634\u06645\u06656\u06667\u06678\u06689\u0669"},bg:{add:"\u0434\u043E\u0431\u0430\u0432\u0438|add",and:"\u0438|and",ask:"\u043F\u043E\u043F\u0438\u0442\u0430\u0439|ask",at:"\u0432|at",black:"\u0447\u0435\u0440\u043D\u043E|black",blue:"\u0441\u0438\u043D\u044C\u043E|blue",brown:"\u043A\u0430\u0444\u044F\u0432\u043E|brown",call:"\u0438\u0437\u0432\u0438\u043A\u0430\u0439|call",clear:"\u0438\u0437\u0447\u0438\u0441\u0442\u0438|clear",color:"\u0446\u0432\u044F\u0442|color",comma:",",def:"\u0434\u0435\u0444|def",define:"\u0434\u0435\u0444\u0438\u043D\u0438\u0440\u0430\u0439|define",echo:"\u043F\u043E\u043A\u0430\u0436\u0438|echo",elif:"\u0438\u043D\u0430\u0447\u0435 \u0430\u043A\u043E|elif",else:"\u0438\u043D\u0430\u0447\u0435|else",for:"\u0437\u0430|for",forward:"\u043D\u0430\u043F\u0440\u0435\u0434|forward",from:"\u043E\u0442|from",gray:"\u0441\u0438\u0432\u043E|gray",green:"\u0437\u0435\u043B\u0435\u043D\u043E|green",if:"\u0430\u043A\u043E|if",in:"\u0432|in",input:"\u0432\u044A\u0432\u0435\u0436\u0434\u0430\u043D\u0435|input",is:"\u0435|is",left:"\u043B\u044F\u0432\u043E|left",length:"\u0434\u044A\u043B\u0436\u0438\u043D\u0430|length",or:"\u0438\u043B\u0438|or",orange:"\u043E\u0440\u0430\u043D\u0436\u0435\u0432\u043E|orange",pink:"\u0440\u043E\u0437\u043E\u0432\u043E|pink",pressed:"\u043D\u0430\u0442\u0438\u0441\u043D\u0430\u0442|pressed",print:"\u043F\u0440\u0438\u043D\u0442\u0438\u0440\u0430\u0439|print",purple:"\u043B\u0438\u043B\u0430\u0432\u043E|purple",random:"\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u043D\u043E|random",range:"\u043E\u0431\u0445\u0432\u0430\u0442|range",red:"\u0447\u0435\u0440\u0432\u0435\u043D\u043E|red",remove:"\u043F\u0440\u0435\u043C\u0430\u0445\u043D\u0438|remove",repeat:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438|repeat",return:"\u0432\u044A\u0440\u043D\u0438|return",right:"\u0434\u044F\u0441\u043D\u043E|right",sleep:"\u0441\u043F\u0438|sleep",step:"\u0441\u0442\u044A\u043F\u043A\u0430|step",times:"\u043F\u044A\u0442\u0438|times",to:"\u0434\u043E|to",to_list:"\u0434\u043E|to",turn:"\u0437\u0430\u0432\u0438\u0439|turn",while:"\u0434\u043E\u043A\u0430\u0442\u043E|while",white:"\u0431\u044F\u043B\u043E|white",with:"\u0441/\u0441\u044A\u0441|with",yellow:"\u0436\u044A\u043B\u0442\u043E|yellow",DIGIT:"0123456789"},bn:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},ca:{add:"afegeix|add",and:"i|and",ask:"pregunta|ask",at:"a|at",black:"negre|black",blue:"blau|blue",brown:"marr\xF3|brown",call:"crida|call",clear:"neteja|clear",color:"color",comma:",",def:"def",define:"defineix|define",echo:"eco|echo",elif:"sinosi|elif",else:"sino|else",for:"per|for",forward:"avan\xE7a|forward",from:"de|from",gray:"gris|gray",green:"verd|green",if:"si|if",in:"dins|in",input:"entra|input",is:"\xE9s|is",left:"esquerra|left",length:"mida|length",or:"o|or",orange:"taronja|orange",pink:"rosa|pink",pressed:"pressionat|pressed",print:"imprimeix|print",purple:"lila|purple",random:"aleatori|random",range:"rang|range",red:"vermell|red",remove:"esborra|remove",repeat:"repeteix|repeat",return:"retorna|return",right:"dreta|right",sleep:"dorm|sleep",step:"pas|step",times:"vegades|times",to:"fins|to",to_list:"a|to",turn:"gira|turn",while:"mentre|while",white:"blanc|white",with:"amb|with",yellow:"groc|yellow",DIGIT:"0123456789"},cs:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},cy:{add:"adio|add",and:"a|and",ask:"gofyn|ask",at:"ar|at",black:"du|black",blue:"glas|blue",brown:"brown",call:"call",clear:"clear",color:"lliw|color",comma:",",def:"def",define:"define",echo:"adleisio|echo",elif:"elif",else:"arall|else",for:"ar gyfer|for",forward:"ymlaen|forward",from:"o|from",gray:"llwyd|gray",green:"gwyrdd|green",if:"os|if",in:"mewn|in",input:"mewnbwn|input",is:"yw|is",left:"chwith|left",length:"hyd|length",or:"neu|or",orange:"oren|orange",pink:"pinc|pink",pressed:"gwasgu|pressed",print:"argraffu|print",purple:"porffor|purple",random:"hap|random",range:"ystod|range",red:"coch|red",remove:"dileu|remove",repeat:"ailadrodd|repeat",return:"return",right:"dde|right",sleep:"cysgu|sleep",step:"cam|step",times:"gwaith|times",to:"i|to",to_list:"i|to",turn:"troi|turn",while:"tra|while",white:"gwyn|white",with:"with",yellow:"melyn|yellow",DIGIT:"0123456789"},da:{add:"add",and:"and",ask:"sp\xF8rg|ask",at:"at",black:"sort|black",blue:"bl\xE5|blue",brown:"brun|brown",call:"call",clear:"clear",color:"farve|color",comma:",",def:"def",define:"define",echo:"ekko|echo",elif:"elif",else:"else",for:"for",forward:"fremad|forward",from:"from",gray:"gr\xE5|gray",green:"gr\xF8n|green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"lyser\xF8d|pink",pressed:"pressed",print:"print",purple:"lila|purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"drej|turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},de:{add:"addiere|add",and:"und|and",ask:"frage|ask",at:"an|at",black:"Schwarz|black",blue:"Blau|blue",brown:"Braun|brown",call:"call",clear:"abwischen|clear",color:"farbe|color",comma:",",def:"def",define:"define",echo:"echo",elif:"sofalls|elif",else:"sonst|else",for:"f\xFCr|for",forward:"vorw\xE4rts|forward",from:"aus|from",gray:"Grau|gray",green:"Gr\xFCn|green",if:"falls|if",in:"in",input:"eingabe|input",is:"ist|is",left:"links|left",length:"l\xE4nge|length",or:"oder|or",orange:"Orange|orange",pink:"Pink|pink",pressed:"gedr\xFCckt|pressed",print:"drucke|print",purple:"Lila|purple",random:"zuf\xE4llig|random",range:"bereich|range",red:"Rot|red",remove:"entferne|remove",repeat:"wiederhole|repeat",return:"return",right:"rechts|right",sleep:"schlafe|sleep",step:"schritt|step",times:"mal|times",to:"bis|to",to_list:"zu|to",turn:"drehe|turn",while:"solange|while",white:"Wei\xDF|white",with:"with",yellow:"Gelb|yellow",DIGIT:"0123456789"},el:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},en:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},eo:{add:"aldonu|add",and:"kaj|and",ask:"demandu|ask",at:"la\u016D|at",black:"nigra|black",blue:"blua|blue",brown:"bruna|brown",call:"call",clear:"clear",color:"koloro|color",comma:",",def:"def",define:"define",echo:"e\u0125u|echo",elif:"alie se|elif",else:"alie|else",for:"por|for",forward:"anta\u016Den|forward",from:"el|from",gray:"griza|gray",green:"verda|green",if:"se|if",in:"en|in",input:"enigu|input",is:"estas|is",left:"maldekstren|left",length:"longo|length",or:"a\u016D|or",orange:"oran\u011Da|orange",pink:"rozkolora|pink",pressed:"pressed",print:"presu|print",purple:"purpura|purple",random:"hazardo|random",range:"intervalo|range",red:"ru\u011Da|red",remove:"forigu|remove",repeat:"ripetu|repeat",return:"return",right:"dekstren|right",sleep:"dormu|sleep",step:"pa\u015Do|step",times:"fojojn|times",to:"\u011Dis|to",to_list:"al|to",turn:"turnu|turn",while:"dum|while",white:"blanka|white",with:"with",yellow:"flava|yellow",DIGIT:"0123456789"},es:{add:"a\xF1adir|add",and:"y|and",ask:"preguntar|ask",at:"en|at",black:"negro|black",blue:"azul|blue",brown:"marr\xF3n|brown",call:"llamar|call",clear:"limpiar|clear",color:"color",comma:",",def:"def",define:"definir|define",echo:"eco|echo",elif:"sinosi|elif",else:"sino|else",for:"para|for",forward:"adelante|forward",from:"de|from",gray:"gris|gray",green:"verde|green",if:"si|if",in:"en|in",input:"entrada|input",is:"es|is",left:"izquierda|left",length:"longitud|length",or:"o|or",orange:"naranja|orange",pink:"rosa|pink",pressed:"presionada|pressed",print:"imprimir|print",purple:"p\xFArpura|purple",random:"aleatorio|random",range:"rango|range",red:"rojo|red",remove:"borrar|remove",repeat:"repetir|repeat",return:"retornar|return",right:"derecha|right",sleep:"dormir|sleep",step:"paso|step",times:"veces|times",to:"a|to",to_list:"a|to",turn:"girar|turn",while:"mientras|while",white:"blanco|white",with:"con|with",yellow:"amarillo|yellow",DIGIT:"0123456789"},et:{add:"lisa|add",and:"ja|and",ask:"k\xFCsi|ask",at:"t\xE4itsa|at",black:"must|black",blue:"sinine|blue",brown:"pruun|brown",call:"call",clear:"clear",color:"v\xE4rv|color",comma:",",def:"def",define:"define",echo:"peegelda|echo",elif:"muidukui|elif",else:"muidu|else",for:"jaoks|for",forward:"edasi|forward",from:"nimistust|from",gray:"hall|gray",green:"roheline|green",if:"kui|if",in:"nimistus|in",input:"sisesta|input",is:"on|is",left:"vasakule|left",length:"pikkus|length",or:"v\xF5i|or",orange:"oran\u017E|orange",pink:"roosa|pink",pressed:"pressed",print:"prindi|print",purple:"lilla|purple",random:"juhuslikult|random",range:"vahemik|range",red:"punane|red",remove:"kustuta|remove",repeat:"korda|repeat",return:"return",right:"paremale|right",sleep:"oota|sleep",step:"sammuga|step",times:"korda|times",to:"kuni|to",to_list:"nimistusse|to",turn:"p\xF6\xF6ra|turn",while:"senikui|while",white:"valge|white",with:"with",yellow:"kollane|yellow",DIGIT:"0123456789"},fa:{add:"add",and:"and",ask:"\u0628\u067E\u0631\u0633|ask",at:"at",black:"\u0633\u06CC\u0627\u0647|black",blue:"\u0622\u0628\u06CC|blue",brown:"\u0642\u0647\u0648\u0647 \u0627\u06CC|brown",call:"call",clear:"clear",color:"\u0631\u0646\u06AF|color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"\u0628\u0647 \u062C\u0644\u0648|forward",from:"from",gray:"\u062E\u0627\u06A9\u0633\u062A\u0631\u06CC|gray",green:"\u0633\u0628\u0632|green",if:"if",in:"in",input:"input",is:"is",left:"\u0686\u067E|left",length:"length",or:"or",orange:"\u0646\u0627\u0631\u0646\u062C\u06CC|orange",pink:"\u0635\u0648\u0631\u062A\u06CC|pink",pressed:"pressed",print:"\u0686\u0627\u067E|print",purple:"\u0628\u0646\u0641\u0634|purple",random:"random",range:"range",red:"\u0642\u0631\u0645\u0632|red",remove:"remove",repeat:"repeat",return:"return",right:"\u0631\u0627\u0633\u062A|right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"\u062F\u0648\u0631 \u0628\u0632\u0646|turn",while:"while",white:"\u0633\u0641\u06CC\u062F|white",with:"with",yellow:"\u0632\u0631\u062F|yellow",DIGIT:"0123456789"},fi:{add:"lis\xE4\xE4|add",and:"ja|and",ask:"kysy|ask",at:"ota|at",black:"musta|black",blue:"sininen|blue",brown:"ruskea|brown",call:"call",clear:"nollaa|clear",color:"v\xE4ri|color",comma:",",def:"def",define:"define",echo:"kaiku|echo",elif:"muutenjos|elif",else:"muuten|else",for:"jokaiselle|for",forward:"eteenp\xE4in|forward",from:"listasta|from",gray:"harmaa|gray",green:"vihre\xE4|green",if:"jos|if",in:"listassa|in",input:"sy\xF6te|input",is:"on|is",left:"vasen|left",length:"pituus|length",or:"tai|or",orange:"oranssi|orange",pink:"vaaleanpunainen|pink",pressed:"painettu|pressed",print:"tulosta|print",purple:"violetti|purple",random:"satunnainen|random",range:"v\xE4li|range",red:"punainen|red",remove:"poista|remove",repeat:"toista|repeat",return:"return",right:"oikea|right",sleep:"nuku|sleep",step:"askel|step",times:"kertaa|times",to:"asti|to",to_list:"listaksi|to",turn:"k\xE4\xE4nny|turn",while:"kun|while",white:"valkoinen|white",with:"with",yellow:"keltainen|yellow",DIGIT:"0123456789"},fr:{add:"ajoute|add",and:"et|and",ask:"demande|ask",at:"au|at",black:"noir|black",blue:"bleu|blue",brown:"marron|brown",call:"call",clear:"effacer|clear",color:"couleur|color",comma:",",def:"def",define:"define",echo:"r\xE9p\xE8te|echo",elif:"sinon si|elif",else:"sinon|else",for:"pour|for",forward:"avance|forward",from:"de|from",gray:"gris|gray",green:"vert|green",if:"si|if",in:"dans|in",input:"demande|input",is:"est|is",left:"gauche|left",length:"longueur|length",or:"ou|or",orange:"orange",pink:"rose|pink",pressed:"press\xE9|pressed",print:"affiche|print",purple:"violet|purple",random:"hasard|random",range:"intervalle|range",red:"rouge|red",remove:"supprime|remove",repeat:"r\xE9p\xE8te|repete|repeat",return:"return",right:"droite|right",sleep:"dors|sleep",step:"pas|step",times:"fois|times",to:"\xE0|to",to_list:"\xE0|to",turn:"tourne|turn",while:"tant que|while",white:"blanc|white",with:"with",yellow:"jaune|yellow",DIGIT:"0123456789"},fy:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},he:{add:"\u05D4\u05D5\u05E1\u05E3|add",and:"\u05D5\u05D2\u05DD|and",ask:"\u05E9\u05D0\u05DC|ask",at:"\u05D1|at",black:"\u05E9\u05D7\u05D5\u05E8|black",blue:"\u05DB\u05D7\u05D5\u05DC|blue",brown:"\u05D7\u05D5\u05DD|brown",call:"call",clear:"clear",color:"\u05E6\u05D1\u05E2|color",comma:",",def:"def",define:"define",echo:"\u05D4\u05D3\u05D4\u05D3|echo",elif:"\u05D0\u05D7\u05E8\u05EA\u05D0\u05DD|elif",else:"\u05D0\u05D7\u05E8\u05EA|else",for:"\u05DC\u05DB\u05DC|for",forward:"\u05E7\u05D3\u05D9\u05DE\u05D4|forward",from:"\u05DE|from",gray:"\u05D0\u05E4\u05D5\u05E8|gray",green:"\u05D9\u05E8\u05D5\u05E7|green",if:"\u05D0\u05DD|if",in:"\u05D1\u05EA\u05D5\u05DA|in",input:"\u05E7\u05DC\u05D8|input",is:"\u05D4\u05D5\u05D0|is",left:"\u05E9\u05DE\u05D0\u05DC\u05D4|left",length:"\u05D0\u05D5\u05E8\u05DA|length",or:"\u05D0\u05D5|or",orange:"\u05DB\u05EA\u05D5\u05DD|orange",pink:"\u05D5\u05E8\u05D5\u05D3|pink",pressed:"pressed",print:"\u05D4\u05D3\u05E4\u05E1|print",purple:"\u05E1\u05D2\u05D5\u05DC|purple",random:"\u05D0\u05E7\u05E8\u05D0\u05D9|random",range:"\u05D8\u05D5\u05D5\u05D7|range",red:"\u05D0\u05D3\u05D5\u05DD|red",remove:"\u05D4\u05E1\u05E8|remove",repeat:"\u05D7\u05D6\u05D5\u05E8|repeat",return:"return",right:"\u05D9\u05DE\u05D9\u05E0\u05D4|right",sleep:"\u05D4\u05DE\u05EA\u05DF|sleep",step:"\u05E6\u05E2\u05D3|step",times:"\u05E4\u05E2\u05DE\u05D9\u05DD|times",to:"\u05E2\u05D3|to",to_list:"\u05D0\u05DC|to",turn:"\u05E4\u05E0\u05D4|turn",while:"\u05DB\u05DC\u05E2\u05D5\u05D3|while",white:"\u05DC\u05D1\u05DF|white",with:"with",yellow:"\u05E6\u05D4\u05D5\u05D1|yellow",DIGIT:"0123456789"},hi:{add:"\u091C\u094B\u0921\u093C\u0928\u093E|add",and:"\u0914\u0930|and",ask:"\u092A\u0942\u091B\u0947\u0902|ask",at:"\u092A\u0930|at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"\u0917\u0942\u0902\u091C|echo",elif:"\u090F\u0932\u093F\u092B|elif",else:"\u0905\u0928\u094D\u092F\u0925\u093E|else",for:"\u0915\u0947 \u0932\u093F\u092F\u0947|for",forward:"\u0906\u0917\u0947|forward",from:"\u0938\u0947|from",gray:"gray",green:"green",if:"\u0905\u0917\u0930|if",in:"\u092E\u0947\u0902|in",input:"\u0907\u0928\u092A\u0941\u091F|input",is:"\u0939\u0948|is",left:"left",length:"\u0932\u0902\u092C\u093E\u0908|length",or:"\u092F\u093E|or",orange:"orange",pink:"pink",pressed:"pressed",print:"\u092A\u094D\u0930\u093F\u0902\u091F|print",purple:"purple",random:"\u0905\u0928\u093F\u092F\u092E\u093F\u0924|random",range:"\u0936\u094D\u0930\u0947\u0923\u0940|range",red:"red",remove:"\u0939\u091F\u093E\u0928\u093E|remove",repeat:"\u0926\u094B\u0939\u0930\u093E\u0928\u093E|repeat",return:"return",right:"right",sleep:"\u0928\u0940\u0902\u0926|sleep",step:"\u0915\u093C\u0926\u092E|step",times:"\u092C\u093E\u0930|times",to:"\u0938\u0947|to",to_list:"\u0938\u0947|to",turn:"\u092E\u094B\u0921\u093C|turn",while:"\u0935\u094D\u0939\u093E\u0907\u0932|while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},hu:{add:"besz\xFAr|add",and:"\xE9s|and",ask:"k\xE9rdez|ask",at:"list\xE1b\xF3l|at",black:"fekete|black",blue:"k\xE9k|blue",brown:"barna|brown",call:"call",clear:"t\xF6rl\xE9s|clear",color:"sz\xEDn|color",comma:",",def:"def",define:"define",echo:"ut\xE1noz|echo",elif:"egybk-ha|elif",else:"egy\xE9bk\xE9nt|else",for:"minden|for",forward:"el\u0151re|forward",from:"ebb\u0151l|from",gray:"sz\xFCrke|gray",green:"z\xF6ld|green",if:"ha|if",in:"eleme|in",input:"bek\xE9r|input",is:"egyenl\u0151|is",left:"balra|left",length:"hossz|length",or:"vagy|or",orange:"narancs|orange",pink:"pink",pressed:"lenyomva|pressed",print:"ki\xEDr|print",purple:"lila|purple",random:"random",range:"szakasz|range",red:"piros|red",remove:"kivesz|remove",repeat:"ism\xE9teld|repeat",return:"return",right:"jobbra|right",sleep:"szundi|sleep",step:"l\xE9p\xE9senk\xE9nt|step",times:"alkalommal|times",to:"t\u0151l|to",to_list:"ebbe|to",turn:"fordul|turn",while:"am\xEDg|while",white:"feh\xE9r|white",with:"with",yellow:"s\xE1rga|yellow",DIGIT:"0123456789"},id:{add:"tambah|add",and:"dan|and",ask:"tanya|ask",at:"secara|at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"warna|color",comma:",",def:"def",define:"define",echo:"gaungkan|echo",elif:"lain_jika|elif",else:"lainnya|else",for:"untuk|for",forward:"maju|forward",from:"dari|from",gray:"gray",green:"green",if:"jika|if",in:"dalam|in",input:"masukan|input",is:"adalah|is",left:"kiri|left",length:"panjang|length",or:"atau|or",orange:"orange",pink:"pink",pressed:"pressed",print:"cetak|print",purple:"purple",random:"acak|random",range:"batasan|range",red:"red",remove:"hapus|remove",repeat:"ulangi|repeat",return:"return",right:"kanan|right",sleep:"tidur|sleep",step:"langkah|step",times:"kali|times",to:"ke|to",to_list:"ke|to",turn:"belok|turn",while:"selama|while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},it:{add:"add",and:"e|and",ask:"chiedi|ask",at:"at",black:"nero|black",blue:"blu|blue",brown:"marrone|brown",call:"call",clear:"Elimina|clear",color:"colore|color",comma:",",def:"def",define:"define",echo:"eco|echo",elif:"altrimenti se|elif",else:"altrimenti|else",for:"for",forward:"avanti|forward",from:"da|from",gray:"grigio|gray",green:"verde|green",if:"if",in:"in",input:"input",is:"is",left:"sinistra|left",length:"lunghezza|length",or:"or",orange:"arancione|orange",pink:"rosa|pink",pressed:"Premuto|pressed",print:"stampa|print",purple:"viola|purple",random:"a caso|random",range:"intervallo|range",red:"rosso|red",remove:"rimuovi|remove",repeat:"ripeti|repeat",return:"return",right:"right",sleep:"dormi|sleep",step:"passo|step",times:"volte|times",to:"to",to_list:"to",turn:"gira|turn",while:"mentre|while",white:"bianco|white",with:"with",yellow:"giallo|yellow",DIGIT:"0123456789"},ja:{add:"\u305F\u3059|add",and:"and",ask:"\u304D\u3051|ask",at:"at",black:"\u304F\u308D|black",blue:"\u3042\u304A|blue",brown:"\u3061\u3083\u3044\u308D|brown",call:"call",clear:"clear",color:"\u3044\u308D|color",comma:",",def:"def",define:"define",echo:"\u307E\u306D|echo",elif:"elif",else:"else",for:"for",forward:"\u3059\u3059\u3081|forward",from:"from",gray:"\u306F\u3044\u3044\u308D|gray",green:"\u307F\u3069\u308A|green",if:"if",in:"in",input:"input",is:"is",left:"\u3072\u3060\u308A|left",length:"length",or:"or",orange:"\u304A\u308C\u3093\u3058|orange",pink:"\u3074\u3093\u304F|pink",pressed:"pressed",print:"\u304B\u3051|print",purple:"\u3080\u3089\u3055\u304D|purple",random:"random",range:"range",red:"\u3042\u304B|red",remove:"remove",repeat:"repeat",return:"return",right:"\u307F\u304E|right",sleep:"\u3084\u3059\u3081|sleep",step:"step",times:"\u304B\u3044|times",to:"to",to_list:"to",turn:"\u307E\u308F\u308C|turn",while:"while",white:"\u3057\u308D|white",with:"with",yellow:"\u304D\u3044\u308D|yellow",DIGIT:"0123456789"},kmr:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},ko:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},nb_NO:{add:"legg|add",and:"og|and",ask:"sp\xF8r|ask",at:"p\xE5|at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"ekko|echo",elif:"elhvis|elif",else:"ellers|else",for:"for",forward:"frem|forward",from:"fra|from",gray:"gray",green:"green",if:"hvis|if",in:"i|in",input:"inndata|input",is:"er|is",left:"venstre|left",length:"lengde|length",or:"eller|or",orange:"orange",pink:"pink",pressed:"pressed",print:"skriv|print",purple:"purple",random:"tilfeldig|random",range:"sekvens|range",red:"red",remove:"fjern|remove",repeat:"gjenta|repeat",return:"return",right:"h\xF8yre|right",sleep:"sov|sleep",step:"steg|step",times:"ganger|times",to:"til|to",to_list:"til|to",turn:"snu|turn",while:"mens|while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},nl:{add:"voeg|add",and:"en|and",ask:"vraag|ask",at:"op|at",black:"zwart|black",blue:"blauw|blue",brown:"bruin|brown",call:"call",clear:"wis|clear",color:"kleur|color",comma:",",def:"def",define:"define",echo:"echo",elif:"alsanders|elif",else:"anders|else",for:"voor|for",forward:"vooruit|forward",from:"uit|from",gray:"grijs|gray",green:"groen|green",if:"als|if",in:"in",input:"invoer|input",is:"is",left:"links|left",length:"lengte|length",or:"of|or",orange:"oranje|orange",pink:"roze|pink",pressed:"ingedrukt|pressed",print:"print",purple:"paars|purple",random:"willekeurig|random",range:"bereik|range",red:"rood|red",remove:"verwijder|remove",repeat:"herhaal|repeat",return:"return",right:"rechts|right",sleep:"slaap|sleep",step:"stap|step",times:"keer|times",to:"tot|to",to_list:"toe aan|to",turn:"draai|turn",while:"zolang|while",white:"wit|white",with:"with",yellow:"geel|yellow",DIGIT:"0123456789"},pa_PK:{add:"\u062F\u06BE\u0646|add",and:"\u062A\u06D2|and",ask:"\u0633\u0648\u0627\u0644|ask",at:"\u0633\u062A\u06BE\u062A\u06CC|at",black:"\u06A9\u0627\u0644\u0627|black",blue:"\u0646\u06CC\u0644\u0627|blue",brown:"\u0628\u06BE\u0648\u0631\u0627|brown",call:"call",clear:"clear",color:"\u0631\u0646\u06AF|color",comma:"\u060C|,",def:"def",define:"define",echo:"\u0641\u06CC\u0631|echo",elif:"\u06C1\u0648\u0631|elif",else:"\u0648\u06A9\u06BE\u0631\u0627|else",for:"\u062C\u062F\u0648\u06BA|for",forward:"\u0627\u06AF\u06D2|forward",from:"\u0633\u0631\u0648\u062A|from",gray:"\u0633\u0644\u06CC\u0679\u06CC|gray",green:"\u06C1\u0631\u0627|green",if:"\u062C\u06D2|if",in:"\u0627\u0646\u062F\u0631|in",input:"\u0627\u06CC\u0646\u067E\u0679|input",is:"\u0633\u0645\u0627\u0646|is",left:"\u06A9\u06BE\u0628\u06D2|left",length:"\u0644\u0645\u0628\u0627\u0626\u06CC|length",or:"\u06CC\u0627|or",orange:"\u0633\u0646\u062A\u0631\u0627|orange",pink:"\u06AF\u0644\u0627\u0628\u06CC|pink",pressed:"pressed",print:"\u0686\u067E\u0627\u0626\u06CC|print",purple:"\u062C\u0627\u0645\u0646\u06CC|purple",random:"\u0631\u0644\u0648\u0627\u0646|random",range:"\u0633\u0644\u0633\u0644\u06C1|range",red:"\u0644\u0627\u0644|red",remove:"\u0645\u0679\u0627\u06A9\u06D2|remove",repeat:"\u062F\u06C1\u0631\u0627|repeat",return:"return",right:"\u0633\u062C\u06D2|right",sleep:"\u0646\u06CC\u0646\u062F|sleep",step:"\u0633\u0637\u0631|step",times:"\u0636\u0631\u0628|times",to:"\u0645\u0646\u0632\u0644|to",to_list:"\u0645\u0646\u0632\u0644|to",turn:"\u0645\u0648\u0691\u0646|turn",while:"\u062C\u062F\u06A9\u06C1|while",white:"\u0686\u0679\u0627|white",with:"with",yellow:"\u067E\u06CC\u0644\u0627|yellow",DIGIT:"0\u06F01\u06F12\u06F23\u06F34\u06F45\u06F56\u06F67\u06F78\u06F89\u06F9"},pl:{add:"dodaj|add",and:"i|and",ask:"zapytaj|ask",at:"pozycja|at",black:"czarny|black",blue:"niebieski|blue",brown:"br\u0105zowy|brown",call:"call",clear:"wyczy\u015B\u0107|clear",color:"kolor|color",comma:",",def:"def",define:"define",echo:"do\u0142\u0105cz|echo",elif:"albo|elif",else:"inaczej|else",for:"dla|for",forward:"naprz\xF3d|forward",from:"z|from",gray:"szary|gray",green:"zielony|green",if:"je\u017Celi|if",in:"w|in",input:"wprowad\u017A|input",is:"to|is",left:"lewo|left",length:"d\u0142ugo\u015B\u0107|length",or:"lub|or",orange:"pomara\u0144czowy|orange",pink:"r\xF3\u017Cowy|pink",pressed:"naci\u015Bni\u0119ty|pressed",print:"napisz|print",purple:"fioletowy|purple",random:"losowa|random",range:"zakres|range",red:"czerwony|red",remove:"usu\u0144|remove",repeat:"powt\xF3rz|repeat",return:"return",right:"prawo|right",sleep:"\u015Bpij|sleep",step:"krok|step",times:"razy|times",to:"do|to",to_list:"do|to",turn:"obr\xF3\u0107|turn",while:"dop\xF3ki|while",white:"bia\u0142y|white",with:"with",yellow:"\u017C\xF3\u0142ty|yellow",DIGIT:"0123456789"},pt_BR:{add:"some|add",and:"e|and",ask:"pergunte|ask",at:"em|at",black:"preto|black",blue:"azul|blue",brown:"marrom|brown",call:"call",clear:"limpar|clear",color:"cor|color",comma:",",def:"def",define:"define",echo:"eco|echo",elif:"sen\xE3ose|elif",else:"sen\xE3o|else",for:"para|for",forward:"adiante|forward",from:"de|from",gray:"cinza|gray",green:"verde|green",if:"se|if",in:"em|in",input:"entrada|input",is:"\xE9|is",left:"esquerda|left",length:"comprimento|length",or:"ou|or",orange:"laranja|orange",pink:"rosa|pink",pressed:"apertado|pressed",print:"imprima|print",purple:"roxo|purple",random:"aleat\xF3rio|random",range:"intervalo|range",red:"vermelho|red",remove:"remova|remove",repeat:"repita|repeat",return:"return",right:"direita|right",sleep:"durma|sleep",step:"passo|step",times:"vezes|times",to:"para|to",to_list:"at\xE9|to",turn:"gire|turn",while:"enquanto|while",white:"branco|white",with:"with",yellow:"amarelo|yellow",DIGIT:"0123456789"},pt_PT:{add:"adicionar|add",and:"e|and",ask:"perguntar|ask",at:"em|at",black:"preto|black",blue:"azul|blue",brown:"castanho|brown",call:"call",clear:"clear",color:"cor|color",comma:",",def:"def",define:"define",echo:"eco|echo",elif:"elif",else:"else",for:"for",forward:"avan\xE7ar|forward",from:"de|from",gray:"cinzento|gray",green:"verde|green",if:"if",in:"in",input:"input",is:"is",left:"esquerda|left",length:"comprimento|length",or:"or",orange:"cor de laranja|orange",pink:"cor de rosa|pink",pressed:"pressed",print:"imprimir|print",purple:"roxo|purple",random:"random",range:"intervalo|range",red:"vermelho|red",remove:"remover|remove",repeat:"repetir|repeat",return:"return",right:"direita|right",sleep:"dormir|sleep",step:"passo|step",times:"vezes|times",to:"to",to_list:"para|to",turn:"virar|turn",while:"enquanto|while",white:"branco|white",with:"with",yellow:"amarelo|yellow",DIGIT:"0123456789"},ro:{add:"adun\u0103|add",and:"si|and",ask:"\xEEntreab\u0103|ask",at:"la|at",black:"negru|black",blue:"albastru|blue",brown:"maro|brown",call:"call",clear:"\u0219terge|clear",color:"culoare|color",comma:",",def:"def",define:"define",echo:"echo",elif:"altfel dac\u0103|elif",else:"else",for:"pentru|for",forward:"\xEEnainte|forward",from:"de la|from",gray:"gri|gray",green:"verde|green",if:"if",in:"in",input:"intrare|input",is:"is",left:"st\xE2nga|left",length:"lungime|length",or:"sau|or",orange:"portocaliu|orange",pink:"roz|pink",pressed:"ap\u0103sat|pressed",print:"print",purple:"mov|purple",random:"aleatoriu|random",range:"interval|range",red:"ro\u0219u|red",remove:"elimin\u0103|remove",repeat:"repet\u0103|repeat",return:"return",right:"dreapta|right",sleep:"sleep",step:"pas|step",times:"inmul\u021Bit|times",to:"c\u0103tre|to",to_list:"c\u0103tre|to",turn:"intoarce|turn",while:"\xEEn timp ce|while",white:"alb|white",with:"with",yellow:"galben|yellow",DIGIT:"0123456789"},ru:{add:"\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C|add",and:"\u0438|and",ask:"\u0437\u0430\u043F\u0440\u043E\u0441\u0438\u0442\u044C|ask",at:"\u0432|at",black:"\u0447\u0451\u0440\u043D\u044B\u0439|black",blue:"\u0441\u0438\u043D\u0438\u0439|blue",brown:"\u043A\u043E\u0440\u0438\u0447\u043D\u0435\u0432\u044B\u0439|brown",call:"call",clear:"\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C|clear",color:"\u0446\u0432\u0435\u0442|color",comma:",",def:"def",define:"define",echo:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C|echo",elif:"\u0438\u043D\u0430\u0447\u0435, \u0435\u0441\u043B\u0438|elif",else:"\u0438\u043D\u0430\u0447\u0435|else",for:"\u0434\u043B\u044F|for",forward:"\u0432\u043F\u0435\u0440\u0451\u0434|forward",from:"\u0438\u0437|from",gray:"\u0441\u0435\u0440\u044B\u0439|gray",green:"\u0437\u0435\u043B\u0451\u043D\u044B\u0439|green",if:"\u0435\u0441\u043B\u0438|if",in:"\u0432|in",input:"\u0432\u0432\u043E\u0434|input",is:"\u044D\u0442\u043E|is",left:"\u043D\u0430\u043B\u0435\u0432\u043E|left",length:"\u0434\u043B\u0438\u043D\u0430|length",or:"\u0438\u043B\u0438|or",orange:"\u043E\u0440\u0430\u043D\u0436\u0435\u0432\u044B\u0439|orange",pink:"\u0440\u043E\u0437\u043E\u0432\u044B\u0439|pink",pressed:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435|pressed",print:"\u043F\u0435\u0447\u0430\u0442\u0430\u0442\u044C|print",purple:"\u043F\u0443\u0440\u043F\u0443\u0440\u043D\u044B\u0439|purple",random:"\u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u043C|random",range:"\u043F\u0440\u043E\u043C\u0435\u0436\u0443\u0442\u043E\u043A|range",red:"\u043A\u0440\u0430\u0441\u043D\u044B\u0439|red",remove:"\u0443\u0434\u0430\u043B\u0438\u0442\u044C|remove",repeat:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C|repeat",return:"return",right:"\u043D\u0430\u043F\u0440\u0430\u0432\u043E|right",sleep:"\u0437\u0430\u0441\u043D\u0443\u0442\u044C|sleep",step:"\u0448\u0430\u0433|step",times:"\u0440\u0430\u0437|times",to:"\u0434\u043E|to",to_list:"\u0432|to",turn:"\u043F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C|turn",while:"\u043F\u043E\u043A\u0430|while",white:"\u0431\u0435\u043B\u044B\u0439|white",with:"with",yellow:"\u0436\u0451\u043B\u0442\u044B\u0439|yellow",DIGIT:"0123456789"},sq:{add:"shtoni|add",and:"dhe|and",ask:"pyet|ask",at:"n\xEB|at",black:"zez\xEB|black",blue:"blu|blue",brown:"kafe|brown",call:"thirr|call",clear:"pastro|clear",color:"ngjyr\xEB|color",comma:",",def:"def",define:"defino|define",echo:"p\xEBrs\xEBrit|echo",elif:"nendryshe|elif",else:"ndryshe|else",for:"p\xEBr|for",forward:"p\xEBrpara|forward",from:"nga|from",gray:"gri|gray",green:"jeshile|green",if:"n\xEBse|if",in:"n\xEB|in",input:"hyrje|input",is:"\xEBsht\xEB|is",left:"majtas|left",length:"gjat\xEBsia|length",or:"ose|or",orange:"portokalli|orange",pink:"roz\xEB|pink",pressed:"shtypur|pressed",print:"printo|print",purple:"vjollc\xEB|purple",random:"rast\xEBsi|random",range:"varg|range",red:"kuqe|red",remove:"hiqni|remove",repeat:"p\xEBrs\xEBrit|repeat",return:"rikthe|return",right:"drejt\xEB|right",sleep:"fle|sleep",step:"hap|step",times:"her|times",to:"deri|to",to_list:"deri|to",turn:"kthes\xEB|turn",while:"derisa|while",white:"bardh\xEB|white",with:"me|with",yellow:"verdh\xEB|yellow",DIGIT:"0123456789"},sr:{add:"dodaj|add",and:"i|and",ask:"pitaj|ask",at:"na|at",black:"crna|black",blue:"plava|blue",brown:"braon|brown",call:"call",clear:"o\u010Disti|clear",color:"boja|color",comma:",",def:"def",define:"defini\u0161i|define",echo:"poka\u017Ei|echo",elif:"ina\u010De ako|elif",else:"ina\u010De|else",for:"za|for",forward:"napred|forward",from:"od|from",gray:"siva|gray",green:"zelena|green",if:"ako|if",in:"u|in",input:"ulaz|input",is:"je|is",left:"levo|left",length:"du\u017Eina|length",or:"ili|or",orange:"narand\u017Easta|orange",pink:"roze|pink",pressed:"pritisnuto|pressed",print:"\u0161tampaj|print",purple:"ljubi\u010Dasta|purple",random:"nasumi\u010Dno|random",range:"opseg|range",red:"crvena|red",remove:"obri\u0161i|remove",repeat:"ponovi|repeat",return:"vrati|return",right:"desno|right",sleep:"spavanje|sleep",step:"korak|step",times:"vremena|times",to:"u|to",to_list:"u|to",turn:"okreni|turn",while:"dok|while",white:"bela|white",with:"sa|with",yellow:"\u017Euta|yellow",DIGIT:"0123456789"},sv:{add:"addera|add",and:"och|and",ask:"fr\xE5ga|ask",at:"vid|at",black:"svart|black",blue:"bl\xE5|blue",brown:"brun|brown",call:"anropa|call",clear:"rensa|clear",color:"f\xE4rg|color",comma:",",def:"def",define:"definiera|define",echo:"eko|echo",elif:"anom|elif",else:"annars|else",for:"f\xF6r|for",forward:"fram\xE5t|forward",from:"fr\xE5n|from",gray:"gr\xE5|gray",green:"gr\xF6n|green",if:"om|if",in:"i|in",input:"inmatning|input",is:"\xE4r|is",left:"v\xE4nster|left",length:"l\xE4ngd|length",or:"eller|or",orange:"orange",pink:"rosa|pink",pressed:"nedtryckt|pressed",print:"skriv|print",purple:"lila|purple",random:"slump|random",range:"intervall|range",red:"r\xF6d|red",remove:"radera|remove",repeat:"upprepa|repeat",return:"returnera|return",right:"h\xF6ger|right",sleep:"sov|sleep",step:"steg|step",times:"g\xE5nger|times",to:"till|to",to_list:"till|to",turn:"sv\xE4ng|turn",while:"medan|while",white:"vit|white",with:"med|with",yellow:"gul|yellow",DIGIT:"0123456789"},sw:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},te:{add:"\u0C1C\u0C4B\u0C21\u0C3F\u0C02\u0C1A\u0C41|add",and:"\u0C2E\u0C30\u0C3F\u0C2F\u0C41|and",ask:"\u0C05\u0C21\u0C17\u0C02\u0C21\u0C3F|ask",at:"\u0C35\u0C26\u0C4D\u0C26|at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"\u0C2A\u0C4D\u0C30\u0C24\u0C3F\u0C27\u0C4D\u0C35\u0C28\u0C3F|echo",elif:"\u0C2E\u0C30\u0C4A\u0C15\u0C1F\u0C3F \u0C09\u0C02\u0C1F\u0C47|elif",else:"\u0C32\u0C47\u0C15\u0C2A\u0C4B\u0C24\u0C47|else",for:"\u0C15\u0C4B\u0C38\u0C02|for",forward:"\u0C2E\u0C41\u0C02\u0C26\u0C41\u0C15\u0C41|forward",from:"\u0C28\u0C41\u0C02\u0C21\u0C3F|from",gray:"gray",green:"green",if:"\u0C09\u0C02\u0C1F\u0C47|if",in:"\u092E\u0947\u0C32\u0C4B|in",input:"\u0C07\u0C28\u0C4D\u0C2A\u0C41\u0C1F\u0C4D|input",is:"\u0C09\u0C02\u0C26\u0C3F|is",left:"left",length:"\u0C2A\u0C4A\u0C21\u0C35\u0C41|length",or:"\u0C32\u0C47\u0C26\u0C3E|or",orange:"orange",pink:"pink",pressed:"pressed",print:"\u0C2E\u0C41\u0C26\u0C4D\u0C30\u0C23|print",purple:"purple",random:"\u0C2F\u0C3E\u0C26\u0C43\u0C1A\u0C4D\u0C1B\u0C3F\u0C15\u0C02\u0C17\u0C3E|random",range:"\u0C2A\u0C30\u0C3F\u0C27\u0C3F|range",red:"red",remove:"\u0C24\u0C4A\u0C32\u0C17\u0C3F\u0C02\u0C1A\u0C41|remove",repeat:"\u0C2A\u0C41\u0C28\u0C30\u0C3E\u0C35\u0C43\u0C24\u0C02|repeat",return:"return",right:"right",sleep:"\u0C28\u0C3F\u0C26\u0C4D\u0C30|sleep",step:"\u0C05\u0C21\u0C41\u0C17\u0C41|step",times:"\u0C38\u0C3E\u0C30\u0C4D\u0C32\u0C41|times",to:"\u0C15\u0C41|to",to_list:"\u0C15\u0C41|to",turn:"\u0C2E\u0C32\u0C41\u0C2A\u0C41|turn",while:"\u0C05\u0C2F\u0C3F\u0C24\u0C47|while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},th:{add:"\u0E40\u0E1E\u0E34\u0E48\u0E21|add",and:"\u0E41\u0E25\u0E30|and",ask:"\u0E16\u0E32\u0E21\u0E27\u0E48\u0E32|ask",at:"\u0E41\u0E1A\u0E1A|at",black:"\u0E14\u0E33|black",blue:"\u0E19\u0E49\u0E33\u0E40\u0E07\u0E34\u0E19|blue",brown:"\u0E19\u0E49\u0E33\u0E15\u0E32\u0E25|brown",call:"call",clear:"\u0E25\u0E1A\u0E01\u0E23\u0E30\u0E14\u0E32\u0E19|clear",color:"\u0E2A\u0E35|color",comma:",",def:"def",define:"define",echo:"\u0E1E\u0E39\u0E14|echo",elif:"\u0E2B\u0E23\u0E37\u0E2D\u0E16\u0E49\u0E32|elif",else:"\u0E44\u0E21\u0E48\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E31\u0E49\u0E19|else",for:"\u0E43\u0E2B\u0E49|for",forward:"\u0E40\u0E14\u0E34\u0E19\u0E2B\u0E19\u0E49\u0E32|forward",from:"\u0E08\u0E32\u0E01|from",gray:"\u0E40\u0E17\u0E32|gray",green:"\u0E40\u0E02\u0E35\u0E22\u0E27|green",if:"\u0E16\u0E49\u0E32|if",in:"\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19|in",input:"\u0E23\u0E31\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25|input",is:"\u0E04\u0E37\u0E2D|is",left:"\u0E0B\u0E49\u0E32\u0E22|left",length:"\u0E04\u0E27\u0E32\u0E21\u0E22\u0E32\u0E27|length",or:"\u0E2B\u0E23\u0E37\u0E2D|or",orange:"\u0E2A\u0E49\u0E21|orange",pink:"\u0E0A\u0E21\u0E1E\u0E39|pink",pressed:"\u0E1B\u0E38\u0E48\u0E21\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E01\u0E14|pressed",print:"\u0E41\u0E2A\u0E14\u0E07|print",purple:"\u0E21\u0E48\u0E27\u0E07|purple",random:"\u0E2A\u0E38\u0E48\u0E21|random",range:"\u0E0A\u0E48\u0E27\u0E07|range",red:"\u0E41\u0E14\u0E07|red",remove:"\u0E25\u0E1A|remove",repeat:"\u0E17\u0E33\u0E0B\u0E49\u0E33|repeat",return:"return",right:"\u0E02\u0E27\u0E32|right",sleep:"\u0E23\u0E2D|sleep",step:"\u0E40\u0E14\u0E34\u0E19|step",times:"\u0E04\u0E23\u0E31\u0E49\u0E07|times",to:"\u0E08\u0E19\u0E16\u0E36\u0E07|to",to_list:"\u0E44\u0E1B\u0E22\u0E31\u0E07|to",turn:"\u0E40\u0E25\u0E35\u0E49\u0E22\u0E27|turn",while:"\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E44\u0E2B\u0E23\u0E48\u0E01\u0E47\u0E15\u0E32\u0E21\u0E17\u0E35\u0E48|while",white:"\u0E02\u0E32\u0E27|white",with:"with",yellow:"\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E07|yellow",DIGIT:"0123456789"},tl:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},tn:{add:"tsenya|add",and:"and",ask:"botsa|ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"faese|else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"fa|if",in:"in",input:"input",is:"ke|is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"gatisa|print",purple:"purple",random:"random",range:"range",red:"red",remove:"ntsha|remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"},tr:{add:"ekle|add",and:"ve|and",ask:"sor|ask",at:"i\xE7inden|at",black:"siyah|black",blue:"mavi|blue",brown:"kahverengi|brown",call:"\xE7a\u011F\u0131r|call",clear:"temizle|clear",color:"renk|color",comma:",",def:"tan\u0131|def",define:"tan\u0131mla|define",echo:"yank\u0131la|echo",elif:"de\u011File\u011Fer|elif",else:"de\u011Filse|else",for:"\u015Funun i\xE7in|for",forward:"ileri|forward",from:"\u015Furadan|from",gray:"gri|gray",green:"ye\u015Fil|green",if:"e\u011Fer|if",in:"\u015Funda|in",input:"girdi|input",is:"e\u015Fit|is",left:"sol|left",length:"uzunluk|length",or:"veya|or",orange:"turuncu|orange",pink:"pembe|pink",pressed:"bas\u0131l\u0131|pressed",print:"yazd\u0131r|print",purple:"mor|purple",random:"rastgele|random",range:"aral\u0131k|range",red:"k\u0131rm\u0131z\u0131|red",remove:"kald\u0131r|remove",repeat:"tekrarla|repeat",return:"gerid\xF6n|return",right:"sa\u011F|right",sleep:"uyu|sleep",step:"ad\u0131m|step",times:"kere|times",to:"\u015Furaya|to",to_list:"\u015Furaya|to",turn:"d\xF6nd\xFCr|turn",while:"\u015Fu iken|while",white:"beyaz|white",with:"ile|with",yellow:"sar\u0131|yellow",DIGIT:"0123456789"},uk:{add:"\u0434\u043E\u0434\u0430\u0439|add",and:"\u0456|and",ask:"\u0437\u0430\u043F\u0438\u0442\u0430\u0439|ask",at:"\u043D\u0430 \u043F\u043E\u0437\u0438\u0446\u0456\u0457|at",black:"\u0447\u043E\u0440\u043D\u0438\u0439|black",blue:"\u0441\u0438\u043D\u0456\u0439|blue",brown:"\u043A\u043E\u0440\u0438\u0447\u043D\u0435\u0432\u0438\u0439|brown",call:"call",clear:"\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u0438|clear",color:"\u043A\u043E\u043B\u0456\u0440|color",comma:",",def:"def",define:"define",echo:"\u0435\u0445\u043E|echo",elif:"\u0456\u043D\u0430\u043A\u0448\u0435 \u044F\u043A\u0449\u043E|elif",else:"\u0456\u043D\u0430\u043A\u0448\u0435|else",for:"\u0434\u043B\u044F|for",forward:"\u0432\u043F\u0435\u0440\u0435\u0434|forward",from:"i\u0437|\u0437|from",gray:"\u0441\u0456\u0440\u0438\u0439|gray",green:"\u0437\u0435\u043B\u0435\u043D\u0438\u0439|green",if:"\u044F\u043A\u0449\u043E|if",in:"\u0432|in",input:"\u0432\u0432\u0435\u0434\u0438|input",is:"\u0446\u0435|is",left:"\u0432\u043B\u0456\u0432\u043E|left",length:"\u0434\u043E\u0432\u0436\u0438\u043D\u0430|length",or:"\u0430\u0431\u043E|or",orange:"\u043E\u0440\u0430\u043D\u0436\u0435\u0432\u0438\u0439|orange",pink:"\u0440\u043E\u0436\u0435\u0432\u0438\u0439|pink",pressed:"\u043D\u0430\u0442\u0438\u0441\u043D\u0443\u0432|pressed",print:"\u0434\u0440\u0443\u043A\u0443\u0439|print",purple:"\u0444\u0456\u043E\u043B\u0435\u0442\u043E\u0432\u0438\u0439|purple",random:"\u0432\u0438\u043F\u0430\u0434\u043A\u043E\u0432\u0438\u0439|\u0432\u0438\u043F\u0430\u0434\u043A\u043E\u0432\u0456\u0439|random",range:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D|\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043Di|range",red:"\u0447\u0435\u0440\u0432\u043E\u043D\u0438\u0439|red",remove:"\u0432\u0438\u0434\u0430\u043B\u0438|remove",repeat:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438|repeat",return:"return",right:"\u0432\u043F\u0440\u0430\u0432\u043E|right",sleep:"\u043F\u043E\u0447\u0435\u043A\u0430\u0439|sleep",step:"\u043A\u0440\u043E\u043A|step",times:"\u0440\u0430\u0437\u0456\u0432|\u0440\u0430\u0437\u0438|\u0440\u0430\u0437|times",to:"\u0434\u043E|to",to_list:"\u0434\u043E|to",turn:"\u043F\u043E\u0432\u0435\u0440\u043D\u0438|turn",while:"\u0442\u043E\u0434\u0456 \u044F\u043A|while",white:"\u0431\u0456\u043B\u0438\u0439|white",with:"with",yellow:"\u0436\u043E\u0432\u0442\u0438\u0439|yellow",DIGIT:"0123456789"},ur:{add:"\u0634\u0627\u0645\u0644|add",and:"\u0627\u0648\u0631|and",ask:"\u0628\u062A\u0627\u0624|ask",at:"\u06A9\u0648\u0626\u06CC|at",black:"\u06A9\u0627\u0644\u0627|black",blue:"\u0646\u06CC\u0644\u0627|blue",brown:"\u0628\u0631\u0627\u0624\u0646|brown",call:"call",clear:"\u0635\u0627\u0641|clear",color:"\u0631\u0646\u06AF|color",comma:"\u060C|,",def:"def",define:"define",echo:"\u067E\u06A9\u0627\u0631|echo",elif:"\u06CC\u0627\u0627\u06AF\u0631|elif",else:"\u0648\u0631\u0646\u06C1|else",for:"\u0641\u06CC|for",forward:"\u0622\u06AF\u06D2|forward",from:"\u0633\u06D2|from",gray:"\u06AF\u0631\u06D2|gray",green:"\u0633\u0628\u0632|green",if:"\u0627\u06AF\u0631|if",in:"\u0645\u06CC\u06BA|in",input:"\u0628\u062A\u0627\u0624|input",is:"\u06C1\u06D2|is",left:"\u0628\u0627\u0626\u06CC\u06BA|left",length:"\u0644\u0645\u0628\u0627\u0626\u06CC|length",or:"\u06CC\u0627|or",orange:"\u0627\u0648\u0631\u06CC\u0646\u062C|orange",pink:"\u06AF\u0644\u0627\u0628\u06CC|pink",pressed:"\u062F\u0628\u0627 \u06C1\u0648\u0627|pressed",print:"\u062F\u06A9\u06BE\u0627\u0624|print",purple:"\u062C\u0627\u0645\u0646\u06CC|purple",random:"\u0633\u0627|random",range:"\u062D\u062F|range",red:"\u0633\u0631\u062E|red",remove:"\u0646\u06A9\u0627\u0644\u0648|remove",repeat:"\u0645\u06A9\u0631\u0631|repeat",return:"return",right:"\u062F\u0627\u0626\u06CC\u06BA|right",sleep:"\u0622\u0631\u0627\u0645|sleep",step:"\u0642\u062F\u0645|step",times:"\u062F\u0641\u0639\u06C1|times",to:"\u0633\u06D2|to",to_list:"\u0627\u0646\u062F\u0631|to",turn:"\u0645\u0691\u0648|turn",while:"\u062C\u0628\u062A\u06A9|while",white:"\u0633\u0641\u06CC\u062F|white",with:"with",yellow:"\u067E\u06CC\u0644\u0627|yellow",DIGIT:"0123456789"},vi:{add:"add",and:"v\xE0|and",ask:"h\u1ECFi|ask",at:"at",black:"\u0111en|black",blue:"lam|blue",brown:"n\xE2u|brown",call:"call",clear:"clear",color:"m\xE0u|color",comma:",",def:"def",define:"define",echo:"\u0111\xE1p|echo",elif:"elif",else:"else",for:"for",forward:"ti\u1EBFn|forward",from:"from",gray:"x\xE1m|gray",green:"l\u1EE5c|green",if:"n\u1EBFu|if",in:"in",input:"input",is:"l\xE0|is",left:"tr\xE1i|left",length:"length",or:"ho\u1EB7c|or",orange:"cam|orange",pink:"h\u1ED3ng|pink",pressed:"pressed",print:"xu\u1EA5t|print",purple:"t\xEDm|purple",random:"ng\u1EABu_nhi\xEAn|random",range:"range",red:"\u0111\u1ECF|red",remove:"remove",repeat:"repeat",return:"return",right:"ph\u1EA3i|right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"quay|turn",while:"while",white:"tr\u1EAFng|white",with:"with",yellow:"v\xE0ng|yellow",DIGIT:"0123456789"},zh_Hans:{add:"\u52A0|add",and:"\u5E76\u4E14|and",ask:"\u63D0\u95EE|ask",at:"\u5728|at",black:"\u9ED1\u8272|black",blue:"\u84DD\u8272|blue",brown:"\u68D5\u8272|brown",call:"call",clear:"\u6E05\u9664|clear",color:"\u989C\u8272|color",comma:"\uFF0C|\u3001|,",def:"def",define:"define",echo:"\u56DE\u58F0|echo",elif:"\u5426\u5219\u5982\u679C|elif",else:"\u5426\u5219|else",for:"\u53D6|for",forward:"\u5411\u524D|forward",from:"\u4ECE|from",gray:"\u7070\u8272|gray",green:"\u7EFF\u8272|green",if:"\u5982\u679C|if",in:"\u5728\u91CC\u9762|in",input:"\u8F93\u5165|input",is:"\u662F|is",left:"\u5DE6|left",length:"\u957F\u5EA6|length",or:"\u6216|or",orange:"\u6A59\u8272|orange",pink:"\u7C89\u7EA2\u8272|pink",pressed:"\u6309\u4E0B|pressed",print:"\u6253\u5370|print",purple:"\u7D2B\u8272|purple",random:"\u968F\u673A|random",range:"\u8303\u56F4|range",red:"\u7EA2\u8272|red",remove:"\u79FB\u9664|remove",repeat:"\u91CD\u590D|repeat",return:"return",right:"\u53F3|right",sleep:"\u7761\u7720|sleep",step:"\u6B65|step",times:"\u6B21|times",to:"\u5230|to",to_list:"\u5230|to",turn:"\u65CB\u8F6C|turn",while:"\u5F53\u7684\u65F6\u5019|while",white:"\u767D\u8272|white",with:"with",yellow:"\u9EC4\u8272|yellow",DIGIT:"0123456789"},zh_Hant:{add:"add",and:"and",ask:"ask",at:"at",black:"black",blue:"blue",brown:"brown",call:"call",clear:"clear",color:"color",comma:",",def:"def",define:"define",echo:"echo",elif:"elif",else:"else",for:"for",forward:"forward",from:"from",gray:"gray",green:"green",if:"if",in:"in",input:"input",is:"is",left:"left",length:"length",or:"or",orange:"orange",pink:"pink",pressed:"pressed",print:"print",purple:"purple",random:"random",range:"range",red:"red",remove:"remove",repeat:"repeat",return:"return",right:"right",sleep:"sleep",step:"step",times:"times",to:"to",to_list:"to",turn:"turn",while:"while",white:"white",with:"with",yellow:"yellow",DIGIT:"0123456789"}}});var La=ut(cr=>{"use strict";var Ul=cr&&cr.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(cr,"__esModule",{value:!0});cr.convertReg=cr.convert=cr.initializeSyntaxHighlighter=void 0;var Ph=Ul(Wl()),Ih=Ul(ba());function Sh(l){let u=wa(Ih.default),p=l.keywordLanguage;u.has(p)||(p="en");var h=u.get(p),x=JSON.stringify(Ph.default),k=Vl(x,h),b=JSON.parse(k);if(window.define)for(let A of b)define("ace/mode/"+A.name,[],function(O,E,S){var M=O("ace/lib/oop"),R=O("ace/mode/text").Mode,T=O("ace/mode/text_highlight_rules").TextHighlightRules;function C(){this.$rules=A.rules,this.normalizeRules()}M.inherits(C,T);function P(){this.HighlightRules=C}M.inherits(P,R),E.Mode=P})}cr.initializeSyntaxHighlighter=Sh;function wa(l){if(typeof l=="object"){let u=new Map(Object.entries(l)),p=new Map;return u.forEach((h,x)=>{p.set(x,wa(h))}),p}else return l}cr.convert=wa;function Vl(l,u){var p=l;return u.forEach((h,x)=>{x=x;var k=new RegExp("__"+x+"__","g");p=p.replace(k,h)}),p}cr.convertReg=Vl});var Yl=ut(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.TRANSLATIONS=void 0;ki.TRANSLATIONS={ar:{CheckInternet:"\u0623\u0644\u0642\u064A \u0646\u0638\u0631\u0629 \u0625\u0630\u0627 \u0643\u0627\u0646 \u0627\u062A\u0635\u0627\u0644\u0643 \u0628\u0627\u0644\u0625\u0646\u062A\u0631\u0646\u062A \u064A\u0639\u0645\u0644 \u0628\u0634\u0643\u0644 \u0635\u062D\u064A\u062D.",Connection_error:"\u0644\u0645 \u0646\u062A\u0645\u0643\u0646 \u0645\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u062E\u0627\u062F\u0645.",Empty_output:"\u0647\u0630\u0627 \u0627\u0644\u0631\u0645\u0632 \u064A\u0639\u0645\u0644 \u0648\u0644\u0643\u0646 \u0644\u0627 \u064A\u0637\u0628\u0639 \u0623\u064A \u0634\u064A\u0621. \u0623\u0636\u0641 \u0623\u0645\u0631 \u0637\u0628\u0627\u0639\u0629 \u0625\u0644\u0649 \u0627\u0644\u0643\u0648\u062F \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0623\u0648 \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u0644\u0633\u0644\u062D\u0641\u0627\u0629 \u0644\u0637\u0628\u0627\u0639\u0629 \u0634\u064A\u0621 \u0645\u0627.",Errors_found:"You made a mistake! Don't worry, Hedy is trying to find the mistakes",Execute_error:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0645\u0627 \u0623\u062B\u0646\u0627\u0621 \u062A\u0634\u063A\u064A\u0644 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062C.",Other_error:"\u0639\u0641\u0648\u0627! \u0631\u0628\u0645\u0627 \u0627\u0631\u062A\u0643\u0628\u0646\u0627 \u062E\u0637\u0623 \u0628\u0633\u064A\u0637\u0627.",Program_repair:"\u0642\u062F \u064A\u0643\u0648\u0646 \u0647\u0630\u0627 \u0647\u0648 \u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0635\u062D\u064A\u062D \u060C \u0647\u0644 \u064A\u0645\u0643\u0646\u0643 \u0625\u0635\u0644\u0627\u062D\u0647\u061F",Program_too_long:"\u064A\u0633\u062A\u063A\u0631\u0642 \u0628\u0631\u0646\u0627\u0645\u062C\u0643 \u0648\u0642\u062A\u064B\u0627 \u0637\u0648\u064A\u0644\u0627\u064B \u0644\u0644\u062A\u0634\u063A\u064A\u0644.",ServerError:"\u0644\u0642\u062F \u0643\u062A\u0628\u062A \u0628\u0631\u0646\u0627\u0645\u062C\u0627 \u0644\u0645 \u0646\u0643\u0646 \u0646\u062A\u0648\u0642\u0639\u0647. \u0625\u0630\u0627 \u0643\u0646\u062A \u062A\u0631\u063A\u0628 \u0641\u064A \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u0629 \u060C \u0641\u0623\u0631\u0633\u0644 \u0644\u0646\u0627 \u0628\u0631\u064A\u062F\u0627 \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A\u0627 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u062A\u0648\u0649 \u0648\u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0639\u0644\u0649 hello@hedy.org. \u0641\u064A \u063A\u0636\u0648\u0646 \u0630\u0644\u0643 \u060C \u062C\u0631\u0628 \u0634\u064A\u0626\u0627 \u0645\u062E\u062A\u0644\u0641\u0627 \u0642\u0644\u064A\u0644\u0627 \u0648\u0623\u0644\u0642 \u0646\u0638\u0631\u0629 \u0623\u062E\u0631\u0649 \u0639\u0644\u0649 \u0627\u0644\u0623\u0645\u062B\u0644\u0629. \u0634\u0643\u0631\u0627!",Transpile_error:"\u0644\u0627 \u064A\u0645\u0643\u0646\u0646\u0627 \u062A\u0634\u063A\u064A\u0644 \u0628\u0631\u0646\u0627\u0645\u062C\u0643.",Transpile_success:`\u0623\u062D\u0633\u0646\u062A! \u0631\u0627\u0626\u0639! \u0623\u062D\u0633\u0646\u062A! \u0645\u0645\u062A\u0627\u0632! @@ -186,8 +186,8 @@ B\u1EA1n l\xE0m r\u1EA5t t\u1ED1t!`,Transpile_warning:"C\u1EA3nh b\xE1o!",Unsave Amazing! Well done! Excellent! -You did great!`,Transpile_warning:"Warning!",Unsaved_Changes:"You have an unsaved program. Do you want to leave without saving it?",adventures_restored:"The default adventures have been restored!",copy_link_to_share:"Copy link to share",customization_deleted:"Customizations successfully deleted.",dice:"\u{1F3B2}",directly_available:"Directly open",disabled:"Disabled",fortune:"\u{1F52E}, \u2728",haunted:"\u{1F987}, \u{1F47B}, \u{1F383}",level_title:"Level",restaurant:"\u{1F363}, \u{1F355}, \u{1F354}",rock:"\u2702\uFE0F, \u{1F4DC}, \u{1F5FB}",songs:"\u{1F3B5},\u{1F3B6}",teacher_welcome:"Welcome to Hedy! Your are now the proud owner of a teachers account which allows you to create classes and invite students.",turtle:"\u{1F422}",unsaved_class_changes:"There are unsaved changes, are you sure you want to leave this page?"}}});var qo=We(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});ks.setClientMessageLanguage=ks.ClientMessages=void 0;var tp=E_();ks.ClientMessages=Object.assign({},tp.TRANSLATIONS.en);function ZQ(r){var e;Object.assign(ks.ClientMessages,(e=tp.TRANSLATIONS[r])!==null&&e!==void 0?e:tp.TRANSLATIONS.en)}ks.setClientMessageLanguage=ZQ});var Yi=We(di=>{"use strict";var KQ=di&&di.__awaiter||function(r,e,t,n){function i(s){return s instanceof t?s:new t(function(c){c(s)})}return new(t||(t=Promise))(function(s,c){function h(m){try{O(n.next(m))}catch(x){c(x)}}function f(m){try{O(n.throw(m))}catch(x){c(x)}}function O(m){m.done?s(m.value):i(m.value).then(h,f)}O((n=n.apply(r,e||[])).next())})};Object.defineProperty(di,"__esModule",{value:!0});di.tryCatchPopup=di.modal=di.error=di.success=void 0;var T_=class{constructor(){$("#modal-confirm-button").on("click",()=>this.hide()),$("#modal-no-button").on("click",()=>this.hide()),$("#modal-cancel-button").on("click",()=>this.hide()),$("#modal-copy-ok-button").on("click",()=>this.hide()),$("#modal-copy-close-button").on("click",()=>this.hide()),$("#modal-repair-button").on("click",()=>this.hide()),$("#modal-preview-button").on("click",()=>this.hide()),$("#modal-alert-button").on("click",()=>this.hide_alert())}show(){$("#modal-mask").show(),$("#modal-content").show(),window.scrollTo(0,0)}hide(){$("#modal-mask").hide(),$("#modal-content").hide(),$("#modal-prompt").hide(),$("#modal-confirm").hide(),$("#modal-copy").hide(),$("#modal-repair").hide(),$("#modal-preview").hide()}hide_alert(){$("#modal-alert").fadeOut(500)}notifySuccess(e,t=3e3){return this.alert(e,t)}notifyError(e,t=5e3){return this.alert(e,t,!0)}alert(e,t,n){$("#modal_alert_container").toggleClass("bg-red-100 border-red-400 text-red-700",!!n),$("#modal_alert_container").toggleClass("bg-green-100 border-green-400 text-green-700",!n),$("#modal-alert-button").toggleClass("text-red-500",!!n),$("#modal-alert-button").toggleClass("text-green-500",!n),$("#modal_alert_text").html(e),$("#modal-alert").fadeIn(500),this._alert_timeout&&(clearTimeout(this._alert_timeout),this._alert_timeout=void 0),t&&(this._alert_timeout=setTimeout(()=>this.hide_alert(),t))}copy_alert(e,t,n=""){this.hide(),n!=""?($("#modal-copy-title").html(n),$("#modal-copy-title").removeClass("hidden")):($("#modal-copy-title").html(""),$("#modal-copy-title").addClass("hidden")),$("#modal-copy-text").html(e),this.show(),$("#modal-copy").show(),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0),t&&(this._timeout=setTimeout(()=>this.hide(),t))}preview(e,t){this.hide(),$("#modal-preview-title").html(t);let n=$("#modal-preview-content");e.attr("id","modal-preview-content"),n.replaceWith(e),this.show(),$("#modal-preview").show(),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0)}repair(e,t,n=""){this.hide(),n!=""?($("#modal-repair-title").html(n),$("#modal-repair-title").removeClass("hidden")):($("#modal-repair-title").html(""),$("#modal-repair-title").addClass("hidden")),$("#modal-repair-text").html(e),this.show(),$("#modal-repair").show(),t&&setTimeout(()=>this.hide(),t),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0),t&&(this._timeout=setTimeout(()=>this.hide(),t))}confirmP(e){return new Promise(t=>this.confirm(e,t))}confirm(e,t,n=function(){}){this.hide(),$("#modal-confirm-text").text(e),this.show(),$("#modal-confirm").show(),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0),$("#modal-yes-button").off("click").on("click",()=>{this.hide(),t()}),$("#modal-no-button").off("click").on("click",()=>{this.hide(),n()})}prompt(e,t,n){this.hide(),$("#modal-prompt-text").text(e),this.show(),$("#modal-prompt").show(),t&&$("#modal-prompt-input").val(t),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0),$("#modal-ok-button").off("click").on("click",()=>{this.hide();let i=$("#modal-prompt-input").val();typeof i=="string"&&($("#modal-prompt-input").val(""),n(i))})}},Tn;di.success={setEditor(r){Tn=r},hide:function(){$("#okbox").hide();let r=Fo("okbox");Tn==null||Tn.resize(r)},showWarning(r,e){$("#okbox .caption").text(r),$("#okbox .details").text(e),$("#okbox").show();let t=Fo("okbox");Tn==null||Tn.resize(t)},show(r){$("#okbox .caption").text(r),$("#okbox").show();let e=Fo("okbox");Tn==null||Tn.resize(e),setTimeout(function(){$("#okbox").hide();let t=Fo("okbox");Tn==null||Tn.resize(t)},3e3)}};di.error={setEditor(r){Tn=r},hide(){$("#errorbox").hide(),$("#warningbox").hide();let r=Fo("errorbox");Tn==null||Tn.resize(r)},showWarning(r,e){this.hide(),$("#warningbox .caption").text(r),$("#warningbox .details").text(e),$("#warningbox").show();let t=Fo("warningbox");Tn==null||Tn.resize(t)},show(r,e){$("#errorbox .caption").text(r),$("#errorbox .details").html(e),$("#errorbox").show();let t=Fo("errorbox");Tn==null||Tn.resize(t)},showFadingWarning(r,e){di.error.showWarning(r,e),setTimeout(function(){$("#warningbox").fadeOut({complete:()=>{let t=Fo("warningbox");Tn==null||Tn.resize(t)}})},1e4)}};di.modal=new T_;function JQ(r){return KQ(this,void 0,void 0,function*(){try{return yield r()}catch(e){console.log("Error",e),di.modal.notifyError(e.message)}})}di.tryCatchPopup=JQ;function Fo(r){let e=document.getElementById("editor").clientHeight,t=document.getElementById(r).offsetHeight;return e-t}});var C_=We((M_,np)=>{(function(r){typeof M_=="object"&&typeof np!="undefined"?np.exports=r():typeof define=="function"&&define.amd?define([],r):(typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:this).JSZip=r()})(function(){return function r(e,t,n){function i(h,f){if(!t[h]){if(!e[h]){var O=typeof ul=="function"&&ul;if(!f&&O)return O(h,!0);if(s)return s(h,!0);var m=new Error("Cannot find module '"+h+"'");throw m.code="MODULE_NOT_FOUND",m}var x=t[h]={exports:{}};e[h][0].call(x.exports,function(v){var y=e[h][1][v];return i(y||v)},x,x.exports,r,e,t,n)}return t[h].exports}for(var s=typeof ul=="function"&&ul,c=0;c>2,x=(3&h)<<4|f>>4,v=1>6:64,y=2>4,f=(15&m)<<4|(x=s.indexOf(c.charAt(y++)))>>2,O=(3&x)<<6|(v=s.indexOf(c.charAt(y++))),E[P++]=h,x!==64&&(E[P++]=f),v!==64&&(E[P++]=O);return E}},{"./support":30,"./utils":32}],2:[function(r,e,t){"use strict";var n=r("./external"),i=r("./stream/DataWorker"),s=r("./stream/Crc32Probe"),c=r("./stream/DataLengthProbe");function h(f,O,m,x,v){this.compressedSize=f,this.uncompressedSize=O,this.crc32=m,this.compression=x,this.compressedContent=v}h.prototype={getContentWorker:function(){var f=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),O=this;return f.on("end",function(){if(this.streamInfo.data_length!==O.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),f},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},h.createWorkerFrom=function(f,O,m){return f.pipe(new s).pipe(new c("uncompressedSize")).pipe(O.compressWorker(m)).pipe(new c("compressedSize")).withStreamInfo("compression",O)},e.exports=h},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(r,e,t){"use strict";var n=r("./stream/GenericWorker");t.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},t.DEFLATE=r("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(r,e,t){"use strict";var n=r("./utils"),i=function(){for(var s,c=[],h=0;h<256;h++){s=h;for(var f=0;f<8;f++)s=1&s?3988292384^s>>>1:s>>>1;c[h]=s}return c}();e.exports=function(s,c){return s!==void 0&&s.length?n.getTypeOf(s)!=="string"?function(h,f,O,m){var x=i,v=m+O;h^=-1;for(var y=m;y>>8^x[255&(h^f[y])];return-1^h}(0|c,s,s.length,0):function(h,f,O,m){var x=i,v=m+O;h^=-1;for(var y=m;y>>8^x[255&(h^f.charCodeAt(y))];return-1^h}(0|c,s,s.length,0):0}},{"./utils":32}],5:[function(r,e,t){"use strict";t.base64=!1,t.binary=!1,t.dir=!1,t.createFolders=!0,t.date=null,t.compression=null,t.compressionOptions=null,t.comment=null,t.unixPermissions=null,t.dosPermissions=null},{}],6:[function(r,e,t){"use strict";var n=null;n=typeof Promise!="undefined"?Promise:r("lie"),e.exports={Promise:n}},{lie:37}],7:[function(r,e,t){"use strict";var n=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",i=r("pako"),s=r("./utils"),c=r("./stream/GenericWorker"),h=n?"uint8array":"array";function f(O,m){c.call(this,"FlateWorker/"+O),this._pako=null,this._pakoAction=O,this._pakoOptions=m,this.meta={}}t.magic="\b\0",s.inherits(f,c),f.prototype.processChunk=function(O){this.meta=O.meta,this._pako===null&&this._createPako(),this._pako.push(s.transformTo(h,O.data),!1)},f.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},f.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},f.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var O=this;this._pako.onData=function(m){O.push({data:m,meta:O.meta})}},t.compressWorker=function(O){return new f("Deflate",O)},t.uncompressWorker=function(){return new f("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(r,e,t){"use strict";function n(x,v){var y,P="";for(y=0;y>>=8;return P}function i(x,v,y,P,L,E){var R,X,z=x.file,B=x.compression,U=E!==h.utf8encode,W=s.transformTo("string",E(z.name)),Z=s.transformTo("string",h.utf8encode(z.name)),se=z.comment,Qe=s.transformTo("string",E(se)),G=s.transformTo("string",h.utf8encode(se)),ue=Z.length!==z.name.length,T=G.length!==se.length,Oe="",Ve="",xe="",Ke=z.dir,De=z.date,Je={crc32:0,compressedSize:0,uncompressedSize:0};v&&!y||(Je.crc32=x.crc32,Je.compressedSize=x.compressedSize,Je.uncompressedSize=x.uncompressedSize);var oe=0;v&&(oe|=8),U||!ue&&!T||(oe|=2048);var ie=0,nt=0;Ke&&(ie|=16),L==="UNIX"?(nt=798,ie|=function(Se,en){var vn=Se;return Se||(vn=en?16893:33204),(65535&vn)<<16}(z.unixPermissions,Ke)):(nt=20,ie|=function(Se){return 63&(Se||0)}(z.dosPermissions)),R=De.getUTCHours(),R<<=6,R|=De.getUTCMinutes(),R<<=5,R|=De.getUTCSeconds()/2,X=De.getUTCFullYear()-1980,X<<=4,X|=De.getUTCMonth()+1,X<<=5,X|=De.getUTCDate(),ue&&(Ve=n(1,1)+n(f(W),4)+Z,Oe+="up"+n(Ve.length,2)+Ve),T&&(xe=n(1,1)+n(f(Qe),4)+G,Oe+="uc"+n(xe.length,2)+xe);var Fe="";return Fe+=` -\0`,Fe+=n(oe,2),Fe+=B.magic,Fe+=n(R,2),Fe+=n(X,2),Fe+=n(Je.crc32,4),Fe+=n(Je.compressedSize,4),Fe+=n(Je.uncompressedSize,4),Fe+=n(W.length,2),Fe+=n(Oe.length,2),{fileRecord:O.LOCAL_FILE_HEADER+Fe+W+Oe,dirRecord:O.CENTRAL_FILE_HEADER+n(nt,2)+Fe+n(Qe.length,2)+"\0\0\0\0"+n(ie,4)+n(P,4)+W+Oe+Qe}}var s=r("../utils"),c=r("../stream/GenericWorker"),h=r("../utf8"),f=r("../crc32"),O=r("../signature");function m(x,v,y,P){c.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=v,this.zipPlatform=y,this.encodeFileName=P,this.streamFiles=x,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(m,c),m.prototype.push=function(x){var v=x.meta.percent||0,y=this.entriesCount,P=this._sources.length;this.accumulate?this.contentBuffer.push(x):(this.bytesWritten+=x.data.length,c.prototype.push.call(this,{data:x.data,meta:{currentFile:this.currentFile,percent:y?(v+100*(y-P-1))/y:100}}))},m.prototype.openedSource=function(x){this.currentSourceOffset=this.bytesWritten,this.currentFile=x.file.name;var v=this.streamFiles&&!x.file.dir;if(v){var y=i(x,v,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:y.fileRecord,meta:{percent:0}})}else this.accumulate=!0},m.prototype.closedSource=function(x){this.accumulate=!1;var v=this.streamFiles&&!x.file.dir,y=i(x,v,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(y.dirRecord),v)this.push({data:function(P){return O.DATA_DESCRIPTOR+n(P.crc32,4)+n(P.compressedSize,4)+n(P.uncompressedSize,4)}(x),meta:{percent:100}});else for(this.push({data:y.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},m.prototype.flush=function(){for(var x=this.bytesWritten,v=0;v=this.index;c--)h=(h<<8)+this.byteAt(c);return this.index+=s,h},readString:function(s){return n.transformTo("string",this.readData(s))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var s=this.readInt(4);return new Date(Date.UTC(1980+(s>>25&127),(s>>21&15)-1,s>>16&31,s>>11&31,s>>5&63,(31&s)<<1))}},e.exports=i},{"../utils":32}],19:[function(r,e,t){"use strict";var n=r("./Uint8ArrayReader");function i(s){n.call(this,s)}r("../utils").inherits(i,n),i.prototype.readData=function(s){this.checkOffset(s);var c=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},e.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(r,e,t){"use strict";var n=r("./DataReader");function i(s){n.call(this,s)}r("../utils").inherits(i,n),i.prototype.byteAt=function(s){return this.data.charCodeAt(this.zero+s)},i.prototype.lastIndexOfSignature=function(s){return this.data.lastIndexOf(s)-this.zero},i.prototype.readAndCheckSignature=function(s){return s===this.readData(4)},i.prototype.readData=function(s){this.checkOffset(s);var c=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},e.exports=i},{"../utils":32,"./DataReader":18}],21:[function(r,e,t){"use strict";var n=r("./ArrayReader");function i(s){n.call(this,s)}r("../utils").inherits(i,n),i.prototype.readData=function(s){if(this.checkOffset(s),s===0)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+s);return this.index+=s,c},e.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(r,e,t){"use strict";var n=r("../utils"),i=r("../support"),s=r("./ArrayReader"),c=r("./StringReader"),h=r("./NodeBufferReader"),f=r("./Uint8ArrayReader");e.exports=function(O){var m=n.getTypeOf(O);return n.checkSupport(m),m!=="string"||i.uint8array?m==="nodebuffer"?new h(O):i.uint8array?new f(n.transformTo("uint8array",O)):new s(n.transformTo("array",O)):new c(O)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(r,e,t){"use strict";t.LOCAL_FILE_HEADER="PK",t.CENTRAL_FILE_HEADER="PK",t.CENTRAL_DIRECTORY_END="PK",t.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",t.ZIP64_CENTRAL_DIRECTORY_END="PK",t.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(r,e,t){"use strict";var n=r("./GenericWorker"),i=r("../utils");function s(c){n.call(this,"ConvertWorker to "+c),this.destType=c}i.inherits(s,n),s.prototype.processChunk=function(c){this.push({data:i.transformTo(this.destType,c.data),meta:c.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(r,e,t){"use strict";var n=r("./GenericWorker"),i=r("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}r("../utils").inherits(s,n),s.prototype.processChunk=function(c){this.streamInfo.crc32=i(c.data,this.streamInfo.crc32||0),this.push(c)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(r,e,t){"use strict";var n=r("../utils"),i=r("./GenericWorker");function s(c){i.call(this,"DataLengthProbe for "+c),this.propName=c,this.withStreamInfo(c,0)}n.inherits(s,i),s.prototype.processChunk=function(c){if(c){var h=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=h+c.data.length}i.prototype.processChunk.call(this,c)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(r,e,t){"use strict";var n=r("../utils"),i=r("./GenericWorker");function s(c){i.call(this,"DataWorker");var h=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,c.then(function(f){h.dataIsReady=!0,h.data=f,h.max=f&&f.length||0,h.type=n.getTypeOf(f),h.isPaused||h._tickAndRepeat()},function(f){h.error(f)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var c=null,h=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":c=this.data.substring(this.index,h);break;case"uint8array":c=this.data.subarray(this.index,h);break;case"array":case"nodebuffer":c=this.data.slice(this.index,h)}return this.index=h,this.push({data:c,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(r,e,t){"use strict";function n(i){this.name=i||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(i){this.emit("data",i)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(i){this.emit("error",i)}return!0},error:function(i){return!this.isFinished&&(this.isPaused?this.generatedError=i:(this.isFinished=!0,this.emit("error",i),this.previous&&this.previous.error(i),this.cleanUp()),!0)},on:function(i,s){return this._listeners[i].push(s),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(i,s){if(this._listeners[i])for(var c=0;c "+i:i}},e.exports=n},{}],29:[function(r,e,t){"use strict";var n=r("../utils"),i=r("./ConvertWorker"),s=r("./GenericWorker"),c=r("../base64"),h=r("../support"),f=r("../external"),O=null;if(h.nodestream)try{O=r("../nodejs/NodejsStreamOutputAdapter")}catch(v){}function m(v,y){return new f.Promise(function(P,L){var E=[],R=v._internalType,X=v._outputType,z=v._mimeType;v.on("data",function(B,U){E.push(B),y&&y(U)}).on("error",function(B){E=[],L(B)}).on("end",function(){try{var B=function(U,W,Z){switch(U){case"blob":return n.newBlob(n.transformTo("arraybuffer",W),Z);case"base64":return c.encode(W);default:return n.transformTo(U,W)}}(X,function(U,W){var Z,se=0,Qe=null,G=0;for(Z=0;Z>>6:(P<65536?y[R++]=224|P>>>12:(y[R++]=240|P>>>18,y[R++]=128|P>>>12&63),y[R++]=128|P>>>6&63),y[R++]=128|63&P);return y}(x)},t.utf8decode=function(x){return i.nodebuffer?n.transformTo("nodebuffer",x).toString("utf-8"):function(v){var y,P,L,E,R=v.length,X=new Array(2*R);for(y=P=0;y>10&1023,X[P++]=56320|1023&L)}return X.length!==P&&(X.subarray?X=X.subarray(0,P):X.length=P),n.applyFromCharCode(X)}(x=n.transformTo(i.uint8array?"uint8array":"array",x))},n.inherits(O,c),O.prototype.processChunk=function(x){var v=n.transformTo(i.uint8array?"uint8array":"array",x.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var y=v;(v=new Uint8Array(y.length+this.leftOver.length)).set(this.leftOver,0),v.set(y,this.leftOver.length)}else v=this.leftOver.concat(v);this.leftOver=null}var P=function(E,R){var X;for((R=R||E.length)>E.length&&(R=E.length),X=R-1;0<=X&&(192&E[X])==128;)X--;return X<0||X===0?R:X+h[E[X]]>R?X:R}(v),L=v;P!==v.length&&(i.uint8array?(L=v.subarray(0,P),this.leftOver=v.subarray(P,v.length)):(L=v.slice(0,P),this.leftOver=v.slice(P,v.length))),this.push({data:t.utf8decode(L),meta:x.meta})},O.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},t.Utf8DecodeWorker=O,n.inherits(m,c),m.prototype.processChunk=function(x){this.push({data:t.utf8encode(x.data),meta:x.meta})},t.Utf8EncodeWorker=m},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(r,e,t){"use strict";var n=r("./support"),i=r("./base64"),s=r("./nodejsUtils"),c=r("./external");function h(y){return y}function f(y,P){for(var L=0;L>8;this.dir=!!(16&this.externalFileAttributes),x==0&&(this.dosPermissions=63&this.externalFileAttributes),x==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var x=n(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=x.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=x.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=x.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=x.readInt(4))}},readExtraFields:function(x){var v,y,P,L=x.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});x.index+4>>6:(x<65536?m[P++]=224|x>>>12:(m[P++]=240|x>>>18,m[P++]=128|x>>>12&63),m[P++]=128|x>>>6&63),m[P++]=128|63&x);return m},t.buf2binstring=function(O){return f(O,O.length)},t.binstring2buf=function(O){for(var m=new n.Buf8(O.length),x=0,v=m.length;x>10&1023,E[v++]=56320|1023&y)}return f(E,v)},t.utf8border=function(O,m){var x;for((m=m||O.length)>O.length&&(m=O.length),x=m-1;0<=x&&(192&O[x])==128;)x--;return x<0||x===0?m:x+c[O[x]]>m?x:m}},{"./common":41}],43:[function(r,e,t){"use strict";e.exports=function(n,i,s,c){for(var h=65535&n|0,f=n>>>16&65535|0,O=0;s!==0;){for(s-=O=2e3>>1:i>>>1;s[c]=i}return s}();e.exports=function(i,s,c,h){var f=n,O=h+c;i^=-1;for(var m=h;m>>8^f[255&(i^s[m])];return-1^i}},{}],46:[function(r,e,t){"use strict";var n,i=r("../utils/common"),s=r("./trees"),c=r("./adler32"),h=r("./crc32"),f=r("./messages"),O=0,m=4,x=0,v=-2,y=-1,P=4,L=2,E=8,R=9,X=286,z=30,B=19,U=2*X+1,W=15,Z=3,se=258,Qe=se+Z+1,G=42,ue=113,T=1,Oe=2,Ve=3,xe=4;function Ke(w,pe){return w.msg=f[pe],pe}function De(w){return(w<<1)-(4w.avail_out&&(te=w.avail_out),te!==0&&(i.arraySet(w.output,pe.pending_buf,pe.pending_out,te,w.next_out),w.next_out+=te,pe.pending_out+=te,w.total_out+=te,w.avail_out-=te,pe.pending-=te,pe.pending===0&&(pe.pending_out=0))}function ie(w,pe){s._tr_flush_block(w,0<=w.block_start?w.block_start:-1,w.strstart-w.block_start,pe),w.block_start=w.strstart,oe(w.strm)}function nt(w,pe){w.pending_buf[w.pending++]=pe}function Fe(w,pe){w.pending_buf[w.pending++]=pe>>>8&255,w.pending_buf[w.pending++]=255&pe}function Se(w,pe){var te,A,N=w.max_chain_length,q=w.strstart,ae=w.prev_length,le=w.nice_match,K=w.strstart>w.w_size-Qe?w.strstart-(w.w_size-Qe):0,de=w.window,Me=w.w_mask,Pe=w.prev,Ee=w.strstart+se,yt=de[q+ae-1],xt=de[q+ae];w.prev_length>=w.good_match&&(N>>=2),le>w.lookahead&&(le=w.lookahead);do if(de[(te=pe)+ae]===xt&&de[te+ae-1]===yt&&de[te]===de[q]&&de[++te]===de[q+1]){q+=2,te++;do;while(de[++q]===de[++te]&&de[++q]===de[++te]&&de[++q]===de[++te]&&de[++q]===de[++te]&&de[++q]===de[++te]&&de[++q]===de[++te]&&de[++q]===de[++te]&&de[++q]===de[++te]&&qK&&--N!=0);return ae<=w.lookahead?ae:w.lookahead}function en(w){var pe,te,A,N,q,ae,le,K,de,Me,Pe=w.w_size;do{if(N=w.window_size-w.lookahead-w.strstart,w.strstart>=Pe+(Pe-Qe)){for(i.arraySet(w.window,w.window,Pe,Pe,0),w.match_start-=Pe,w.strstart-=Pe,w.block_start-=Pe,pe=te=w.hash_size;A=w.head[--pe],w.head[pe]=Pe<=A?A-Pe:0,--te;);for(pe=te=Pe;A=w.prev[--pe],w.prev[pe]=Pe<=A?A-Pe:0,--te;);N+=Pe}if(w.strm.avail_in===0)break;if(ae=w.strm,le=w.window,K=w.strstart+w.lookahead,de=N,Me=void 0,Me=ae.avail_in,de=Z)for(q=w.strstart-w.insert,w.ins_h=w.window[q],w.ins_h=(w.ins_h<=Z&&(w.ins_h=(w.ins_h<=Z)if(A=s._tr_tally(w,w.strstart-w.match_start,w.match_length-Z),w.lookahead-=w.match_length,w.match_length<=w.max_lazy_match&&w.lookahead>=Z){for(w.match_length--;w.strstart++,w.ins_h=(w.ins_h<=Z&&(w.ins_h=(w.ins_h<=Z&&w.match_length<=w.prev_length){for(N=w.strstart+w.lookahead-Z,A=s._tr_tally(w,w.strstart-1-w.prev_match,w.prev_length-Z),w.lookahead-=w.prev_length-1,w.prev_length-=2;++w.strstart<=N&&(w.ins_h=(w.ins_h<w.pending_buf_size-5&&(te=w.pending_buf_size-5);;){if(w.lookahead<=1){if(en(w),w.lookahead===0&&pe===O)return T;if(w.lookahead===0)break}w.strstart+=w.lookahead,w.lookahead=0;var A=w.block_start+te;if((w.strstart===0||w.strstart>=A)&&(w.lookahead=w.strstart-A,w.strstart=A,ie(w,!1),w.strm.avail_out===0)||w.strstart-w.block_start>=w.w_size-Qe&&(ie(w,!1),w.strm.avail_out===0))return T}return w.insert=0,pe===m?(ie(w,!0),w.strm.avail_out===0?Ve:xe):(w.strstart>w.block_start&&(ie(w,!1),w.strm.avail_out),T)}),new Mt(4,4,8,4,vn),new Mt(4,5,16,8,vn),new Mt(4,6,32,32,vn),new Mt(4,4,16,16,Pt),new Mt(8,16,32,32,Pt),new Mt(8,16,128,128,Pt),new Mt(8,32,128,256,Pt),new Mt(32,128,258,1024,Pt),new Mt(32,258,258,4096,Pt)],t.deflateInit=function(w,pe){return nn(w,pe,E,15,8,0)},t.deflateInit2=nn,t.deflateReset=Qn,t.deflateResetKeep=Lt,t.deflateSetHeader=function(w,pe){return w&&w.state?w.state.wrap!==2?v:(w.state.gzhead=pe,x):v},t.deflate=function(w,pe){var te,A,N,q;if(!w||!w.state||5>8&255),nt(A,A.gzhead.time>>16&255),nt(A,A.gzhead.time>>24&255),nt(A,A.level===9?2:2<=A.strategy||A.level<2?4:0),nt(A,255&A.gzhead.os),A.gzhead.extra&&A.gzhead.extra.length&&(nt(A,255&A.gzhead.extra.length),nt(A,A.gzhead.extra.length>>8&255)),A.gzhead.hcrc&&(w.adler=h(w.adler,A.pending_buf,A.pending,0)),A.gzindex=0,A.status=69):(nt(A,0),nt(A,0),nt(A,0),nt(A,0),nt(A,0),nt(A,A.level===9?2:2<=A.strategy||A.level<2?4:0),nt(A,3),A.status=ue);else{var ae=E+(A.w_bits-8<<4)<<8;ae|=(2<=A.strategy||A.level<2?0:A.level<6?1:A.level===6?2:3)<<6,A.strstart!==0&&(ae|=32),ae+=31-ae%31,A.status=ue,Fe(A,ae),A.strstart!==0&&(Fe(A,w.adler>>>16),Fe(A,65535&w.adler)),w.adler=1}if(A.status===69)if(A.gzhead.extra){for(N=A.pending;A.gzindex<(65535&A.gzhead.extra.length)&&(A.pending!==A.pending_buf_size||(A.gzhead.hcrc&&A.pending>N&&(w.adler=h(w.adler,A.pending_buf,A.pending-N,N)),oe(w),N=A.pending,A.pending!==A.pending_buf_size));)nt(A,255&A.gzhead.extra[A.gzindex]),A.gzindex++;A.gzhead.hcrc&&A.pending>N&&(w.adler=h(w.adler,A.pending_buf,A.pending-N,N)),A.gzindex===A.gzhead.extra.length&&(A.gzindex=0,A.status=73)}else A.status=73;if(A.status===73)if(A.gzhead.name){N=A.pending;do{if(A.pending===A.pending_buf_size&&(A.gzhead.hcrc&&A.pending>N&&(w.adler=h(w.adler,A.pending_buf,A.pending-N,N)),oe(w),N=A.pending,A.pending===A.pending_buf_size)){q=1;break}q=A.gzindexN&&(w.adler=h(w.adler,A.pending_buf,A.pending-N,N)),q===0&&(A.gzindex=0,A.status=91)}else A.status=91;if(A.status===91)if(A.gzhead.comment){N=A.pending;do{if(A.pending===A.pending_buf_size&&(A.gzhead.hcrc&&A.pending>N&&(w.adler=h(w.adler,A.pending_buf,A.pending-N,N)),oe(w),N=A.pending,A.pending===A.pending_buf_size)){q=1;break}q=A.gzindexN&&(w.adler=h(w.adler,A.pending_buf,A.pending-N,N)),q===0&&(A.status=103)}else A.status=103;if(A.status===103&&(A.gzhead.hcrc?(A.pending+2>A.pending_buf_size&&oe(w),A.pending+2<=A.pending_buf_size&&(nt(A,255&w.adler),nt(A,w.adler>>8&255),w.adler=0,A.status=ue)):A.status=ue),A.pending!==0){if(oe(w),w.avail_out===0)return A.last_flush=-1,x}else if(w.avail_in===0&&De(pe)<=De(te)&&pe!==m)return Ke(w,-5);if(A.status===666&&w.avail_in!==0)return Ke(w,-5);if(w.avail_in!==0||A.lookahead!==0||pe!==O&&A.status!==666){var le=A.strategy===2?function(K,de){for(var Me;;){if(K.lookahead===0&&(en(K),K.lookahead===0)){if(de===O)return T;break}if(K.match_length=0,Me=s._tr_tally(K,0,K.window[K.strstart]),K.lookahead--,K.strstart++,Me&&(ie(K,!1),K.strm.avail_out===0))return T}return K.insert=0,de===m?(ie(K,!0),K.strm.avail_out===0?Ve:xe):K.last_lit&&(ie(K,!1),K.strm.avail_out===0)?T:Oe}(A,pe):A.strategy===3?function(K,de){for(var Me,Pe,Ee,yt,xt=K.window;;){if(K.lookahead<=se){if(en(K),K.lookahead<=se&&de===O)return T;if(K.lookahead===0)break}if(K.match_length=0,K.lookahead>=Z&&0K.lookahead&&(K.match_length=K.lookahead)}if(K.match_length>=Z?(Me=s._tr_tally(K,1,K.match_length-Z),K.lookahead-=K.match_length,K.strstart+=K.match_length,K.match_length=0):(Me=s._tr_tally(K,0,K.window[K.strstart]),K.lookahead--,K.strstart++),Me&&(ie(K,!1),K.strm.avail_out===0))return T}return K.insert=0,de===m?(ie(K,!0),K.strm.avail_out===0?Ve:xe):K.last_lit&&(ie(K,!1),K.strm.avail_out===0)?T:Oe}(A,pe):n[A.level].func(A,pe);if(le!==Ve&&le!==xe||(A.status=666),le===T||le===Ve)return w.avail_out===0&&(A.last_flush=-1),x;if(le===Oe&&(pe===1?s._tr_align(A):pe!==5&&(s._tr_stored_block(A,0,0,!1),pe===3&&(Je(A.head),A.lookahead===0&&(A.strstart=0,A.block_start=0,A.insert=0))),oe(w),w.avail_out===0))return A.last_flush=-1,x}return pe!==m?x:A.wrap<=0?1:(A.wrap===2?(nt(A,255&w.adler),nt(A,w.adler>>8&255),nt(A,w.adler>>16&255),nt(A,w.adler>>24&255),nt(A,255&w.total_in),nt(A,w.total_in>>8&255),nt(A,w.total_in>>16&255),nt(A,w.total_in>>24&255)):(Fe(A,w.adler>>>16),Fe(A,65535&w.adler)),oe(w),0=te.w_size&&(q===0&&(Je(te.head),te.strstart=0,te.block_start=0,te.insert=0),de=new i.Buf8(te.w_size),i.arraySet(de,pe,Me-te.w_size,te.w_size,0),pe=de,Me=te.w_size),ae=w.avail_in,le=w.next_in,K=w.input,w.avail_in=Me,w.next_in=0,w.input=pe,en(te);te.lookahead>=Z;){for(A=te.strstart,N=te.lookahead-(Z-1);te.ins_h=(te.ins_h<>>=Z=W>>>24,R-=Z,(Z=W>>>16&255)==0)Oe[f++]=65535&W;else{if(!(16&Z)){if((64&Z)==0){W=X[(65535&W)+(E&(1<>>=Z,R-=Z),R<15&&(E+=T[c++]<>>=Z=W>>>24,R-=Z,!(16&(Z=W>>>16&255))){if((64&Z)==0){W=z[(65535&W)+(E&(1<>>=Z,R-=Z,(Z=f-O)>3,E&=(1<<(R-=se<<3))-1,n.next_in=c,n.next_out=f,n.avail_in=c>>24&255)+(G>>>8&65280)+((65280&G)<<8)+((255&G)<<24)}function E(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function R(G){var ue;return G&&G.state?(ue=G.state,G.total_in=G.total_out=ue.total=0,G.msg="",ue.wrap&&(G.adler=1&ue.wrap),ue.mode=v,ue.last=0,ue.havedict=0,ue.dmax=32768,ue.head=null,ue.hold=0,ue.bits=0,ue.lencode=ue.lendyn=new n.Buf32(y),ue.distcode=ue.distdyn=new n.Buf32(P),ue.sane=1,ue.back=-1,m):x}function X(G){var ue;return G&&G.state?((ue=G.state).wsize=0,ue.whave=0,ue.wnext=0,R(G)):x}function z(G,ue){var T,Oe;return G&&G.state?(Oe=G.state,ue<0?(T=0,ue=-ue):(T=1+(ue>>4),ue<48&&(ue&=15)),ue&&(ue<8||15=xe.wsize?(n.arraySet(xe.window,ue,T-xe.wsize,xe.wsize,0),xe.wnext=0,xe.whave=xe.wsize):(Oe<(Ve=xe.wsize-xe.wnext)&&(Ve=Oe),n.arraySet(xe.window,ue,T-Oe,Ve,xe.wnext),(Oe-=Ve)?(n.arraySet(xe.window,ue,T-Oe,Oe,0),xe.wnext=Oe,xe.whave=xe.wsize):(xe.wnext+=Ve,xe.wnext===xe.wsize&&(xe.wnext=0),xe.whave>>8&255,T.check=s(T.check,q,2,0),ie=oe=0,T.mode=2;break}if(T.flags=0,T.head&&(T.head.done=!1),!(1&T.wrap)||(((255&oe)<<8)+(oe>>8))%31){G.msg="incorrect header check",T.mode=30;break}if((15&oe)!=8){G.msg="unknown compression method",T.mode=30;break}if(ie-=4,w=8+(15&(oe>>>=4)),T.wbits===0)T.wbits=w;else if(w>T.wbits){G.msg="invalid window size",T.mode=30;break}T.dmax=1<>8&1),512&T.flags&&(q[0]=255&oe,q[1]=oe>>>8&255,T.check=s(T.check,q,2,0)),ie=oe=0,T.mode=3;case 3:for(;ie<32;){if(De===0)break e;De--,oe+=Oe[xe++]<>>8&255,q[2]=oe>>>16&255,q[3]=oe>>>24&255,T.check=s(T.check,q,4,0)),ie=oe=0,T.mode=4;case 4:for(;ie<16;){if(De===0)break e;De--,oe+=Oe[xe++]<>8),512&T.flags&&(q[0]=255&oe,q[1]=oe>>>8&255,T.check=s(T.check,q,2,0)),ie=oe=0,T.mode=5;case 5:if(1024&T.flags){for(;ie<16;){if(De===0)break e;De--,oe+=Oe[xe++]<>>8&255,T.check=s(T.check,q,2,0)),ie=oe=0}else T.head&&(T.head.extra=null);T.mode=6;case 6:if(1024&T.flags&&(De<(Se=T.length)&&(Se=De),Se&&(T.head&&(w=T.head.extra_len-T.length,T.head.extra||(T.head.extra=new Array(T.head.extra_len)),n.arraySet(T.head.extra,Oe,xe,Se,w)),512&T.flags&&(T.check=s(T.check,Oe,Se,xe)),De-=Se,xe+=Se,T.length-=Se),T.length))break e;T.length=0,T.mode=7;case 7:if(2048&T.flags){if(De===0)break e;for(Se=0;w=Oe[xe+Se++],T.head&&w&&T.length<65536&&(T.head.name+=String.fromCharCode(w)),w&&Se>9&1,T.head.done=!0),G.adler=T.check=0,T.mode=12;break;case 10:for(;ie<32;){if(De===0)break e;De--,oe+=Oe[xe++]<>>=7&ie,ie-=7&ie,T.mode=27;break}for(;ie<3;){if(De===0)break e;De--,oe+=Oe[xe++]<>>=1)){case 0:T.mode=14;break;case 1:if(se(T),T.mode=20,ue!==6)break;oe>>>=2,ie-=2;break e;case 2:T.mode=17;break;case 3:G.msg="invalid block type",T.mode=30}oe>>>=2,ie-=2;break;case 14:for(oe>>>=7&ie,ie-=7&ie;ie<32;){if(De===0)break e;De--,oe+=Oe[xe++]<>>16^65535)){G.msg="invalid stored block lengths",T.mode=30;break}if(T.length=65535&oe,ie=oe=0,T.mode=15,ue===6)break e;case 15:T.mode=16;case 16:if(Se=T.length){if(De>>=5,ie-=5,T.ndist=1+(31&oe),oe>>>=5,ie-=5,T.ncode=4+(15&oe),oe>>>=4,ie-=4,286>>=3,ie-=3}for(;T.have<19;)T.lens[ae[T.have++]]=0;if(T.lencode=T.lendyn,T.lenbits=7,te={bits:T.lenbits},pe=h(0,T.lens,0,19,T.lencode,0,T.work,te),T.lenbits=te.bits,pe){G.msg="invalid code lengths set",T.mode=30;break}T.have=0,T.mode=19;case 19:for(;T.have>>16&255,tn=65535&N,!((Pt=N>>>24)<=ie);){if(De===0)break e;De--,oe+=Oe[xe++]<>>=Pt,ie-=Pt,T.lens[T.have++]=tn;else{if(tn===16){for(A=Pt+2;ie>>=Pt,ie-=Pt,T.have===0){G.msg="invalid bit length repeat",T.mode=30;break}w=T.lens[T.have-1],Se=3+(3&oe),oe>>>=2,ie-=2}else if(tn===17){for(A=Pt+3;ie>>=Pt)),oe>>>=3,ie-=3}else{for(A=Pt+7;ie>>=Pt)),oe>>>=7,ie-=7}if(T.have+Se>T.nlen+T.ndist){G.msg="invalid bit length repeat",T.mode=30;break}for(;Se--;)T.lens[T.have++]=w}}if(T.mode===30)break;if(T.lens[256]===0){G.msg="invalid code -- missing end-of-block",T.mode=30;break}if(T.lenbits=9,te={bits:T.lenbits},pe=h(f,T.lens,0,T.nlen,T.lencode,0,T.work,te),T.lenbits=te.bits,pe){G.msg="invalid literal/lengths set",T.mode=30;break}if(T.distbits=6,T.distcode=T.distdyn,te={bits:T.distbits},pe=h(O,T.lens,T.nlen,T.ndist,T.distcode,0,T.work,te),T.distbits=te.bits,pe){G.msg="invalid distances set",T.mode=30;break}if(T.mode=20,ue===6)break e;case 20:T.mode=21;case 21:if(6<=De&&258<=Je){G.next_out=Ke,G.avail_out=Je,G.next_in=xe,G.avail_in=De,T.hold=oe,T.bits=ie,c(G,Fe),Ke=G.next_out,Ve=G.output,Je=G.avail_out,xe=G.next_in,Oe=G.input,De=G.avail_in,oe=T.hold,ie=T.bits,T.mode===12&&(T.back=-1);break}for(T.back=0;Mt=(N=T.lencode[oe&(1<>>16&255,tn=65535&N,!((Pt=N>>>24)<=ie);){if(De===0)break e;De--,oe+=Oe[xe++]<>Lt)])>>>16&255,tn=65535&N,!(Lt+(Pt=N>>>24)<=ie);){if(De===0)break e;De--,oe+=Oe[xe++]<>>=Lt,ie-=Lt,T.back+=Lt}if(oe>>>=Pt,ie-=Pt,T.back+=Pt,T.length=tn,Mt===0){T.mode=26;break}if(32&Mt){T.back=-1,T.mode=12;break}if(64&Mt){G.msg="invalid literal/length code",T.mode=30;break}T.extra=15&Mt,T.mode=22;case 22:if(T.extra){for(A=T.extra;ie>>=T.extra,ie-=T.extra,T.back+=T.extra}T.was=T.length,T.mode=23;case 23:for(;Mt=(N=T.distcode[oe&(1<>>16&255,tn=65535&N,!((Pt=N>>>24)<=ie);){if(De===0)break e;De--,oe+=Oe[xe++]<>Lt)])>>>16&255,tn=65535&N,!(Lt+(Pt=N>>>24)<=ie);){if(De===0)break e;De--,oe+=Oe[xe++]<>>=Lt,ie-=Lt,T.back+=Lt}if(oe>>>=Pt,ie-=Pt,T.back+=Pt,64&Mt){G.msg="invalid distance code",T.mode=30;break}T.offset=tn,T.extra=15&Mt,T.mode=24;case 24:if(T.extra){for(A=T.extra;ie>>=T.extra,ie-=T.extra,T.back+=T.extra}if(T.offset>T.dmax){G.msg="invalid distance too far back",T.mode=30;break}T.mode=25;case 25:if(Je===0)break e;if(Se=Fe-Je,T.offset>Se){if((Se=T.offset-Se)>T.whave&&T.sane){G.msg="invalid distance too far back",T.mode=30;break}en=Se>T.wnext?(Se-=T.wnext,T.wsize-Se):T.wnext-Se,Se>T.length&&(Se=T.length),vn=T.window}else vn=Ve,en=Ke-T.offset,Se=T.length;for(JeU?(Z=en[vn+P[ue]],ie[nt+P[ue]]):(Z=96,0),E=1<>Ke)+(R-=E)]=W<<24|Z<<16|se|0,R!==0;);for(E=1<>=1;if(E!==0?(oe&=E-1,oe+=E):oe=0,ue++,--Fe[G]==0){if(G===Oe)break;G=O[m+P[ue]]}if(Ve>>7)]}function nt(N,q){N.pending_buf[N.pending++]=255&q,N.pending_buf[N.pending++]=q>>>8&255}function Fe(N,q,ae){N.bi_valid>L-ae?(N.bi_buf|=q<>L-N.bi_valid,N.bi_valid+=ae-L):(N.bi_buf|=q<>>=1,ae<<=1,0<--q;);return ae>>>1}function vn(N,q,ae){var le,K,de=new Array(P+1),Me=0;for(le=1;le<=P;le++)de[le]=Me=Me+ae[le-1]<<1;for(K=0;K<=q;K++){var Pe=N[2*K+1];Pe!==0&&(N[2*K]=en(de[Pe]++,Pe))}}function Pt(N){var q;for(q=0;q>1;1<=ae;ae--)Lt(N,de,ae);for(K=Ee;ae=N.heap[1],N.heap[1]=N.heap[N.heap_len--],Lt(N,de,1),le=N.heap[1],N.heap[--N.heap_max]=ae,N.heap[--N.heap_max]=le,de[2*K]=de[2*ae]+de[2*le],N.depth[K]=(N.depth[ae]>=N.depth[le]?N.depth[ae]:N.depth[le])+1,de[2*ae+1]=de[2*le+1]=K,N.heap[1]=K++,Lt(N,de,1),2<=N.heap_len;);N.heap[--N.heap_max]=N.heap[1],function(xt,ht){var Dt,$n,Rr,gn,Yr,Zn,Dn=ht.dyn_tree,cr=ht.max_code,zn=ht.stat_desc.static_tree,Hr=ht.stat_desc.has_stree,Ti=ht.stat_desc.extra_bits,Mi=ht.stat_desc.extra_base,Bn=ht.stat_desc.max_length,$r=0;for(gn=0;gn<=P;gn++)xt.bl_count[gn]=0;for(Dn[2*xt.heap[xt.heap_max]+1]=0,Dt=xt.heap_max+1;Dt>=7;K>>=1)if(1&yt&&Pe.dyn_ltree[2*Ee]!==0)return i;if(Pe.dyn_ltree[18]!==0||Pe.dyn_ltree[20]!==0||Pe.dyn_ltree[26]!==0)return s;for(Ee=32;Ee>>3,(de=N.static_len+3+7>>>3)<=K&&(K=de)):K=de=ae+5,ae+4<=K&&q!==-1?A(N,q,ae,le):N.strategy===4||de===K?(Fe(N,2+(le?1:0),3),Qn(N,Qe,G)):(Fe(N,4+(le?1:0),3),function(Pe,Ee,yt,xt){var ht;for(Fe(Pe,Ee-257,5),Fe(Pe,yt-1,5),Fe(Pe,xt-4,4),ht=0;ht>>8&255,N.pending_buf[N.d_buf+2*N.last_lit+1]=255&q,N.pending_buf[N.l_buf+N.last_lit]=255&ae,N.last_lit++,q===0?N.dyn_ltree[2*ae]++:(N.matches++,q--,N.dyn_ltree[2*(T[ae]+O+1)]++,N.dyn_dtree[2*ie(q)]++),N.last_lit===N.lit_bufsize-1},t._tr_align=function(N){Fe(N,2,3),Se(N,R,Qe),function(q){q.bi_valid===16?(nt(q,q.bi_buf),q.bi_buf=0,q.bi_valid=0):8<=q.bi_valid&&(q.pending_buf[q.pending++]=255&q.bi_buf,q.bi_buf>>=8,q.bi_valid-=8)}(N)}},{"../utils/common":41}],53:[function(r,e,t){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(r,e,t){(function(n){(function(i,s){"use strict";if(!i.setImmediate){var c,h,f,O,m=1,x={},v=!1,y=i.document,P=Object.getPrototypeOf&&Object.getPrototypeOf(i);P=P&&P.setTimeout?P:i,c={}.toString.call(i.process)==="[object process]"?function(X){process.nextTick(function(){E(X)})}:function(){if(i.postMessage&&!i.importScripts){var X=!0,z=i.onmessage;return i.onmessage=function(){X=!1},i.postMessage("","*"),i.onmessage=z,X}}()?(O="setImmediate$"+Math.random()+"$",i.addEventListener?i.addEventListener("message",R,!1):i.attachEvent("onmessage",R),function(X){i.postMessage(O+X,"*")}):i.MessageChannel?((f=new MessageChannel).port1.onmessage=function(X){E(X.data)},function(X){f.port2.postMessage(X)}):y&&"onreadystatechange"in y.createElement("script")?(h=y.documentElement,function(X){var z=y.createElement("script");z.onreadystatechange=function(){E(X),z.onreadystatechange=null,h.removeChild(z),z=null},h.appendChild(z)}):function(X){setTimeout(E,0,X)},P.setImmediate=function(X){typeof X!="function"&&(X=new Function(""+X));for(var z=new Array(arguments.length-1),B=0;B{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.EventEmitter=void 0;var R_=class{constructor(e){this.events=Object.fromEntries(Object.keys(e).map(t=>[t,[]]))}on(e,t){this.events[e].push(t)}emit(e,t){let n="sync",i,s=Object.assign(Object.assign({},t),{cancelEvent(){n="canceled"},deferEvent(){return n="deferred",()=>{i&&i()}},then(c){n==="sync"?c():n==="deferred"&&(i=c)}});for(let c of this.events[e])c(s);return s}};Bc.EventEmitter=R_});var rp=We(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na.getPreviousAndNext=na.Tabs=void 0;var eD=Vc(),$_=class{constructor(e={}){this._currentTab="",this.tabEvents=new eD.EventEmitter({beforeSwitch:!0,afterSwitch:!0}),$("*[data-tab]").on("click",n=>{let s=$(n.target).data("tab");n.preventDefault(),this.switchToTab(s)});let t=e.initialTab;!t&&window.location.hash&&(t=window.location.hash.replace(/^#/,"")),t||(t=$(".tab:first").attr("data-tab")),t&&this.switchToTab(t)}switchToTab(e){let t=()=>{let n=this._currentTab;this._currentTab=e;let i=e!=="level"?e:"";window.history&&window.history.replaceState(null,"","#"+i);let s=$('*[data-tab="'+e+'"]'),c=s.siblings("*[data-tab]"),h=$('*[data-tabtarget="'+e+'"]'),f=h.siblings("*[data-tabtarget]");c.removeClass("tab-selected"),s.addClass("tab-selected"),f.addClass("hidden"),h.removeClass("hidden"),this.tabEvents.emit("afterSwitch",{oldTab:n,newTab:e})};this._currentTab!=""?this.tabEvents.emit("beforeSwitch",{oldTab:this._currentTab,newTab:e}).then(t):t()}get currentTab(){return this._currentTab}on(e,t){let n=this.tabEvents.on(e,t);return e==="afterSwitch"&&this.tabEvents.emit("afterSwitch",{oldTab:"",newTab:this._currentTab}),n}};na.Tabs=$_;function tD(){let r=document.querySelector(".tab-selected");if(!r)return[];let e=parseInt(r.getAttribute("tabindex")||"0"),t=document.querySelector(`.tab[tabindex='${e-1}']`),n=document.querySelector(`.tab[tabindex='${e+1}']`);return[t,n]}na.getPreviousAndNext=tD});var N_=We(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.normal_prefix=Yo.pygame_prefix=Yo.turtle_prefix=void 0;Yo.turtle_prefix=`# coding=utf8 +You did great!`,Transpile_warning:"Warning!",Unsaved_Changes:"You have an unsaved program. Do you want to leave without saving it?",adventures_restored:"The default adventures have been restored!",copy_link_to_share:"Copy link to share",customization_deleted:"Customizations successfully deleted.",dice:"\u{1F3B2}",directly_available:"Directly open",disabled:"Disabled",fortune:"\u{1F52E}, \u2728",haunted:"\u{1F987}, \u{1F47B}, \u{1F383}",level_title:"Level",restaurant:"\u{1F363}, \u{1F355}, \u{1F354}",rock:"\u2702\uFE0F, \u{1F4DC}, \u{1F5FB}",songs:"\u{1F3B5},\u{1F3B6}",teacher_welcome:"Welcome to Hedy! Your are now the proud owner of a teachers account which allows you to create classes and invite students.",turtle:"\u{1F422}",unsaved_class_changes:"There are unsaved changes, are you sure you want to leave this page?"}}});var eo=ut($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.setClientMessageLanguage=$r.ClientMessages=void 0;var Ma=Yl();$r.ClientMessages=Object.assign({},Ma.TRANSLATIONS.en);function Dh(l){var u;Object.assign($r.ClientMessages,(u=Ma.TRANSLATIONS[l])!==null&&u!==void 0?u:Ma.TRANSLATIONS.en)}$r.setClientMessageLanguage=Dh});var kr=ut($n=>{"use strict";var Ch=$n&&$n.__awaiter||function(l,u,p,h){function x(k){return k instanceof p?k:new p(function(b){b(k)})}return new(p||(p=Promise))(function(k,b){function A(S){try{E(h.next(S))}catch(M){b(M)}}function O(S){try{E(h.throw(S))}catch(M){b(M)}}function E(S){S.done?k(S.value):x(S.value).then(A,O)}E((h=h.apply(l,u||[])).next())})};Object.defineProperty($n,"__esModule",{value:!0});$n.tryCatchPopup=$n.modal=$n.error=$n.success=void 0;var ql=class{constructor(){$("#modal-confirm-button").on("click",()=>this.hide()),$("#modal-no-button").on("click",()=>this.hide()),$("#modal-cancel-button").on("click",()=>this.hide()),$("#modal-copy-ok-button").on("click",()=>this.hide()),$("#modal-copy-close-button").on("click",()=>this.hide()),$("#modal-repair-button").on("click",()=>this.hide()),$("#modal-preview-button").on("click",()=>this.hide()),$("#modal-alert-button").on("click",()=>this.hide_alert())}show(){$("#modal-mask").show(),$("#modal-content").show(),window.scrollTo(0,0)}hide(){$("#modal-mask").hide(),$("#modal-content").hide(),$("#modal-prompt").hide(),$("#modal-confirm").hide(),$("#modal-copy").hide(),$("#modal-repair").hide(),$("#modal-preview").hide()}hide_alert(){$("#modal-alert").fadeOut(500)}notifySuccess(u,p=3e3){return this.alert(u,p)}notifyError(u,p=5e3){return this.alert(u,p,!0)}alert(u,p,h){$("#modal_alert_container").toggleClass("bg-red-100 border-red-400 text-red-700",!!h),$("#modal_alert_container").toggleClass("bg-green-100 border-green-400 text-green-700",!h),$("#modal-alert-button").toggleClass("text-red-500",!!h),$("#modal-alert-button").toggleClass("text-green-500",!h),$("#modal_alert_text").html(u),$("#modal-alert").fadeIn(500),this._alert_timeout&&(clearTimeout(this._alert_timeout),this._alert_timeout=void 0),p&&(this._alert_timeout=setTimeout(()=>this.hide_alert(),p))}copy_alert(u,p,h=""){this.hide(),h!=""?($("#modal-copy-title").html(h),$("#modal-copy-title").removeClass("hidden")):($("#modal-copy-title").html(""),$("#modal-copy-title").addClass("hidden")),$("#modal-copy-text").html(u),this.show(),$("#modal-copy").show(),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0),p&&(this._timeout=setTimeout(()=>this.hide(),p))}preview(u,p){this.hide(),$("#modal-preview-title").html(p);let h=$("#modal-preview-content");u.attr("id","modal-preview-content"),h.replaceWith(u),this.show(),$("#modal-preview").show(),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0)}repair(u,p,h=""){this.hide(),h!=""?($("#modal-repair-title").html(h),$("#modal-repair-title").removeClass("hidden")):($("#modal-repair-title").html(""),$("#modal-repair-title").addClass("hidden")),$("#modal-repair-text").html(u),this.show(),$("#modal-repair").show(),p&&setTimeout(()=>this.hide(),p),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0),p&&(this._timeout=setTimeout(()=>this.hide(),p))}confirmP(u){return new Promise(p=>this.confirm(u,p))}confirm(u,p,h=function(){}){this.hide(),$("#modal-confirm-text").text(u),this.show(),$("#modal-confirm").show(),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0),$("#modal-yes-button").off("click").on("click",()=>{this.hide(),p()}),$("#modal-no-button").off("click").on("click",()=>{this.hide(),h()})}prompt(u,p,h){this.hide(),$("#modal-prompt-text").text(u),this.show(),$("#modal-prompt").show(),p&&$("#modal-prompt-input").val(p),this._timeout&&(clearTimeout(this._timeout),this._timeout=void 0),$("#modal-ok-button").off("click").on("click",()=>{this.hide();let x=$("#modal-prompt-input").val();typeof x=="string"&&($("#modal-prompt-input").val(""),h(x))})}},$t;$n.success={setEditor(l){$t=l},hide:function(){$("#okbox").hide(),$t==null||$t.resize()},showWarning(l,u){$("#okbox .caption").text(l),$("#okbox .details").text(u),$("#okbox").show(),$t==null||$t.resize()},show(l){$("#okbox .caption").text(l),$("#okbox").show(),$t==null||$t.resize(),setTimeout(function(){$("#okbox").hide(),$t==null||$t.resize()},3e3)}};$n.error={setEditor(l){$t=l},hide(){$("#errorbox").hide(),$("#warningbox").hide(),$t==null||$t.resize()},showWarning(l,u){$("#warningbox .caption").text(l),$("#warningbox .details").text(u),$("#warningbox").show(),$t==null||$t.resize()},show(l,u){$("#errorbox .caption").text(l),$("#errorbox .details").html(u),$("#errorbox").show(),$t==null||$t.resize()},showFadingWarning(l,u){$n.error.showWarning(l,u),setTimeout(function(){$("#warningbox").fadeOut(),$t==null||$t.resize()},1e4)}};$n.modal=new ql;function Eh(l){return Ch(this,void 0,void 0,function*(){try{return yield l()}catch(u){console.log("Error",u),$n.modal.notifyError(u.message)}})}$n.tryCatchPopup=Eh});var Kl=ut((Xl,Na)=>{(function(l){typeof Xl=="object"&&typeof Na!="undefined"?Na.exports=l():typeof define=="function"&&define.amd?define([],l):(typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:this).JSZip=l()})(function(){return function l(u,p,h){function x(A,O){if(!p[A]){if(!u[A]){var E=typeof Ao=="function"&&Ao;if(!O&&E)return E(A,!0);if(k)return k(A,!0);var S=new Error("Cannot find module '"+A+"'");throw S.code="MODULE_NOT_FOUND",S}var M=p[A]={exports:{}};u[A][0].call(M.exports,function(R){var T=u[A][1][R];return x(T||R)},M,M.exports,l,u,p,h)}return p[A].exports}for(var k=typeof Ao=="function"&&Ao,b=0;b>2,M=(3&A)<<4|O>>4,R=1>6:64,T=2>4,O=(15&S)<<4|(M=k.indexOf(b.charAt(T++)))>>2,E=(3&M)<<6|(R=k.indexOf(b.charAt(T++))),D[C++]=A,M!==64&&(D[C++]=O),R!==64&&(D[C++]=E);return D}},{"./support":30,"./utils":32}],2:[function(l,u,p){"use strict";var h=l("./external"),x=l("./stream/DataWorker"),k=l("./stream/Crc32Probe"),b=l("./stream/DataLengthProbe");function A(O,E,S,M,R){this.compressedSize=O,this.uncompressedSize=E,this.crc32=S,this.compression=M,this.compressedContent=R}A.prototype={getContentWorker:function(){var O=new x(h.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new b("data_length")),E=this;return O.on("end",function(){if(this.streamInfo.data_length!==E.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),O},getCompressedWorker:function(){return new x(h.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},A.createWorkerFrom=function(O,E,S){return O.pipe(new k).pipe(new b("uncompressedSize")).pipe(E.compressWorker(S)).pipe(new b("compressedSize")).withStreamInfo("compression",E)},u.exports=A},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(l,u,p){"use strict";var h=l("./stream/GenericWorker");p.STORE={magic:"\0\0",compressWorker:function(){return new h("STORE compression")},uncompressWorker:function(){return new h("STORE decompression")}},p.DEFLATE=l("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(l,u,p){"use strict";var h=l("./utils"),x=function(){for(var k,b=[],A=0;A<256;A++){k=A;for(var O=0;O<8;O++)k=1&k?3988292384^k>>>1:k>>>1;b[A]=k}return b}();u.exports=function(k,b){return k!==void 0&&k.length?h.getTypeOf(k)!=="string"?function(A,O,E,S){var M=x,R=S+E;A^=-1;for(var T=S;T>>8^M[255&(A^O[T])];return-1^A}(0|b,k,k.length,0):function(A,O,E,S){var M=x,R=S+E;A^=-1;for(var T=S;T>>8^M[255&(A^O.charCodeAt(T))];return-1^A}(0|b,k,k.length,0):0}},{"./utils":32}],5:[function(l,u,p){"use strict";p.base64=!1,p.binary=!1,p.dir=!1,p.createFolders=!0,p.date=null,p.compression=null,p.compressionOptions=null,p.comment=null,p.unixPermissions=null,p.dosPermissions=null},{}],6:[function(l,u,p){"use strict";var h=null;h=typeof Promise!="undefined"?Promise:l("lie"),u.exports={Promise:h}},{lie:37}],7:[function(l,u,p){"use strict";var h=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",x=l("pako"),k=l("./utils"),b=l("./stream/GenericWorker"),A=h?"uint8array":"array";function O(E,S){b.call(this,"FlateWorker/"+E),this._pako=null,this._pakoAction=E,this._pakoOptions=S,this.meta={}}p.magic="\b\0",k.inherits(O,b),O.prototype.processChunk=function(E){this.meta=E.meta,this._pako===null&&this._createPako(),this._pako.push(k.transformTo(A,E.data),!1)},O.prototype.flush=function(){b.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},O.prototype.cleanUp=function(){b.prototype.cleanUp.call(this),this._pako=null},O.prototype._createPako=function(){this._pako=new x[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var E=this;this._pako.onData=function(S){E.push({data:S,meta:E.meta})}},p.compressWorker=function(E){return new O("Deflate",E)},p.uncompressWorker=function(){return new O("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(l,u,p){"use strict";function h(M,R){var T,C="";for(T=0;T>>=8;return C}function x(M,R,T,C,P,D){var U,X,W=M.file,re=M.compression,te=D!==A.utf8encode,ee=k.transformTo("string",D(W.name)),ue=k.transformTo("string",A.utf8encode(W.name)),he=W.comment,Ee=k.transformTo("string",D(he)),B=k.transformTo("string",A.utf8encode(he)),_e=ue.length!==W.name.length,y=B.length!==he.length,fe="",Ce="",xe="",Ue=W.dir,we=W.date,Fe={crc32:0,compressedSize:0,uncompressedSize:0};R&&!T||(Fe.crc32=M.crc32,Fe.compressedSize=M.compressedSize,Fe.uncompressedSize=M.uncompressedSize);var se=0;R&&(se|=8),te||!_e&&!y||(se|=2048);var ae=0,Re=0;Ue&&(ae|=16),P==="UNIX"?(Re=798,ae|=function(be,St){var Dt=be;return be||(Dt=St?16893:33204),(65535&Dt)<<16}(W.unixPermissions,Ue)):(Re=20,ae|=function(be){return 63&(be||0)}(W.dosPermissions)),U=we.getUTCHours(),U<<=6,U|=we.getUTCMinutes(),U<<=5,U|=we.getUTCSeconds()/2,X=we.getUTCFullYear()-1980,X<<=4,X|=we.getUTCMonth()+1,X<<=5,X|=we.getUTCDate(),_e&&(Ce=h(1,1)+h(O(ee),4)+ue,fe+="up"+h(Ce.length,2)+Ce),y&&(xe=h(1,1)+h(O(Ee),4)+B,fe+="uc"+h(xe.length,2)+xe);var Se="";return Se+=` +\0`,Se+=h(se,2),Se+=re.magic,Se+=h(U,2),Se+=h(X,2),Se+=h(Fe.crc32,4),Se+=h(Fe.compressedSize,4),Se+=h(Fe.uncompressedSize,4),Se+=h(ee.length,2),Se+=h(fe.length,2),{fileRecord:E.LOCAL_FILE_HEADER+Se+ee+fe,dirRecord:E.CENTRAL_FILE_HEADER+h(Re,2)+Se+h(Ee.length,2)+"\0\0\0\0"+h(ae,4)+h(C,4)+ee+fe+Ee}}var k=l("../utils"),b=l("../stream/GenericWorker"),A=l("../utf8"),O=l("../crc32"),E=l("../signature");function S(M,R,T,C){b.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=R,this.zipPlatform=T,this.encodeFileName=C,this.streamFiles=M,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}k.inherits(S,b),S.prototype.push=function(M){var R=M.meta.percent||0,T=this.entriesCount,C=this._sources.length;this.accumulate?this.contentBuffer.push(M):(this.bytesWritten+=M.data.length,b.prototype.push.call(this,{data:M.data,meta:{currentFile:this.currentFile,percent:T?(R+100*(T-C-1))/T:100}}))},S.prototype.openedSource=function(M){this.currentSourceOffset=this.bytesWritten,this.currentFile=M.file.name;var R=this.streamFiles&&!M.file.dir;if(R){var T=x(M,R,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:T.fileRecord,meta:{percent:0}})}else this.accumulate=!0},S.prototype.closedSource=function(M){this.accumulate=!1;var R=this.streamFiles&&!M.file.dir,T=x(M,R,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(T.dirRecord),R)this.push({data:function(C){return E.DATA_DESCRIPTOR+h(C.crc32,4)+h(C.compressedSize,4)+h(C.uncompressedSize,4)}(M),meta:{percent:100}});else for(this.push({data:T.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},S.prototype.flush=function(){for(var M=this.bytesWritten,R=0;R=this.index;b--)A=(A<<8)+this.byteAt(b);return this.index+=k,A},readString:function(k){return h.transformTo("string",this.readData(k))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var k=this.readInt(4);return new Date(Date.UTC(1980+(k>>25&127),(k>>21&15)-1,k>>16&31,k>>11&31,k>>5&63,(31&k)<<1))}},u.exports=x},{"../utils":32}],19:[function(l,u,p){"use strict";var h=l("./Uint8ArrayReader");function x(k){h.call(this,k)}l("../utils").inherits(x,h),x.prototype.readData=function(k){this.checkOffset(k);var b=this.data.slice(this.zero+this.index,this.zero+this.index+k);return this.index+=k,b},u.exports=x},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(l,u,p){"use strict";var h=l("./DataReader");function x(k){h.call(this,k)}l("../utils").inherits(x,h),x.prototype.byteAt=function(k){return this.data.charCodeAt(this.zero+k)},x.prototype.lastIndexOfSignature=function(k){return this.data.lastIndexOf(k)-this.zero},x.prototype.readAndCheckSignature=function(k){return k===this.readData(4)},x.prototype.readData=function(k){this.checkOffset(k);var b=this.data.slice(this.zero+this.index,this.zero+this.index+k);return this.index+=k,b},u.exports=x},{"../utils":32,"./DataReader":18}],21:[function(l,u,p){"use strict";var h=l("./ArrayReader");function x(k){h.call(this,k)}l("../utils").inherits(x,h),x.prototype.readData=function(k){if(this.checkOffset(k),k===0)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+k);return this.index+=k,b},u.exports=x},{"../utils":32,"./ArrayReader":17}],22:[function(l,u,p){"use strict";var h=l("../utils"),x=l("../support"),k=l("./ArrayReader"),b=l("./StringReader"),A=l("./NodeBufferReader"),O=l("./Uint8ArrayReader");u.exports=function(E){var S=h.getTypeOf(E);return h.checkSupport(S),S!=="string"||x.uint8array?S==="nodebuffer"?new A(E):x.uint8array?new O(h.transformTo("uint8array",E)):new k(h.transformTo("array",E)):new b(E)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(l,u,p){"use strict";p.LOCAL_FILE_HEADER="PK",p.CENTRAL_FILE_HEADER="PK",p.CENTRAL_DIRECTORY_END="PK",p.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",p.ZIP64_CENTRAL_DIRECTORY_END="PK",p.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(l,u,p){"use strict";var h=l("./GenericWorker"),x=l("../utils");function k(b){h.call(this,"ConvertWorker to "+b),this.destType=b}x.inherits(k,h),k.prototype.processChunk=function(b){this.push({data:x.transformTo(this.destType,b.data),meta:b.meta})},u.exports=k},{"../utils":32,"./GenericWorker":28}],25:[function(l,u,p){"use strict";var h=l("./GenericWorker"),x=l("../crc32");function k(){h.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}l("../utils").inherits(k,h),k.prototype.processChunk=function(b){this.streamInfo.crc32=x(b.data,this.streamInfo.crc32||0),this.push(b)},u.exports=k},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(l,u,p){"use strict";var h=l("../utils"),x=l("./GenericWorker");function k(b){x.call(this,"DataLengthProbe for "+b),this.propName=b,this.withStreamInfo(b,0)}h.inherits(k,x),k.prototype.processChunk=function(b){if(b){var A=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=A+b.data.length}x.prototype.processChunk.call(this,b)},u.exports=k},{"../utils":32,"./GenericWorker":28}],27:[function(l,u,p){"use strict";var h=l("../utils"),x=l("./GenericWorker");function k(b){x.call(this,"DataWorker");var A=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,b.then(function(O){A.dataIsReady=!0,A.data=O,A.max=O&&O.length||0,A.type=h.getTypeOf(O),A.isPaused||A._tickAndRepeat()},function(O){A.error(O)})}h.inherits(k,x),k.prototype.cleanUp=function(){x.prototype.cleanUp.call(this),this.data=null},k.prototype.resume=function(){return!!x.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,h.delay(this._tickAndRepeat,[],this)),!0)},k.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(h.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},k.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var b=null,A=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":b=this.data.substring(this.index,A);break;case"uint8array":b=this.data.subarray(this.index,A);break;case"array":case"nodebuffer":b=this.data.slice(this.index,A)}return this.index=A,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})},u.exports=k},{"../utils":32,"./GenericWorker":28}],28:[function(l,u,p){"use strict";function h(x){this.name=x||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}h.prototype={push:function(x){this.emit("data",x)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(x){this.emit("error",x)}return!0},error:function(x){return!this.isFinished&&(this.isPaused?this.generatedError=x:(this.isFinished=!0,this.emit("error",x),this.previous&&this.previous.error(x),this.cleanUp()),!0)},on:function(x,k){return this._listeners[x].push(k),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(x,k){if(this._listeners[x])for(var b=0;b "+x:x}},u.exports=h},{}],29:[function(l,u,p){"use strict";var h=l("../utils"),x=l("./ConvertWorker"),k=l("./GenericWorker"),b=l("../base64"),A=l("../support"),O=l("../external"),E=null;if(A.nodestream)try{E=l("../nodejs/NodejsStreamOutputAdapter")}catch(R){}function S(R,T){return new O.Promise(function(C,P){var D=[],U=R._internalType,X=R._outputType,W=R._mimeType;R.on("data",function(re,te){D.push(re),T&&T(te)}).on("error",function(re){D=[],P(re)}).on("end",function(){try{var re=function(te,ee,ue){switch(te){case"blob":return h.newBlob(h.transformTo("arraybuffer",ee),ue);case"base64":return b.encode(ee);default:return h.transformTo(te,ee)}}(X,function(te,ee){var ue,he=0,Ee=null,B=0;for(ue=0;ue>>6:(C<65536?T[U++]=224|C>>>12:(T[U++]=240|C>>>18,T[U++]=128|C>>>12&63),T[U++]=128|C>>>6&63),T[U++]=128|63&C);return T}(M)},p.utf8decode=function(M){return x.nodebuffer?h.transformTo("nodebuffer",M).toString("utf-8"):function(R){var T,C,P,D,U=R.length,X=new Array(2*U);for(T=C=0;T>10&1023,X[C++]=56320|1023&P)}return X.length!==C&&(X.subarray?X=X.subarray(0,C):X.length=C),h.applyFromCharCode(X)}(M=h.transformTo(x.uint8array?"uint8array":"array",M))},h.inherits(E,b),E.prototype.processChunk=function(M){var R=h.transformTo(x.uint8array?"uint8array":"array",M.data);if(this.leftOver&&this.leftOver.length){if(x.uint8array){var T=R;(R=new Uint8Array(T.length+this.leftOver.length)).set(this.leftOver,0),R.set(T,this.leftOver.length)}else R=this.leftOver.concat(R);this.leftOver=null}var C=function(D,U){var X;for((U=U||D.length)>D.length&&(U=D.length),X=U-1;0<=X&&(192&D[X])==128;)X--;return X<0||X===0?U:X+A[D[X]]>U?X:U}(R),P=R;C!==R.length&&(x.uint8array?(P=R.subarray(0,C),this.leftOver=R.subarray(C,R.length)):(P=R.slice(0,C),this.leftOver=R.slice(C,R.length))),this.push({data:p.utf8decode(P),meta:M.meta})},E.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:p.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},p.Utf8DecodeWorker=E,h.inherits(S,b),S.prototype.processChunk=function(M){this.push({data:p.utf8encode(M.data),meta:M.meta})},p.Utf8EncodeWorker=S},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(l,u,p){"use strict";var h=l("./support"),x=l("./base64"),k=l("./nodejsUtils"),b=l("./external");function A(T){return T}function O(T,C){for(var P=0;P>8;this.dir=!!(16&this.externalFileAttributes),M==0&&(this.dosPermissions=63&this.externalFileAttributes),M==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var M=h(this.extraFields[1].value);this.uncompressedSize===x.MAX_VALUE_32BITS&&(this.uncompressedSize=M.readInt(8)),this.compressedSize===x.MAX_VALUE_32BITS&&(this.compressedSize=M.readInt(8)),this.localHeaderOffset===x.MAX_VALUE_32BITS&&(this.localHeaderOffset=M.readInt(8)),this.diskNumberStart===x.MAX_VALUE_32BITS&&(this.diskNumberStart=M.readInt(4))}},readExtraFields:function(M){var R,T,C,P=M.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});M.index+4>>6:(M<65536?S[C++]=224|M>>>12:(S[C++]=240|M>>>18,S[C++]=128|M>>>12&63),S[C++]=128|M>>>6&63),S[C++]=128|63&M);return S},p.buf2binstring=function(E){return O(E,E.length)},p.binstring2buf=function(E){for(var S=new h.Buf8(E.length),M=0,R=S.length;M>10&1023,D[R++]=56320|1023&T)}return O(D,R)},p.utf8border=function(E,S){var M;for((S=S||E.length)>E.length&&(S=E.length),M=S-1;0<=M&&(192&E[M])==128;)M--;return M<0||M===0?S:M+b[E[M]]>S?M:S}},{"./common":41}],43:[function(l,u,p){"use strict";u.exports=function(h,x,k,b){for(var A=65535&h|0,O=h>>>16&65535|0,E=0;k!==0;){for(k-=E=2e3>>1:x>>>1;k[b]=x}return k}();u.exports=function(x,k,b,A){var O=h,E=A+b;x^=-1;for(var S=A;S>>8^O[255&(x^k[S])];return-1^x}},{}],46:[function(l,u,p){"use strict";var h,x=l("../utils/common"),k=l("./trees"),b=l("./adler32"),A=l("./crc32"),O=l("./messages"),E=0,S=4,M=0,R=-2,T=-1,C=4,P=2,D=8,U=9,X=286,W=30,re=19,te=2*X+1,ee=15,ue=3,he=258,Ee=he+ue+1,B=42,_e=113,y=1,fe=2,Ce=3,xe=4;function Ue(_,ce){return _.msg=O[ce],ce}function we(_){return(_<<1)-(4<_?9:0)}function Fe(_){for(var ce=_.length;0<=--ce;)_[ce]=0}function se(_){var ce=_.state,Z=ce.pending;Z>_.avail_out&&(Z=_.avail_out),Z!==0&&(x.arraySet(_.output,ce.pending_buf,ce.pending_out,Z,_.next_out),_.next_out+=Z,ce.pending_out+=Z,_.total_out+=Z,_.avail_out-=Z,ce.pending-=Z,ce.pending===0&&(ce.pending_out=0))}function ae(_,ce){k._tr_flush_block(_,0<=_.block_start?_.block_start:-1,_.strstart-_.block_start,ce),_.block_start=_.strstart,se(_.strm)}function Re(_,ce){_.pending_buf[_.pending++]=ce}function Se(_,ce){_.pending_buf[_.pending++]=ce>>>8&255,_.pending_buf[_.pending++]=255&ce}function be(_,ce){var Z,N,L=_.max_chain_length,F=_.strstart,ne=_.prev_length,oe=_.nice_match,Y=_.strstart>_.w_size-Ee?_.strstart-(_.w_size-Ee):0,le=_.window,ye=_.w_mask,ge=_.prev,ke=_.strstart+he,Je=le[F+ne-1],Ke=le[F+ne];_.prev_length>=_.good_match&&(L>>=2),oe>_.lookahead&&(oe=_.lookahead);do if(le[(Z=ce)+ne]===Ke&&le[Z+ne-1]===Je&&le[Z]===le[F]&&le[++Z]===le[F+1]){F+=2,Z++;do;while(le[++F]===le[++Z]&&le[++F]===le[++Z]&&le[++F]===le[++Z]&&le[++F]===le[++Z]&&le[++F]===le[++Z]&&le[++F]===le[++Z]&&le[++F]===le[++Z]&&le[++F]===le[++Z]&&FY&&--L!=0);return ne<=_.lookahead?ne:_.lookahead}function St(_){var ce,Z,N,L,F,ne,oe,Y,le,ye,ge=_.w_size;do{if(L=_.window_size-_.lookahead-_.strstart,_.strstart>=ge+(ge-Ee)){for(x.arraySet(_.window,_.window,ge,ge,0),_.match_start-=ge,_.strstart-=ge,_.block_start-=ge,ce=Z=_.hash_size;N=_.head[--ce],_.head[ce]=ge<=N?N-ge:0,--Z;);for(ce=Z=ge;N=_.prev[--ce],_.prev[ce]=ge<=N?N-ge:0,--Z;);L+=ge}if(_.strm.avail_in===0)break;if(ne=_.strm,oe=_.window,Y=_.strstart+_.lookahead,le=L,ye=void 0,ye=ne.avail_in,le=ue)for(F=_.strstart-_.insert,_.ins_h=_.window[F],_.ins_h=(_.ins_h<<_.hash_shift^_.window[F+1])&_.hash_mask;_.insert&&(_.ins_h=(_.ins_h<<_.hash_shift^_.window[F+ue-1])&_.hash_mask,_.prev[F&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=F,F++,_.insert--,!(_.lookahead+_.insert=ue&&(_.ins_h=(_.ins_h<<_.hash_shift^_.window[_.strstart+ue-1])&_.hash_mask,Z=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart),Z!==0&&_.strstart-Z<=_.w_size-Ee&&(_.match_length=be(_,Z)),_.match_length>=ue)if(N=k._tr_tally(_,_.strstart-_.match_start,_.match_length-ue),_.lookahead-=_.match_length,_.match_length<=_.max_lazy_match&&_.lookahead>=ue){for(_.match_length--;_.strstart++,_.ins_h=(_.ins_h<<_.hash_shift^_.window[_.strstart+ue-1])&_.hash_mask,Z=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart,--_.match_length!=0;);_.strstart++}else _.strstart+=_.match_length,_.match_length=0,_.ins_h=_.window[_.strstart],_.ins_h=(_.ins_h<<_.hash_shift^_.window[_.strstart+1])&_.hash_mask;else N=k._tr_tally(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++;if(N&&(ae(_,!1),_.strm.avail_out===0))return y}return _.insert=_.strstart=ue&&(_.ins_h=(_.ins_h<<_.hash_shift^_.window[_.strstart+ue-1])&_.hash_mask,Z=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart),_.prev_length=_.match_length,_.prev_match=_.match_start,_.match_length=ue-1,Z!==0&&_.prev_length<_.max_lazy_match&&_.strstart-Z<=_.w_size-Ee&&(_.match_length=be(_,Z),_.match_length<=5&&(_.strategy===1||_.match_length===ue&&4096<_.strstart-_.match_start)&&(_.match_length=ue-1)),_.prev_length>=ue&&_.match_length<=_.prev_length){for(L=_.strstart+_.lookahead-ue,N=k._tr_tally(_,_.strstart-1-_.prev_match,_.prev_length-ue),_.lookahead-=_.prev_length-1,_.prev_length-=2;++_.strstart<=L&&(_.ins_h=(_.ins_h<<_.hash_shift^_.window[_.strstart+ue-1])&_.hash_mask,Z=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart),--_.prev_length!=0;);if(_.match_available=0,_.match_length=ue-1,_.strstart++,N&&(ae(_,!1),_.strm.avail_out===0))return y}else if(_.match_available){if((N=k._tr_tally(_,0,_.window[_.strstart-1]))&&ae(_,!1),_.strstart++,_.lookahead--,_.strm.avail_out===0)return y}else _.match_available=1,_.strstart++,_.lookahead--}return _.match_available&&(N=k._tr_tally(_,0,_.window[_.strstart-1]),_.match_available=0),_.insert=_.strstart_.pending_buf_size-5&&(Z=_.pending_buf_size-5);;){if(_.lookahead<=1){if(St(_),_.lookahead===0&&ce===E)return y;if(_.lookahead===0)break}_.strstart+=_.lookahead,_.lookahead=0;var N=_.block_start+Z;if((_.strstart===0||_.strstart>=N)&&(_.lookahead=_.strstart-N,_.strstart=N,ae(_,!1),_.strm.avail_out===0)||_.strstart-_.block_start>=_.w_size-Ee&&(ae(_,!1),_.strm.avail_out===0))return y}return _.insert=0,ce===S?(ae(_,!0),_.strm.avail_out===0?Ce:xe):(_.strstart>_.block_start&&(ae(_,!1),_.strm.avail_out),y)}),new ot(4,4,8,4,Dt),new ot(4,5,16,8,Dt),new ot(4,6,32,32,Dt),new ot(4,4,16,16,et),new ot(8,16,32,32,et),new ot(8,16,128,128,et),new ot(8,32,128,256,et),new ot(32,128,258,1024,et),new ot(32,258,258,4096,et)],p.deflateInit=function(_,ce){return kt(_,ce,D,15,8,0)},p.deflateInit2=kt,p.deflateReset=Et,p.deflateResetKeep=tt,p.deflateSetHeader=function(_,ce){return _&&_.state?_.state.wrap!==2?R:(_.state.gzhead=ce,M):R},p.deflate=function(_,ce){var Z,N,L,F;if(!_||!_.state||5>8&255),Re(N,N.gzhead.time>>16&255),Re(N,N.gzhead.time>>24&255),Re(N,N.level===9?2:2<=N.strategy||N.level<2?4:0),Re(N,255&N.gzhead.os),N.gzhead.extra&&N.gzhead.extra.length&&(Re(N,255&N.gzhead.extra.length),Re(N,N.gzhead.extra.length>>8&255)),N.gzhead.hcrc&&(_.adler=A(_.adler,N.pending_buf,N.pending,0)),N.gzindex=0,N.status=69):(Re(N,0),Re(N,0),Re(N,0),Re(N,0),Re(N,0),Re(N,N.level===9?2:2<=N.strategy||N.level<2?4:0),Re(N,3),N.status=_e);else{var ne=D+(N.w_bits-8<<4)<<8;ne|=(2<=N.strategy||N.level<2?0:N.level<6?1:N.level===6?2:3)<<6,N.strstart!==0&&(ne|=32),ne+=31-ne%31,N.status=_e,Se(N,ne),N.strstart!==0&&(Se(N,_.adler>>>16),Se(N,65535&_.adler)),_.adler=1}if(N.status===69)if(N.gzhead.extra){for(L=N.pending;N.gzindex<(65535&N.gzhead.extra.length)&&(N.pending!==N.pending_buf_size||(N.gzhead.hcrc&&N.pending>L&&(_.adler=A(_.adler,N.pending_buf,N.pending-L,L)),se(_),L=N.pending,N.pending!==N.pending_buf_size));)Re(N,255&N.gzhead.extra[N.gzindex]),N.gzindex++;N.gzhead.hcrc&&N.pending>L&&(_.adler=A(_.adler,N.pending_buf,N.pending-L,L)),N.gzindex===N.gzhead.extra.length&&(N.gzindex=0,N.status=73)}else N.status=73;if(N.status===73)if(N.gzhead.name){L=N.pending;do{if(N.pending===N.pending_buf_size&&(N.gzhead.hcrc&&N.pending>L&&(_.adler=A(_.adler,N.pending_buf,N.pending-L,L)),se(_),L=N.pending,N.pending===N.pending_buf_size)){F=1;break}F=N.gzindexL&&(_.adler=A(_.adler,N.pending_buf,N.pending-L,L)),F===0&&(N.gzindex=0,N.status=91)}else N.status=91;if(N.status===91)if(N.gzhead.comment){L=N.pending;do{if(N.pending===N.pending_buf_size&&(N.gzhead.hcrc&&N.pending>L&&(_.adler=A(_.adler,N.pending_buf,N.pending-L,L)),se(_),L=N.pending,N.pending===N.pending_buf_size)){F=1;break}F=N.gzindexL&&(_.adler=A(_.adler,N.pending_buf,N.pending-L,L)),F===0&&(N.status=103)}else N.status=103;if(N.status===103&&(N.gzhead.hcrc?(N.pending+2>N.pending_buf_size&&se(_),N.pending+2<=N.pending_buf_size&&(Re(N,255&_.adler),Re(N,_.adler>>8&255),_.adler=0,N.status=_e)):N.status=_e),N.pending!==0){if(se(_),_.avail_out===0)return N.last_flush=-1,M}else if(_.avail_in===0&&we(ce)<=we(Z)&&ce!==S)return Ue(_,-5);if(N.status===666&&_.avail_in!==0)return Ue(_,-5);if(_.avail_in!==0||N.lookahead!==0||ce!==E&&N.status!==666){var oe=N.strategy===2?function(Y,le){for(var ye;;){if(Y.lookahead===0&&(St(Y),Y.lookahead===0)){if(le===E)return y;break}if(Y.match_length=0,ye=k._tr_tally(Y,0,Y.window[Y.strstart]),Y.lookahead--,Y.strstart++,ye&&(ae(Y,!1),Y.strm.avail_out===0))return y}return Y.insert=0,le===S?(ae(Y,!0),Y.strm.avail_out===0?Ce:xe):Y.last_lit&&(ae(Y,!1),Y.strm.avail_out===0)?y:fe}(N,ce):N.strategy===3?function(Y,le){for(var ye,ge,ke,Je,Ke=Y.window;;){if(Y.lookahead<=he){if(St(Y),Y.lookahead<=he&&le===E)return y;if(Y.lookahead===0)break}if(Y.match_length=0,Y.lookahead>=ue&&0Y.lookahead&&(Y.match_length=Y.lookahead)}if(Y.match_length>=ue?(ye=k._tr_tally(Y,1,Y.match_length-ue),Y.lookahead-=Y.match_length,Y.strstart+=Y.match_length,Y.match_length=0):(ye=k._tr_tally(Y,0,Y.window[Y.strstart]),Y.lookahead--,Y.strstart++),ye&&(ae(Y,!1),Y.strm.avail_out===0))return y}return Y.insert=0,le===S?(ae(Y,!0),Y.strm.avail_out===0?Ce:xe):Y.last_lit&&(ae(Y,!1),Y.strm.avail_out===0)?y:fe}(N,ce):h[N.level].func(N,ce);if(oe!==Ce&&oe!==xe||(N.status=666),oe===y||oe===Ce)return _.avail_out===0&&(N.last_flush=-1),M;if(oe===fe&&(ce===1?k._tr_align(N):ce!==5&&(k._tr_stored_block(N,0,0,!1),ce===3&&(Fe(N.head),N.lookahead===0&&(N.strstart=0,N.block_start=0,N.insert=0))),se(_),_.avail_out===0))return N.last_flush=-1,M}return ce!==S?M:N.wrap<=0?1:(N.wrap===2?(Re(N,255&_.adler),Re(N,_.adler>>8&255),Re(N,_.adler>>16&255),Re(N,_.adler>>24&255),Re(N,255&_.total_in),Re(N,_.total_in>>8&255),Re(N,_.total_in>>16&255),Re(N,_.total_in>>24&255)):(Se(N,_.adler>>>16),Se(N,65535&_.adler)),se(_),0=Z.w_size&&(F===0&&(Fe(Z.head),Z.strstart=0,Z.block_start=0,Z.insert=0),le=new x.Buf8(Z.w_size),x.arraySet(le,ce,ye-Z.w_size,Z.w_size,0),ce=le,ye=Z.w_size),ne=_.avail_in,oe=_.next_in,Y=_.input,_.avail_in=ye,_.next_in=0,_.input=ce,St(Z);Z.lookahead>=ue;){for(N=Z.strstart,L=Z.lookahead-(ue-1);Z.ins_h=(Z.ins_h<>>=ue=ee>>>24,U-=ue,(ue=ee>>>16&255)==0)fe[O++]=65535ⅇelse{if(!(16&ue)){if((64&ue)==0){ee=X[(65535&ee)+(D&(1<>>=ue,U-=ue),U<15&&(D+=y[b++]<>>=ue=ee>>>24,U-=ue,!(16&(ue=ee>>>16&255))){if((64&ue)==0){ee=W[(65535&ee)+(D&(1<>>=ue,U-=ue,(ue=O-E)>3,D&=(1<<(U-=he<<3))-1,h.next_in=b,h.next_out=O,h.avail_in=b>>24&255)+(B>>>8&65280)+((65280&B)<<8)+((255&B)<<24)}function D(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new h.Buf16(320),this.work=new h.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function U(B){var _e;return B&&B.state?(_e=B.state,B.total_in=B.total_out=_e.total=0,B.msg="",_e.wrap&&(B.adler=1&_e.wrap),_e.mode=R,_e.last=0,_e.havedict=0,_e.dmax=32768,_e.head=null,_e.hold=0,_e.bits=0,_e.lencode=_e.lendyn=new h.Buf32(T),_e.distcode=_e.distdyn=new h.Buf32(C),_e.sane=1,_e.back=-1,S):M}function X(B){var _e;return B&&B.state?((_e=B.state).wsize=0,_e.whave=0,_e.wnext=0,U(B)):M}function W(B,_e){var y,fe;return B&&B.state?(fe=B.state,_e<0?(y=0,_e=-_e):(y=1+(_e>>4),_e<48&&(_e&=15)),_e&&(_e<8||15<_e)?M:(fe.window!==null&&fe.wbits!==_e&&(fe.window=null),fe.wrap=y,fe.wbits=_e,X(B))):M}function re(B,_e){var y,fe;return B?(fe=new D,(B.state=fe).window=null,(y=W(B,_e))!==S&&(B.state=null),y):M}var te,ee,ue=!0;function he(B){if(ue){var _e;for(te=new h.Buf32(512),ee=new h.Buf32(32),_e=0;_e<144;)B.lens[_e++]=8;for(;_e<256;)B.lens[_e++]=9;for(;_e<280;)B.lens[_e++]=7;for(;_e<288;)B.lens[_e++]=8;for(A(O,B.lens,0,288,te,0,B.work,{bits:9}),_e=0;_e<32;)B.lens[_e++]=5;A(E,B.lens,0,32,ee,0,B.work,{bits:5}),ue=!1}B.lencode=te,B.lenbits=9,B.distcode=ee,B.distbits=5}function Ee(B,_e,y,fe){var Ce,xe=B.state;return xe.window===null&&(xe.wsize=1<=xe.wsize?(h.arraySet(xe.window,_e,y-xe.wsize,xe.wsize,0),xe.wnext=0,xe.whave=xe.wsize):(fe<(Ce=xe.wsize-xe.wnext)&&(Ce=fe),h.arraySet(xe.window,_e,y-fe,Ce,xe.wnext),(fe-=Ce)?(h.arraySet(xe.window,_e,y-fe,fe,0),xe.wnext=fe,xe.whave=xe.wsize):(xe.wnext+=Ce,xe.wnext===xe.wsize&&(xe.wnext=0),xe.whave>>8&255,y.check=k(y.check,F,2,0),ae=se=0,y.mode=2;break}if(y.flags=0,y.head&&(y.head.done=!1),!(1&y.wrap)||(((255&se)<<8)+(se>>8))%31){B.msg="incorrect header check",y.mode=30;break}if((15&se)!=8){B.msg="unknown compression method",y.mode=30;break}if(ae-=4,_=8+(15&(se>>>=4)),y.wbits===0)y.wbits=_;else if(_>y.wbits){B.msg="invalid window size",y.mode=30;break}y.dmax=1<<_,B.adler=y.check=1,y.mode=512&se?10:12,ae=se=0;break;case 2:for(;ae<16;){if(we===0)break e;we--,se+=fe[xe++]<>8&1),512&y.flags&&(F[0]=255&se,F[1]=se>>>8&255,y.check=k(y.check,F,2,0)),ae=se=0,y.mode=3;case 3:for(;ae<32;){if(we===0)break e;we--,se+=fe[xe++]<>>8&255,F[2]=se>>>16&255,F[3]=se>>>24&255,y.check=k(y.check,F,4,0)),ae=se=0,y.mode=4;case 4:for(;ae<16;){if(we===0)break e;we--,se+=fe[xe++]<>8),512&y.flags&&(F[0]=255&se,F[1]=se>>>8&255,y.check=k(y.check,F,2,0)),ae=se=0,y.mode=5;case 5:if(1024&y.flags){for(;ae<16;){if(we===0)break e;we--,se+=fe[xe++]<>>8&255,y.check=k(y.check,F,2,0)),ae=se=0}else y.head&&(y.head.extra=null);y.mode=6;case 6:if(1024&y.flags&&(we<(be=y.length)&&(be=we),be&&(y.head&&(_=y.head.extra_len-y.length,y.head.extra||(y.head.extra=new Array(y.head.extra_len)),h.arraySet(y.head.extra,fe,xe,be,_)),512&y.flags&&(y.check=k(y.check,fe,be,xe)),we-=be,xe+=be,y.length-=be),y.length))break e;y.length=0,y.mode=7;case 7:if(2048&y.flags){if(we===0)break e;for(be=0;_=fe[xe+be++],y.head&&_&&y.length<65536&&(y.head.name+=String.fromCharCode(_)),_&&be>9&1,y.head.done=!0),B.adler=y.check=0,y.mode=12;break;case 10:for(;ae<32;){if(we===0)break e;we--,se+=fe[xe++]<>>=7&ae,ae-=7&ae,y.mode=27;break}for(;ae<3;){if(we===0)break e;we--,se+=fe[xe++]<>>=1)){case 0:y.mode=14;break;case 1:if(he(y),y.mode=20,_e!==6)break;se>>>=2,ae-=2;break e;case 2:y.mode=17;break;case 3:B.msg="invalid block type",y.mode=30}se>>>=2,ae-=2;break;case 14:for(se>>>=7&ae,ae-=7&ae;ae<32;){if(we===0)break e;we--,se+=fe[xe++]<>>16^65535)){B.msg="invalid stored block lengths",y.mode=30;break}if(y.length=65535&se,ae=se=0,y.mode=15,_e===6)break e;case 15:y.mode=16;case 16:if(be=y.length){if(we>>=5,ae-=5,y.ndist=1+(31&se),se>>>=5,ae-=5,y.ncode=4+(15&se),se>>>=4,ae-=4,286>>=3,ae-=3}for(;y.have<19;)y.lens[ne[y.have++]]=0;if(y.lencode=y.lendyn,y.lenbits=7,Z={bits:y.lenbits},ce=A(0,y.lens,0,19,y.lencode,0,y.work,Z),y.lenbits=Z.bits,ce){B.msg="invalid code lengths set",y.mode=30;break}y.have=0,y.mode=19;case 19:for(;y.have>>16&255,xt=65535&L,!((et=L>>>24)<=ae);){if(we===0)break e;we--,se+=fe[xe++]<>>=et,ae-=et,y.lens[y.have++]=xt;else{if(xt===16){for(N=et+2;ae>>=et,ae-=et,y.have===0){B.msg="invalid bit length repeat",y.mode=30;break}_=y.lens[y.have-1],be=3+(3&se),se>>>=2,ae-=2}else if(xt===17){for(N=et+3;ae>>=et)),se>>>=3,ae-=3}else{for(N=et+7;ae>>=et)),se>>>=7,ae-=7}if(y.have+be>y.nlen+y.ndist){B.msg="invalid bit length repeat",y.mode=30;break}for(;be--;)y.lens[y.have++]=_}}if(y.mode===30)break;if(y.lens[256]===0){B.msg="invalid code -- missing end-of-block",y.mode=30;break}if(y.lenbits=9,Z={bits:y.lenbits},ce=A(O,y.lens,0,y.nlen,y.lencode,0,y.work,Z),y.lenbits=Z.bits,ce){B.msg="invalid literal/lengths set",y.mode=30;break}if(y.distbits=6,y.distcode=y.distdyn,Z={bits:y.distbits},ce=A(E,y.lens,y.nlen,y.ndist,y.distcode,0,y.work,Z),y.distbits=Z.bits,ce){B.msg="invalid distances set",y.mode=30;break}if(y.mode=20,_e===6)break e;case 20:y.mode=21;case 21:if(6<=we&&258<=Fe){B.next_out=Ue,B.avail_out=Fe,B.next_in=xe,B.avail_in=we,y.hold=se,y.bits=ae,b(B,Se),Ue=B.next_out,Ce=B.output,Fe=B.avail_out,xe=B.next_in,fe=B.input,we=B.avail_in,se=y.hold,ae=y.bits,y.mode===12&&(y.back=-1);break}for(y.back=0;ot=(L=y.lencode[se&(1<>>16&255,xt=65535&L,!((et=L>>>24)<=ae);){if(we===0)break e;we--,se+=fe[xe++]<>tt)])>>>16&255,xt=65535&L,!(tt+(et=L>>>24)<=ae);){if(we===0)break e;we--,se+=fe[xe++]<>>=tt,ae-=tt,y.back+=tt}if(se>>>=et,ae-=et,y.back+=et,y.length=xt,ot===0){y.mode=26;break}if(32&ot){y.back=-1,y.mode=12;break}if(64&ot){B.msg="invalid literal/length code",y.mode=30;break}y.extra=15&ot,y.mode=22;case 22:if(y.extra){for(N=y.extra;ae>>=y.extra,ae-=y.extra,y.back+=y.extra}y.was=y.length,y.mode=23;case 23:for(;ot=(L=y.distcode[se&(1<>>16&255,xt=65535&L,!((et=L>>>24)<=ae);){if(we===0)break e;we--,se+=fe[xe++]<>tt)])>>>16&255,xt=65535&L,!(tt+(et=L>>>24)<=ae);){if(we===0)break e;we--,se+=fe[xe++]<>>=tt,ae-=tt,y.back+=tt}if(se>>>=et,ae-=et,y.back+=et,64&ot){B.msg="invalid distance code",y.mode=30;break}y.offset=xt,y.extra=15&ot,y.mode=24;case 24:if(y.extra){for(N=y.extra;ae>>=y.extra,ae-=y.extra,y.back+=y.extra}if(y.offset>y.dmax){B.msg="invalid distance too far back",y.mode=30;break}y.mode=25;case 25:if(Fe===0)break e;if(be=Se-Fe,y.offset>be){if((be=y.offset-be)>y.whave&&y.sane){B.msg="invalid distance too far back",y.mode=30;break}St=be>y.wnext?(be-=y.wnext,y.wsize-be):y.wnext-be,be>y.length&&(be=y.length),Dt=y.window}else Dt=Ce,St=Ue-y.offset,be=y.length;for(Fete?(ue=St[Dt+C[_e]],ae[Re+C[_e]]):(ue=96,0),D=1<>Ue)+(U-=D)]=ee<<24|ue<<16|he|0,U!==0;);for(D=1<>=1;if(D!==0?(se&=D-1,se+=D):se=0,_e++,--Se[B]==0){if(B===fe)break;B=E[S+C[_e]]}if(Ce>>7)]}function Re(L,F){L.pending_buf[L.pending++]=255&F,L.pending_buf[L.pending++]=F>>>8&255}function Se(L,F,ne){L.bi_valid>P-ne?(L.bi_buf|=F<>P-L.bi_valid,L.bi_valid+=ne-P):(L.bi_buf|=F<>>=1,ne<<=1,0<--F;);return ne>>>1}function Dt(L,F,ne){var oe,Y,le=new Array(C+1),ye=0;for(oe=1;oe<=C;oe++)le[oe]=ye=ye+ne[oe-1]<<1;for(Y=0;Y<=F;Y++){var ge=L[2*Y+1];ge!==0&&(L[2*Y]=St(le[ge]++,ge))}}function et(L){var F;for(F=0;F>1;1<=ne;ne--)tt(L,le,ne);for(Y=ke;ne=L.heap[1],L.heap[1]=L.heap[L.heap_len--],tt(L,le,1),oe=L.heap[1],L.heap[--L.heap_max]=ne,L.heap[--L.heap_max]=oe,le[2*Y]=le[2*ne]+le[2*oe],L.depth[Y]=(L.depth[ne]>=L.depth[oe]?L.depth[ne]:L.depth[oe])+1,le[2*ne+1]=le[2*oe+1]=Y,L.heap[1]=Y++,tt(L,le,1),2<=L.heap_len;);L.heap[--L.heap_max]=L.heap[1],function(Ke,Ge){var nt,jt,mn,Tt,Ln,Xt,At=Ge.dyn_tree,tn=Ge.max_code,Ft=Ge.stat_desc.static_tree,Mn=Ge.stat_desc.has_stree,Gn=Ge.stat_desc.extra_bits,Hn=Ge.stat_desc.extra_base,Ut=Ge.stat_desc.max_length,xn=0;for(Tt=0;Tt<=C;Tt++)Ke.bl_count[Tt]=0;for(At[2*Ke.heap[Ke.heap_max]+1]=0,nt=Ke.heap_max+1;nt>=7;Y>>=1)if(1&Je&&ge.dyn_ltree[2*ke]!==0)return x;if(ge.dyn_ltree[18]!==0||ge.dyn_ltree[20]!==0||ge.dyn_ltree[26]!==0)return k;for(ke=32;ke>>3,(le=L.static_len+3+7>>>3)<=Y&&(Y=le)):Y=le=ne+5,ne+4<=Y&&F!==-1?N(L,F,ne,oe):L.strategy===4||le===Y?(Se(L,2+(oe?1:0),3),Et(L,Ee,B)):(Se(L,4+(oe?1:0),3),function(ge,ke,Je,Ke){var Ge;for(Se(ge,ke-257,5),Se(ge,Je-1,5),Se(ge,Ke-4,4),Ge=0;Ge>>8&255,L.pending_buf[L.d_buf+2*L.last_lit+1]=255&F,L.pending_buf[L.l_buf+L.last_lit]=255&ne,L.last_lit++,F===0?L.dyn_ltree[2*ne]++:(L.matches++,F--,L.dyn_ltree[2*(y[ne]+E+1)]++,L.dyn_dtree[2*ae(F)]++),L.last_lit===L.lit_bufsize-1},p._tr_align=function(L){Se(L,2,3),be(L,U,Ee),function(F){F.bi_valid===16?(Re(F,F.bi_buf),F.bi_buf=0,F.bi_valid=0):8<=F.bi_valid&&(F.pending_buf[F.pending++]=255&F.bi_buf,F.bi_buf>>=8,F.bi_valid-=8)}(L)}},{"../utils/common":41}],53:[function(l,u,p){"use strict";u.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(l,u,p){(function(h){(function(x,k){"use strict";if(!x.setImmediate){var b,A,O,E,S=1,M={},R=!1,T=x.document,C=Object.getPrototypeOf&&Object.getPrototypeOf(x);C=C&&C.setTimeout?C:x,b={}.toString.call(x.process)==="[object process]"?function(X){process.nextTick(function(){D(X)})}:function(){if(x.postMessage&&!x.importScripts){var X=!0,W=x.onmessage;return x.onmessage=function(){X=!1},x.postMessage("","*"),x.onmessage=W,X}}()?(E="setImmediate$"+Math.random()+"$",x.addEventListener?x.addEventListener("message",U,!1):x.attachEvent("onmessage",U),function(X){x.postMessage(E+X,"*")}):x.MessageChannel?((O=new MessageChannel).port1.onmessage=function(X){D(X.data)},function(X){O.port2.postMessage(X)}):T&&"onreadystatechange"in T.createElement("script")?(A=T.documentElement,function(X){var W=T.createElement("script");W.onreadystatechange=function(){D(X),W.onreadystatechange=null,A.removeChild(W),W=null},A.appendChild(W)}):function(X){setTimeout(D,0,X)},C.setImmediate=function(X){typeof X!="function"&&(X=new Function(""+X));for(var W=new Array(arguments.length-1),re=0;re{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.EventEmitter=void 0;var Zl=class{constructor(u){this.events=Object.fromEntries(Object.keys(u).map(p=>[p,[]]))}on(u,p){this.events[u].push(p)}emit(u,p){let h="sync",x,k=Object.assign(Object.assign({},p),{cancelEvent(){h="canceled"},deferEvent(){return h="deferred",()=>{x&&x()}},then(b){h==="sync"?b():h==="deferred"&&(x=b)}});for(let b of this.events[u])b(k);return k}};vi.EventEmitter=Zl});var Pa=ut(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.getPreviousAndNext=to.Tabs=void 0;var Ah=Ta(),Jl=class{constructor(u={}){this._currentTab="",this.tabEvents=new Ah.EventEmitter({beforeSwitch:!0,afterSwitch:!0}),$("*[data-tab]").on("click",h=>{let k=$(h.target).data("tab");h.preventDefault(),this.switchToTab(k)});let p=u.initialTab;!p&&window.location.hash&&(p=window.location.hash.replace(/^#/,"")),p||(p=$(".tab:first").attr("data-tab")),p&&this.switchToTab(p)}switchToTab(u){let p=()=>{let h=this._currentTab;this._currentTab=u;let x=u!=="level"?u:"";window.history&&window.history.replaceState(null,"","#"+x);let k=$('*[data-tab="'+u+'"]'),b=k.siblings("*[data-tab]"),A=$('*[data-tabtarget="'+u+'"]'),O=A.siblings("*[data-tabtarget]");b.removeClass("tab-selected"),k.addClass("tab-selected"),O.addClass("hidden"),A.removeClass("hidden"),this.tabEvents.emit("afterSwitch",{oldTab:h,newTab:u})};this._currentTab!=""?this.tabEvents.emit("beforeSwitch",{oldTab:this._currentTab,newTab:u}).then(p):p()}get currentTab(){return this._currentTab}on(u,p){let h=this.tabEvents.on(u,p);return u==="afterSwitch"&&this.tabEvents.emit("afterSwitch",{oldTab:"",newTab:this._currentTab}),h}};to.Tabs=Jl;function zh(){let l=document.querySelector(".tab-selected");if(!l)return[];let u=parseInt(l.getAttribute("tabindex")||"0"),p=document.querySelector(`.tab[tabindex='${u-1}']`),h=document.querySelector(`.tab[tabindex='${u+1}']`);return[p,h]}to.getPreviousAndNext=zh});var Ql=ut(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.normal_prefix=Nr.pygame_prefix=Nr.turtle_prefix=void 0;Nr.turtle_prefix=`# coding=utf8 import random # noqa F401 import time # noqa F401 @@ -201,7 +201,7 @@ t.left(90) t.pendown() t.speed(3) t.showturtle() -`;Yo.pygame_prefix=`# coding=utf8 +`;Nr.pygame_prefix=`# coding=utf8 import pygame # noqa F401 import buttons # noqa F401 @@ -218,7 +218,7 @@ def create_button(name): if name not in button_list: button_list.append(name) buttons.add(name) -`;Yo.normal_prefix=`# coding=utf8 +`;Nr.normal_prefix=`# coding=utf8 import random # noqa F401 import time # noqa F401 @@ -315,37 +315,22 @@ def convert_numerals(alphabet, number): T = int number = ''.join(all_numerals_converted) return T(f'{sign}{number}') -`});var A_=We(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Uc.isServerSaveInfo=void 0;function nD(r){return!!r&&typeof r=="object"&&!!r.id}Uc.isServerSaveInfo=nD});var qc=We(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.tutorialPopup=ho.relocatePopup=ho.removeBorder=ho.addHighlightBorder=void 0;var rD=Yi();function iD(r){$("#"+r).addClass("border-2 rounded-lg border-red-500")}ho.addHighlightBorder=iD;function oD(r){$("#"+r).removeClass("border-2 border-red-500")}ho.removeBorder=oD;function sD(r,e){if($("#tutorial-pop-up").css({top:"20%",left:"50%"}),r&&e){let t=r.toString()+"%",n=e.toString()+"%";$("#tutorial-pop-up").css({top:n,left:t})}}ho.relocatePopup=sD;function aD(r,e){let t="/get_tutorial_step/"+r+"/";$.ajax({type:"GET",url:t+e.toString(),dataType:"json"}).done(function(n){$("#tutorial_title").text(n.title),$("#tutorial_text").text(n.text),$("#tutorial-pop-up").fadeIn(800)}).fail(function(n){rD.modal.notifyError(n.responseText)})}ho.tutorialPopup=aD});var Fc=We(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});Ho.clearUnsavedChanges=Ho.markUnsavedChanges=Ho.hasUnsavedChanges=void 0;var lD=qo();function I_(r){return r.preventDefault(),r.returnValue=lD.ClientMessages.Unsaved_Changes}var ip=!1;function cD(){return ip}Ho.hasUnsavedChanges=cD;function uD(){ip=!0,window.addEventListener("beforeunload",I_,{capture:!0})}Ho.markUnsavedChanges=uD;function dD(){ip=!1,window.removeEventListener("beforeunload",I_,{capture:!0})}Ho.clearUnsavedChanges=dD});var G_=We(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.callNextIntroStep=ia.startIntro=void 0;var ra=hi(),Rt=qc(),dl=Fc(),sn=0;function hD(){sn=1,$("#adventures").hide(),$("#variables_container").hide(),ra.theGlobalEditor.contents="",(0,Rt.tutorialPopup)("intro",sn)}ia.startIntro=hD;function pD(){sn+=1,sn==2?fD():sn==3?gD():sn==4?OD():sn==5?mD():sn==6?_D():sn==7?xD():sn==8?kD():sn==9?vD():sn==10?yD():sn==11?bD():sn==12?wD():sn==13?PD():sn==14?LD():sn==15?((0,ra.pushAchievement)("well_begun_is_half_done"),$("#achievement_pop-up").removeClass("z-10"),$("#achievement_pop-up").addClass("z-50"),setTimeout(function(){$("#achievement_pop-up").is(":visible")?setTimeout(function(){z_(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10")},5e3):(z_(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10"))},500)):location.replace("/hedy")}ia.callNextIntroStep=pD;function fD(){$("#editor").addClass("z-40"),(0,Rt.addHighlightBorder)("editor"),(0,Rt.relocatePopup)(65,30),ra.theGlobalEditor.contents="print ___",(0,Rt.tutorialPopup)("intro",sn)}function gD(){(0,Rt.removeBorder)("editor"),$("#code_output").addClass("z-40"),(0,Rt.addHighlightBorder)("code_output"),(0,ra.runit)(1,"en","","run",function(){$("#output").focus()}),(0,Rt.relocatePopup)(35,30),(0,Rt.tutorialPopup)("intro",sn)}function OD(){(0,Rt.removeBorder)("code_output"),$("#code_related_buttons").show(),$("#runButtonContainer").addClass("z-40"),(0,Rt.addHighlightBorder)("runButtonContainer"),(0,Rt.relocatePopup)(50,30),(0,Rt.tutorialPopup)("intro",sn)}function mD(){$.ajax({type:"GET",url:"/get_tutorial_step/intro/code_snippet/",dataType:"json"}).done(function(r){ra.theGlobalEditor.contents=r.code}).fail(function(){ra.theGlobalEditor.contents=`print Hello world! -print I'm learning Hedy with the tutorial!`}),(0,Rt.relocatePopup)(50,70),(0,Rt.tutorialPopup)("intro",sn)}function _D(){(0,Rt.removeBorder)("runButtonContainer"),$("#editor").removeClass("z-40"),$("#code_output").removeClass("z-40"),$("#runButtonContainer").removeClass("z-40"),$("#speak_container").addClass("z-40 bg-white relative"),(0,Rt.addHighlightBorder)("speak_container"),(0,Rt.relocatePopup)(50,30),(0,Rt.tutorialPopup)("intro",sn)}function xD(){$("#editor").addClass("z-40"),$("#code_output").addClass("z-40"),$("#runButtonContainer").addClass("z-40"),(0,Rt.relocatePopup)(50,70),(0,Rt.tutorialPopup)("intro",sn)}function kD(){(0,Rt.removeBorder)("speak_container"),$("#editor").removeClass("z-40"),$("#code_output").removeClass("z-40"),$("#runButtonContainer").removeClass("z-40"),$("#speak_container").removeClass("z-40 bg-white relative"),$("#next_level_button").addClass("z-40"),$("#next_level_button").removeAttr("onclick"),(0,Rt.addHighlightBorder)("next_level_button"),(0,Rt.relocatePopup)(50,30),(0,Rt.tutorialPopup)("intro",sn)}function vD(){(0,Rt.removeBorder)("next_level_button"),$("#next_level_button").removeClass("z-40"),$("#code_content_container").addClass("z-40"),$("#adventures").addClass("z-40 bg-gray-100"),$("#adventures").show(),(0,dl.clearUnsavedChanges)(),(0,Rt.addHighlightBorder)("adventures"),(0,Rt.relocatePopup)(50,40),(0,Rt.tutorialPopup)("intro",sn)}function yD(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="story"&&((0,dl.clearUnsavedChanges)(),$(this).click())}),(0,Rt.tutorialPopup)("intro",sn)}function bD(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="parsons"&&((0,dl.clearUnsavedChanges)(),$(this).click())}),(0,Rt.tutorialPopup)("intro",sn)}function wD(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="quiz"&&((0,dl.clearUnsavedChanges)(),$(this).click())}),(0,Rt.tutorialPopup)("intro",sn)}function PD(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="default"&&((0,dl.clearUnsavedChanges)(),$(this).click())}),(0,Rt.removeBorder)("adventures"),$("#code_content_container").removeClass("z-40"),$("#level-header").addClass("z-40"),$("#cheatsheet_container").hide(),(0,Rt.addHighlightBorder)("level-header"),$("#save_program_button").removeAttr("onclick"),$("#share_program_button").removeAttr("onclick"),(0,Rt.relocatePopup)(50,30),(0,Rt.tutorialPopup)("intro",sn)}function LD(){$("#cheatsheet_container").show(),$("#code_output").removeClass("z-40"),$("#adventures").removeClass("z-40"),$("#cheatsheet_dropdown").addClass("z-40"),$("#cheatsheet_dropdown").show(),(0,Rt.tutorialPopup)("intro",sn)}function z_(){(0,Rt.removeBorder)("level-header"),$("#level-header").removeClass("z-40"),$("#cheatsheet_dropdown").removeClass("z-40"),$("#cheatsheet_dropdown").hide(),(0,Rt.relocatePopup)(50,15),(0,Rt.tutorialPopup)("intro",sn)}});var j_=We(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.callTeacherNextStep=oa.startTeacher=void 0;var QD=hi(),vr=qc(),ri=0;function DD(){ri=1,(0,vr.tutorialPopup)("teacher",ri)}oa.startTeacher=DD;function SD(){ri+=1,ri==2?ED():ri==3?TD():ri==4?MD():ri==5?CD():ri==6?RD():ri==7?((0,QD.pushAchievement)("ring_the_bell"),$("#achievement_pop-up").removeClass("z-10"),$("#achievement_pop-up").addClass("z-50"),setTimeout(function(){$("#achievement_pop-up").is(":visible")?setTimeout(function(){X_(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10")},5e3):(X_(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10"))},500)):location.replace("/for-teachers")}oa.callTeacherNextStep=SD;function ED(){$("#auth_main_container").addClass("z-40"),$("#teacher_classes").addClass("z-40 bg-gray-100"),(0,vr.addHighlightBorder)("teacher_classes"),(0,vr.relocatePopup)(50,40),(0,vr.tutorialPopup)("teacher",ri)}function TD(){(0,vr.tutorialPopup)("teacher",ri)}function MD(){$("#teacher_adventures").addClass("z-40 bg-gray-100"),(0,vr.removeBorder)("teacher_classes"),(0,vr.addHighlightBorder)("teacher_adventures"),(0,vr.relocatePopup)(50,70),(0,vr.tutorialPopup)("teacher",ri)}function CD(){$("#teacher_accounts").addClass("z-40 bg-gray-100"),(0,vr.removeBorder)("teacher_adventures"),(0,vr.addHighlightBorder)("teacher_accounts"),(0,vr.relocatePopup)(50,20),(0,vr.tutorialPopup)("teacher",ri)}function RD(){$("#teacher_documentation").addClass("z-40 bg-gray-100"),(0,vr.removeBorder)("teacher_accounts"),(0,vr.addHighlightBorder)("teacher_documentation"),(0,vr.tutorialPopup)("teacher",ri)}function X_(){(0,vr.removeBorder)("teacher_documentation"),(0,vr.tutorialPopup)("teacher",ri)}});var W_=We(sa=>{"use strict";Object.defineProperty(sa,"__esModule",{value:!0});sa.callNextStepLevel1=sa.startLevel1=void 0;var $D=hi(),op=qc(),hl=0;function ND(){hl=1,(0,op.tutorialPopup)("1",hl)}sa.startLevel1=ND;function AD(){hl+=1,hl==2?($D.theGlobalEditor.contents="print Hello world!",(0,op.relocatePopup)(50,70),(0,op.tutorialPopup)("1",2)):hl==3&&location.replace("/hedy")}sa.callNextStepLevel1=AD});var pl=We(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.startTeacherTutorial=po.startLevelTutorial=po.startIntroTutorial=po.initializeTutorial=void 0;var B_=G_(),V_=j_(),U_=W_(),aa="";function ID(){$("#tutorial_next_button").off("click").on("click",()=>($("#tutorial-pop-up").hide(),aa=="intro"?(0,B_.callNextIntroStep)():aa=="teacher"?(0,V_.callTeacherNextStep)():WD(aa)))}po.initializeTutorial=ID;function zD(){$("#tutorial-mask").show(),aa="intro",(0,B_.startIntro)()}po.startIntroTutorial=zD;function GD(r){$("#tutorial-mask").show(),aa=r,jD(r)}po.startLevelTutorial=GD;function XD(){$("#tutorial-mask").show(),aa="teacher",(0,V_.startTeacher)()}po.startTeacherTutorial=XD;function jD(r){r=="1"&&(0,U_.startLevel1)()}function WD(r){r=="1"&&(0,U_.callNextStepLevel1)()}});var F_=We(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.loadNextExercise=la.loadParsonsExercise=void 0;var BD=Yi(),VD=hi();function q_(r,e){$("#next_parson_button").hide();let t=new URLSearchParams(window.location.search),n="/parsons/get-exercise/"+r+"/"+e;t.has("keyword_language")&&(n+="/"+t.get("keyword_language")),$.ajax({type:"GET",url:n,dataType:"json"}).done(function(i){$("#parsons_container").show(),$("#next_parson_button").attr("current_exercise",e),UD(),qD(e),FD(i),YD(r,e)}).fail(function(i){BD.modal.notifyError(i.responseText)})}la.loadParsonsExercise=q_;function UD(){(0,VD.stopit)(),$("#output").empty(),$(".parsons_goal_line_container").removeClass("border-green-500 border-red-500"),$(".compiler-parsons-box").attr("index","-"),$(".compiler-parsons-box").attr("code",""),$(".goal_parsons").each(function(){ace.edit($(this).attr("id")).setValue("")})}function qD(r){$(".parsons_header_text_container").hide(),$(".step").removeClass("current"),$("#parsons_header_text_"+r).show(),$("#parsons_header_"+r).addClass("current")}function FD(r){let e=ZD(r.code),t=Object.keys(e);$(".parsons_start_line_container").hide(),$(".parsons_goal_line_container").hide(),KD(t),t.forEach((n,i)=>{let s=e[n],c=i+1;ace.edit("start_parsons_"+c).session.setValue(s.replace(/\n+$/,""),-1),$("#start_parsons_div_"+c).attr("index",n),$("#start_parsons_div_"+c).attr("code",s),ace.edit("goal_parsons_"+c).session.setValue(""),$("#parsons_start_line_container_"+c).show(),$("#parsons_goal_line_container_"+c).show()}),$("#parsons_explanation_story").text(r.story)}function YD(r,e){let t=$("#next_parson_button").attr("max_exercise")||1;eq_(r,e+1)):$("#next_parson_button").off("click")}function HD(){}la.loadNextExercise=HD;function ZD(r){let e=r.split(/\r?\n/).filter(n=>String(n).trim()),t={};for(let n=0;n=1;e--){let t=Math.floor(Math.random()*e),n=r[t];r[t]=r[e],r[e]=n}}});var Z_=We(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.onElementBecomesVisible=ca.checkNow=void 0;var Yc=new Array;function Y_(r){var e=$(window).scrollTop(),t=e+$(window).height(),n=$(r).offset().top;return n<=t&&n>=e}function H_(){for(let r=0;r{"use strict";Object.defineProperty(fl,"__esModule",{value:!0});fl.EditorType=void 0;var eS;(function(r){r[r.MAIN=0]="MAIN",r[r.MODAL=1]="MODAL",r[r.COMMON_MISTAKES=2]="COMMON_MISTAKES",r[r.CHEATSHEET=3]="CHEATSHEET",r[r.PARSONS=4]="PARSONS",r[r.EXAMPLE=5]="EXAMPLE"})(eS=fl.EditorType||(fl.EditorType={}))});var Kc=We(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.HedyAceEditor=ua.HedyAceEditorCreator=void 0;var sp=hi(),tS=qo(),fo=Hc(),nS=Vc(),rS=Yi(),iS=1,oS="ace_breakpoint",K_=class{initializeEditorWithGutter(e,t,n="ltr"){return new Zc(e.get(0),e.data("readonly"),t,n)}initializeReadOnlyEditor(e,t="ltr"){let n;return $(e).hasClass("common-mistakes")?n=fo.EditorType.COMMON_MISTAKES:$(e).hasClass("cheatsheet")?n=fo.EditorType.CHEATSHEET:$(e).hasClass("parsons")?n=fo.EditorType.PARSONS:n=fo.EditorType.EXAMPLE,new Zc(e,!0,n,t)}};ua.HedyAceEditorCreator=K_;var Zc=class{constructor(e,t,n,i="ltr"){this.editorEvent=new nS.EventEmitter({change:!0,guttermousedown:!0,changeBreakpoint:!0,click:!0}),this.markerClasses=new Map,this.strikeMarkers=new Map,this._editor=ace.edit(e),this.isReadOnly=t,this._editor.setTheme("ace/theme/monokai"),t?(this._editor.setValue(this._editor.getValue().trimRight(),-1),this._editor.renderer.$cursorLayer.element.style.display="none",this._editor.setOptions({readOnly:n===fo.EditorType.MAIN,showGutter:!1,showPrintMargin:!1,highlightActiveLine:!1}),this._editor.renderer.setScrollMargin(3,3,10,20),this._editor.setOptions({maxLines:1/0}),n===fo.EditorType.CHEATSHEET?this._editor.setOptions({minLines:1}):n===fo.EditorType.COMMON_MISTAKES?this._editor.setOptions({showGutter:!0,showPrintMargin:!0,highlightActiveLine:!0,minLines:5}):n===fo.EditorType.PARSONS?this._editor.setOptions({minLines:1,showGutter:!1,showPrintMargin:!1,highlightActiveLine:!1}):n===fo.EditorType.EXAMPLE&&this._editor.setOptions({minLines:2})):n===fo.EditorType.MAIN&&(this._editor.setShowPrintMargin(!1),this._editor.renderer.setScrollMargin(0,0,0,20)),sp.theLevel&&this.setHighlighterForLevel(sp.theLevel),i==="rtl"&&this._editor.setOptions({rtl:!0})}setHighlighterForLevel(e){let t=this.getHighlighter(e);this._editor.session.setMode(t)}get contents(){return this._editor.getValue()}set contents(e){this._editor.setValue(e,iS)}get isReadOnly(){return this._editor.getReadOnly()}set isReadOnly(e){this._editor.setReadOnly(e)}resize(){this._editor.resize()}focus(){this._editor.focus()}clearErrors(){this._editor.session.clearAnnotations();for(let e of this.findMarkers("editor-error"))this.removeMarker(e)}moveCursorToEndOfFile(){this._editor.navigateFileEnd()}clearSelection(){this._editor.clearSelection()}clearBreakpoints(){this._editor.session.clearBreakpoints()}getDeactivatedLines(){return this._editor.session.getBreakpoints()}getHighlighter(e){return`ace/mode/level${e}`}trimTrailingSpace(){try{ace.require("ace/ext/whitespace").trimTrailingSpace(this._editor.session,!0)}catch(e){console.error(e)}}on(e,t){let n=this.editorEvent.on(e,t);return e=="changeBreakpoint"?this._editor.session.on(e,t):this._editor.addEventListener(e,t),n}highlightError(e,t){if(t===void 0){this.addMarker(new ace.Range(e-1,1,e-1,2),"editor-error","fullLine");return}let n=this._editor.session.getLine(e-1).slice(t-1).split(/(\s+)/)[0].length;n>0?this.addMarker(new ace.Range(e-1,t-1,e-1,t-1+n),"editor-error","text"):this.addMarker(new ace.Range(e-1,1,e-1,2),"editor-error","fullLine")}setIncorrectLine(e,t){let n=new ace.Range(e.startLine-1,e.startColumn-1,e.endLine-1,e.endColumn-1);this.addMarker(n,`ace_incorrect_hedy_code_${t}`,"text",!0)}clearIncorrectLines(){let e=this._editor.session.getMarkers(!0);if(e)for(let t in e)e[t].clazz.includes("ace_incorrect_hedy_code")&&this.removeMarker(Number(t))}setDebuggerCurrentLine(e,t,n){if(this.currentLineMarker&&this.removeMarker(this.currentLineMarker.id),e===void 0){this.currentLineMarker=void 0;return}e=e-1;let i;t===void 0||n===void 0?i=this.addMarker(new ace.Range(e,0,e,999),"debugger-current-line","fullLine"):i=this.addMarker(new ace.Range(e,t-1,e,n-1),"debugger-current-line","text"),this.currentLineMarker={line:e,id:i}}strikethroughLines(e){let t=new Set(e),n=Array.from(this.strikeMarkers.entries()).filter(([s,c])=>!t.has(s));for(let[s,c]of n)this.removeMarker(c),this.strikeMarkers.delete(s);let i=e.filter(s=>!this.strikeMarkers.has(s));for(let s of i){let c=this.addMarker(new ace.Range(s,0,s,999),"disabled-line","text",!0);this.strikeMarkers.set(s,c)}}addMarker(e,t,n,i=!1){let s=this._editor.session.addMarker(e,t,n,i);return this.markerClasses.set(s,t),s}removeMarker(e){this._editor.session.removeMarker(e),this.markerClasses.delete(e)}findMarkers(e){return Array.from(this.markerClasses.entries()).filter(([t,n])=>n===e).map(([t,n])=>t)}getActiveContents(e){let t=this._editor.session.getValue(),n=this.getDeactivatedLines();if(t){let i=t.split(` -`);e!=null&&(i=i.slice(0,parseInt(e)+1));for(let s=0;s{"use strict";var sS=yr&&yr.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(yr,"__esModule",{value:!0});yr.incrementDebugLine=yr.stopDebug=yr.resetDebug=yr.startDebug=yr.initializeDebugger=yr.load_variables=yr.show_variables=void 0;var aS=Kc(),vs=hi(),lS=sS(jc()),cS=ep(),ki,gl,ap,ys,Jc=!1,da=!1,uS=["print","echo","assign","sleep","assign_list","add","remove","ask","command"],J_=["ifs","ifelse","ifpressed_else","repeat","ifpressed","elses","ifpressed_elses","for_list","for_loop","while_loop","elifs","ifpressed_elifs"],dS=`^((__if__) *[^ +`});var ec=ut(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.isServerSaveInfo=void 0;function Oh(l){return!!l&&typeof l=="object"&&!!l.id}yi.isServerSaveInfo=Oh});var bi=ut(ur=>{"use strict";Object.defineProperty(ur,"__esModule",{value:!0});ur.tutorialPopup=ur.relocatePopup=ur.removeBorder=ur.addHighlightBorder=void 0;var $h=kr();function Rh(l){$("#"+l).addClass("border-2 rounded-lg border-red-500")}ur.addHighlightBorder=Rh;function jh(l){$("#"+l).removeClass("border-2 border-red-500")}ur.removeBorder=jh;function Bh(l,u){if($("#tutorial-pop-up").css({top:"20%",left:"50%"}),l&&u){let p=l.toString()+"%",h=u.toString()+"%";$("#tutorial-pop-up").css({top:h,left:p})}}ur.relocatePopup=Bh;function Fh(l,u){let p="/get_tutorial_step/"+l+"/";$.ajax({type:"GET",url:p+u.toString(),dataType:"json"}).done(function(h){$("#tutorial_title").text(h.title),$("#tutorial_text").text(h.text),$("#tutorial-pop-up").fadeIn(800)}).fail(function(h){$h.modal.notifyError(h.responseText)})}ur.tutorialPopup=Fh});var wi=ut(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.clearUnsavedChanges=Tr.markUnsavedChanges=Tr.hasUnsavedChanges=void 0;var Gh=eo();function tc(l){return l.preventDefault(),l.returnValue=Gh.ClientMessages.Unsaved_Changes}var Ia=!1;function Hh(){return Ia}Tr.hasUnsavedChanges=Hh;function Wh(){Ia=!0,window.addEventListener("beforeunload",tc,{capture:!0})}Tr.markUnsavedChanges=Wh;function Uh(){Ia=!1,window.removeEventListener("beforeunload",tc,{capture:!0})}Tr.clearUnsavedChanges=Uh});var rc=ut(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.callNextIntroStep=ro.startIntro=void 0;var no=Fn(),at=bi(),zo=wi(),bt=0;function Vh(){bt=1,$("#adventures").hide(),$("#variables_container").hide(),no.theGlobalEditor.contents="",(0,at.tutorialPopup)("intro",bt)}ro.startIntro=Vh;function Yh(){bt+=1,bt==2?qh():bt==3?Xh():bt==4?Kh():bt==5?Zh():bt==6?Jh():bt==7?Qh():bt==8?e_():bt==9?t_():bt==10?n_():bt==11?r_():bt==12?o_():bt==13?i_():bt==14?a_():bt==15?((0,no.pushAchievement)("well_begun_is_half_done"),$("#achievement_pop-up").removeClass("z-10"),$("#achievement_pop-up").addClass("z-50"),setTimeout(function(){$("#achievement_pop-up").is(":visible")?setTimeout(function(){nc(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10")},5e3):(nc(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10"))},500)):location.replace("/hedy")}ro.callNextIntroStep=Yh;function qh(){$("#editor").addClass("z-40"),(0,at.addHighlightBorder)("editor"),(0,at.relocatePopup)(65,30),no.theGlobalEditor.contents="print ___",(0,at.tutorialPopup)("intro",bt)}function Xh(){(0,at.removeBorder)("editor"),$("#code_output").addClass("z-40"),(0,at.addHighlightBorder)("code_output"),(0,no.runit)(1,"en","","run",function(){$("#output").focus()}),(0,at.relocatePopup)(35,30),(0,at.tutorialPopup)("intro",bt)}function Kh(){(0,at.removeBorder)("code_output"),$("#code_related_buttons").show(),$("#runButtonContainer").addClass("z-40"),(0,at.addHighlightBorder)("runButtonContainer"),(0,at.relocatePopup)(50,30),(0,at.tutorialPopup)("intro",bt)}function Zh(){$.ajax({type:"GET",url:"/get_tutorial_step/intro/code_snippet/",dataType:"json"}).done(function(l){no.theGlobalEditor.contents=l.code}).fail(function(){no.theGlobalEditor.contents=`print Hello world! +print I'm learning Hedy with the tutorial!`}),(0,at.relocatePopup)(50,70),(0,at.tutorialPopup)("intro",bt)}function Jh(){(0,at.removeBorder)("runButtonContainer"),$("#editor").removeClass("z-40"),$("#code_output").removeClass("z-40"),$("#runButtonContainer").removeClass("z-40"),$("#speak_container").addClass("z-40 bg-white relative"),(0,at.addHighlightBorder)("speak_container"),(0,at.relocatePopup)(50,30),(0,at.tutorialPopup)("intro",bt)}function Qh(){$("#editor").addClass("z-40"),$("#code_output").addClass("z-40"),$("#runButtonContainer").addClass("z-40"),(0,at.relocatePopup)(50,70),(0,at.tutorialPopup)("intro",bt)}function e_(){(0,at.removeBorder)("speak_container"),$("#editor").removeClass("z-40"),$("#code_output").removeClass("z-40"),$("#runButtonContainer").removeClass("z-40"),$("#speak_container").removeClass("z-40 bg-white relative"),$("#next_level_button").addClass("z-40"),$("#next_level_button").removeAttr("onclick"),(0,at.addHighlightBorder)("next_level_button"),(0,at.relocatePopup)(50,30),(0,at.tutorialPopup)("intro",bt)}function t_(){(0,at.removeBorder)("next_level_button"),$("#next_level_button").removeClass("z-40"),$("#code_content_container").addClass("z-40"),$("#adventures").addClass("z-40 bg-gray-100"),$("#adventures").show(),(0,zo.clearUnsavedChanges)(),(0,at.addHighlightBorder)("adventures"),(0,at.relocatePopup)(50,40),(0,at.tutorialPopup)("intro",bt)}function n_(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="story"&&((0,zo.clearUnsavedChanges)(),$(this).click())}),(0,at.tutorialPopup)("intro",bt)}function r_(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="parsons"&&((0,zo.clearUnsavedChanges)(),$(this).click())}),(0,at.tutorialPopup)("intro",bt)}function o_(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="quiz"&&((0,zo.clearUnsavedChanges)(),$(this).click())}),(0,at.tutorialPopup)("intro",bt)}function i_(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="default"&&((0,zo.clearUnsavedChanges)(),$(this).click())}),(0,at.removeBorder)("adventures"),$("#code_content_container").removeClass("z-40"),$("#level-header").addClass("z-40"),$("#cheatsheet_container").hide(),(0,at.addHighlightBorder)("level-header"),$("#save_program_button").removeAttr("onclick"),$("#share_program_button").removeAttr("onclick"),(0,at.relocatePopup)(50,30),(0,at.tutorialPopup)("intro",bt)}function a_(){$("#cheatsheet_container").show(),$("#code_output").removeClass("z-40"),$("#adventures").removeClass("z-40"),$("#cheatsheet_dropdown").addClass("z-40"),$("#cheatsheet_dropdown").show(),(0,at.tutorialPopup)("intro",bt)}function nc(){(0,at.removeBorder)("level-header"),$("#level-header").removeClass("z-40"),$("#cheatsheet_dropdown").removeClass("z-40"),$("#cheatsheet_dropdown").hide(),(0,at.relocatePopup)(50,15),(0,at.tutorialPopup)("intro",bt)}});var ic=ut(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.callTeacherNextStep=oo.startTeacher=void 0;var s_=Fn(),dn=bi(),Cn=0;function l_(){Cn=1,(0,dn.tutorialPopup)("teacher",Cn)}oo.startTeacher=l_;function c_(){Cn+=1,Cn==2?u_():Cn==3?d_():Cn==4?p_():Cn==5?h_():Cn==6?__():Cn==7?((0,s_.pushAchievement)("ring_the_bell"),$("#achievement_pop-up").removeClass("z-10"),$("#achievement_pop-up").addClass("z-50"),setTimeout(function(){$("#achievement_pop-up").is(":visible")?setTimeout(function(){oc(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10")},5e3):(oc(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10"))},500)):location.replace("/for-teachers")}oo.callTeacherNextStep=c_;function u_(){$("#auth_main_container").addClass("z-40"),$("#teacher_classes").addClass("z-40 bg-gray-100"),(0,dn.addHighlightBorder)("teacher_classes"),(0,dn.relocatePopup)(50,40),(0,dn.tutorialPopup)("teacher",Cn)}function d_(){(0,dn.tutorialPopup)("teacher",Cn)}function p_(){$("#teacher_adventures").addClass("z-40 bg-gray-100"),(0,dn.removeBorder)("teacher_classes"),(0,dn.addHighlightBorder)("teacher_adventures"),(0,dn.relocatePopup)(50,70),(0,dn.tutorialPopup)("teacher",Cn)}function h_(){$("#teacher_accounts").addClass("z-40 bg-gray-100"),(0,dn.removeBorder)("teacher_adventures"),(0,dn.addHighlightBorder)("teacher_accounts"),(0,dn.relocatePopup)(50,20),(0,dn.tutorialPopup)("teacher",Cn)}function __(){$("#teacher_documentation").addClass("z-40 bg-gray-100"),(0,dn.removeBorder)("teacher_accounts"),(0,dn.addHighlightBorder)("teacher_documentation"),(0,dn.tutorialPopup)("teacher",Cn)}function oc(){(0,dn.removeBorder)("teacher_documentation"),(0,dn.tutorialPopup)("teacher",Cn)}});var ac=ut(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.callNextStepLevel1=io.startLevel1=void 0;var f_=Fn(),Sa=bi(),Oo=0;function g_(){Oo=1,(0,Sa.tutorialPopup)("1",Oo)}io.startLevel1=g_;function m_(){Oo+=1,Oo==2?(f_.theGlobalEditor.contents="print Hello world!",(0,Sa.relocatePopup)(50,70),(0,Sa.tutorialPopup)("1",2)):Oo==3&&location.replace("/hedy")}io.callNextStepLevel1=m_});var $o=ut(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.startTeacherTutorial=dr.startLevelTutorial=dr.startIntroTutorial=dr.initializeTutorial=void 0;var sc=rc(),lc=ic(),cc=ac(),ao="";function x_(){$("#tutorial_next_button").off("click").on("click",()=>($("#tutorial-pop-up").hide(),ao=="intro"?(0,sc.callNextIntroStep)():ao=="teacher"?(0,lc.callTeacherNextStep)():w_(ao)))}dr.initializeTutorial=x_;function k_(){$("#tutorial-mask").show(),ao="intro",(0,sc.startIntro)()}dr.startIntroTutorial=k_;function v_(l){$("#tutorial-mask").show(),ao=l,b_(l)}dr.startLevelTutorial=v_;function y_(){$("#tutorial-mask").show(),ao="teacher",(0,lc.startTeacher)()}dr.startTeacherTutorial=y_;function b_(l){l=="1"&&(0,cc.startLevel1)()}function w_(l){l=="1"&&(0,cc.callNextStepLevel1)()}});var dc=ut(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.loadNextExercise=so.loadParsonsExercise=void 0;var L_=kr(),M_=Fn();function uc(l,u){$("#next_parson_button").hide();let p=new URLSearchParams(window.location.search),h="/parsons/get-exercise/"+l+"/"+u;p.has("keyword_language")&&(h+="/"+p.get("keyword_language")),$.ajax({type:"GET",url:h,dataType:"json"}).done(function(x){$("#parsons_container").show(),$("#next_parson_button").attr("current_exercise",u),N_(),T_(u),P_(x),I_(l,u)}).fail(function(x){L_.modal.notifyError(x.responseText)})}so.loadParsonsExercise=uc;function N_(){(0,M_.stopit)(),$("#output").empty(),$(".parsons_goal_line_container").removeClass("border-green-500 border-red-500"),$(".compiler-parsons-box").attr("index","-"),$(".compiler-parsons-box").attr("code",""),$(".goal_parsons").each(function(){ace.edit($(this).attr("id")).setValue("")})}function T_(l){$(".parsons_header_text_container").hide(),$(".step").removeClass("current"),$("#parsons_header_text_"+l).show(),$("#parsons_header_"+l).addClass("current")}function P_(l){let u=D_(l.code),p=Object.keys(u);$(".parsons_start_line_container").hide(),$(".parsons_goal_line_container").hide(),C_(p),p.forEach((h,x)=>{let k=u[h],b=x+1;ace.edit("start_parsons_"+b).session.setValue(k.replace(/\n+$/,""),-1),$("#start_parsons_div_"+b).attr("index",h),$("#start_parsons_div_"+b).attr("code",k),ace.edit("goal_parsons_"+b).session.setValue(""),$("#parsons_start_line_container_"+b).show(),$("#parsons_goal_line_container_"+b).show()}),$("#parsons_explanation_story").text(l.story)}function I_(l,u){let p=$("#next_parson_button").attr("max_exercise")||1;uuc(l,u+1)):$("#next_parson_button").off("click")}function S_(){}so.loadNextExercise=S_;function D_(l){let u=l.split(/\r?\n/).filter(h=>String(h).trim()),p={};for(let h=0;h=1;u--){let p=Math.floor(Math.random()*u),h=l[p];l[p]=l[u],l[u]=h}}});var _c=ut(lo=>{"use strict";Object.defineProperty(lo,"__esModule",{value:!0});lo.onElementBecomesVisible=lo.checkNow=void 0;var Li=new Array;function pc(l){var u=$(window).scrollTop(),p=u+$(window).height(),h=$(l).offset().top;return h<=p&&h>=u}function hc(){for(let l=0;l{"use strict";var A_=en&&en.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(en,"__esModule",{value:!0});en.returnLinesWithoutBreakpoints=en.incrementDebugLine=en.stopDebug=en.resetDebug=en.startDebug=en.initializeDebugger=en.load_variables=en.show_variables=void 0;var Rr=Fn(),z_=A_(ba()),O_=La(),qn,Ro,Da,jr,Mi=!1,co=!1,$_=["print","echo","assign","sleep","assign_list","add","remove","ask","command"],fc=["ifs","ifelse","ifpressed_else","repeat","ifpressed","elses","ifpressed_elses","for_list","for_loop","while_loop","elifs","ifpressed_elifs"],R_=`^((__if__) *[^ ]+ *((__is__)|(__in__)) *[^ - ]+) *.+$`,hS=`^((__repeat__) *[^ + ]+) *.+$`,j_=`^((__repeat__) *[^ ]+ *(__times__)) *[^ - ]+ *.+$`,pS=`^(__else__) *[^ - ]+.+$`;function ex(){$("#variables #variable-list li").length==0?$("#variable_button").hide():$("#variable_button").show()}function fS(){if(Jc===!0){let r=$("#variable-list");r.hasClass("hidden")&&r.removeClass("hidden")}}yr.show_variables=fS;function tx(r){if(Jc===!0){r=OS(r);let e=$("#variable-list");e.empty();for(let t in r)r[t][1]&&e.append(`
  • ${r[t][0]}: ${r[t][1]}
  • `);ex()}}yr.load_variables=tx;function gS(r){let e="",t=parseInt(r.v);return typeof t=="number"&&!isNaN(t)&&(e="#ffffff"),typeof r.v=="string"&&isNaN(t)&&(e="#ffffff"),typeof r.v=="boolean"&&(e="#ffffff"),r.tp$name=="list"&&(e="#ffffff"),e}function OS(r){let e=[],t=["random","time","int_saver","int_$rw$","turtle","t"];for(let n in r)if(!n.includes("__")&&!t.includes(n)){let i=gS(r[n]),c=[mS(n),r[n].v,i];e.push(c)}return e}function mS(r){return r.replace(/_\$rw\$$/,"")}var lp="ace_breakpoint";function _S(r){ki=r.editor,gl=r.level,ap=r.language;let e=(0,cS.convert)(lS.default),t=r.keywordLanguage;e.has(t)||(t="en"),ys=e.get(t),Jc||($("#variables").hide(),$("#variable_button").hide()),r.level>0&&(da=r.level<=700),da||$("#debug_button").hide(),r.level!=0&&(Jc=r.level>=2,ex()),xS(r.editor)}yr.initializeDebugger=_S;function xS(r){r.on("guttermousedown",function(e){let t=e.domEvent.target;if(t.className.indexOf("ace_gutter-cell")==-1||e.clientX>25+t.getBoundingClientRect().left)return;let n=LS(e.editor),i=e.getDocumentPosition().row;if(n[i]===void 0&&i!==e.editor.getLastVisibleRow()+1)if(kS(event)){let s=i;for(let c in n){let h=parseInt(c);hi===lp).map(([n,i])=>n).map(n=>parseInt(n,10));ki.strikethroughLines(t)}})}function kS(r){return!!r.shiftKey}function vS(){gl&&ap&&(0,vs.runit)(gl,ap,"","run",function(){$("#output").focus()})}function yS(){if(da===!0){var r=$("#debug_button");r.hide();var e=$("#debug_continue"),t=$("#debug_stop"),n=$("#debug_restart"),i=$("#runButtonContainer");i.hide(),e.show(),t.show(),n.show()}}yr.startDebug=yS;function bS(){if(da===!0){var r=window.localStorage,e=$("#debug_continue");e.show(),r.setItem("debugLine","0"),nx(),rx(),vS()}}yr.resetDebug=bS;function wS(){if(da===!0){var r=$("#debug_button");r.show();var e=$("#debug_continue"),t=$("#debug_stop"),n=$("#debug_restart"),i=$("#runButtonContainer");$("#stopit").hide(),$("#runit").show(),i.show(),e.hide(),t.hide(),n.hide();var s=window.localStorage;s.removeItem("debugLine"),nx(),rx()}}yr.stopDebug=wS;function nx(){var r=window.localStorage,e=Object.assign({},localStorage);for(var t in e)t.includes("prompt-")&&r.removeItem(t)}function PS(){let r=vs.theGlobalDebugger.getActiveSuspension(),e=vs.theGlobalDebugger.getSuspensionInfo(r),t=e.lineno;tx(e.variables);let n=dS.replace("__if__",ys.get("if")).replace("__is__",ys.get("is")).replace("__in__",ys.get("in")),i=hS.replace("__repeat__",ys.get("repeat")).replace("__times__",ys.get("times")),s=pS.replace("__else__",ys.get("else")),c=new RegExp(n,"gu"),h=new RegExp(i,"gu"),f=new RegExp(s,"gu");if(!!t)for(let[O,m]of Object.entries(vs.theGlobalSourcemap)){let x=m.python_range.from_line+vs.theGlobalDebugger.get_code_starting_line(),v=m.python_range.to_line+vs.theGlobalDebugger.get_code_starting_line();if(t>=x&&t<=v){if(uS.includes(m.command)){let P=ki.contents.split(` -`)[m.hedy_range.from_line-1],L=c.exec(P),E=h.exec(P),R=f.exec(P);L||E||R?ki.setDebuggerCurrentLine(m.hedy_range.from_line,m.hedy_range.from_column,m.hedy_range.to_column-1):ki.setDebuggerCurrentLine(m.hedy_range.from_line);break}else if(gl<=7&&J_.includes(m.command)){let L=ki.contents.split(` -`)[m.hedy_range.from_line-1].substring(m.hedy_range.from_column-1,m.hedy_range.to_column-1),E=vs.theGlobalDebugger.get_source_line(t-1);if(E.match(/ *if/)){let R=c.exec(L);if(R){let X=R[1].length;ki.setDebuggerCurrentLine(m.hedy_range.from_line,m.hedy_range.from_column,m.hedy_range.from_column+X-1);break}}else if(E.match(/ *for/)){let R=h.exec(L);if(R){let X=R[1].length;ki.setDebuggerCurrentLine(m.hedy_range.from_line,m.hedy_range.from_column,m.hedy_range.from_column+X-1);break}}}else if(gl>=8&&J_.includes(m.command)){ki.setDebuggerCurrentLine(m.hedy_range.from_line);break}}}}yr.incrementDebugLine=PS;function rx(){if(!da)return;let r=window.localStorage;var e=r==null?void 0:r.getItem("debugLine");if(e!=null){var t=parseInt(e,10);ki.setDebuggerCurrentLine(t)}else ki.setDebuggerCurrentLine(void 0)}function LS(r){return r.session.getBreakpoints()}});var cp=We(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.localLoadOnce=go.localLoad=go.localDelete=go.localSave=void 0;function QS(r,e){var t;(t=window.localStorage)===null||t===void 0||t.setItem(r,JSON.stringify(e))}go.localSave=QS;function ix(r){var e;(e=window.localStorage)===null||e===void 0||e.removeItem(r)}go.localDelete=ix;function ox(r){var e;let t=(e=window.localStorage)===null||e===void 0?void 0:e.getItem(r);try{return t?JSON.parse(t):void 0}catch(n){return}}go.localLoad=ox;function DS(r){let e=ox(r);return e!==void 0&&ix(r),e}go.localLoadOnce=DS});var sx=We((up,dp)=>{(function(r,e){typeof up=="object"&&typeof dp!="undefined"?dp.exports=e():typeof define=="function"&&define.amd?define(e):(r=r||self,r.DOMPurify=e())})(up,function(){"use strict";function r(A){if(Array.isArray(A)){for(var N=0,q=Array(A.length);N1?q-1:0),le=1;le/gm),en=h(/^data-[\-\w.\u00B7-\uFFFF]/),vn=h(/^aria-[\-\w]+$/),Pt=h(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Mt=h(/^(?:\w+script|data):/i),tn=h(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Lt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(A){return typeof A}:function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A};function Qn(A){if(Array.isArray(A)){for(var N=0,q=Array(A.length);N0&&arguments[0]!==void 0?arguments[0]:nn(),N=function(H){return pe(H)};if(N.version="2.3.5",N.removed=[],!A||!A.document||A.document.nodeType!==9)return N.isSupported=!1,N;var q=A.document,ae=A.document,le=A.DocumentFragment,K=A.HTMLTemplateElement,de=A.Node,Me=A.Element,Pe=A.NodeFilter,Ee=A.NamedNodeMap,yt=Ee===void 0?A.NamedNodeMap||A.MozNamedAttrMap:Ee,xt=A.HTMLFormElement,ht=A.DOMParser,Dt=A.trustedTypes,$n=Me.prototype,Rr=G($n,"cloneNode"),gn=G($n,"nextSibling"),Yr=G($n,"childNodes"),Zn=G($n,"parentNode");if(typeof K=="function"){var Dn=ae.createElement("template");Dn.content&&Dn.content.ownerDocument&&(ae=Dn.content.ownerDocument)}var cr=w(Dt,q),zn=cr?cr.createHTML(""):"",Hr=ae,Ti=Hr.implementation,Mi=Hr.createNodeIterator,Bn=Hr.createDocumentFragment,$r=Hr.getElementsByTagName,ur=q.importNode,Nr={};try{Nr=Qe(ae).documentMode?ae.documentMode:{}}catch(et){}var dr={};N.isSupported=typeof Zn=="function"&&Ti&&typeof Ti.createHTMLDocument!="undefined"&&Nr!==9;var Ar=Fe,Ci=Se,to=en,hs=vn,Vs=Mt,Tt=tn,cn=Pt,mt=null,Xo=se({},[].concat(Qn(ue),Qn(T),Qn(Oe),Qn(xe),Qn(De))),rn=null,ps=se({},[].concat(Qn(Je),Qn(oe),Qn(ie),Qn(nt))),Ae=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Qr=null,Bi=null,_r=!0,nr=!0,no=!1,Zr=!1,xr=!1,ai=!1,ro=!1,Kr=!1,Gn=!1,un=!1,io=!0,Vi=!0,_i=!1,Kn={},Xn=null,Ri=se({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Sn=null,Ui=se({},["audio","video","img","source","image","track"]),En=null,Yt=se({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Jr="http://www.w3.org/1998/Math/MathML",qi="http://www.w3.org/2000/svg",ot="http://www.w3.org/1999/xhtml",Vn=ot,ei=!1,dn=void 0,li=["application/xhtml+xml","text/html"],oo="text/html",ti=void 0,Q=null,S=ae.createElement("form"),C=function(H){return H instanceof RegExp||H instanceof Function},j=function(H){Q&&Q===H||((!H||(typeof H=="undefined"?"undefined":Lt(H))!=="object")&&(H={}),H=Qe(H),mt="ALLOWED_TAGS"in H?se({},H.ALLOWED_TAGS):Xo,rn="ALLOWED_ATTR"in H?se({},H.ALLOWED_ATTR):ps,En="ADD_URI_SAFE_ATTR"in H?se(Qe(Yt),H.ADD_URI_SAFE_ATTR):Yt,Sn="ADD_DATA_URI_TAGS"in H?se(Qe(Ui),H.ADD_DATA_URI_TAGS):Ui,Xn="FORBID_CONTENTS"in H?se({},H.FORBID_CONTENTS):Ri,Qr="FORBID_TAGS"in H?se({},H.FORBID_TAGS):{},Bi="FORBID_ATTR"in H?se({},H.FORBID_ATTR):{},Kn="USE_PROFILES"in H?H.USE_PROFILES:!1,_r=H.ALLOW_ARIA_ATTR!==!1,nr=H.ALLOW_DATA_ATTR!==!1,no=H.ALLOW_UNKNOWN_PROTOCOLS||!1,Zr=H.SAFE_FOR_TEMPLATES||!1,xr=H.WHOLE_DOCUMENT||!1,Kr=H.RETURN_DOM||!1,Gn=H.RETURN_DOM_FRAGMENT||!1,un=H.RETURN_TRUSTED_TYPE||!1,ro=H.FORCE_BODY||!1,io=H.SANITIZE_DOM!==!1,Vi=H.KEEP_CONTENT!==!1,_i=H.IN_PLACE||!1,cn=H.ALLOWED_URI_REGEXP||cn,Vn=H.NAMESPACE||ot,H.CUSTOM_ELEMENT_HANDLING&&C(H.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ae.tagNameCheck=H.CUSTOM_ELEMENT_HANDLING.tagNameCheck),H.CUSTOM_ELEMENT_HANDLING&&C(H.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ae.attributeNameCheck=H.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),H.CUSTOM_ELEMENT_HANDLING&&typeof H.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Ae.allowCustomizedBuiltInElements=H.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),dn=li.indexOf(H.PARSER_MEDIA_TYPE)===-1?dn=oo:dn=H.PARSER_MEDIA_TYPE,ti=dn==="application/xhtml+xml"?function($e){return $e}:L,Zr&&(nr=!1),Gn&&(Kr=!0),Kn&&(mt=se({},[].concat(Qn(De))),rn=[],Kn.html===!0&&(se(mt,ue),se(rn,Je)),Kn.svg===!0&&(se(mt,T),se(rn,oe),se(rn,nt)),Kn.svgFilters===!0&&(se(mt,Oe),se(rn,oe),se(rn,nt)),Kn.mathMl===!0&&(se(mt,xe),se(rn,ie),se(rn,nt))),H.ADD_TAGS&&(mt===Xo&&(mt=Qe(mt)),se(mt,H.ADD_TAGS)),H.ADD_ATTR&&(rn===ps&&(rn=Qe(rn)),se(rn,H.ADD_ATTR)),H.ADD_URI_SAFE_ATTR&&se(En,H.ADD_URI_SAFE_ATTR),H.FORBID_CONTENTS&&(Xn===Ri&&(Xn=Qe(Xn)),se(Xn,H.FORBID_CONTENTS)),Vi&&(mt["#text"]=!0),xr&&se(mt,["html","head","body"]),mt.table&&(se(mt,["tbody"]),delete Qr.tbody),c&&c(H),Q=H)},F=se({},["mi","mo","mn","ms","mtext"]),ne=se({},["foreignobject","desc","title","annotation-xml"]),re=se({},T);se(re,Oe),se(re,Ve);var fe=se({},xe);se(fe,Ke);var Le=function(H){var $e=Zn(H);(!$e||!$e.tagName)&&($e={namespaceURI:ot,tagName:"template"});var Ze=L(H.tagName),pt=L($e.tagName);if(H.namespaceURI===qi)return $e.namespaceURI===ot?Ze==="svg":$e.namespaceURI===Jr?Ze==="svg"&&(pt==="annotation-xml"||F[pt]):Boolean(re[Ze]);if(H.namespaceURI===Jr)return $e.namespaceURI===ot?Ze==="math":$e.namespaceURI===qi?Ze==="math"&&ne[pt]:Boolean(fe[Ze]);if(H.namespaceURI===ot){if($e.namespaceURI===qi&&!ne[pt]||$e.namespaceURI===Jr&&!F[pt])return!1;var Ut=se({},["title","style","font","a","script"]);return!fe[Ze]&&(Ut[Ze]||!re[Ze])}return!1},Ye=function(H){P(N.removed,{element:H});try{H.parentNode.removeChild(H)}catch($e){try{H.outerHTML=zn}catch(Ze){H.remove()}}},Ot=function(H,$e){try{P(N.removed,{attribute:$e.getAttributeNode(H),from:$e})}catch(Ze){P(N.removed,{attribute:null,from:$e})}if($e.removeAttribute(H),H==="is"&&!rn[H])if(Kr||Gn)try{Ye($e)}catch(Ze){}else try{$e.setAttribute(H,"")}catch(Ze){}},kt=function(H){var $e=void 0,Ze=void 0;if(ro)H=""+H;else{var pt=E(H,/^[\r\n\t ]+/);Ze=pt&&pt[0]}dn==="application/xhtml+xml"&&(H=''+H+"");var Ut=cr?cr.createHTML(H):H;if(Vn===ot)try{$e=new ht().parseFromString(Ut,dn)}catch(Bt){}if(!$e||!$e.documentElement){$e=Ti.createDocument(Vn,"template",null);try{$e.documentElement.innerHTML=ei?"":Ut}catch(Bt){}}var On=$e.body||$e.documentElement;return H&&Ze&&On.insertBefore(ae.createTextNode(Ze),On.childNodes[0]||null),Vn===ot?$r.call($e,xr?"html":"body")[0]:xr?$e.documentElement:On},Gt=function(H){return Mi.call(H.ownerDocument||H,H,Pe.SHOW_ELEMENT|Pe.SHOW_COMMENT|Pe.SHOW_TEXT,null,!1)},_t=function(H){return H instanceof xt&&(typeof H.nodeName!="string"||typeof H.textContent!="string"||typeof H.removeChild!="function"||!(H.attributes instanceof yt)||typeof H.removeAttribute!="function"||typeof H.setAttribute!="function"||typeof H.namespaceURI!="string"||typeof H.insertBefore!="function")},wt=function(H){return(typeof de=="undefined"?"undefined":Lt(de))==="object"?H instanceof de:H&&(typeof H=="undefined"?"undefined":Lt(H))==="object"&&typeof H.nodeType=="number"&&typeof H.nodeName=="string"},ct=function(H,$e,Ze){!dr[H]||v(dr[H],function(pt){pt.call(N,$e,Ze,Q)})},hn=function(H){var $e=void 0;if(ct("beforeSanitizeElements",H,null),_t(H)||E(H.nodeName,/[\u0080-\uFFFF]/))return Ye(H),!0;var Ze=ti(H.nodeName);if(ct("uponSanitizeElement",H,{tagName:Ze,allowedTags:mt}),!wt(H.firstElementChild)&&(!wt(H.content)||!wt(H.content.firstElementChild))&&B(/<[/\w]/g,H.innerHTML)&&B(/<[/\w]/g,H.textContent)||Ze==="select"&&B(/