From 7e2519792cd2f8001e095b0967fd80b8fb47aa3a Mon Sep 17 00:00:00 2001 From: Karlijn <43582255+karlijnbok@users.noreply.github.com> Date: Wed, 13 Sep 2023 12:12:09 +0200 Subject: [PATCH 1/2] [UI] adds Hedy dashboard & common error detection (#4166) **Description** * Adds a button to the `for-teachers/class/{{class_info.id}}` page to open the live statistics dashboard. * Adds a live statistics dashboards page at `/live_stats/class/{{class_info.id}}`. --- app.py | 3 +- build-tools/heroku/tailwind/styles.css | 11 +- content/error-messages.txt | 17 + exceptions.py | 15 +- hedy.py | 6 +- static/css/generated.css | 2 +- static/js/statistics.ts | 145 +++ static_babel_content.py | 8 +- templates/class-live-stats.html | 19 + templates/class-live-student.html | 95 ++ templates/class-overview.html | 1 + templates/htmx-class-live-popup.html | 42 + templates/macros/stats-shared.html | 3 +- templates/partial-class-live-stats.html | 280 ++++++ tests/test_level/test_level_02.py | 2 +- tests/test_level/test_level_03.py | 2 +- tests/test_level/test_level_05.py | 6 +- translations/ar/LC_MESSAGES/messages.po | 72 +- translations/bg/LC_MESSAGES/messages.po | 72 +- translations/bn/LC_MESSAGES/messages.po | 72 +- translations/ca/LC_MESSAGES/messages.po | 72 +- translations/cs/LC_MESSAGES/messages.po | 72 +- translations/cy/LC_MESSAGES/messages.po | 72 +- translations/da/LC_MESSAGES/messages.po | 72 +- translations/de/LC_MESSAGES/messages.po | 70 ++ translations/el/LC_MESSAGES/messages.po | 72 +- translations/en/LC_MESSAGES/messages.po | 72 +- translations/eo/LC_MESSAGES/messages.po | 72 +- translations/es/LC_MESSAGES/messages.po | 70 ++ translations/et/LC_MESSAGES/messages.po | 72 +- translations/fa/LC_MESSAGES/messages.po | 72 +- translations/fi/LC_MESSAGES/messages.po | 72 +- translations/fr/LC_MESSAGES/messages.po | 72 +- translations/fy/LC_MESSAGES/messages.po | 72 +- translations/he/LC_MESSAGES/messages.po | 72 +- translations/hi/LC_MESSAGES/messages.po | 72 +- translations/hu/LC_MESSAGES/messages.po | 72 +- translations/id/LC_MESSAGES/messages.po | 72 +- translations/it/LC_MESSAGES/messages.po | 72 +- translations/ja/LC_MESSAGES/messages.po | 72 +- translations/kmr/LC_MESSAGES/messages.po | 72 +- translations/ko/LC_MESSAGES/messages.po | 72 +- translations/nb_NO/LC_MESSAGES/messages.po | 72 +- translations/nl/LC_MESSAGES/messages.po | 78 +- translations/pa_PK/LC_MESSAGES/messages.po | 72 +- translations/pl/LC_MESSAGES/messages.po | 72 +- translations/pt_BR/LC_MESSAGES/messages.po | 72 +- translations/pt_PT/LC_MESSAGES/messages.po | 72 +- translations/ro/LC_MESSAGES/messages.po | 72 +- translations/ru/LC_MESSAGES/messages.po | 72 +- translations/sq/LC_MESSAGES/messages.po | 72 +- translations/sr/LC_MESSAGES/messages.po | 72 +- translations/sv/LC_MESSAGES/messages.po | 72 +- translations/sw/LC_MESSAGES/messages.po | 72 +- translations/te/LC_MESSAGES/messages.po | 72 +- translations/th/LC_MESSAGES/messages.po | 72 +- translations/tl/LC_MESSAGES/messages.po | 72 +- translations/tn/LC_MESSAGES/messages.po | 72 +- translations/tr/LC_MESSAGES/messages.po | 72 +- translations/uk/LC_MESSAGES/messages.po | 72 +- translations/ur/LC_MESSAGES/messages.po | 72 +- translations/vi/LC_MESSAGES/messages.po | 72 +- translations/zh_Hans/LC_MESSAGES/messages.po | 72 +- translations/zh_Hant/LC_MESSAGES/messages.po | 72 +- website/database.py | 34 +- website/for_teachers.py | 7 +- website/statistics.py | 886 ++++++++++++++++++- 67 files changed, 4870 insertions(+), 100 deletions(-) create mode 100644 templates/class-live-stats.html create mode 100644 templates/class-live-student.html create mode 100644 templates/htmx-class-live-popup.html create mode 100644 templates/partial-class-live-stats.html diff --git a/app.py b/app.py index dabbbbb7502..a91e5f4d8c4 100644 --- a/app.py +++ b/app.py @@ -527,7 +527,7 @@ def parse(): response['Location'] = ex.error_location transpile_result = ex.fixed_result exception = ex - except hedy.exceptions.UnquotedEqualityCheck as ex: + except hedy.exceptions.UnquotedEqualityCheckException as ex: response['Error'] = translate_error(ex.error_code, ex.arguments, keyword_lang) response['Location'] = ex.error_location exception = ex @@ -2223,6 +2223,7 @@ def current_user_allowed_to_see_program(program): app.register_blueprint(quiz.QuizModule(DATABASE, ACHIEVEMENTS, QUIZZES)) app.register_blueprint(parsons.ParsonsModule(PARSONS)) app.register_blueprint(statistics.StatisticsModule(DATABASE)) +app.register_blueprint(statistics.LiveStatisticsModule(DATABASE)) # *** START SERVER *** diff --git a/build-tools/heroku/tailwind/styles.css b/build-tools/heroku/tailwind/styles.css index f027941774d..91050a8ff58 100644 --- a/build-tools/heroku/tailwind/styles.css +++ b/build-tools/heroku/tailwind/styles.css @@ -203,14 +203,19 @@ a.green-btn:hover { @apply bg-blue-500 text-white border-blue-700; } +.blue-btn:hover { + @apply bg-blue-400 border-blue-500; + @apply active:bg-blue-700 active:border-blue-700; +} + .gray-btn { @apply btn-shape; @apply bg-gray-500 text-white border-gray-700; } -.blue-btn:hover { - @apply bg-blue-400 border-blue-500; - @apply active:bg-blue-700 active:border-blue-700; +.gray-btn:hover { + @apply bg-gray-400 border-gray-500; + @apply active:bg-gray-700 active:border-gray-700; } /* Styles only for use in MarkDown blocks */ diff --git a/content/error-messages.txt b/content/error-messages.txt index db60398d5ef..99dededd0ff 100644 --- a/content/error-messages.txt +++ b/content/error-messages.txt @@ -48,3 +48,20 @@ gettext('float') gettext('list') gettext('input') gettext('Invalid At Command') +# Exceptions groups used in the Live Statistics Module. If you add a new Exception Group here, +# you should use the same name when you assign this exception group to a exception in that module +# in the exception_types dictionary +gettext('program_too_large_exception') +gettext('use_of_blanks_exception') +gettext('use_of_nested_functions_exception') +gettext('incorrect_use_of_types_exception') +gettext('invalid_command_exception') +gettext('incomplete_command_exception') +gettext('command_unavailable_exception') +gettext('command_not_available_yet_exception') +gettext('incorrect_use_of_variable_exception') +gettext('indentation_exception') +gettext('echo_and_ask_mismatch_exception') +gettext('incorrect_handling_of_quotes_exception') +gettext('cant_parse_exception') + diff --git a/exceptions.py b/exceptions.py index 2a3e3ccd7b8..c8828375518 100644 --- a/exceptions.py +++ b/exceptions.py @@ -1,3 +1,11 @@ +import inspect +""" + Any exception added in this file must be also added to error-messages.txt + So we can translate the error message. The exception must also be assigned + an Exception Type in the exception_types dictionary in statistics.py +""" + + class HedyException(Exception): def __init__(self, error_code, **arguments): """Create a new HedyException. @@ -72,14 +80,14 @@ def __init__(self, level, location, found, fixed_code=None): self.fixed_code = fixed_code -class UnquotedEqualityCheck(HedyException): +class UnquotedEqualityCheckException(HedyException): def __init__(self, line_number): super().__init__('Unquoted Equality Check', line_number=line_number) self.location = [line_number] -class AccessBeforeAssign(HedyException): +class AccessBeforeAssignException(HedyException): def __init__(self, name, access_line_number, definition_line_number): super().__init__('Access Before Assign', name=name, @@ -284,3 +292,6 @@ def __init__(self, command, level, line_number): class NestedFunctionException(HedyException): def __init__(self): super().__init__('Nested Function') + + +HEDY_EXCEPTIONS = {name: cls for name, cls in globals().items() if inspect.isclass(cls)} diff --git a/hedy.py b/hedy.py index ef3aa3a80b8..5e210320435 100644 --- a/hedy.py +++ b/hedy.py @@ -1316,7 +1316,7 @@ def is_variable(self, variable_name, access_line_number=100): if variable_name in all_names and variable_name not in all_names_before_access_line: # referenced before assignment! definition_line_number = [a.linenumber for a in self.lookup if a.name == variable_name][0] - raise hedy.exceptions.AccessBeforeAssign( + raise hedy.exceptions.AccessBeforeAssignException( name=variable_name, access_line_number=access_line_number, definition_line_number=definition_line_number) @@ -3084,7 +3084,7 @@ def parse_input(input_string, level, lang): except lark.UnexpectedEOF: lines = input_string.split('\n') last_line = len(lines) - raise exceptions.UnquotedEqualityCheck(line_number=last_line) + raise exceptions.UnquotedEqualityCheckException(line_number=last_line) except UnexpectedCharacters as e: try: location = e.line, e.column @@ -3140,7 +3140,7 @@ def is_program_valid(program_root, input_string, level, lang): raise exceptions.InvalidSpaceException( level=level, line_number=line, fixed_code=fixed_code, fixed_result=result) elif invalid_info.error_type == 'invalid condition': - raise exceptions.UnquotedEqualityCheck(line_number=line) + raise exceptions.UnquotedEqualityCheckException(line_number=line) elif invalid_info.error_type == 'invalid repeat': raise exceptions.MissingInnerCommandException(command='repeat', level=level, line_number=line) elif invalid_info.error_type == 'repeat missing print': diff --git a/static/css/generated.css b/static/css/generated.css index 8a03d80b488..1db1aab457a 100644 --- a/static/css/generated.css +++ b/static/css/generated.css @@ -1 +1 @@ -*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#edf2f7}::after,::before{--tw-content:''}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#cbd5e0}input::placeholder,textarea::placeholder{opacity:1;color:#cbd5e0}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::after,::before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(66 153 225 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}html{font-weight:300;overflow-x:hidden;margin-right:calc(-1 * (100vw - 100%))}.font-slab{font-family:'Balsamiq Sans',sans-serif}.dot{height:25px;width:25px;border-radius:50%;display:inline-block}h1{font-size:2.25rem;font-weight:200}h2{font-size:1.5rem;font-weight:700}h3{font-size:1.5rem;font-weight:700}h4{font-size:1rem;font-weight:700}*+ol,*+p,*+pre,*+ul{margin-top:1rem}a{font-weight:600;--tw-text-opacity:1;color:rgb(99 179 237 / var(--tw-text-opacity));text-decoration:underline}strong{font-weight:700}.tiny-btn{border-bottom-width:2px;padding-left:.5rem;padding-right:.5rem;padding-top:.25rem;font-size:.875rem}.common-page-container{margin-left:auto;margin-right:auto;width:100%;max-width:1536px;padding:2rem}.copy-container{margin-left:auto;margin-right:auto;max-width:1024px}.copy-container-wide{margin-left:auto;margin-right:auto;max-width:1280px}.text-business-copy,.text-display-copy{line-height:1.625}.text-display-copy h2{text-align:center;font-size:2.25rem;--tw-text-opacity:1;color:rgb(213 63 140 / var(--tw-text-opacity))}.text-display-copy h3{font-size:2.25rem;--tw-text-opacity:1;color:rgb(213 63 140 / var(--tw-text-opacity))}.text-display-copy .columns h3{font-size:1.5rem}.text-business-copy h3:first-child{margin-top:0}.text-business-copy *+h3{margin-top:2rem}.btn-shape{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block}.green-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(47 133 90 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(72 187 120 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.green-btn:disabled,.green-btn[disabled]{--tw-border-opacity:1;border-color:rgb(74 85 104 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(160 174 192 / var(--tw-bg-opacity))}.stripe-colored{border-bottom-width:4px;--tw-border-opacity:1;border-color:rgb(236 201 75 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(246 224 94 / var(--tw-bg-opacity))}.stripe-white{border-bottom-width:4px}.stripe-colored a,.stripe-colored h2{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.stripe-colored .column-pane a{--tw-text-opacity:1;color:rgb(43 108 176 / var(--tw-text-opacity))}.stripe-colored .column-pane{border-radius:.5rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.heading-underline{margin-left:auto;margin-right:auto;margin-top:2rem;margin-bottom:2rem;height:.25rem;width:9rem;--tw-bg-opacity:1;background-color:rgb(213 63 140 / var(--tw-bg-opacity))}.stripe-colored .heading-underline{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.text-links-plain a{color:inherit;text-decoration:none;font-weight:inherit}.tooltip{position:relative;display:inline-block}.tooltip .tooltiptext{visibility:hidden;position:absolute;align-items:center;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(229 62 62 / var(--tw-text-opacity));width:130;bottom:150%;left:50%;margin-left:-80px}.tooltip:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext::after{position:absolute;content:" ";top:100%;left:50%;margin-left:-10px;border-width:10px;border-style:solid;border-color:#fff transparent transparent transparent}.green-btn:hover:enabled{--tw-border-opacity:1;border-color:rgb(72 187 120 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}.red-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(197 48 48 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(245 101 101 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.red-btn:hover{--tw-border-opacity:1;border-color:rgb(245 101 101 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(252 129 129 / var(--tw-bg-opacity))}.yellow-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(183 121 31 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(236 201 75 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity))}.yellow-btn:hover{--tw-border-opacity:1;border-color:rgb(236 201 75 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(246 224 94 / var(--tw-bg-opacity))}.pink-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(237 100 166 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(246 135 179 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.pink-btn:hover{--tw-border-opacity:1;border-color:rgb(246 135 179 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(251 182 206 / var(--tw-bg-opacity))}.blue-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(43 108 176 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(66 153 225 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.gray-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(74 85 104 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(160 174 192 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.blue-btn:hover{--tw-border-opacity:1;border-color:rgb(66 153 225 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(99 179 237 / var(--tw-bg-opacity))}.markdown{font-size:1.25rem;line-height:1.5;--tw-text-opacity:1;color:rgb(45 55 72 / var(--tw-text-opacity))}.markdown li+li,.markdown li>p+p{margin-top:.5rem;margin-bottom:.5rem}.markdown strong{font-weight:700}.markdown *+h1{margin-bottom:.5rem;margin-top:2.5rem;line-height:1.25}h2{font-weight:500;--tw-text-opacity:1;color:rgb(66 153 225 / var(--tw-text-opacity));font-family:'Balsamiq Sans',sans-serif;margin-bottom:.5rem;margin-top:2.5rem;font-size:1.5rem;line-height:1.25}h2:first-child{margin-top:0}h3{--tw-text-opacity:1;color:rgb(43 108 176 / var(--tw-text-opacity));font-family:'Balsamiq Sans',sans-serif;margin-top:1rem;margin-bottom:.25rem;font-size:1.25rem;line-height:1.25}h4{margin-top:1rem;margin-bottom:.5rem}.markdown code{padding-top:.25rem;padding-bottom:.25rem;padding-left:.25rem;padding-right:.25rem;font-size:1rem}pre code{margin-top:.5rem;margin-bottom:.5rem;display:block;border-radius:.25rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(237 242 247 / var(--tw-bg-opacity));padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;padding-right:1rem;font-size:1rem;--tw-text-opacity:1;color:rgb(229 62 62 / var(--tw-text-opacity))}pre{white-space:pre-wrap}.ace-container{background-color:#272822;border-radius:.25rem;padding:.5rem}pre,pre code{font-size:100%;color:#fff}code{display:inline;border-radius:.25rem;padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;padding-right:.5rem;font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-weight:400;background:#272822!important;color:#ff6188;font-size:90%}.markdown blockquote{border-left-width:4px;--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity));font-style:italic}[dir=ltr] .markdown blockquote{padding-left:1rem}[dir=rtl] .markdown blockquote{padding-right:1rem}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-top-1{top:-.25rem}.top-2{top:.5rem}.right-2{right:.5rem}.top-0\.5{top:.125rem}.right-0\.5{right:.125rem}.top-0{top:0}.right-0{right:0}.top-16{top:4rem}.bottom-0{bottom:0}.z-10{z-index:10}.z-50{z-index:50}.z-30{z-index:30}.z-20{z-index:20}.z-40{z-index:40}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.col-span-2{grid-column:span 2/span 2}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.float-right{float:right}.m-4{margin:1rem}.m-8{margin:2rem}.mx-0{margin-left:0;margin-right:0}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-0{margin-top:0;margin-bottom:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-auto{margin-top:auto;margin-bottom:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.my-16{margin-top:4rem;margin-bottom:4rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mx-16{margin-left:4rem;margin-right:4rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.mt-2{margin-top:.5rem}.mb-4{margin-bottom:1rem}.mt-0{margin-top:0}.mb-8{margin-bottom:2rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-10{margin-top:2.5rem}.mb-2{margin-bottom:.5rem}.mb-0{margin-bottom:0}.mr-4{margin-right:1rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.ml-auto{margin-left:auto}.mt-8{margin-top:2rem}.mb-6{margin-bottom:1.5rem}.-mt-8{margin-top:-2rem}.mb-1{margin-bottom:.25rem}.mt-auto{margin-top:auto}.mt-1{margin-top:.25rem}.mr-5{margin-right:1.25rem}.ml-2{margin-left:.5rem}.ml-6{margin-left:1.5rem}.ml-0{margin-left:0}.mt-3{margin-top:.75rem}.-mt-2{margin-top:-.5rem}.mt-24{margin-top:6rem}.mt-28{margin-top:7rem}.mr-8{margin-right:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[2\/3\]{aspect-ratio:2/3}.h-40{height:10rem}.h-full{height:100%}.h-16{height:4rem}.h-8{height:2rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-96{height:24rem}.h-10{height:2.5rem}.h-32{height:8rem}.h-64{height:16rem}.h-12{height:3rem}.h-min{height:-moz-min-content;height:min-content}.h-28{height:7rem}.h-screen{height:100vh}.h-14{height:3.5rem}.h-auto{height:auto}.h-24{height:6rem}.h-2{height:.5rem}.max-h-full{max-height:100%}.max-h-56{max-height:14rem}.min-h-screen{min-height:100vh}.w-40{width:10rem}.w-3\/4{width:75%}.w-full{width:100%}.w-1\/2{width:50%}.w-8{width:2rem}.w-10{width:2.5rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-1\/12{width:8.333333%}.w-auto{width:auto}.w-2\/3{width:66.666667%}.w-1\/3{width:33.333333%}.w-4\/5{width:80%}.w-12{width:3rem}.w-14{width:3.5rem}.w-4{width:1rem}.w-32{width:8rem}.w-72{width:18rem}.w-24{width:6rem}.w-px{width:1px}.w-80{width:20rem}.w-96{width:24rem}.w-10\/12{width:83.333333%}.w-2\/12{width:16.666667%}.w-min{width:-moz-min-content;width:min-content}.w-max{width:-moz-max-content;width:max-content}.w-screen{width:100vw}.w-56{width:14rem}.w-2{width:.5rem}.w-16{width:4rem}.min-w-\[100px\]{min-width:100px}.min-w-\[200px\]{min-width:200px}.min-w-min{min-width:-moz-min-content;min-width:min-content}.max-w-screen-xl{max-width:1280px}.max-w-screen-2xl{max-width:1536px}.max-w-lg{max-width:32rem}.max-w-screen-md{max-width:768px}.max-w-3xl{max-width:48rem}.max-w-md{max-width:28rem}.max-w-prose{max-width:65ch}.max-w-xl{max-width:36rem}.max-w-screen-lg{max-width:1024px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-initial{flex:0 1 auto}.flex-grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.border-separate{border-collapse:separate}.translate-y-8{--tw-translate-y:2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-6{--tw-translate-y:1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-4{gap:1rem}.gap-2{gap:.5rem}.gap-8{gap:2rem}.gap-16{gap:4rem}.gap-6{gap:1.5rem}.gap-1{gap:.25rem}.gap-x-2{-moz-column-gap:0.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-y-16{row-gap:4rem}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-blue-400>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(99 179 237 / var(--tw-divide-opacity))}.divide-blue-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(144 205 244 / var(--tw-divide-opacity))}.place-self-center{place-self:center}.self-end{align-self:flex-end}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded-lg{border-radius:.5rem}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border-2{border-width:2px}.border{border-width:1px}.border-0{border-width:0}.border-8{border-width:8px}.border-4{border-width:4px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-b-8{border-bottom-width:8px}.border-t-2{border-top-width:2px}.border-b-4{border-bottom-width:4px}.border-t-4{border-top-width:4px}.border-b-2{border-bottom-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-orange-400{--tw-border-opacity:1;border-color:rgb(246 173 85 / var(--tw-border-opacity))}.border-gray-500{--tw-border-opacity:1;border-color:rgb(160 174 192 / var(--tw-border-opacity))}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(237 242 247 / var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(203 213 224 / var(--tw-border-opacity))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(236 201 75 / var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(49 130 206 / var(--tw-border-opacity))}.border-green-400{--tw-border-opacity:1;border-color:rgb(104 211 145 / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity:1;border-color:rgb(72 187 120 / var(--tw-border-opacity))}.border-blue-300{--tw-border-opacity:1;border-color:rgb(144 205 244 / var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(99 179 237 / var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgb(245 101 101 / var(--tw-border-opacity))}.border-teal-500{--tw-border-opacity:1;border-color:rgb(56 178 172 / var(--tw-border-opacity))}.border-yellow-400{--tw-border-opacity:1;border-color:rgb(246 224 94 / var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(113 128 150 / var(--tw-border-opacity))}.border-yellow-600{--tw-border-opacity:1;border-color:rgb(214 158 46 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-green-600{--tw-border-opacity:1;border-color:rgb(56 161 105 / var(--tw-border-opacity))}.border-purple-600{--tw-border-opacity:1;border-color:rgb(128 90 213 / var(--tw-border-opacity))}.border-pink-600{--tw-border-opacity:1;border-color:rgb(213 63 140 / var(--tw-border-opacity))}.border-orange-600{--tw-border-opacity:1;border-color:rgb(221 107 32 / var(--tw-border-opacity))}.border-red-600{--tw-border-opacity:1;border-color:rgb(229 62 62 / var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(252 129 129 / var(--tw-border-opacity))}.bg-blue-200{--tw-bg-opacity:1;background-color:rgb(190 227 248 / var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(160 174 192 / var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(66 153 225 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(237 242 247 / var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(203 213 224 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-green-300{--tw-bg-opacity:1;background-color:rgb(154 230 180 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(236 201 75 / var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(144 205 244 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(245 101 101 / var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(49 130 206 / var(--tw-bg-opacity))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(246 224 94 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(247 250 252 / var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(99 179 237 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(240 255 244 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(56 161 105 / var(--tw-bg-opacity))}.bg-pink-800{--tw-bg-opacity:1;background-color:rgb(151 38 109 / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(72 187 120 / var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgb(102 126 234 / var(--tw-bg-opacity))}.bg-pink-500{--tw-bg-opacity:1;background-color:rgb(237 100 166 / var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(235 248 255 / var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(255 255 240 / var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(255 245 245 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(26 32 44 / var(--tw-bg-opacity))}.bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(254 252 191 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(250 240 137 / var(--tw-bg-opacity))}.bg-purple-300{--tw-bg-opacity:1;background-color:rgb(214 188 250 / var(--tw-bg-opacity))}.bg-pink-300{--tw-bg-opacity:1;background-color:rgb(251 182 206 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity:1;background-color:rgb(251 211 141 / var(--tw-bg-opacity))}.bg-green-200{--tw-bg-opacity:1;background-color:rgb(198 246 213 / var(--tw-bg-opacity))}.fill-current{fill:currentColor}.fill-green-800{fill:#276749}.fill-yellow-800{fill:#975a16}.fill-blue-800{fill:#2c5282}.fill-purple-800{fill:#553c9a}.fill-pink-800{fill:#97266d}.fill-orange-800{fill:#9c4221}.p-4{padding:1rem}.p-2{padding:.5rem}.p-8{padding:2rem}.p-12{padding:3rem}.p-1{padding:.25rem}.p-3{padding:.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-0{padding-left:0;padding-right:0}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-0{padding-top:0;padding-bottom:0}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-16{padding-left:4rem;padding-right:4rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-10{padding-top:2.5rem}.pt-4{padding-top:1rem}.pt-1{padding-top:.25rem}.pb-1{padding-bottom:.25rem}.pl-2{padding-left:.5rem}.pr-2{padding-right:.5rem}.pt-2{padding-top:.5rem}.pb-0{padding-bottom:0}.pb-4{padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pt-0{padding-top:0}.pr-8{padding-right:2rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.font-serif{font-family:Georgia,Cambria,"Times New Roman",Times,serif}.text-2xl{font-size:1.5rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.25rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-6xl{font-size:4rem}.text-xs{font-size:.75rem}.text-5xl{font-size:3rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extralight{font-weight:200}.font-medium{font-weight:500}.font-light{font-weight:300}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-6{line-height:1.5rem}.leading-normal{line-height:1.5}.tracking-wide{letter-spacing:.025em}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(74 85 104 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(245 101 101 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(49 130 206 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(72 187 120 / var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgb(236 201 75 / var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(47 133 90 / var(--tw-text-opacity))}.text-pink-500{--tw-text-opacity:1;color:rgb(237 100 166 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(160 174 192 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(66 153 225 / var(--tw-text-opacity))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199 / var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgb(246 224 94 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(113 128 150 / var(--tw-text-opacity))}.text-yellow-900{--tw-text-opacity:1;color:rgb(116 66 16 / var(--tw-text-opacity))}.text-red-900{--tw-text-opacity:1;color:rgb(116 42 42 / var(--tw-text-opacity))}.text-green-900{--tw-text-opacity:1;color:rgb(34 84 61 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(203 213 224 / var(--tw-text-opacity))}.text-blue-900{--tw-text-opacity:1;color:rgb(42 67 101 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(229 62 62 / var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(56 161 105 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(44 82 130 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgb(214 158 46 / var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(197 48 48 / var(--tw-text-opacity))}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgb(0 0 0 / 0.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline-0{outline-width:0}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow:drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}.duration-300{transition-duration:.3s}.btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;display:inline-block;--tw-border-opacity:1;border-color:rgb(43 108 176 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(66 153 225 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));-webkit-text-decoration-line:none;text-decoration-line:none}.btn:hover{--tw-border-opacity:1;border-color:rgb(66 153 225 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(99 179 237 / var(--tw-bg-opacity))}.menubar-item{display:block;cursor:pointer;border-bottom-width:4px;letter-spacing:.025em;--tw-border-opacity:1;border-color:rgb(247 250 252 / var(--tw-border-opacity))}.menubar-item:hover{--tw-border-opacity:1;border-color:rgb(247 250 252 / var(--tw-border-opacity))}.menubar-item.active{--tw-border-opacity:1!important;border-color:rgb(49 130 206 / var(--tw-border-opacity))!important}.menubar-text{align-items:center;padding:.25rem;font-size:1rem;-webkit-text-decoration-line:none;text-decoration-line:none;font-family:'Balsamiq Sans',sans-serif}@media (min-width:1024px){.menubar-text{font-size:1.25rem}}.menubar-text{--tw-text-opacity:1;color:rgb(49 130 206 / var(--tw-text-opacity))}#output,#quiz_question_output_container{font-family:Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace}.dropdown-menu{position:absolute;display:block;width:-moz-max-content;width:max-content;overflow:hidden;border-radius:.375rem;padding:1rem;--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[dir=ltr] .dropdown-menu{right:0;margin-right:.25rem}[dir=rtl] .dropdown-menu{left:0;margin-left:.25rem}.dropdown-menu{top:40px;cursor:auto}.dropdown-blue{border-width:2px;--tw-border-opacity:1;border-color:rgb(66 153 225 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(247 250 252 / var(--tw-bg-opacity))}.dropdown-green{border-width:2px;--tw-border-opacity:1;border-color:rgb(72 187 120 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(247 250 252 / var(--tw-bg-opacity))}.dropdown-menu h2{margin-left:1rem;margin-right:1rem;margin-bottom:.5rem;padding-bottom:.5rem;text-align:center;font-weight:500}.dropdown-green h2{--tw-text-opacity:1;color:rgb(56 161 105 / var(--tw-text-opacity))}.dropdown-item{display:block;white-space:nowrap;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;padding-right:1rem;--tw-text-opacity:1;color:rgb(45 55 72 / var(--tw-text-opacity));-webkit-text-decoration-line:none;text-decoration-line:none}.dropdown-item:hover{--tw-bg-opacity:1;background-color:rgb(49 130 206 / var(--tw-bg-opacity))}.dropdown-item{width:13rem;cursor:pointer;border-radius:.375rem;font-weight:500;flex-grow:0}.dropdown-item:hover{--tw-bg-opacity:1;background-color:rgb(49 130 206 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-shadow{text-shadow:0 2px 4px rgba(0,0,0,.1)}.text-shadow-md{text-shadow:0 4px 8px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.08)}.text-shadow-lg{text-shadow:0 15px 30px rgba(0,0,0,.11),0 5px 15px rgba(0,0,0,.08)}.text-shadow-none{text-shadow:none}ul{list-style:disc outside none}ol{list-style:decimal outside none}.text-business-copy ol,.text-business-copy ul,.text-display-copy ol,.text-display-copy ul{margin-left:2.5rem}.text-adventure-copy ol,.text-adventure-copy ul{margin-left:2rem}.text-business-copy ol li+li,.text-business-copy ul li+li,.text-display-copy ol li+li,.text-display-copy ul li+li{margin-top:.5rem}.text-adventure-copy ol li+li,.text-adventure-copy ul li+li{margin-top:.25rem}input:disabled{--tw-bg-opacity:1;background-color:rgb(203 213 224 / var(--tw-bg-opacity))}input[type=checkbox],input[type=radio]{height:1.25rem;width:1.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;--tw-border-opacity:1;border-color:rgb(74 85 104 / var(--tw-border-opacity))}input[type=radio]{border-radius:9999px}#change_password input:required,#profile input:required,#signup input:required,#signup select:required{border-width:1px;--tw-border-opacity:1;border-color:rgb(252 129 129 / var(--tw-border-opacity))}input:required:valid,select:required:valid{--tw-border-opacity:1!important;border-color:rgb(104 211 145 / var(--tw-border-opacity))!important}input[type=checkbox]:checked,input[type=radio]:checked{--tw-border-opacity:1;border-color:rgb(56 161 105 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}input,select{border-width:1px;--tw-border-opacity:1;border-color:rgb(203 213 224 / var(--tw-border-opacity))}table.users thead{font-weight:700}table.users td{padding:10px;border:solid 1px gray}body[dir=ltr] .right-hand-shadow{box-shadow:inset -7px 0 9px -7px rgba(0,0,0,.4)}body[dir=rtl] .right-hand-shadow{box-shadow:inset 7px 0 9px -7px rgba(0,0,0,.4)}.tab{margin-top:.5rem;cursor:pointer;border-top-left-radius:.5rem;border-top-right-radius:.5rem;border-top-width:8px;--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(247 250 252 / var(--tw-bg-opacity));padding-top:.5rem;padding-bottom:.5rem;padding-left:.25rem;padding-right:.25rem;font-size:.875rem;box-shadow:inset 0 -4px 4px -1px rgba(0,0,0,.1)}.teacher_tab{--tw-border-opacity:1;border-color:rgb(154 230 180 / var(--tw-border-opacity))}.special_tab{--tw-border-opacity:1;border-color:rgb(144 205 244 / var(--tw-border-opacity))}.command_tab{--tw-border-opacity:1;border-color:rgb(253 178 197 / var(--tw-border-opacity))}.active-bluebar-btn{--tw-bg-opacity:1;background-color:rgb(144 205 244 / var(--tw-bg-opacity));box-shadow:inset 0 2px 4px 0 rgb(0 0 10 / .3)}@media (min-width:1024px){.tab{padding-left:.5rem;padding-right:.5rem}}@media (min-width:1280px){.tab{padding-left:1rem;padding-right:1rem}}.tab+.tab{box-shadow:inset 0 -4px 4px -1px rgba(0,0,0,.1),inset 4px 0 4px -1px rgba(0,0,0,.1)}.tab-selected{margin-top:0;border-top-left-radius:.5rem;border-top-right-radius:.5rem;border-top-width:8px;border-right-width:1px;border-left-width:1px;--tw-border-opacity:1;border-color:rgb(237 100 166 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding-top:.5rem;font-weight:400;--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity));box-shadow:none!important}div#errorbox,div#warningbox{position:relative}[dir=ltr] p.close-dialog{right:5px}[dir=rtl] p.close-dialog{left:5px}p.close-dialog{font-weight:700;position:absolute;top:5px;cursor:pointer}.editor-error{position:absolute;border-bottom-width:2px;border-top-width:2px;--tw-border-opacity:1;border-color:rgb(245 101 101 / var(--tw-border-opacity));background-color:rgb(66 153 225 / .7);z-index:10}.disabled-line{position:absolute;border-top:solid 1px #fff;margin-top:.6em;border-radius:0!important}.debugger-current-line{position:absolute;background:#2d6099;z-index:20}.expandable-docs-text h1{margin-top:30px;margin-bottom:30px}#quiz-iframe{height:72rem;-moz-transform-origin:0 0;-o-transform-origin:0 0;-webkit-transform-origin:0 0}.stats-period-toggle.active{color:#000;text-decoration:none;cursor:default;font-weight:400}.stats-legend{list-style-type:none}.stats-legend-item{display:inline;padding-right:15px;cursor:default}.stats-legend-color-box{width:45px;height:12px;display:inline-block;margin-right:5px}.accordion .accordion-tab input~.tab-content{max-height:0;transition:max-height .35s}[dir=ltr] .accordion .accordion-tab label::before{right:0;float:right}[dir=rtl] .accordion .accordion-tab label::before{left:0;float:left}.accordion .accordion-tab label::before{top:0;display:block;width:1.5em;height:1.5em;line-height:1.5;font-size:1.25rem;font-weight:bolder;text-align:center;transition:all .35s}.accordion .accordion-tab input:checked~.tab-content{max-height:3000vh}[dir=ltr] .accordion .accordion-tab input[type=checkbox]+label::before{right:5px}[dir=rtl] .accordion .accordion-tab input[type=checkbox]+label::before{left:5px}.accordion .accordion-tab input[type=checkbox]+label::before{content:">";transform:rotate(90deg)}.accordion .accordion-tab input[type=checkbox]:checked+label::before{transform:rotate(270deg)}.explore-program-box{position:relative;height:18rem;width:16rem;border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(74 85 104 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(190 227 248 / var(--tw-bg-opacity))}.explore-program-box-title{margin-top:-2rem;width:18rem;padding-top:2.5rem;text-align:center;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}[dir=ltr] .explore-program-box-title{margin-left:-.5rem;--tw-rotate:6deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));padding-left:3rem}[dir=rtl] .explore-program-box-title{margin-right:-.5rem;--tw-rotate:-6deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));padding-right:3rem}.section-header{cursor:pointer;border-radius:.5rem;--tw-bg-opacity:1;background-color:rgb(190 227 248 / var(--tw-bg-opacity));padding-left:2rem;padding-right:2rem;padding-top:.5rem;padding-bottom:.5rem;font-size:1.875rem}.profile-section-body-header{margin-bottom:1rem;display:inline-block;width:100%;border-bottom-width:1px;padding-bottom:.5rem}.profile-section-body{margin-left:auto;margin-right:auto;display:none;width:100%;border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding-left:2rem;padding-right:2rem;padding-top:1rem;padding-bottom:1rem;--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:1024px){.profile-section-body{width:75%}}.personal-input{display:block;width:75%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;padding-left:1rem;padding-right:1rem;padding-top:.25rem;padding-bottom:.25rem;--tw-text-opacity:1;color:rgb(74 85 104 / var(--tw-text-opacity))}@media (min-width:1024px){.personal-input{width:50%}}.signup-container{margin-left:auto;margin-right:auto;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;padding-left:2rem;padding-right:2rem}.signup-label{display:inline-block;width:33.333333%}@media (min-width:768px){.signup-label{width:12rem}}.signup-input{display:inline-block;width:66.666667%;border-radius:.5rem;--tw-border-opacity:1;border-color:rgb(203 213 224 / var(--tw-border-opacity));padding-left:.5rem;padding-right:.5rem;padding-top:.25rem;padding-bottom:.25rem}@media (min-width:768px){.signup-input{width:20rem}}@media (min-width:1024px){.signup-input{width:24rem}}[dir=ltr] .toggle-circle{left:0}[dir=rtl] .toggle-circle{right:0}.toggle-circle{transition:all .2s ease-in-out}body[dir=ltr] input:checked~.toggle-circle{transform:translateX(100%);--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}body[dir=rtl] input:checked~.toggle-circle{transform:translateX(-100%);--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}input:checked~.toggle-path{--tw-bg-opacity:1;background-color:rgb(113 128 150 / var(--tw-bg-opacity))}.focused-option{border-width:8px;border-style:double}.menubar-item.focused-option{--tw-border-opacity:1!important;border-color:rgb(49 130 206 / var(--tw-border-opacity))!important}.stats-period-toggle.focused-option{color:#000;text-decoration:none;cursor:default;font-weight:400}.focused-option{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.incorrect-option{background-color:rgba(234,55,55,.6)!important;border:5px #c21919 dashed!important}.quiz-icons{position:relative;height:3.5rem;width:3.5rem;top:-40px;left:-10px}.animate-keys{position:absolute;bottom:.25rem;right:.5rem;animation-name:animate-keys;animation-duration:1.5s;animation-timing-function:ease-in-out;-webkit-animation-timing-function:ease-in-out}@keyframes animate-keys{0%{bottom:15px;font-size:1em;opacity:1}100%{bottom:100%;font-size:4em;opacity:0}}.drop-adventures-hint{--tw-border-opacity:1;border-color:rgb(144 205 244 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(235 248 255 / var(--tw-bg-opacity))}.drop-adventures-active{--tw-border-opacity:1;border-color:rgb(250 240 137 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 240 / var(--tw-bg-opacity))}.adventures-tab{width:auto;flex-direction:row;overflow-x:auto;overflow-y:hidden}.adventures-tab[style*='display: block']{display:flex!important}.profile-nametag__stats{display:flex;width:100%;flex-direction:row;align-items:stretch;justify-content:center;text-align:center}.switch{position:relative;display:inline-block;width:30px;height:17px}.switch input{opacity:0;width:0;height:0}.slider{--tw-bg-opacity:1;background-color:rgb(203 213 224 / var(--tw-bg-opacity));position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;transition:.4s}.slider:before{position:absolute;content:"";height:13px;width:13px;left:2px;bottom:2px;background-color:#fff;transition:.4s}input:checked+.slider{--tw-bg-opacity:1;background-color:rgb(72 187 120 / var(--tw-bg-opacity))}input:checked+.slider:before{transform:translateX(13px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}input:disabled::-moz-placeholder{--tw-text-opacity:1;color:rgb(74 85 104 / var(--tw-text-opacity))}input:disabled::placeholder{--tw-text-opacity:1;color:rgb(74 85 104 / var(--tw-text-opacity))}.htmx-indicator.custom-indicator{opacity:0;transition:opacity 0s ease-in}.htmx-request .custom-indicator{opacity:1}.htmx-request.custom-indicator{opacity:1}.hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(49 130 206 / var(--tw-border-opacity))}.hover\:bg-black\/75:hover{background-color:rgb(0 0 0 / .75)}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(49 130 206 / var(--tw-bg-opacity))}.hover\:bg-green-400:hover{--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(235 248 255 / var(--tw-bg-opacity))}.hover\:bg-blue-400:hover{--tw-bg-opacity:1;background-color:rgb(99 179 237 / var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:text-red-400:hover{--tw-text-opacity:1;color:rgb(252 129 129 / var(--tw-text-opacity))}.hover\:opacity-100:hover{opacity:1}.focus\:bg-blue-100:focus{--tw-bg-opacity:1;background-color:rgb(235 248 255 / var(--tw-bg-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}[dir=ltr] .ltr\:-left-1{left:-.25rem}[dir=ltr] .ltr\:-left-2{left:-.5rem}[dir=ltr] .ltr\:-right-1{right:-.25rem}[dir=ltr] .ltr\:right-0{right:0}[dir=ltr] .ltr\:clear-right{clear:right}[dir=ltr] .ltr\:ml-auto{margin-left:auto}[dir=ltr] .ltr\:mr-5{margin-right:1.25rem}[dir=ltr] .ltr\:ml-3{margin-left:.75rem}[dir=ltr] .ltr\:mr-auto{margin-right:auto}[dir=ltr] .ltr\:mr-4{margin-right:1rem}[dir=ltr] .ltr\:mr-2{margin-right:.5rem}[dir=ltr] .ltr\:ml-8{margin-left:2rem}[dir=ltr] .ltr\:ml-0{margin-left:0}[dir=ltr] .ltr\:mr-3{margin-right:.75rem}[dir=ltr] .ltr\:mr-1{margin-right:.25rem}[dir=ltr] .ltr\:ml-2{margin-left:.5rem}[dir=ltr] .ltr\:ml-4{margin-left:1rem}[dir=ltr] .ltr\:ml-1{margin-left:.25rem}[dir=ltr] .ltr\:mr-24{margin-right:6rem}[dir=ltr] .ltr\:hidden{display:none}[dir=ltr] .ltr\:divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}[dir=ltr] .ltr\:pr-4{padding-right:1rem}[dir=ltr] .ltr\:pr-8{padding-right:2rem}[dir=ltr] .ltr\:pl-2{padding-left:.5rem}[dir=ltr] .ltr\:pl-8{padding-left:2rem}[dir=ltr] .ltr\:pl-4{padding-left:1rem}[dir=ltr] .ltr\:text-left{text-align:left}[dir=ltr] .ltr\:text-right{text-align:right}[dir=rtl] .rtl\:-right-1{right:-.25rem}[dir=rtl] .rtl\:-right-2{right:-.5rem}[dir=rtl] .rtl\:-left-1{left:-.25rem}[dir=rtl] .rtl\:left-0{left:0}[dir=rtl] .rtl\:left-2{left:.5rem}[dir=rtl] .rtl\:clear-left{clear:left}[dir=rtl] .rtl\:mr-auto{margin-right:auto}[dir=rtl] .rtl\:ml-5{margin-left:1.25rem}[dir=rtl] .rtl\:mr-3{margin-right:.75rem}[dir=rtl] .rtl\:ml-auto{margin-left:auto}[dir=rtl] .rtl\:ml-4{margin-left:1rem}[dir=rtl] .rtl\:ml-2{margin-left:.5rem}[dir=rtl] .rtl\:mr-8{margin-right:2rem}[dir=rtl] .rtl\:mr-0{margin-right:0}[dir=rtl] .rtl\:ml-3{margin-left:.75rem}[dir=rtl] .rtl\:ml-1{margin-left:.25rem}[dir=rtl] .rtl\:mr-2{margin-right:.5rem}[dir=rtl] .rtl\:mr-4{margin-right:1rem}[dir=rtl] .rtl\:mr-1{margin-right:.25rem}[dir=rtl] .rtl\:ml-24{margin-left:6rem}[dir=rtl] .rtl\:hidden{display:none}[dir=rtl] .rtl\:divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}[dir=rtl] .rtl\:pl-4{padding-left:1rem}[dir=rtl] .rtl\:pl-8{padding-left:2rem}[dir=rtl] .rtl\:pr-2{padding-right:.5rem}[dir=rtl] .rtl\:pr-8{padding-right:2rem}[dir=rtl] .rtl\:pr-4{padding-right:1rem}[dir=rtl] .rtl\:text-left{text-align:left}[dir=rtl] .rtl\:text-right{text-align:right}@media (min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}}@media (min-width:768px){.md\:order-4{order:4}.md\:mx-16{margin-left:4rem;margin-right:4rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-64{height:16rem}.md\:w-2\/5{width:40%}.md\:w-3\/5{width:60%}.md\:grid-flow-row-dense{grid-auto-flow:row dense}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-center{justify-content:center}.md\:gap-8{gap:2rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1024px){.lg\:mx-16{margin-left:4rem;margin-right:4rem}.lg\:mt-6{margin-top:1.5rem}.lg\:inline-block{display:inline-block}.lg\:flex{display:flex}.lg\:h-16{height:4rem}.lg\:h-10{height:2.5rem}.lg\:w-1\/2{width:50%}.lg\:w-3\/4{width:75%}.lg\:w-12{width:3rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:px-0{padding-left:0;padding-right:0}}@media (min-width:1280px){.xl\:gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}} +*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#edf2f7}::after,::before{--tw-content:''}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#cbd5e0}input::placeholder,textarea::placeholder{opacity:1;color:#cbd5e0}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::after,::before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(66 153 225 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}html{font-weight:300;overflow-x:hidden;margin-right:calc(-1 * (100vw - 100%))}.font-slab{font-family:'Balsamiq Sans',sans-serif}.dot{height:25px;width:25px;border-radius:50%;display:inline-block}h1{font-size:2.25rem;font-weight:200}h2{font-size:1.5rem;font-weight:700}h3{font-size:1.5rem;font-weight:700}h4{font-size:1rem;font-weight:700}*+ol,*+p,*+pre,*+ul{margin-top:1rem}a{font-weight:600;--tw-text-opacity:1;color:rgb(99 179 237 / var(--tw-text-opacity));text-decoration:underline}strong{font-weight:700}.tiny-btn{border-bottom-width:2px;padding-left:.5rem;padding-right:.5rem;padding-top:.25rem;font-size:.875rem}.common-page-container{margin-left:auto;margin-right:auto;width:100%;max-width:1536px;padding:2rem}.copy-container{margin-left:auto;margin-right:auto;max-width:1024px}.copy-container-wide{margin-left:auto;margin-right:auto;max-width:1280px}.text-business-copy,.text-display-copy{line-height:1.625}.text-display-copy h2{text-align:center;font-size:2.25rem;--tw-text-opacity:1;color:rgb(213 63 140 / var(--tw-text-opacity))}.text-display-copy h3{font-size:2.25rem;--tw-text-opacity:1;color:rgb(213 63 140 / var(--tw-text-opacity))}.text-display-copy .columns h3{font-size:1.5rem}.text-business-copy h3:first-child{margin-top:0}.text-business-copy *+h3{margin-top:2rem}.btn-shape{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block}.green-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(47 133 90 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(72 187 120 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.green-btn:disabled,.green-btn[disabled]{--tw-border-opacity:1;border-color:rgb(74 85 104 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(160 174 192 / var(--tw-bg-opacity))}.stripe-colored{border-bottom-width:4px;--tw-border-opacity:1;border-color:rgb(236 201 75 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(246 224 94 / var(--tw-bg-opacity))}.stripe-white{border-bottom-width:4px}.stripe-colored a,.stripe-colored h2{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.stripe-colored .column-pane a{--tw-text-opacity:1;color:rgb(43 108 176 / var(--tw-text-opacity))}.stripe-colored .column-pane{border-radius:.5rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.heading-underline{margin-left:auto;margin-right:auto;margin-top:2rem;margin-bottom:2rem;height:.25rem;width:9rem;--tw-bg-opacity:1;background-color:rgb(213 63 140 / var(--tw-bg-opacity))}.stripe-colored .heading-underline{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.text-links-plain a{color:inherit;text-decoration:none;font-weight:inherit}.tooltip{position:relative;display:inline-block}.tooltip .tooltiptext{visibility:hidden;position:absolute;align-items:center;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(229 62 62 / var(--tw-text-opacity));width:130;bottom:150%;left:50%;margin-left:-80px}.tooltip:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext::after{position:absolute;content:" ";top:100%;left:50%;margin-left:-10px;border-width:10px;border-style:solid;border-color:#fff transparent transparent transparent}.green-btn:hover:enabled{--tw-border-opacity:1;border-color:rgb(72 187 120 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}.red-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(197 48 48 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(245 101 101 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.red-btn:hover{--tw-border-opacity:1;border-color:rgb(245 101 101 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(252 129 129 / var(--tw-bg-opacity))}.yellow-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(183 121 31 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(236 201 75 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity))}.yellow-btn:hover{--tw-border-opacity:1;border-color:rgb(236 201 75 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(246 224 94 / var(--tw-bg-opacity))}.pink-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(237 100 166 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(246 135 179 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.pink-btn:hover{--tw-border-opacity:1;border-color:rgb(246 135 179 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(251 182 206 / var(--tw-bg-opacity))}.blue-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(43 108 176 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(66 153 225 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.gray-btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;display:inline-block;--tw-border-opacity:1;border-color:rgb(74 85 104 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(160 174 192 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.blue-btn:hover{--tw-border-opacity:1;border-color:rgb(66 153 225 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(99 179 237 / var(--tw-bg-opacity))}.markdown{font-size:1.25rem;line-height:1.5;--tw-text-opacity:1;color:rgb(45 55 72 / var(--tw-text-opacity))}.markdown li+li,.markdown li>p+p{margin-top:.5rem;margin-bottom:.5rem}.markdown strong{font-weight:700}.markdown *+h1{margin-bottom:.5rem;margin-top:2.5rem;line-height:1.25}h2{font-weight:500;--tw-text-opacity:1;color:rgb(66 153 225 / var(--tw-text-opacity));font-family:'Balsamiq Sans',sans-serif;margin-bottom:.5rem;margin-top:2.5rem;font-size:1.5rem;line-height:1.25}h2:first-child{margin-top:0}h3{--tw-text-opacity:1;color:rgb(43 108 176 / var(--tw-text-opacity));font-family:'Balsamiq Sans',sans-serif;margin-top:1rem;margin-bottom:.25rem;font-size:1.25rem;line-height:1.25}h4{margin-top:1rem;margin-bottom:.5rem}.markdown code{padding-top:.25rem;padding-bottom:.25rem;padding-left:.25rem;padding-right:.25rem;font-size:1rem}pre code{margin-top:.5rem;margin-bottom:.5rem;display:block;border-radius:.25rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(237 242 247 / var(--tw-bg-opacity));padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;padding-right:1rem;font-size:1rem;--tw-text-opacity:1;color:rgb(229 62 62 / var(--tw-text-opacity))}pre{white-space:pre-wrap}.ace-container{background-color:#272822;border-radius:.25rem;padding:.5rem}pre,pre code{font-size:100%;color:#fff}code{display:inline;border-radius:.25rem;padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;padding-right:.5rem;font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-weight:400;background:#272822!important;color:#ff6188;font-size:90%}.markdown blockquote{border-left-width:4px;--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity));font-style:italic}[dir=ltr] .markdown blockquote{padding-left:1rem}[dir=rtl] .markdown blockquote{padding-right:1rem}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.left-0{left:0}.-top-1{top:-.25rem}.top-2{top:.5rem}.right-2{right:.5rem}.left-1\/2{left:50%}.top-0\.5{top:.125rem}.right-0\.5{right:.125rem}.right-0{right:0}.top-16{top:4rem}.bottom-0{bottom:0}.z-10{z-index:10}.z-50{z-index:50}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.col-span-2{grid-column:span 2/span 2}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.float-right{float:right}.m-36{margin:9rem}.m-auto{margin:auto}.m-2{margin:.5rem}.m-4{margin:1rem}.m-1{margin:.25rem}.m-8{margin:2rem}.mx-0{margin-left:0;margin-right:0}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-0{margin-top:0;margin-bottom:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-auto{margin-top:auto;margin-bottom:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.my-16{margin-top:4rem;margin-bottom:4rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mx-16{margin-left:4rem;margin-right:4rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-4{margin-left:1rem}.mt-4{margin-top:1rem}.ml-auto{margin-left:auto}.mt-36{margin-top:9rem}.ml-14{margin-left:3.5rem}.mb-4{margin-bottom:1rem}.mt-0{margin-top:0}.mb-8{margin-bottom:2rem}.mt-5{margin-top:1.25rem}.mt-10{margin-top:2.5rem}.mb-2{margin-bottom:.5rem}.mb-0{margin-bottom:0}.mr-4{margin-right:1rem}.mt-8{margin-top:2rem}.mb-6{margin-bottom:1.5rem}.-mt-8{margin-top:-2rem}.mb-1{margin-bottom:.25rem}.mt-auto{margin-top:auto}.mt-1{margin-top:.25rem}.-ml-32{margin-left:-8rem}.mb-10{margin-bottom:2.5rem}.-mb-px{margin-bottom:-1px}.mr-1{margin-right:.25rem}.ml-2{margin-left:.5rem}.ml-1{margin-left:.25rem}.-mr-6{margin-right:-1.5rem}.mt-0\.5{margin-top:.125rem}.mr-5{margin-right:1.25rem}.ml-6{margin-left:1.5rem}.ml-0{margin-left:0}.mt-3{margin-top:.75rem}.-mt-2{margin-top:-.5rem}.mt-24{margin-top:6rem}.mt-28{margin-top:7rem}.mr-8{margin-right:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[2\/3\]{aspect-ratio:2/3}.h-40{height:10rem}.h-full{height:100%}.h-16{height:4rem}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-4{height:1rem}.h-96{height:24rem}.h-32{height:8rem}.h-64{height:16rem}.h-12{height:3rem}.h-min{height:-moz-min-content;height:min-content}.h-14{height:3.5rem}.h-80{height:20rem}.h-7{height:1.75rem}.h-28{height:7rem}.h-screen{height:100vh}.h-auto{height:auto}.h-24{height:6rem}.h-2{height:.5rem}.max-h-full{max-height:100%}.max-h-56{max-height:14rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-\[3\.5rem\]{min-height:3.5rem}.w-40{width:10rem}.w-3\/4{width:75%}.w-1\/12{width:8.333333%}.w-full{width:100%}.w-6{width:1.5rem}.w-1\/2{width:50%}.w-8{width:2rem}.w-10{width:2.5rem}.w-64{width:16rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-auto{width:auto}.w-2\/3{width:66.666667%}.w-1\/3{width:33.333333%}.w-4\/5{width:80%}.w-12{width:3rem}.w-14{width:3.5rem}.w-4{width:1rem}.w-72{width:18rem}.w-max{width:-moz-max-content;width:max-content}.w-32{width:8rem}.w-24{width:6rem}.w-px{width:1px}.w-80{width:20rem}.w-96{width:24rem}.w-10\/12{width:83.333333%}.w-2\/12{width:16.666667%}.w-min{width:-moz-min-content;width:min-content}.w-7{width:1.75rem}.w-screen{width:100vw}.w-2{width:.5rem}.w-56{width:14rem}.w-16{width:4rem}.min-w-\[100px\]{min-width:100px}.min-w-\[200px\]{min-width:200px}.min-w-min{min-width:-moz-min-content;min-width:min-content}.max-w-screen-xl{max-width:1280px}.max-w-screen-2xl{max-width:1536px}.max-w-lg{max-width:32rem}.max-w-screen-md{max-width:768px}.max-w-md{max-width:28rem}.max-w-3xl{max-width:48rem}.max-w-prose{max-width:65ch}.max-w-xl{max-width:36rem}.max-w-screen-lg{max-width:1024px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-initial{flex:0 1 auto}.flex-grow{flex-grow:1}.basis-2\/3{flex-basis:66.666667%}.basis-1\/3{flex-basis:33.333333%}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.border-separate{border-collapse:separate}.translate-y-8{--tw-translate-y:2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-6{--tw-translate-y:1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-8{--tw-translate-y:-2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-4{gap:1rem}.gap-2{gap:.5rem}.gap-8{gap:2rem}.gap-16{gap:4rem}.gap-6{gap:1.5rem}.gap-1{gap:.25rem}.gap-x-2{-moz-column-gap:0.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-y-16{row-gap:4rem}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.divide-blue-400>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(99 179 237 / var(--tw-divide-opacity))}.divide-blue-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(144 205 244 / var(--tw-divide-opacity))}.place-self-center{place-self:center}.self-end{align-self:flex-end}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded-lg{border-radius:.5rem}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.border-2{border-width:2px}.border{border-width:1px}.border-0{border-width:0}.border-8{border-width:8px}.border-4{border-width:4px}.border-t-4{border-top-width:4px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-b-8{border-bottom-width:8px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-l{border-left-width:1px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-red-500{--tw-border-opacity:1;border-color:rgb(245 101 101 / var(--tw-border-opacity))}.border-orange-400{--tw-border-opacity:1;border-color:rgb(246 173 85 / var(--tw-border-opacity))}.border-gray-500{--tw-border-opacity:1;border-color:rgb(160 174 192 / var(--tw-border-opacity))}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(237 242 247 / var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(203 213 224 / var(--tw-border-opacity))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(236 201 75 / var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(49 130 206 / var(--tw-border-opacity))}.border-green-400{--tw-border-opacity:1;border-color:rgb(104 211 145 / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity:1;border-color:rgb(72 187 120 / var(--tw-border-opacity))}.border-blue-300{--tw-border-opacity:1;border-color:rgb(144 205 244 / var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(99 179 237 / var(--tw-border-opacity))}.border-green-600{--tw-border-opacity:1;border-color:rgb(56 161 105 / var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(66 153 225 / var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.border-teal-500{--tw-border-opacity:1;border-color:rgb(56 178 172 / var(--tw-border-opacity))}.border-yellow-400{--tw-border-opacity:1;border-color:rgb(246 224 94 / var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(113 128 150 / var(--tw-border-opacity))}.border-yellow-600{--tw-border-opacity:1;border-color:rgb(214 158 46 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-purple-600{--tw-border-opacity:1;border-color:rgb(128 90 213 / var(--tw-border-opacity))}.border-pink-600{--tw-border-opacity:1;border-color:rgb(213 63 140 / var(--tw-border-opacity))}.border-orange-600{--tw-border-opacity:1;border-color:rgb(221 107 32 / var(--tw-border-opacity))}.border-red-600{--tw-border-opacity:1;border-color:rgb(229 62 62 / var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(252 129 129 / var(--tw-border-opacity))}.bg-blue-200{--tw-bg-opacity:1;background-color:rgb(190 227 248 / var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(160 174 192 / var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(255 245 245 / var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(66 153 225 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(237 242 247 / var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(203 213 224 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-green-300{--tw-bg-opacity:1;background-color:rgb(154 230 180 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(236 201 75 / var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(144 205 244 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(245 101 101 / var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(49 130 206 / var(--tw-bg-opacity))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(246 224 94 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(247 250 252 / var(--tw-bg-opacity))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(99 179 237 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(240 255 244 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(56 161 105 / var(--tw-bg-opacity))}.bg-pink-800{--tw-bg-opacity:1;background-color:rgb(151 38 109 / var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(235 248 255 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(45 55 72 / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(72 187 120 / var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgb(102 126 234 / var(--tw-bg-opacity))}.bg-pink-500{--tw-bg-opacity:1;background-color:rgb(237 100 166 / var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(255 255 240 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(26 32 44 / var(--tw-bg-opacity))}.bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(254 252 191 / var(--tw-bg-opacity))}.bg-green-200{--tw-bg-opacity:1;background-color:rgb(198 246 213 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(250 240 137 / var(--tw-bg-opacity))}.bg-purple-300{--tw-bg-opacity:1;background-color:rgb(214 188 250 / var(--tw-bg-opacity))}.bg-pink-300{--tw-bg-opacity:1;background-color:rgb(251 182 206 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity:1;background-color:rgb(251 211 141 / var(--tw-bg-opacity))}.fill-current{fill:currentColor}.fill-red-600{fill:#e53e3e}.fill-green-800{fill:#276749}.fill-yellow-800{fill:#975a16}.fill-blue-800{fill:#2c5282}.fill-purple-800{fill:#553c9a}.fill-pink-800{fill:#97266d}.fill-orange-800{fill:#9c4221}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-8{padding:2rem}.p-12{padding:3rem}.p-1{padding:.25rem}.p-6{padding:1.5rem}.p-0{padding:0}.p-3{padding:.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-0{padding-left:0;padding-right:0}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-0{padding-top:0;padding-bottom:0}.py-12{padding-top:3rem;padding-bottom:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.px-12{padding-left:3rem;padding-right:3rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-10{padding-top:2.5rem}.pb-2{padding-bottom:.5rem}.pt-0\.5{padding-top:.125rem}.pb-0{padding-bottom:0}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.pl-4{padding-left:1rem}.pb-1{padding-bottom:.25rem}.pt-1{padding-top:.25rem}.pl-2{padding-left:.5rem}.pr-2{padding-right:.5rem}.pt-2{padding-top:.5rem}.pb-4{padding-bottom:1rem}.pl-0{padding-left:0}.pr-8{padding-right:2rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.font-serif{font-family:Georgia,Cambria,"Times New Roman",Times,serif}.text-sm{font-size:.875rem}.text-2xl{font-size:1.5rem}.text-xl{font-size:1.25rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-6xl{font-size:4rem}.text-xs{font-size:.75rem}.text-5xl{font-size:3rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-normal{font-weight:400}.font-extralight{font-weight:200}.font-medium{font-weight:500}.font-light{font-weight:300}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-6{line-height:1.5rem}.leading-normal{line-height:1.5}.tracking-wide{letter-spacing:.025em}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(45 55 72 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(49 130 206 / var(--tw-text-opacity))}.text-red-900{--tw-text-opacity:1;color:rgb(116 42 42 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(245 101 101 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(74 85 104 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(72 187 120 / var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgb(236 201 75 / var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(47 133 90 / var(--tw-text-opacity))}.text-pink-500{--tw-text-opacity:1;color:rgb(237 100 166 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(160 174 192 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(66 153 225 / var(--tw-text-opacity))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(44 82 130 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(26 32 44 / var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(247 250 252 / var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgb(246 224 94 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(113 128 150 / var(--tw-text-opacity))}.text-yellow-900{--tw-text-opacity:1;color:rgb(116 66 16 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(237 242 247 / var(--tw-text-opacity))}.text-green-900{--tw-text-opacity:1;color:rgb(34 84 61 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(203 213 224 / var(--tw-text-opacity))}.text-blue-900{--tw-text-opacity:1;color:rgb(42 67 101 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(229 62 62 / var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(56 161 105 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgb(214 158 46 / var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(197 48 48 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.opacity-0{opacity:0}.opacity-75{opacity:.75}.opacity-100{opacity:1}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgb(0 0 0 / 0.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline-0{outline-width:0}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow:drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}.duration-300{transition-duration:.3s}.btn{font-weight:400;line-height:1.5rem;letter-spacing:.025em;font-family:'Balsamiq Sans',sans-serif;border-radius:.25rem;border-width:1px;border-bottom-width:4px;padding-left:1rem;padding-right:1rem;padding-top:.5rem;padding-bottom:.25rem;display:inline-block;--tw-border-opacity:1;border-color:rgb(43 108 176 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(66 153 225 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));-webkit-text-decoration-line:none;text-decoration-line:none}.btn:hover{--tw-border-opacity:1;border-color:rgb(66 153 225 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(99 179 237 / var(--tw-bg-opacity))}.menubar-item{display:block;cursor:pointer;border-bottom-width:4px;letter-spacing:.025em;--tw-border-opacity:1;border-color:rgb(247 250 252 / var(--tw-border-opacity))}.menubar-item:hover{--tw-border-opacity:1;border-color:rgb(247 250 252 / var(--tw-border-opacity))}.menubar-item.active{--tw-border-opacity:1!important;border-color:rgb(49 130 206 / var(--tw-border-opacity))!important}.menubar-text{align-items:center;padding:.25rem;font-size:1rem;-webkit-text-decoration-line:none;text-decoration-line:none;font-family:'Balsamiq Sans',sans-serif}@media (min-width:1024px){.menubar-text{font-size:1.25rem}}.menubar-text{--tw-text-opacity:1;color:rgb(49 130 206 / var(--tw-text-opacity))}#output,#quiz_question_output_container{font-family:Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace}.dropdown-menu{position:absolute;display:block;width:-moz-max-content;width:max-content;overflow:hidden;border-radius:.375rem;padding:1rem;--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[dir=ltr] .dropdown-menu{right:0;margin-right:.25rem}[dir=rtl] .dropdown-menu{left:0;margin-left:.25rem}.dropdown-menu{top:40px;cursor:auto}.dropdown-blue{border-width:2px;--tw-border-opacity:1;border-color:rgb(66 153 225 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(247 250 252 / var(--tw-bg-opacity))}.dropdown-green{border-width:2px;--tw-border-opacity:1;border-color:rgb(72 187 120 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(247 250 252 / var(--tw-bg-opacity))}.dropdown-menu h2{margin-left:1rem;margin-right:1rem;margin-bottom:.5rem;padding-bottom:.5rem;text-align:center;font-weight:500}.dropdown-green h2{--tw-text-opacity:1;color:rgb(56 161 105 / var(--tw-text-opacity))}.dropdown-item{display:block;white-space:nowrap;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;padding-right:1rem;--tw-text-opacity:1;color:rgb(45 55 72 / var(--tw-text-opacity));-webkit-text-decoration-line:none;text-decoration-line:none}.dropdown-item:hover{--tw-bg-opacity:1;background-color:rgb(49 130 206 / var(--tw-bg-opacity))}.dropdown-item{width:13rem;cursor:pointer;border-radius:.375rem;font-weight:500;flex-grow:0}.dropdown-item:hover{--tw-bg-opacity:1;background-color:rgb(49 130 206 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-shadow{text-shadow:0 2px 4px rgba(0,0,0,.1)}.text-shadow-md{text-shadow:0 4px 8px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.08)}.text-shadow-lg{text-shadow:0 15px 30px rgba(0,0,0,.11),0 5px 15px rgba(0,0,0,.08)}.text-shadow-none{text-shadow:none}ul{list-style:disc outside none}ol{list-style:decimal outside none}.text-business-copy ol,.text-business-copy ul,.text-display-copy ol,.text-display-copy ul{margin-left:2.5rem}.text-adventure-copy ol,.text-adventure-copy ul{margin-left:2rem}.text-business-copy ol li+li,.text-business-copy ul li+li,.text-display-copy ol li+li,.text-display-copy ul li+li{margin-top:.5rem}.text-adventure-copy ol li+li,.text-adventure-copy ul li+li{margin-top:.25rem}input:disabled{--tw-bg-opacity:1;background-color:rgb(203 213 224 / var(--tw-bg-opacity))}input[type=checkbox],input[type=radio]{height:1.25rem;width:1.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;--tw-border-opacity:1;border-color:rgb(74 85 104 / var(--tw-border-opacity))}input[type=radio]{border-radius:9999px}#change_password input:required,#profile input:required,#signup input:required,#signup select:required{border-width:1px;--tw-border-opacity:1;border-color:rgb(252 129 129 / var(--tw-border-opacity))}input:required:valid,select:required:valid{--tw-border-opacity:1!important;border-color:rgb(104 211 145 / var(--tw-border-opacity))!important}input[type=checkbox]:checked,input[type=radio]:checked{--tw-border-opacity:1;border-color:rgb(56 161 105 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}input,select{border-width:1px;--tw-border-opacity:1;border-color:rgb(203 213 224 / var(--tw-border-opacity))}table.users thead{font-weight:700}table.users td{padding:10px;border:solid 1px gray}body[dir=ltr] .right-hand-shadow{box-shadow:inset -7px 0 9px -7px rgba(0,0,0,.4)}body[dir=rtl] .right-hand-shadow{box-shadow:inset 7px 0 9px -7px rgba(0,0,0,.4)}.tab{margin-top:.5rem;cursor:pointer;border-top-left-radius:.5rem;border-top-right-radius:.5rem;border-top-width:8px;--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(247 250 252 / var(--tw-bg-opacity));padding-top:.5rem;padding-bottom:.5rem;padding-left:.25rem;padding-right:.25rem;font-size:.875rem;box-shadow:inset 0 -4px 4px -1px rgba(0,0,0,.1)}.teacher_tab{--tw-border-opacity:1;border-color:rgb(154 230 180 / var(--tw-border-opacity))}.special_tab{--tw-border-opacity:1;border-color:rgb(144 205 244 / var(--tw-border-opacity))}.command_tab{--tw-border-opacity:1;border-color:rgb(253 178 197 / var(--tw-border-opacity))}.active-bluebar-btn{--tw-bg-opacity:1;background-color:rgb(144 205 244 / var(--tw-bg-opacity));box-shadow:inset 0 2px 4px 0 rgb(0 0 10 / .3)}@media (min-width:1024px){.tab{padding-left:.5rem;padding-right:.5rem}}@media (min-width:1280px){.tab{padding-left:1rem;padding-right:1rem}}.tab+.tab{box-shadow:inset 0 -4px 4px -1px rgba(0,0,0,.1),inset 4px 0 4px -1px rgba(0,0,0,.1)}.tab-selected{margin-top:0;border-top-left-radius:.5rem;border-top-right-radius:.5rem;border-top-width:8px;border-right-width:1px;border-left-width:1px;--tw-border-opacity:1;border-color:rgb(237 100 166 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding-top:.5rem;font-weight:400;--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity));box-shadow:none!important}div#errorbox,div#warningbox{position:relative}[dir=ltr] p.close-dialog{right:5px}[dir=rtl] p.close-dialog{left:5px}p.close-dialog{font-weight:700;position:absolute;top:5px;cursor:pointer}.editor-error{position:absolute;border-bottom-width:2px;border-top-width:2px;--tw-border-opacity:1;border-color:rgb(245 101 101 / var(--tw-border-opacity));background-color:rgb(66 153 225 / .7);z-index:10}.disabled-line{position:absolute;border-top:solid 1px #fff;margin-top:.6em;border-radius:0!important}.debugger-current-line{position:absolute;background:#2d6099;z-index:20}.expandable-docs-text h1{margin-top:30px;margin-bottom:30px}#quiz-iframe{height:72rem;-moz-transform-origin:0 0;-o-transform-origin:0 0;-webkit-transform-origin:0 0}.stats-period-toggle.active{color:#000;text-decoration:none;cursor:default;font-weight:400}.stats-legend{list-style-type:none}.stats-legend-item{display:inline;padding-right:15px;cursor:default}.stats-legend-color-box{width:45px;height:12px;display:inline-block;margin-right:5px}.accordion .accordion-tab input~.tab-content{max-height:0;transition:max-height .35s}[dir=ltr] .accordion .accordion-tab label::before{right:0;float:right}[dir=rtl] .accordion .accordion-tab label::before{left:0;float:left}.accordion .accordion-tab label::before{top:0;display:block;width:1.5em;height:1.5em;line-height:1.5;font-size:1.25rem;font-weight:bolder;text-align:center;transition:all .35s}.accordion .accordion-tab input:checked~.tab-content{max-height:3000vh}[dir=ltr] .accordion .accordion-tab input[type=checkbox]+label::before{right:5px}[dir=rtl] .accordion .accordion-tab input[type=checkbox]+label::before{left:5px}.accordion .accordion-tab input[type=checkbox]+label::before{content:">";transform:rotate(90deg)}.accordion .accordion-tab input[type=checkbox]:checked+label::before{transform:rotate(270deg)}.explore-program-box{position:relative;height:18rem;width:16rem;border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(74 85 104 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(190 227 248 / var(--tw-bg-opacity))}.explore-program-box-title{margin-top:-2rem;width:18rem;padding-top:2.5rem;text-align:center;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}[dir=ltr] .explore-program-box-title{margin-left:-.5rem;--tw-rotate:6deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));padding-left:3rem}[dir=rtl] .explore-program-box-title{margin-right:-.5rem;--tw-rotate:-6deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));padding-right:3rem}.section-header{cursor:pointer;border-radius:.5rem;--tw-bg-opacity:1;background-color:rgb(190 227 248 / var(--tw-bg-opacity));padding-left:2rem;padding-right:2rem;padding-top:.5rem;padding-bottom:.5rem;font-size:1.875rem}.profile-section-body-header{margin-bottom:1rem;display:inline-block;width:100%;border-bottom-width:1px;padding-bottom:.5rem}.profile-section-body{margin-left:auto;margin-right:auto;display:none;width:100%;border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding-left:2rem;padding-right:2rem;padding-top:1rem;padding-bottom:1rem;--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:1024px){.profile-section-body{width:75%}}.personal-input{display:block;width:75%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;padding-left:1rem;padding-right:1rem;padding-top:.25rem;padding-bottom:.25rem;--tw-text-opacity:1;color:rgb(74 85 104 / var(--tw-text-opacity))}@media (min-width:1024px){.personal-input{width:50%}}.signup-container{margin-left:auto;margin-right:auto;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;padding-left:2rem;padding-right:2rem}.signup-label{display:inline-block;width:33.333333%}@media (min-width:768px){.signup-label{width:12rem}}.signup-input{display:inline-block;width:66.666667%;border-radius:.5rem;--tw-border-opacity:1;border-color:rgb(203 213 224 / var(--tw-border-opacity));padding-left:.5rem;padding-right:.5rem;padding-top:.25rem;padding-bottom:.25rem}@media (min-width:768px){.signup-input{width:20rem}}@media (min-width:1024px){.signup-input{width:24rem}}[dir=ltr] .toggle-circle{left:0}[dir=rtl] .toggle-circle{right:0}.toggle-circle{transition:all .2s ease-in-out}body[dir=ltr] input:checked~.toggle-circle{transform:translateX(100%);--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}body[dir=rtl] input:checked~.toggle-circle{transform:translateX(-100%);--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}input:checked~.toggle-path{--tw-bg-opacity:1;background-color:rgb(113 128 150 / var(--tw-bg-opacity))}.focused-option{border-width:8px;border-style:double}.menubar-item.focused-option{--tw-border-opacity:1!important;border-color:rgb(49 130 206 / var(--tw-border-opacity))!important}.stats-period-toggle.focused-option{color:#000;text-decoration:none;cursor:default;font-weight:400}.focused-option{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.incorrect-option{background-color:rgba(234,55,55,.6)!important;border:5px #c21919 dashed!important}.quiz-icons{position:relative;height:3.5rem;width:3.5rem;top:-40px;left:-10px}.animate-keys{position:absolute;bottom:.25rem;right:.5rem;animation-name:animate-keys;animation-duration:1.5s;animation-timing-function:ease-in-out;-webkit-animation-timing-function:ease-in-out}@keyframes animate-keys{0%{bottom:15px;font-size:1em;opacity:1}100%{bottom:100%;font-size:4em;opacity:0}}.drop-adventures-hint{--tw-border-opacity:1;border-color:rgb(144 205 244 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(235 248 255 / var(--tw-bg-opacity))}.drop-adventures-active{--tw-border-opacity:1;border-color:rgb(250 240 137 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 240 / var(--tw-bg-opacity))}.adventures-tab{width:auto;flex-direction:row;overflow-x:auto;overflow-y:hidden}.adventures-tab[style*='display: block']{display:flex!important}.profile-nametag__stats{display:flex;width:100%;flex-direction:row;align-items:stretch;justify-content:center;text-align:center}.switch{position:relative;display:inline-block;width:30px;height:17px}.switch input{opacity:0;width:0;height:0}.slider{--tw-bg-opacity:1;background-color:rgb(203 213 224 / var(--tw-bg-opacity));position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;transition:.4s}.slider:before{position:absolute;content:"";height:13px;width:13px;left:2px;bottom:2px;background-color:#fff;transition:.4s}input:checked+.slider{--tw-bg-opacity:1;background-color:rgb(72 187 120 / var(--tw-bg-opacity))}input:checked+.slider:before{transform:translateX(13px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}input:disabled::-moz-placeholder{--tw-text-opacity:1;color:rgb(74 85 104 / var(--tw-text-opacity))}input:disabled::placeholder{--tw-text-opacity:1;color:rgb(74 85 104 / var(--tw-text-opacity))}.htmx-indicator.custom-indicator{opacity:0;transition:opacity 0s ease-in}.htmx-request .custom-indicator{opacity:1}.htmx-request.custom-indicator{opacity:1}div[class^=ace_incorrect_hedy_code]{border-bottom:2px dashed red;position:absolute;cursor:pointer!important;pointer-events:auto}.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(144 205 244 / var(--tw-border-opacity))}.hover\:border-green-400:hover{--tw-border-opacity:1;border-color:rgb(104 211 145 / var(--tw-border-opacity))}.hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(49 130 206 / var(--tw-border-opacity))}.hover\:bg-black\/75:hover{background-color:rgb(0 0 0 / .75)}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(49 130 206 / var(--tw-bg-opacity))}.hover\:bg-green-400:hover{--tw-bg-opacity:1;background-color:rgb(104 211 145 / var(--tw-bg-opacity))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(235 248 255 / var(--tw-bg-opacity))}.hover\:bg-blue-400:hover{--tw-bg-opacity:1;background-color:rgb(99 179 237 / var(--tw-bg-opacity))}.hover\:bg-green-300:hover{--tw-bg-opacity:1;background-color:rgb(154 230 180 / var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.hover\:bg-blue-300:hover{--tw-bg-opacity:1;background-color:rgb(144 205 244 / var(--tw-bg-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(203 213 224 / var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:text-red-400:hover{--tw-text-opacity:1;color:rgb(252 129 129 / var(--tw-text-opacity))}.hover\:opacity-100:hover{opacity:1}.focus\:bg-blue-100:focus{--tw-bg-opacity:1;background-color:rgb(235 248 255 / var(--tw-bg-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.group:hover .group-hover\:opacity-100{opacity:1}[dir=ltr] .ltr\:-left-1{left:-.25rem}[dir=ltr] .ltr\:-left-2{left:-.5rem}[dir=ltr] .ltr\:-right-1{right:-.25rem}[dir=ltr] .ltr\:right-0{right:0}[dir=ltr] .ltr\:clear-right{clear:right}[dir=ltr] .ltr\:mr-2{margin-right:.5rem}[dir=ltr] .ltr\:mr-4{margin-right:1rem}[dir=ltr] .ltr\:ml-auto{margin-left:auto}[dir=ltr] .ltr\:mr-5{margin-right:1.25rem}[dir=ltr] .ltr\:ml-3{margin-left:.75rem}[dir=ltr] .ltr\:mr-auto{margin-right:auto}[dir=ltr] .ltr\:ml-8{margin-left:2rem}[dir=ltr] .ltr\:ml-0{margin-left:0}[dir=ltr] .ltr\:mr-3{margin-right:.75rem}[dir=ltr] .ltr\:mr-1{margin-right:.25rem}[dir=ltr] .ltr\:ml-2{margin-left:.5rem}[dir=ltr] .ltr\:ml-4{margin-left:1rem}[dir=ltr] .ltr\:ml-1{margin-left:.25rem}[dir=ltr] .ltr\:mr-24{margin-right:6rem}[dir=ltr] .ltr\:hidden{display:none}[dir=ltr] .ltr\:divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}[dir=ltr] .ltr\:pr-4{padding-right:1rem}[dir=ltr] .ltr\:pr-8{padding-right:2rem}[dir=ltr] .ltr\:pl-2{padding-left:.5rem}[dir=ltr] .ltr\:pl-8{padding-left:2rem}[dir=ltr] .ltr\:pl-4{padding-left:1rem}[dir=ltr] .ltr\:text-left{text-align:left}[dir=ltr] .ltr\:text-right{text-align:right}[dir=rtl] .rtl\:-right-1{right:-.25rem}[dir=rtl] .rtl\:-right-2{right:-.5rem}[dir=rtl] .rtl\:-left-1{left:-.25rem}[dir=rtl] .rtl\:left-0{left:0}[dir=rtl] .rtl\:left-2{left:.5rem}[dir=rtl] .rtl\:clear-left{clear:left}[dir=rtl] .rtl\:ml-2{margin-left:.5rem}[dir=rtl] .rtl\:ml-4{margin-left:1rem}[dir=rtl] .rtl\:mr-auto{margin-right:auto}[dir=rtl] .rtl\:ml-5{margin-left:1.25rem}[dir=rtl] .rtl\:mr-3{margin-right:.75rem}[dir=rtl] .rtl\:ml-auto{margin-left:auto}[dir=rtl] .rtl\:mr-8{margin-right:2rem}[dir=rtl] .rtl\:mr-0{margin-right:0}[dir=rtl] .rtl\:ml-3{margin-left:.75rem}[dir=rtl] .rtl\:ml-1{margin-left:.25rem}[dir=rtl] .rtl\:mr-2{margin-right:.5rem}[dir=rtl] .rtl\:mr-4{margin-right:1rem}[dir=rtl] .rtl\:mr-1{margin-right:.25rem}[dir=rtl] .rtl\:ml-24{margin-left:6rem}[dir=rtl] .rtl\:hidden{display:none}[dir=rtl] .rtl\:divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}[dir=rtl] .rtl\:pl-4{padding-left:1rem}[dir=rtl] .rtl\:pl-8{padding-left:2rem}[dir=rtl] .rtl\:pr-2{padding-right:.5rem}[dir=rtl] .rtl\:pr-8{padding-right:2rem}[dir=rtl] .rtl\:pr-4{padding-right:1rem}[dir=rtl] .rtl\:text-left{text-align:left}[dir=rtl] .rtl\:text-right{text-align:right}@media (prefers-color-scheme:dark){.dark\:text-gray-600{--tw-text-opacity:1;color:rgb(113 128 150 / var(--tw-text-opacity))}}@media (min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}}@media (min-width:768px){.md\:order-4{order:4}.md\:mx-16{margin-left:4rem;margin-right:4rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-64{height:16rem}.md\:w-2\/5{width:40%}.md\:w-3\/5{width:60%}.md\:grid-flow-row-dense{grid-auto-flow:row dense}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-center{justify-content:center}.md\:gap-8{gap:2rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1024px){.lg\:mx-16{margin-left:4rem;margin-right:4rem}.lg\:mt-6{margin-top:1.5rem}.lg\:inline-block{display:inline-block}.lg\:flex{display:flex}.lg\:h-16{height:4rem}.lg\:h-10{height:2.5rem}.lg\:w-1\/2{width:50%}.lg\:w-3\/4{width:75%}.lg\:w-12{width:3rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:px-0{padding-left:0;padding-right:0}}@media (min-width:1280px){.xl\:gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}} diff --git a/static/js/statistics.ts b/static/js/statistics.ts index 86b93dcf2da..89d3cd99e61 100644 --- a/static/js/statistics.ts +++ b/static/js/statistics.ts @@ -1,4 +1,6 @@ import { Chart, registerables } from 'chart.js'; +import {modal} from "./modal"; +import {showAchievements} from "./app"; Chart.register(...registerables); @@ -491,3 +493,146 @@ function updateChart(elementId: string, datasets: any[] ) { ch.data.datasets = datasets; ch.update(); } + +export function resolve_student(class_id: string, error_id: string, prompt: string) { + modal.confirm(prompt, function(){ + $.ajax({ + type: 'DELETE', + url: '/live_stats/class/' + class_id + '/error/' + error_id, + contentType: 'application/json', + dataType: 'json' + }).done(function(response) { + if (response.achievement) { + showAchievements(response.achievement, true, ""); + } else { + location.reload(); + } + }).fail(function(err) { + modal.notifyError(err.responseText); + }); + }); +} + +export function InitLineChart(data: any[], labels: any[]){ + const ctx = document.getElementById("runsOverTime") as HTMLCanvasElement; + new Chart(ctx, { + type: 'line', + data: { + labels: labels.map(String), + datasets: [{ + data: data, + fill: false, + pointBackgroundColor: function(context) { + var index = context.dataIndex; + var value = context.dataset.data[index]; + if (value === 0) { + return 'red' + } + else if (value === 1){ + return 'green' + } + return 'blue' + }, + // backgroundColor: 'rgba(0, 0, 255, 1)', + borderColor: 'rgba(0, 0, 255, 0.6)', + borderWidth: 1 + }] + }, + options: { + scales: { + y: { + ticks: { + callback: function(index) { + // Hide every 2nd tick label + if (index === 0) { + return 'Fail' + } + else if (index === 1){ + return 'Success' + } + return '' + }, + } + }, + }, + plugins: { + legend: { + display: false + } + } + } + }); +} + +export function enable_level_class_overview(level: string) { + if ($('#level_button_' + level).hasClass('gray-btn')) { + $('#level_button_' + level).removeClass('gray-btn'); + $('#level_button_' + level).addClass('green-btn'); + } else { + $('#level_button_' + level).removeClass('green-btn'); + $('#level_button_' + level).addClass('gray-btn'); + } +} + +export function select_levels_class_overview(class_id: string) { + let levels: (string | undefined)[] = []; + $('.level-select-button').each(function() { + if ($(this).hasClass("green-btn")) { + levels.push($(this).val()); + } + }); + + $.ajax({ + type: 'POST', + url: '/live_stats/class/' + class_id, + data: JSON.stringify({ + levels: levels + }), + contentType: 'application/json', + dataType: 'json' + }).done(function () { + location.reload(); + }).fail(function (err) { + modal.notifyError(err.responseText); + }); +} + +export function toggle_show_students_class_overview(adventure: string) { + var adventure_panel = "div[id='adventure_panel_" + adventure + "']"; + if ($(adventure_panel).hasClass('hidden')) { + $(adventure_panel).removeClass('hidden'); + $(adventure_panel).addClass('block'); + } else { + $(adventure_panel).removeClass('block'); + $(adventure_panel).addClass('hidden'); + } +} + +export function getRunsOverTime(data: any[], labels: any[]) { + const chart = Chart.getChart("runsOverTime")!; + chart.data.labels = labels.map(String); + + var datasets = [{ + data: data, + fill: false, + pointBackgroundColor: function(context:any) { + var index = context.dataIndex; + var value = context.dataset.data[index]; + if (value === 0) { + return 'red' + } + else if (value === 1){ + return 'green' + } + return 'blue' + }, + // backgroundColor: 'rgba(0, 0, 255, 1)', + borderColor: 'rgba(0, 0, 255, 0.6)', + borderWidth: 1 + }] + + chart.data.datasets = datasets; + chart.update(); +} + +export const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms)); diff --git a/static_babel_content.py b/static_babel_content.py index 625f4770eea..8765635aa3d 100644 --- a/static_babel_content.py +++ b/static_babel_content.py @@ -10,7 +10,7 @@ COUNTRIES = {'AF': 'افغانستان', 'AX': 'Åland', 'AL': 'Shqipëri', 'DZ': 'الجزائر', 'AS': 'American Samoa', 'AD': 'Andorra', 'AO': 'Angola', 'AI': 'Anguilla', 'AQ': 'Antarctica', 'AG': 'Antigua & Barbuda', 'AR': 'Argentina', 'AM': 'Հայաստան', 'AW': 'Aruba', 'AU': 'Australia', 'AT': 'Österreich', 'AZ': 'Azərbaycan', 'BS': 'Bahamas', 'BH': 'البحرين', 'BD': 'বাংলাদেশ', 'BB': 'Barbados', 'BY': 'Беларусь', 'BE': 'Belgium', 'BZ': 'Belize', 'BJ': 'Bénin', 'BM': 'Bermuda', 'BT': 'འབྲུག', 'BO': 'Bolivia', 'BQ': 'Caribisch Nederland', 'BA': 'Bosna i Hercegovina', 'BW': 'Botswana', 'BV': 'Bouvet Island', 'BR': 'Brasil', 'IO': 'British Indian Ocean Territory', 'BN': 'Brunei', 'BG': 'България', 'BF': 'Burkina Faso', 'BI': 'Uburundi', 'KH': 'កម្ពុជា', 'CM': 'Cameroun', 'CA': 'Canada', 'CV': 'Kabu Verdi', 'KY': 'Cayman Islands', 'CF': 'République centrafricaine', 'TD': 'Tchad', 'CL': 'Chile', 'CN': '中国', 'CX': 'Christmas Island', 'CC': 'Cocos (Keeling) Islands', 'CO': 'Colombia', 'KM': 'جزر القمر', 'CG': 'Congo-Brazzaville', 'CD': 'Jamhuri ya Kidemokrasia ya Kongo', 'CK': 'Cook Islands', 'CR': 'Costa Rica', 'CI': 'Côte d’Ivoire', 'HR': 'Hrvatska', 'CU': 'Cuba', 'CW': 'Curaçao', 'CY': 'Κύπρος', 'CZ': 'Česko', 'DK': 'Danmark', 'DJ': 'Jabuuti', 'DM': 'Dominica', 'DO': 'República Dominicana', 'EC': 'Ecuador', 'EG': 'مصر', 'SV': 'El Salvador', 'GQ': 'Guinea Ecuatorial', 'ER': 'ኤርትራ', 'EE': 'Eesti', 'ET': 'ኢትዮጵያ', 'FK': 'Falkland Islands', 'FO': 'Føroyar', 'FJ': 'Fiji', 'FI': 'Suomi', 'FR': 'France', 'GF': 'Guyane française', 'PF': 'Polynésie française', 'TF': 'French Southern Territories', 'GA': 'Gabon', 'GM': 'Gambia', 'GE': 'საქართველო', 'DE': 'Deutschland', 'GH': 'Gaana', 'GI': 'Gibraltar', 'GR': 'Ελλάδα', 'GL': 'Kalaallit Nunaat', 'GD': 'Grenada', 'GP': 'Guadeloupe', 'GU': 'Guam', 'GT': 'Guatemala', 'GG': 'Guernsey', 'GN': 'Guinée', 'GW': 'Guiné-Bissau', 'GY': 'Guyana', 'HT': 'Haïti', 'HM': 'Heard Island and McDonald Islands', 'VA': 'Città del Vaticano', 'HN': 'Honduras', 'HK': '中國香港', 'HU': 'Magyarország', 'IS': 'Ísland', 'IN': 'भारत', 'ID': 'Indonesia', 'IR': 'ایران', 'IQ': 'العراق', 'IE': 'Ireland', 'IM': 'Isle of Man', 'IL': 'ישראל', 'IT': 'Italia', 'JM': 'Jamaica', 'JP': '日本', 'JE': 'Jersey', 'JO': 'الأردن', 'KZ': 'Казахстан', 'KE': 'Kenya', 'KI': 'Kiribati', 'KP': '조선민주주의인민공화국', 'KR': '대한민국', 'XK': 'Kosovë', 'KW': 'الكويت', 'KG': 'Кыргызстан', 'LA': 'ລາວ', 'LV': 'Latvija', 'LB': 'لبنان', 'LS': 'Lesotho', 'LR': 'Liberia', 'LY': 'ليبيا', 'LI': 'Liechtenstein', 'LT': 'Lietuva', 'LU': 'Luxembourg', 'MO': '中國澳門', 'MK': 'Северна Македонија', 'MG': 'Madagasikara', 'MW': 'Malawi', 'MY': 'Malaysia', 'MV': 'Maldives', 'ML': 'Mali', 'MT': 'Malta', 'MH': 'Marshall Islands', 'MQ': 'Martinique', 'MR': 'موريتانيا', 'MU': 'Moris', 'YT': 'Mayotte', 'MX': 'México', 'FM': 'Micronesia', 'MD': 'Republica Moldova', 'MC': 'Monaco', 'MN': 'Монгол', 'ME': 'Crna Gora', 'MS': 'Montserrat', 'MA': 'المغرب', 'MZ': 'Moçambique', 'MM': 'မြန်မာ', 'NA': 'Namibië', 'NR': 'Nauru', 'NP': 'नेपाल', 'NL': 'Nederland', 'NC': 'Nouvelle-Calédonie', 'NZ': 'New Zealand', 'NI': 'Nicaragua', 'NE': 'Nijar', 'NG': 'Nigeria', 'NU': 'Niue', 'NF': 'Norfolk Island', 'MP': 'Northern Mariana Islands', 'NO': 'Norge', 'OM': 'عُمان', 'PK': 'پاکستان', 'PW': 'Palau', 'PS': 'الأراضي الفلسطينية', 'PA': 'Panamá', 'PG': 'Papua New Guinea', 'PY': 'Paraguay', 'PE': 'Perú', 'PH': 'Philippines', 'PN': 'Pitcairn Islands', 'PL': 'Polska', 'PT': 'Portugal', 'PR': 'Puerto Rico', 'QA': 'قطر', 'RE': 'La Réunion', 'RO': 'România', 'RU': 'Россия', 'RW': 'U Rwanda', 'BL': 'Saint-Barthélemy', 'SH': 'St. Helena', 'KN': 'St. Kitts & Nevis', 'LC': 'St. Lucia', 'MF': 'Saint-Martin', 'PM': 'Saint-Pierre-et-Miquelon', 'VC': 'St. Vincent & Grenadines', 'WS': 'Samoa', 'SM': 'San Marino', 'ST': 'São Tomé e Príncipe', 'SA': 'المملكة العربية السعودية', 'SN': 'Senegaal', 'RS': 'Србија', 'SC': 'Seychelles', 'SL': 'Sierra Leone', 'SG': 'Singapore', 'SX': 'Sint Maarten', 'SK': 'Slovensko', 'SI': 'Slovenija', 'SB': 'Solomon Islands', 'SO': 'Soomaaliya', 'ZA': 'South Africa', 'GS': 'South Georgia and the South Sandwich Islands', 'SS': 'جنوب السودان', 'ES': 'España', 'LK': 'ශ්\u200dරී ලංකාව', 'SD': 'السودان', 'SR': 'Suriname', 'SJ': 'Svalbard og Jan Mayen', 'SZ': 'Eswatini', 'SE': 'Sverige', 'CH': 'Schweiz', 'SY': 'سوريا', 'TW': '台灣', 'TJ': 'Тоҷикистон', 'TZ': 'Tanzania', 'TH': 'ไทย', 'TL': 'Timor-Leste', 'TG': 'Togo', 'TK': 'Tokelau', 'TO': 'Tonga', 'TT': 'Trinidad & Tobago', 'TN': 'تونس', 'TR': 'Türkiye', 'TM': 'Türkmenistan', 'TC': 'Turks & Caicos Islands', 'TV': 'Tuvalu', 'UG': 'Uganda', 'UA': 'Україна', 'AE': 'الإمارات العربية المتحدة', 'GB': 'United Kingdom', 'US': 'United States', 'UM': 'U.S. Outlying Islands', 'UY': 'Uruguay', 'UZ': 'Oʻzbekiston', 'VU': 'Vanuatu', 'VE': 'Venezuela', 'VN': 'Việt Nam', 'VG': 'British Virgin Islands', 'VI': 'U.S. Virgin Islands', 'WF': 'Wallis-et-Futuna', 'EH': 'الصحراء الغربية', 'YE': 'اليمن', 'ZM': 'Zambia', 'ZW': 'Zimbabwe'} -LANGUAGE_NAMES = {'ur': 'اردو', 'kmr': 'Kurdî (Tirkiye)', 'sw': 'Kiswahili', 'pl': 'Polski', 'vi': 'Tiếng Việt', 'sq': 'Shqip', 'sv': 'Svenska', 'he': 'עברית', 'da': 'Dansk', 'pt_BR': 'Português (Brasil)', 'ja': '日本語', 'el': 'Ελληνικά', 'fy': 'Frysk', 'it': 'Italiano', 'ca': 'Català', 'nb_NO': 'Norsk Bokmål (Norge)', 'cs': 'Čeština', 'pa_PK': 'پنجابی (عربی, پاکستان)', 'te': 'తెలుగు', 'pt_PT': 'Português (Portugal)', 'zh_Hans': '中文 (简体)', - 'ru': 'Русский', 'tl': 'Filipino (Pilipinas)', 'zh_Hant': '中文 (繁體)', 'ro': 'Română', 'uk': 'Українська', 'sr': 'Српски', 'ar': 'العربية', 'hu': 'Magyar', 'nl': 'Nederlands', 'bg': 'Български', 'bn': 'বাংলা', 'hi': 'हिन्दी', 'de': 'Deutsch', 'ko': '한국어', 'fi': 'Suomi', 'eo': 'Esperanto', 'id': 'Indonesia', 'fr': 'Français', 'es': 'Español', 'et': 'Eesti', 'en': 'English', 'fa': 'فارسی', 'cy': 'Cymraeg', 'th': 'ไทย', 'tr': 'Türkçe'} -TEXT_DIRECTIONS = {'ur': 'rtl', 'kmr': 'ltr', 'sw': 'ltr', 'pl': 'ltr', 'vi': 'ltr', 'sq': 'ltr', 'sv': 'ltr', 'he': 'rtl', 'da': 'ltr', 'pt_BR': 'ltr', 'ja': 'ltr', 'el': 'ltr', 'fy': 'ltr', 'it': 'ltr', 'ca': 'ltr', 'nb_NO': 'ltr', 'cs': 'ltr', 'pa_PK': 'rtl', 'te': 'ltr', 'pt_PT': 'ltr', 'zh_Hans': 'ltr', 'ru': 'ltr', - 'tl': 'ltr', 'zh_Hant': 'ltr', 'ro': 'ltr', 'uk': 'ltr', 'sr': 'ltr', 'ar': 'rtl', 'hu': 'ltr', 'nl': 'ltr', 'bg': 'ltr', 'bn': 'ltr', 'hi': 'ltr', 'de': 'ltr', 'ko': 'ltr', 'fi': 'ltr', 'eo': 'ltr', 'id': 'ltr', 'fr': 'ltr', 'es': 'ltr', 'et': 'ltr', 'en': 'ltr', 'fa': 'rtl', 'cy': 'ltr', 'th': 'ltr', 'tr': 'ltr'} +LANGUAGE_NAMES = {'ca': 'Català', 'da': 'Dansk', 'sw': 'Kiswahili', 'de': 'Deutsch', 'sv': 'Svenska', 'pt_BR': 'Português (Brasil)', 'uk': 'Українська', 'cy': 'Cymraeg', 'zh_Hans': '中文 (简体)', 'fr': 'Français', 'hu': 'Magyar', 'he': 'עברית', 'eo': 'Esperanto', 'es': 'Español', 'tl': 'Filipino (Pilipinas)', 'bg': 'Български', 'it': 'Italiano', 'th': 'ไทย', 'ar': 'العربية', 'sq': 'Shqip', 'ja': '日本語', 'ru': 'Русский', 'fy': 'Frysk', + 'zh_Hant': '中文 (繁體)', 'en': 'English', 'nl': 'Nederlands', 'nb_NO': 'Norsk Bokmål (Norge)', 'pa_PK': 'پنجابی (عربی, پاکستان)', 'tr': 'Türkçe', 'pl': 'Polski', 'fi': 'Suomi', 'el': 'Ελληνικά', 'kmr': 'Kurdî (Tirkiye)', 'et': 'Eesti', 'ko': '한국어', 'vi': 'Tiếng Việt', 'ro': 'Română', 'bn': 'বাংলা', 'te': 'తెలుగు', 'fa': 'فارسی', 'cs': 'Čeština', 'pt_PT': 'Português (Portugal)', 'hi': 'हिन्दी', 'id': 'Indonesia', 'ur': 'اردو', 'sr': 'Српски'} +TEXT_DIRECTIONS = {'ca': 'ltr', 'da': 'ltr', 'sw': 'ltr', 'de': 'ltr', 'sv': 'ltr', 'pt_BR': 'ltr', 'uk': 'ltr', 'cy': 'ltr', 'zh_Hans': 'ltr', 'fr': 'ltr', 'hu': 'ltr', 'he': 'rtl', 'eo': 'ltr', 'es': 'ltr', 'tl': 'ltr', 'bg': 'ltr', 'it': 'ltr', 'th': 'ltr', 'ar': 'rtl', 'sq': 'ltr', 'ja': 'ltr', 'ru': 'ltr', 'fy': 'ltr', + 'zh_Hant': 'ltr', 'en': 'ltr', 'nl': 'ltr', 'nb_NO': 'ltr', 'pa_PK': 'rtl', 'tr': 'ltr', 'pl': 'ltr', 'fi': 'ltr', 'el': 'ltr', 'kmr': 'ltr', 'et': 'ltr', 'ko': 'ltr', 'vi': 'ltr', 'ro': 'ltr', 'bn': 'ltr', 'te': 'ltr', 'fa': 'rtl', 'cs': 'ltr', 'pt_PT': 'ltr', 'hi': 'ltr', 'id': 'ltr', 'ur': 'rtl', 'sr': 'ltr'} diff --git a/templates/class-live-stats.html b/templates/class-live-stats.html new file mode 100644 index 00000000000..6d4f476ef29 --- /dev/null +++ b/templates/class-live-stats.html @@ -0,0 +1,19 @@ +{% extends "auth.html" %} + +{% block regular_content %} +{# This template holds the outer parts of the page, while the partial is the one we will be rendering trtough HTMX calls #} +{{ + render_partial('partial-class-live-stats.html', + class_info=class_info, + class_overview=class_overview, + dashboard_options=dashboard_options, + attempted_adventures=attempted_adventures, + dashboard_options_args=dashboard_options_args, + adventures=adventures, + max_level=max_level, + current_page=current_page, + page_title=page_title + ) +}} + +{% endblock %} diff --git a/templates/class-live-student.html b/templates/class-live-student.html new file mode 100644 index 00000000000..a4e1788cb4e --- /dev/null +++ b/templates/class-live-student.html @@ -0,0 +1,95 @@ +{% block student_space %} + +
+

{{_('student_details')}}

+
+ + + + +
+
+
+

{{_('name')}}

+ {{student.username}} +
+ {% if student_programs %} +
+

{{_('level')}}

+ {{ student_programs[0].level }} +
+
+

{{_('adventure')}}

+ {% if adventure_names.get(student_programs[0].adventure_name) %} + {{adventure_names.get(student_programs[0].adventure_name)}} + {% else %} + {{student_programs[0].name}} + {% endif %} +
+ {% else %} +
+

{{_('level')}}

+
+
+

{{_('adventure')}}

+
+ {% endif %} +
+
+ + +
+ +
+
{{_('runs_over_time')}}
+ +
+ + + + +
+
{{_('last_program')}}
+ {% if student_programs %} +
{{ student_programs[0].code }}
+ {% else %} +

{{_('no_programs')}}

+ {% endif %} +
+ + +
+
{{_('last_error')}}
+
+ {% if student_programs and student_programs[0].error_message %} + + {% endif %} +
+
+
+
+
+ +{% endblock %} + +{% block additional_scripts %} + +{% endblock %} diff --git a/templates/class-overview.html b/templates/class-overview.html index 950424ce555..bde0d171181 100644 --- a/templates/class-overview.html +++ b/templates/class-overview.html @@ -49,6 +49,7 @@

{{ class_info.name }}

{{_('add_students')}} {% endif %} + diff --git a/templates/htmx-class-live-popup.html b/templates/htmx-class-live-popup.html new file mode 100644 index 00000000000..bb7e77389d7 --- /dev/null +++ b/templates/htmx-class-live-popup.html @@ -0,0 +1,42 @@ +
+
+
+
+ + + +
+

{{_(selected_item.label)}}

+
+

+ Flagged Student(s): +

+ +
+
+
+
+
\ No newline at end of file diff --git a/templates/macros/stats-shared.html b/templates/macros/stats-shared.html index ae31c0c2816..a65ff029b81 100644 --- a/templates/macros/stats-shared.html +++ b/templates/macros/stats-shared.html @@ -118,4 +118,5 @@
-{% endmacro %} \ No newline at end of file +{% endmacro %} + diff --git a/templates/partial-class-live-stats.html b/templates/partial-class-live-stats.html new file mode 100644 index 00000000000..1e9d7e9fe9b --- /dev/null +++ b/templates/partial-class-live-stats.html @@ -0,0 +1,280 @@ +
+ + + + +
+
+

{{_('live_dashboard')}}

+
+
+ +
+
+ + + +
+ + Real-time Analytics Dashboard (RADboard) is a dashboard for teachers to monitor the progress of students during class. + RADboard is currently in alpha so it is possible that you encounter some bugs. + +
+
+
+ + +
+
+ {% for i in range(1, max_level + 1) %} + + {% endfor %} +
+ + Refresh + +
+ + +
+

{{_('class_overview')}}

+ +
+ + + +
+ +
+
+ + {% for selected_level in class_overview.selected_levels %} +

{{_('level')}} {{ selected_level }}

+
+
    + {% for level, adventure_list in adventures.items() %} + {% if level|int == selected_level %} + {% for adventure in adventure_list %} + {% set in_progress = adventure["in_progress"]|length %} + {% set adventure_name = adventure["name"] %} +
  • +
    +

    {{ adventure_name }}

    + {% if in_progress != 0 %} +
    + + +
    + {% endif %} +
    +
  • + {% endfor %} + {% endif %} + {% endfor %} +
  • +
    +

    Quiz

    + {% set in_progress = class_overview.quiz_info[selected_level]["students_in_progress"]|length %} + {% set finished = class_overview.quiz_info[selected_level]["students_finished"]|length %} + {% if in_progress != 0 %} +
    + + +
    + {% endif %} + {% if finished != 0 %} +
    + + +
    + {% endif %} +
    +
  • +
+
+ {% endfor %} +
+
+ + + {% if dashboard_options.student %} + {% include 'class-live-student.html' %} + {% endif %} + +
+
+ +
+
+

+ {{_('student_list')}} +

+
+ + + +
+ +
    +
  • - Current Adventure
  • +
  • - Finished Quiz
  • +
  • - Attempted
  • +
  • - Not Attempted
  • +
+
+
+
+
+
+
+ + + +
+
+ + + + + {% for selected_level in class_overview.selected_levels %} + + {% endfor %} + + + + {% for student in class_info.students %} + + + {% for selected_level in class_overview.selected_levels %} + {% for level, adventure_list in adventures.items() %} + {% if level|int == selected_level %} + + {% endif %} + {% endfor %} + {% endfor %} + + {% endfor %} + +
{{_('name')}}{{_('level')}} {{selected_level}}
+ {% if dashboard_options.student %} + + {{student.username}} + + {% else %} + + {{student.username}} + + {% endif %} + +
+ {% if attempted_adventures[selected_level] %}{% set attempted_adventures_student = attempted_adventures[selected_level][student.username] %}{% endif %} + {% for adventure in adventure_list %} +
+ {% if student.current_adventure.adventure_name == adventure.id and student.current_level|int == level|int %} + + {% elif adventure.id in attempted_adventures_student %} + + {% else %} + + {% endif %} + {{ adventure.name }} +
+ {% endfor %} +
+ {% if student.username in class_overview.quiz_info[selected_level]['students_finished'] %} + + {% elif student.username in class_overview.quiz_info[selected_level]['students_in_progress'] %} + + {% else %} + + {% endif %} + Quiz +
+
+
+
+
+
+ + +
+
+

+ {{_('common_errors')}} +

+
+ + + +
+ The common errors are gathered by an AI system. It detects and clusters code submissions that fail to run. + The system is not foolproof! It is possible that students make errors that are not detected. + +
+
+
+
+
+ + + +
+
+ +
+
+
+
+
+ + {% block popup_content %} + {% endblock %} +
\ No newline at end of file diff --git a/tests/test_level/test_level_02.py b/tests/test_level/test_level_02.py index a7537f1db7d..02ec8a8bf30 100644 --- a/tests/test_level/test_level_02.py +++ b/tests/test_level/test_level_02.py @@ -376,7 +376,7 @@ def test_access_before_assign_not_allowed(self): name = 'Hedy'""") skipped_mappings = [ - SkippedMapping(SourceRange(1, 1, 1, 23), hedy.exceptions.AccessBeforeAssign) + SkippedMapping(SourceRange(1, 1, 1, 23), hedy.exceptions.AccessBeforeAssignException) ] self.multi_level_tester( diff --git a/tests/test_level/test_level_03.py b/tests/test_level/test_level_03.py index c2c8c7ae07a..8fc705cdd4d 100644 --- a/tests/test_level/test_level_03.py +++ b/tests/test_level/test_level_03.py @@ -630,7 +630,7 @@ def test_access_before_assign_with_random(self): colors = ['green', 'red', 'blue']""") skipped_mappings = [ - SkippedMapping(SourceRange(1, 7, 1, 13), hedy.exceptions.AccessBeforeAssign), + SkippedMapping(SourceRange(1, 7, 1, 13), hedy.exceptions.AccessBeforeAssignException), SkippedMapping(SourceRange(1, 7, 1, 23), hedy.exceptions.UndefinedVarException), ] diff --git a/tests/test_level/test_level_05.py b/tests/test_level/test_level_05.py index 60bd1f93043..77c09d0d5c5 100644 --- a/tests/test_level/test_level_05.py +++ b/tests/test_level/test_level_05.py @@ -173,7 +173,7 @@ def test_if_equality_unquoted_rhs_with_space_print_gives_error(self): pass""") skipped_mappings = [ - SkippedMapping(SourceRange(2, 1, 2, 37), hedy.exceptions.UnquotedEqualityCheck), + SkippedMapping(SourceRange(2, 1, 2, 37), hedy.exceptions.UnquotedEqualityCheckException), ] self.multi_level_tester( @@ -195,7 +195,7 @@ def test_if_equality_unquoted_rhs_with_space_and_following_command_print_gives_e print(f'{naam}')""") skipped_mappings = [ - SkippedMapping(SourceRange(2, 1, 2, 59), hedy.exceptions.UnquotedEqualityCheck), + SkippedMapping(SourceRange(2, 1, 2, 59), hedy.exceptions.UnquotedEqualityCheckException), ] self.multi_level_tester( @@ -215,7 +215,7 @@ def test_if_equality_unquoted_rhs_with_space_assign_gives_error(self): pass""") skipped_mappings = [ - SkippedMapping(SourceRange(2, 1, 2, 43), hedy.exceptions.UnquotedEqualityCheck), + SkippedMapping(SourceRange(2, 1, 2, 43), hedy.exceptions.UnquotedEqualityCheckException), ] self.multi_level_tester( diff --git a/translations/ar/LC_MESSAGES/messages.po b/translations/ar/LC_MESSAGES/messages.po index 4429e934ccc..d49cc990837 100644 --- a/translations/ar/LC_MESSAGES/messages.po +++ b/translations/ar/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: ar\n" @@ -338,6 +338,9 @@ msgstr "عند" msgid "cancel" msgstr "الغاء" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -364,6 +367,9 @@ msgstr "أنت بالفعل تلميذ في صف" msgid "class_customize_success" msgstr "تم انشاء التخصيصات للصف بنجاح." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "اخر تسجيل دخول" @@ -380,6 +386,9 @@ msgstr "اسم هذا الصف غير صالح." msgid "class_name_prompt" msgstr "أدخل اسم الصف رجاء" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "احصائيات الصف" @@ -390,10 +399,19 @@ msgstr "Sluiten" msgid "comma" msgstr "فاصلة" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -579,6 +597,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "لم نعد بحاجة الى الأمر ردد ابتداء من المستوى الثاني. يمكنك أن تكرر اجابة " @@ -831,6 +852,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "الصورة التي اخترتها غير صالحة." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "اجابة باستخدام اسأل" @@ -840,6 +876,9 @@ msgstr "رقم" msgid "invalid_class_link" msgstr "رابط الانضمام للصف غير صالح." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "رمز الدعوة للمعلم غير صالح. لتصبح معلماً أو معلمةً تواصل معنا على " @@ -888,9 +927,15 @@ msgstr "آخر انجاز تم تحقيقه" msgid "last_edited" msgstr "تاريخ آخر تعديل" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "اخر تسجيل دخول" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "اخر تحديث" @@ -930,6 +975,9 @@ msgstr "الرابط" msgid "list" msgstr "قائمة" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1330,6 +1378,9 @@ msgstr "هذا البرنامج يحتوي على خطأ، هل أنت متأك msgid "program_header" msgstr "برامجي" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "هل لديك خبرة سابقة في البرمجة؟" @@ -1472,6 +1523,9 @@ msgstr "يمكن للمعلمين فقط استرجاع الصفوف" msgid "run_code_button" msgstr "تنفيذ البرنامج" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "حفظ" @@ -1594,6 +1648,12 @@ msgstr "هذا التلميذ بالفعل موجود في الصف الخاص msgid "student_already_invite" msgstr "هذا التلميذ بالفعل لديه دعوة قيد الإنتظار." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "اسم المستخدم غير موجود." @@ -1698,6 +1758,9 @@ msgstr "هيدي - صفحة الإدارة" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "هيدي - انضم الى صف" @@ -1824,6 +1887,12 @@ msgstr "تحديث الملف العام" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "مستخدم" @@ -2034,3 +2103,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/bg/LC_MESSAGES/messages.po b/translations/bg/LC_MESSAGES/messages.po index 43046cb8dcd..7d7a44589a4 100644 --- a/translations/bg/LC_MESSAGES/messages.po +++ b/translations/bg/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: bg\n" @@ -378,6 +378,9 @@ msgstr "от" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -407,6 +410,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -427,6 +433,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -438,10 +447,19 @@ msgstr "Sluiten" msgid "comma" msgstr "запетая" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -654,6 +672,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -939,6 +960,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -951,6 +987,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "Този код не е валиден." @@ -1008,10 +1047,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1057,6 +1102,9 @@ msgstr "Вход" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1503,6 +1551,9 @@ msgstr "В тази програма има грешка, сигурни ли с msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1671,6 +1722,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Тествай кода" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1817,6 +1871,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1936,6 +1996,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2074,6 +2137,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Потребителско име" @@ -2284,3 +2353,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/bn/LC_MESSAGES/messages.po b/translations/bn/LC_MESSAGES/messages.po index 3d0eb4154f6..d2cd3428127 100644 --- a/translations/bn/LC_MESSAGES/messages.po +++ b/translations/bn/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: bn\n" @@ -395,6 +395,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -425,6 +428,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -445,6 +451,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -457,10 +466,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -679,6 +697,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -973,6 +994,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -985,6 +1021,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1045,10 +1084,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1097,6 +1142,9 @@ msgstr "Log in" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1572,6 +1620,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1747,6 +1798,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1901,6 +1955,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2022,6 +2082,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2176,6 +2239,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Username" @@ -2391,3 +2460,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/ca/LC_MESSAGES/messages.po b/translations/ca/LC_MESSAGES/messages.po index 875eb04480a..32dff173771 100644 --- a/translations/ca/LC_MESSAGES/messages.po +++ b/translations/ca/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: ca\n" @@ -366,6 +366,9 @@ msgstr "per" msgid "cancel" msgstr "Cancel·lar" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -395,6 +398,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -413,6 +419,9 @@ msgstr "Aquest nom de la classe no és vàlid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Estadístiques de la classe" @@ -422,9 +431,18 @@ msgstr "Tanca" msgid "comma" msgstr "una coma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Ordres" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "Felicitats, {username}, has completat Hedy!" @@ -626,6 +644,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -915,6 +936,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -927,6 +963,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -987,10 +1026,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1039,6 +1084,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1538,6 +1586,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1713,6 +1764,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1867,6 +1921,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1988,6 +2048,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2144,6 +2207,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2370,3 +2439,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/cs/LC_MESSAGES/messages.po b/translations/cs/LC_MESSAGES/messages.po index 6803c11ad55..6876529f716 100644 --- a/translations/cs/LC_MESSAGES/messages.po +++ b/translations/cs/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: cs\n" @@ -378,6 +378,9 @@ msgstr "od" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -407,6 +410,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -427,6 +433,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -438,10 +447,19 @@ msgstr "Sluiten" msgid "comma" msgstr "čárka" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -653,6 +671,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -936,6 +957,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -948,6 +984,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1006,10 +1045,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1055,6 +1100,9 @@ msgstr "Přihlásit se" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1495,6 +1543,9 @@ msgstr "Tento program obsahuje chybu, přesto jej chcete sdílet?" msgid "program_header" msgstr "Moje programy" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Máš nějaké skušenosti s programováním?" @@ -1660,6 +1711,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Spustit kód" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1804,6 +1858,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1921,6 +1981,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2061,6 +2124,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Uživatelské jméno" @@ -2271,3 +2340,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/cy/LC_MESSAGES/messages.po b/translations/cy/LC_MESSAGES/messages.po index 2942a4a109b..7e9e7994d20 100644 --- a/translations/cy/LC_MESSAGES/messages.po +++ b/translations/cy/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: cy\n" @@ -401,6 +401,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -431,6 +434,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -451,6 +457,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -463,10 +472,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -685,6 +703,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -975,6 +996,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -987,6 +1023,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1047,10 +1086,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1099,6 +1144,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1598,6 +1646,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1773,6 +1824,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1927,6 +1981,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2048,6 +2108,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2204,6 +2267,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2433,3 +2502,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/da/LC_MESSAGES/messages.po b/translations/da/LC_MESSAGES/messages.po index a0d55498c48..43ec6aabfe6 100644 --- a/translations/da/LC_MESSAGES/messages.po +++ b/translations/da/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: da\n" @@ -401,6 +401,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -431,6 +434,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -451,6 +457,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -463,10 +472,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -685,6 +703,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -975,6 +996,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -987,6 +1023,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1047,10 +1086,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1099,6 +1144,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1599,6 +1647,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1774,6 +1825,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1928,6 +1982,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2049,6 +2109,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2205,6 +2268,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2419,3 +2488,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/de/LC_MESSAGES/messages.po b/translations/de/LC_MESSAGES/messages.po index 85b84a936a8..74328d95dea 100644 --- a/translations/de/LC_MESSAGES/messages.po +++ b/translations/de/LC_MESSAGES/messages.po @@ -327,6 +327,9 @@ msgstr "von" msgid "cancel" msgstr "Abbrechen" +msgid "cant_parse_exception" +msgstr "" + msgid "catch_index_exception" msgstr "" "Du hast versucht auf die Liste {list_name} zuzugreifen, aber sie ist " @@ -350,6 +353,9 @@ msgstr "Du bist schon in dieser Klasse" msgid "class_customize_success" msgstr "Klasse erfolgreich angepasst." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Aufzeichnungen" @@ -365,6 +371,9 @@ msgstr "Dieser Klassenname ist ungültig." msgid "class_name_prompt" msgstr "Bitte gib den Namen der Klasse ein" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Klassenstatistik" @@ -374,9 +383,18 @@ msgstr "Schließen" msgid "comma" msgstr "ein Komma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Befehle" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "Herzlichen Glückwunsch, {username}, Du hast Hedy abgeschlossen!" @@ -543,6 +561,9 @@ msgstr "" msgid "duplicate" msgstr "Duplizieren" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Ab Level 2 wird {echo} nicht mehr gebraucht. Du kannst jetzt eine Antwort" @@ -768,6 +789,21 @@ msgstr "Ich werde noch ein wenig weiter dran arbeiten" msgid "image_invalid" msgstr "Das gewählte Bild ist ungültig." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "Eingabe aus {ask}" @@ -777,6 +813,9 @@ msgstr "eine ganze Zahl" msgid "invalid_class_link" msgstr "Ungültiger Link zum Beitreten zu einer Klasse." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Der Einladungscode als Lehrkraft ist ungültig. Um Lehrkraft zu werden, " @@ -823,9 +862,15 @@ msgstr "Zuletzt verdiente Errungenschaft" msgid "last_edited" msgstr "Zuletzt geändert" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Zuletzt eingeloggt" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Letztes Update" @@ -862,6 +907,9 @@ msgstr "Link" msgid "list" msgstr "eine Liste" +msgid "live_dashboard" +msgstr "" + msgid "logged_in_to_share" msgstr "Du musst eingeloggt sein, um Programme zu speichern und zu teilen." @@ -1256,6 +1304,9 @@ msgstr "" msgid "program_header" msgstr "Meine Programme" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Hast du schon mal programmiert?" @@ -1392,6 +1443,9 @@ msgstr "Nur Lehrpersonen können Klassen laden" msgid "run_code_button" msgstr "Programm ausführen" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Speichern" @@ -1511,6 +1565,12 @@ msgstr "Diese(r) Schüler(in) ist bereits in deiner Klasse." msgid "student_already_invite" msgstr "Diese(r) Schüler(in) hat bereits eine ausstehende Einladung." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Dieser Nutzername existiert nicht." @@ -1607,6 +1667,9 @@ msgstr "Hedy - Administratorseite" msgid "title_class grid_overview" msgstr "Hedy - Gitterübersicht" +msgid "title_class live_statistics" +msgstr "" + msgid "title_class logs" msgstr "Hedy - Logs" @@ -1728,6 +1791,12 @@ msgstr "Öffentliches Profil-Update" msgid "updating_indicator" msgstr "Updatet" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "Nutzer" @@ -1955,3 +2024,4 @@ msgstr "Dein Programm" #~ msgid "too_many_attempts" #~ msgstr "Zu viele Versuche" + diff --git a/translations/el/LC_MESSAGES/messages.po b/translations/el/LC_MESSAGES/messages.po index fa319f37107..931c1233f84 100644 --- a/translations/el/LC_MESSAGES/messages.po +++ b/translations/el/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: el\n" @@ -351,6 +351,9 @@ msgstr "by" msgid "cancel" msgstr "Ακύρωση" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -378,6 +381,9 @@ msgstr "Είσαι ήδη μαθητής της τάξης" msgid "class_customize_success" msgstr "Η τάξη προσαρμόστηκε με επιτυχία." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Τελευταία είσοδος" @@ -395,6 +401,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Παρακαλώ δώσε το όνομα της τάξης" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Εμφάνιση στατιστικών στοιχείων της τάξης" @@ -405,10 +414,19 @@ msgstr "Sluiten" msgid "comma" msgstr "ένα κόμμα" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -597,6 +615,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Ξεκινώντας το επίπεδο 2, η echo δεν χρειάζεται πλέον. Μπορείς να " @@ -862,6 +883,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Η εικόνα σου δεν είναι έγκυρη" +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "είσοδος από την ask" @@ -871,6 +907,9 @@ msgstr "ένας αριθμός" msgid "invalid_class_link" msgstr "Μη έγκυρος σύνδεσμος για συμμετοχή στην τάξη." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Ο κωδικός πρόσκλησης καθηγητή δεν είναι έγκυρος. Για να γίνετε καθηγητής," @@ -923,9 +962,15 @@ msgstr "Πρόσφατο επίτευγμα" msgid "last_edited" msgstr "Τελευταία επεξεργασία" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Τελευταία είσοδος" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Τελευταία ενημέρωση" @@ -966,6 +1011,9 @@ msgstr "Σύνδεση" msgid "list" msgstr "μια λίστα" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1370,6 +1418,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "Τα προγράμματά μου" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Έχεις εμπειρία στον προγραμματισμό;" @@ -1514,6 +1565,9 @@ msgstr "Μόνο οι καθηγητές μπορούν να ανακτήσου msgid "run_code_button" msgstr "Εκτέλεσε κώδικα" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Αποθήκευση" @@ -1646,6 +1700,12 @@ msgstr "Αυτός ο μαθητής είναι ήδη στη τάξη σου" msgid "student_already_invite" msgstr "Αυτός ο μαθητής έχει ήδη μια πρόσκληση σε αναμονή" +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Αυτό το όνομα χρήστη δεν υπάρχει" @@ -1754,6 +1814,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -1899,6 +1962,12 @@ msgstr "Ενημέρωση δημόσιου προφίλ" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Όνομα Χρήστη" @@ -2143,3 +2212,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/en/LC_MESSAGES/messages.po b/translations/en/LC_MESSAGES/messages.po index 7237eff7683..af8ca7f98b4 100644 --- a/translations/en/LC_MESSAGES/messages.po +++ b/translations/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-03-21 09:01+0000\n" "Last-Translator: Jesús Pelay \n" "Language: en\n" @@ -325,6 +325,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "Couldn't parse the program" + msgid "catch_index_exception" msgstr "" "You tried to access the list {list_name} but it is either empty or the " @@ -348,6 +351,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "Live statistics" + msgid "class_logs" msgstr "Logs" @@ -363,6 +369,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "Class overview" + msgid "class_stats" msgstr "Class statistics" @@ -372,9 +381,18 @@ msgstr "Close" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "Command not available yet" + +msgid "command_unavailable_exception" +msgstr "Command not correct anymore" + msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "Common errors" + msgid "congrats_message" msgstr "" "Congratulations, {username}, you have reached the following results with " @@ -541,6 +559,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "Echo and ask mismatch" + msgid "echo_out" msgstr "" "Starting in level 2 {echo} is no longer needed. You can repeat an answer " @@ -763,6 +784,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "Incomplete Command" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "Incorrect handling of quotes" + +msgid "incorrect_use_of_types_exception" +msgstr "Incorrect use of types" + +msgid "incorrect_use_of_variable_exception" +msgstr "Incorrect use of variable" + +msgid "indentation_exception" +msgstr "Incorrect Indentation" + msgid "input" msgstr "input from {ask}" @@ -772,6 +808,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "Invalid command" + msgid "invalid_teacher_invitation_code" msgstr "" "The teacher invitation code is invalid. To become a teacher, reach out to" @@ -818,9 +857,15 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "Last error" + msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "Last program" + msgid "last_update" msgstr "Last update" @@ -857,6 +902,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "Live Dashboard" + msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1247,6 +1295,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "Programs too large" + msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1379,6 +1430,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "Runs over time" + msgid "save" msgstr "Save" @@ -1496,6 +1550,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "Student list" + msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1590,6 +1650,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "Hedy - Live Statistics" + msgid "title_class logs" msgstr "Hedy - Logs" @@ -1708,6 +1771,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "Use of blanks in programs" + +msgid "use_of_nested_functions_exception" +msgstr "Use of nested functions" + msgid "user" msgstr "user" @@ -1936,4 +2005,3 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" - diff --git a/translations/eo/LC_MESSAGES/messages.po b/translations/eo/LC_MESSAGES/messages.po index 7a1608ed1e7..19b5cc18a5e 100644 --- a/translations/eo/LC_MESSAGES/messages.po +++ b/translations/eo/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: eo\n" @@ -367,6 +367,9 @@ msgstr "far" msgid "cancel" msgstr "Nuligi" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -394,6 +397,9 @@ msgstr "Vi jam estas lernanto en klaso" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Protokoloj" @@ -410,6 +416,9 @@ msgstr "Jen nevalida nomo de klaso." msgid "class_name_prompt" msgstr "Bonvolu tajpi la nomon de la klaso" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Statistikoj pri klaso" @@ -420,10 +429,19 @@ msgstr "Sluiten" msgid "comma" msgstr "komo" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -613,6 +631,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -872,6 +893,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "La elektita bildo ne validas." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -883,6 +919,9 @@ msgstr "nombro" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "La invitkodo por instruisto ne validas. Por fariĝi instruisto, kontaktu " @@ -934,9 +973,15 @@ msgstr "Laste gajnita premio" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Lasta saluto" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Lasta ĝisdatigo" @@ -975,6 +1020,9 @@ msgstr "Ligo" msgid "list" msgstr "listo" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1398,6 +1446,9 @@ msgstr "Ĉi tiu programo enhavas eraron. Ĉu vi certas, ke vi volas kunhavigi ĝ msgid "program_header" msgstr "Miaj programoj" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1555,6 +1606,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Ruli kodon" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Konservi" @@ -1690,6 +1744,12 @@ msgstr "Ĉi tiu lernanto jam estas en via klaso." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Jen neekzistanta salutnomo." @@ -1800,6 +1860,9 @@ msgstr "Hedy - Paĝo por administranto" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -1929,6 +1992,12 @@ msgstr "Ĝisdatigi publikan profilon" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "uzanto" @@ -2147,3 +2216,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/es/LC_MESSAGES/messages.po b/translations/es/LC_MESSAGES/messages.po index bca3b3bdc62..c1b71966854 100644 --- a/translations/es/LC_MESSAGES/messages.po +++ b/translations/es/LC_MESSAGES/messages.po @@ -318,6 +318,9 @@ msgstr "por" msgid "cancel" msgstr "Cancelar" +msgid "cant_parse_exception" +msgstr "" + msgid "catch_index_exception" msgstr "" "Intentaste acceder a la lista {list_name} pero está vacía o el índice no " @@ -341,6 +344,9 @@ msgstr "Ya eres parte de la clase" msgid "class_customize_success" msgstr "Clase configurada correctamente." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Logs" @@ -356,6 +362,9 @@ msgstr "El nombre de clase no es correcto." msgid "class_name_prompt" msgstr "Por favor, introduce le nombre de la nueva clase" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Estadísticas de clase" @@ -365,9 +374,18 @@ msgstr "Cerrar" msgid "comma" msgstr "una coma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Comandos" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "" "¡Felicitaciones, {username}, has alcanzado los siguientes resultados con " @@ -536,6 +554,9 @@ msgstr "¿Quieres descargar las credenciales de login tras la creación de cuent msgid "duplicate" msgstr "Duplicar" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Desde el nivel 2, {echo} yano hace falta. Puedes repetir una respuesta " @@ -760,6 +781,21 @@ msgstr "Voy a trabajar en él un poco más" msgid "image_invalid" msgstr "La imagen que has escogido es inválida." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "input de {ask}" @@ -769,6 +805,9 @@ msgstr "un número" msgid "invalid_class_link" msgstr "Enlace incorrecto para unirse a la clase." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "El código de instructor es inválido. Para ser instructor, por favor mande" @@ -817,9 +856,15 @@ msgstr "Último logro" msgid "last_edited" msgstr "Última edición" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Último ingreso" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Última actualización" @@ -856,6 +901,9 @@ msgstr "Enlace" msgid "list" msgstr "una lista" +msgid "live_dashboard" +msgstr "" + msgid "logged_in_to_share" msgstr "Debe iniciar sesión para guardar y compartir un programa." @@ -1248,6 +1296,9 @@ msgstr "Este programa contiene un error, ¿está seguro de querer compartirlo?" msgid "program_header" msgstr "Mis programas" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Tienes experiencia con programación?" @@ -1380,6 +1431,9 @@ msgstr "Solo los instructores pueden ver clases" msgid "run_code_button" msgstr "Ejecutar código" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Guardar" @@ -1497,6 +1551,12 @@ msgstr "Este estudiante ya está en tu clase." msgid "student_already_invite" msgstr "Este estudiante ya tiene una invitación pendiente." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Este nombre de usuario no existe." @@ -1591,6 +1651,9 @@ msgstr "Hedy - Página de administración" msgid "title_class grid_overview" msgstr "Hedy - Vista general de cuadrícula" +msgid "title_class live_statistics" +msgstr "" + msgid "title_class logs" msgstr "Hedy - Registros" @@ -1711,6 +1774,12 @@ msgstr "Actualizar perfil público" msgid "updating_indicator" msgstr "Actualizando" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "usuario" @@ -1936,3 +2005,4 @@ msgstr "Tu programa" #~ msgid "too_many_attempts" #~ msgstr "Demasiados intentos" + diff --git a/translations/et/LC_MESSAGES/messages.po b/translations/et/LC_MESSAGES/messages.po index e6776d99085..2664f0dedf3 100644 --- a/translations/et/LC_MESSAGES/messages.po +++ b/translations/et/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: et\n" @@ -389,6 +389,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -419,6 +422,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -439,6 +445,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -451,10 +460,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -669,6 +687,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -953,6 +974,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Sinu valitud profiilifoto ei vasta nõuetele." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -965,6 +1001,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1025,10 +1064,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1076,6 +1121,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1553,6 +1601,9 @@ msgstr "Selles programmis on viga. Oled sa kindel, et sa tahad seda jagada?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1721,6 +1772,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Käivita kood" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1874,6 +1928,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1991,6 +2051,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2131,6 +2194,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2365,3 +2434,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/fa/LC_MESSAGES/messages.po b/translations/fa/LC_MESSAGES/messages.po index e00b98ba569..a08091439e1 100644 --- a/translations/fa/LC_MESSAGES/messages.po +++ b/translations/fa/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: fa\n" @@ -395,6 +395,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -425,6 +428,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -445,6 +451,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -457,10 +466,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -679,6 +697,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -969,6 +990,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -981,6 +1017,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1041,10 +1080,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1093,6 +1138,9 @@ msgstr "Log in" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1564,6 +1612,9 @@ msgstr "برنامه خطا داره، مطمئنی میخوای به اشترا msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1736,6 +1787,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1890,6 +1944,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2010,6 +2070,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2163,6 +2226,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Username" @@ -2402,3 +2471,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/fi/LC_MESSAGES/messages.po b/translations/fi/LC_MESSAGES/messages.po index 7471635f2aa..c7138b0cfd0 100644 --- a/translations/fi/LC_MESSAGES/messages.po +++ b/translations/fi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: fi\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -684,6 +702,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -973,6 +994,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -985,6 +1021,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1045,10 +1084,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1097,6 +1142,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1596,6 +1644,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1771,6 +1822,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1925,6 +1979,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2046,6 +2106,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2202,6 +2265,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2431,3 +2500,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/fr/LC_MESSAGES/messages.po b/translations/fr/LC_MESSAGES/messages.po index f4831931935..ad6c4987e93 100644 --- a/translations/fr/LC_MESSAGES/messages.po +++ b/translations/fr/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-07-19 04:06+0000\n" "Last-Translator: Orestis \n" "Language: fr\n" @@ -327,6 +327,9 @@ msgstr "par" msgid "cancel" msgstr "Annuler" +msgid "cant_parse_exception" +msgstr "" + msgid "catch_index_exception" msgstr "" "Tu as essayé d'accéder à la liste {list_name}, celle-ci est vide ou sans " @@ -350,6 +353,9 @@ msgstr "Tu es déjà un élève de la classe" msgid "class_customize_success" msgstr "Classe modifiée avec succès." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Historique" @@ -365,6 +371,9 @@ msgstr "Le nom de classe n'est pas valide." msgid "class_name_prompt" msgstr "Entrer le nom de la nouvelle classe" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Statistiques de la classe" @@ -374,9 +383,18 @@ msgstr "Fermer" msgid "comma" msgstr "une virgule" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Commandes" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "Félicitations, {username}, tu as fini Hedy !" @@ -541,6 +559,9 @@ msgstr "Veux-tu télécharger les identifiants après la création des comptes ? msgid "duplicate" msgstr "Dupliquer" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "À partir du niveau 2 echo n'est plus nécessaire. Tu peux répéter un " @@ -768,6 +789,21 @@ msgstr "Je vais le travailler encore un peu" msgid "image_invalid" msgstr "L’image que vous avez choisie n’est pas valide." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "saisie de {ask}" @@ -777,6 +813,9 @@ msgstr "un nombre" msgid "invalid_class_link" msgstr "Lien non valide pour rejoindre la classe." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Le code d’invitation d’enseignant n’est pas valide. Pour devenir " @@ -823,9 +862,15 @@ msgstr "Dernier exploit gagné" msgid "last_edited" msgstr "Dernière modification" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Dernière connexion" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Dernière mise à jour" @@ -862,6 +907,9 @@ msgstr "Lien" msgid "list" msgstr "une liste" +msgid "live_dashboard" +msgstr "" + msgid "logged_in_to_share" msgstr "Un compte est nécessaire pour sauvegarder et partager un programme." @@ -1258,6 +1306,9 @@ msgstr "" msgid "program_header" msgstr "Mes programmes" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Avez-vous de l'expérience en programmation ?" @@ -1390,6 +1441,9 @@ msgstr "Seulement les professeurs peuvent consulter les classes" msgid "run_code_button" msgstr "Exécuter le code" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Sauvegarder" @@ -1507,6 +1561,12 @@ msgstr "L'élève est déjà dans votre classe." msgid "student_already_invite" msgstr "L'élève a déjà une invitation en attente." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Le pseudo n'existe pas." @@ -1602,6 +1662,9 @@ msgstr "Hedy – Page d'administration" msgid "title_class grid_overview" msgstr "Hedy - Vue d'ensemble de la grille" +msgid "title_class live_statistics" +msgstr "" + msgid "title_class logs" msgstr "Hedy - Logs" @@ -1723,6 +1786,12 @@ msgstr "Modifier le profil public" msgid "updating_indicator" msgstr "Mise à jour en cours" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "personne" @@ -1945,3 +2014,4 @@ msgstr "Ton programme" #~ msgid "too_many_attempts" #~ msgstr "Trop d'essais" + diff --git a/translations/fy/LC_MESSAGES/messages.po b/translations/fy/LC_MESSAGES/messages.po index ca7c46dcbfc..560c3d1c0d2 100644 --- a/translations/fy/LC_MESSAGES/messages.po +++ b/translations/fy/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: fy\n" @@ -376,6 +376,9 @@ msgstr "troch" msgid "cancel" msgstr "Ofbrekke" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -404,6 +407,9 @@ msgstr "Dochst al mei oan de klas" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Lêst ynlogd" @@ -423,6 +429,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Graach de namme fan de klas ynfiere" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -434,10 +443,19 @@ msgstr "Sluiten" msgid "comma" msgstr "in komma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -645,6 +663,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -925,6 +946,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -937,6 +973,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -996,9 +1035,15 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Lêst ynlogd" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1046,6 +1091,9 @@ msgstr "Log yn" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1487,6 +1535,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "Myn programma's" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Hasto al ris programmearre?" @@ -1650,6 +1701,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Koade draaie" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1790,6 +1844,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1909,6 +1969,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2059,6 +2122,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Brûkersnamme" @@ -2267,3 +2336,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/he/LC_MESSAGES/messages.po b/translations/he/LC_MESSAGES/messages.po index ddd7af0e810..ab8db87ffd1 100644 --- a/translations/he/LC_MESSAGES/messages.po +++ b/translations/he/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: he\n" @@ -376,6 +376,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -405,6 +408,9 @@ msgstr "אתם כבר תלמידים בכיתה הזו" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -425,6 +431,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -436,9 +445,18 @@ msgstr "Sluiten" msgid "comma" msgstr "פסיק" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "פקודות" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -651,6 +669,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -932,6 +953,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "התמונה שבחרתם לא תקינה." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -944,6 +980,9 @@ msgstr "מספר" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "קוד ההזמנה למורה לא תקין. כדי להפוך למורה, כתבו ל-hello@hedy.org." @@ -1001,10 +1040,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1051,6 +1096,9 @@ msgstr "Link" msgid "list" msgstr "רשימה" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1527,6 +1575,9 @@ msgstr "התוכנית מכילה שגיאה. לפרסם אותה בכל זאת? msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1698,6 +1749,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "הרץ קוד" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1848,6 +1902,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1967,6 +2027,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2111,6 +2174,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2344,3 +2413,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/hi/LC_MESSAGES/messages.po b/translations/hi/LC_MESSAGES/messages.po index eaa5a4450cb..9cf691b2b5b 100644 --- a/translations/hi/LC_MESSAGES/messages.po +++ b/translations/hi/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: hi\n" @@ -348,6 +348,9 @@ msgstr "से" msgid "cancel" msgstr "रद्द करें" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -375,6 +378,9 @@ msgstr "आप पहले से ही कक्षा के छात्र msgid "class_customize_success" msgstr "कक्षा को सफलतापूर्वक अनुकूलित किया गया।" +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "आखरी लॉगइन" @@ -392,6 +398,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "कृपया कक्षा का नाम दर्ज करें" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "कक्षा के आँकड़े दिखाएँ" @@ -402,10 +411,19 @@ msgstr "Sluiten" msgid "comma" msgstr "एक अल्पविराम" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -597,6 +615,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "स्तर 2 में शुरू करने पर अब echo की आवश्यकता नहीं है। आप एक उत्तर को ask" @@ -859,6 +880,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "आपकी फोटो अमान्य है" +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "ask से input" @@ -868,6 +904,9 @@ msgstr "एक संख्या" msgid "invalid_class_link" msgstr "कक्षा में शामिल होने के लिए अमान्य लिंक|" +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "िक्षक आमंत्रण कोड अमान्य है| शिक्षक बनने के लिए, hello@hedy.org पर संपर्क" @@ -919,9 +958,15 @@ msgstr "पिछली अर्जित उपलब्धि" msgid "last_edited" msgstr "पिछला संपादित" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "आखरी लॉगइन" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "आखिरी अपडेट" @@ -964,6 +1009,9 @@ msgstr "लॉगिन" msgid "list" msgstr "एक सूची" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1383,6 +1431,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "मेरे प्रोग्राम्स" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "क्या आपके पास प्रोग्रामिंग का अनुभव है?" @@ -1535,6 +1586,9 @@ msgstr "केवल शिक्षक ही कक्षाएं पुन msgid "run_code_button" msgstr "कोड को चलाएं" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "सहेजें" @@ -1667,6 +1721,12 @@ msgstr "यह छात्र पहले से ही आपकी कक् msgid "student_already_invite" msgstr "इस छात्र के पास पहले से ही एक आमंत्रण लंबित है" +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "यह उपयोगकर्ता नाम मौजूद नहीं है" @@ -1777,6 +1837,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -1924,6 +1987,12 @@ msgstr "सार्वजनिक प्रोफ़ाइल अद्यत msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "उपयोगकर्ता नाम" @@ -2128,3 +2197,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/hu/LC_MESSAGES/messages.po b/translations/hu/LC_MESSAGES/messages.po index 4c1ed9ecb3d..d9d3fc1c999 100644 --- a/translations/hu/LC_MESSAGES/messages.po +++ b/translations/hu/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: hu\n" @@ -379,6 +379,9 @@ msgstr "by" msgid "cancel" msgstr "Mégsem" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -407,6 +410,9 @@ msgstr "Már az osztály tagja vagy" msgid "class_customize_success" msgstr "Az osztály beállításait mentettük." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Utolsó belépés" @@ -426,6 +432,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Kérlek add meg az osztály nevét" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -437,10 +446,19 @@ msgstr "Sluiten" msgid "comma" msgstr "vessző" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -648,6 +666,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -931,6 +952,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "kérdésre adott válasz" @@ -943,6 +979,9 @@ msgstr "szám" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1001,9 +1040,15 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Utolsó belépés" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1050,6 +1095,9 @@ msgstr "Belépés" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1489,6 +1537,9 @@ msgstr "A programodban hiba van, biztos meg szeretnéd osztani?" msgid "program_header" msgstr "Programjaim" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1652,6 +1703,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Kód futtatása" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1792,6 +1846,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1911,6 +1971,9 @@ msgstr "Hedy - Admin oldal" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Csatlakozás osztályhoz" @@ -2063,6 +2126,12 @@ msgstr "Nyilvános profil frissítése" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Felhasználónév" @@ -2272,3 +2341,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Túl sokszor próbálkoztál" + diff --git a/translations/id/LC_MESSAGES/messages.po b/translations/id/LC_MESSAGES/messages.po index 5e84ec8a5e3..9f60b0ae64f 100644 --- a/translations/id/LC_MESSAGES/messages.po +++ b/translations/id/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: id\n" @@ -379,6 +379,9 @@ msgstr "dengan" msgid "cancel" msgstr "Batal" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -407,6 +410,9 @@ msgstr "Kamu sudah terdaftar sebelumnya di kelas ini" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Waktu masuk terakhir" @@ -426,6 +432,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Silakan masukan nama dari kelas" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -437,10 +446,19 @@ msgstr "Sluiten" msgid "comma" msgstr "koma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -648,6 +666,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -928,6 +949,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -940,6 +976,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -998,9 +1037,15 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Waktu masuk terakhir" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1046,6 +1091,9 @@ msgstr "Masuk" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1483,6 +1531,9 @@ msgstr "Program ini berisi error, anda yakin ingin membagikannya?" msgid "program_header" msgstr "Program-program saya" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Apakah kamu punya pengalaman menulis program?" @@ -1645,6 +1696,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Jalankan kode" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1786,6 +1840,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1903,6 +1963,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2051,6 +2114,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2261,3 +2330,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/it/LC_MESSAGES/messages.po b/translations/it/LC_MESSAGES/messages.po index 13c8127ebfa..bb9e83db061 100644 --- a/translations/it/LC_MESSAGES/messages.po +++ b/translations/it/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: it\n" @@ -380,6 +380,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -409,6 +412,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -429,6 +435,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -440,10 +449,19 @@ msgstr "Sluiten" msgid "comma" msgstr "una virgola" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -655,6 +673,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -938,6 +959,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -950,6 +986,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1009,10 +1048,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1059,6 +1104,9 @@ msgstr "Accedi" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1514,6 +1562,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "I miei programmi" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1680,6 +1731,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Eseguire codice" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1824,6 +1878,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1944,6 +2004,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2097,6 +2160,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Nome utente" @@ -2307,3 +2376,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/ja/LC_MESSAGES/messages.po b/translations/ja/LC_MESSAGES/messages.po index e1f2a3c3df1..4f11e3f462a 100644 --- a/translations/ja/LC_MESSAGES/messages.po +++ b/translations/ja/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: ja\n" @@ -399,6 +399,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -429,6 +432,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -449,6 +455,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -461,10 +470,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "{username}, Hedyを修了しておめでとうございます!" @@ -682,6 +700,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -975,6 +996,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -987,6 +1023,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1047,10 +1086,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1098,6 +1143,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1577,6 +1625,9 @@ msgstr "このプログラムにはエラーがあります。本当にシェア msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1751,6 +1802,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1905,6 +1959,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2025,6 +2085,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2165,6 +2228,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2399,3 +2468,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/kmr/LC_MESSAGES/messages.po b/translations/kmr/LC_MESSAGES/messages.po index 72f08e70c8e..57136b3e614 100644 --- a/translations/kmr/LC_MESSAGES/messages.po +++ b/translations/kmr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: kmr\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "" @@ -686,6 +704,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -976,6 +997,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -988,6 +1024,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1048,10 +1087,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1100,6 +1145,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1600,6 +1648,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1775,6 +1826,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1929,6 +1983,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2050,6 +2110,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2206,6 +2269,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2427,3 +2496,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/ko/LC_MESSAGES/messages.po b/translations/ko/LC_MESSAGES/messages.po index 1489efaeffe..57a2359793a 100644 --- a/translations/ko/LC_MESSAGES/messages.po +++ b/translations/ko/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: ko\n" @@ -399,6 +399,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -429,6 +432,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -449,6 +455,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -461,10 +470,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -683,6 +701,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -972,6 +993,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -984,6 +1020,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1044,10 +1083,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1096,6 +1141,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1584,6 +1632,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1759,6 +1810,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1913,6 +1967,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2034,6 +2094,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2190,6 +2253,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2425,3 +2494,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/nb_NO/LC_MESSAGES/messages.po b/translations/nb_NO/LC_MESSAGES/messages.po index adf39eddc63..d3987daecaa 100644 --- a/translations/nb_NO/LC_MESSAGES/messages.po +++ b/translations/nb_NO/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: nb_NO\n" @@ -336,6 +336,9 @@ msgstr "av" msgid "cancel" msgstr "Avbryt" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -362,6 +365,9 @@ msgstr "Du er allerede elev i denne klassen" msgid "class_customize_success" msgstr "Tilpassningene ble lagret." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Forrige innlogging" @@ -378,6 +384,9 @@ msgstr "Klassenavnet er ugyldig." msgid "class_name_prompt" msgstr "Vennligst oppgi navnet på klassen" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Statistikk over klassen" @@ -388,10 +397,19 @@ msgstr "Sluiten" msgid "comma" msgstr "et komma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -578,6 +596,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Fra nivå 2 er ikke ekko nødvendig lenger. Du kan skrive ut svaret på et " @@ -837,6 +858,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Bildet du valgte er ugyldig." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "inndata fra spør-kommandoen" @@ -846,6 +882,9 @@ msgstr "et tall" msgid "invalid_class_link" msgstr "Ugyldig lenke for å bli med i klassen." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Invitasjonskoden til å bli lærer er ugyldig. For å bli en Hedy-lærer, ta " @@ -895,9 +934,15 @@ msgstr "Nyeste prestasjon" msgid "last_edited" msgstr "Sist endret" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Forrige innlogging" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Sist oppdatert" @@ -938,6 +983,9 @@ msgstr "Logg inn" msgid "list" msgstr "en liste" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1339,6 +1387,9 @@ msgstr "Dette programmet inneholder en feil, er du sikker på at du vil dele det msgid "program_header" msgstr "Mine programmer" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Har du programmeringserfaring?" @@ -1483,6 +1534,9 @@ msgstr "Kun lærere kan hente info om klasser" msgid "run_code_button" msgstr "Kjør kode" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Lagre" @@ -1611,6 +1665,12 @@ msgstr "Denne eleven er allerede del av klassen din." msgid "student_already_invite" msgstr "Denne eleven har allerede fått en invitasjon. Har de glemt å svare?" +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Dette brukernavnet eksisterer ikke." @@ -1715,6 +1775,9 @@ msgstr "Hedy - Administrator side" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Bli med i klassen" @@ -1840,6 +1903,12 @@ msgstr "Oppdater offentlig profil" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Brukernavn" @@ -2078,3 +2147,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/nl/LC_MESSAGES/messages.po b/translations/nl/LC_MESSAGES/messages.po index 0464dae4043..cc3eb3336ca 100644 --- a/translations/nl/LC_MESSAGES/messages.po +++ b/translations/nl/LC_MESSAGES/messages.po @@ -7,10 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-06-21 09:55+0200\n" -"PO-Revision-Date: 2023-08-23 23:29+0000\n" -"Last-Translator: Felienne Hermans \n" -"Language-Team: nl \n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" +"PO-Revision-Date: 2023-06-28 04:20+0000\n" +"Last-Translator: Jeroen Heijmans \n" "Language: nl\n" "Language-Team: nl \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" @@ -329,6 +328,9 @@ msgstr "door" msgid "cancel" msgstr "Afbreken" +msgid "cant_parse_exception" +msgstr "" + msgid "catch_index_exception" msgstr "" "Je hebt geprobeerd de lijst {list_name} te gebruiken, maar deze is óf " @@ -352,6 +354,9 @@ msgstr "Je zit al in deze klas" msgid "class_customize_success" msgstr "Klas succesvol gepersonaliseerd." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Logs" @@ -367,6 +372,9 @@ msgstr "Deze klasnaam is ongeldig." msgid "class_name_prompt" msgstr "Vul de naam in van de nieuwe klas" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Klas statistieken" @@ -376,9 +384,19 @@ msgstr "Close" msgid "comma" msgstr "een komma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Commando's" +msgid "common_errors" +msgstr "" + +#, fuzzy msgid "congrats_message" msgstr "" "Gefeliciteerd, {username}, je hebt tot nu toe de volgende resultaten " @@ -545,6 +563,9 @@ msgstr "Wil je de login gegevens downloaden na het aanmaken van de accounts?" msgid "duplicate" msgstr "Dupliceren" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Vanaf level 2 heb je geen {echo} meer nodig! Je kunt een variabele " @@ -777,6 +798,21 @@ msgstr "Ik werk er nog even aan verder" msgid "image_invalid" msgstr "Jouw gekozen profielfoto is ongeldig." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "invoer van een ask" @@ -786,6 +822,9 @@ msgstr "een getal" msgid "invalid_class_link" msgstr "Ongeldige klassenlink." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Deze leerkrachtenuitnodigingscode is niet geldig. Als je een nieuwe " @@ -832,9 +871,15 @@ msgstr "Laatst gehaalde badge" msgid "last_edited" msgstr "Laatst bewerkt" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Laatste login" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Laatste update" @@ -872,6 +917,9 @@ msgstr "Link" msgid "list" msgstr "een lijstje" +msgid "live_dashboard" +msgstr "" + msgid "logged_in_to_share" msgstr "Je moet ingelogd zijn om een programma op te slaan en te delen." @@ -1261,6 +1309,9 @@ msgstr "Dit programma bevat een foutje, weet je zeker dat je hem wilt delen?" msgid "program_header" msgstr "Mijn programma's" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Heb jij al eerder geprogrammeerd?" @@ -1394,6 +1445,9 @@ msgstr "Alleen leerkrachten mogen klassen openen" msgid "run_code_button" msgstr "Voer de code uit" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Opslaan" @@ -1513,6 +1567,12 @@ msgstr "Deze leerling zit al in jouw klas." msgid "student_already_invite" msgstr "Deze leerling heeft al een openstaande uitnodiging." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Deze gebruikersnaam bestaat niet." @@ -1607,6 +1667,9 @@ msgstr "Hedy - Administrator pagina" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Logs" @@ -1731,6 +1794,12 @@ msgstr "Openbaar profiel opslaan" msgid "updating_indicator" msgstr "Avonturen worden opgeslagen" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "gebruiker" @@ -1949,3 +2018,4 @@ msgstr "Jouw programma" #~ msgid "too_many_attempts" #~ msgstr "Te veel pogingen" + diff --git a/translations/pa_PK/LC_MESSAGES/messages.po b/translations/pa_PK/LC_MESSAGES/messages.po index dd29045fb49..2be49e077c8 100644 --- a/translations/pa_PK/LC_MESSAGES/messages.po +++ b/translations/pa_PK/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: pa_PK\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -684,6 +702,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -972,6 +993,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -984,6 +1020,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1044,10 +1083,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1096,6 +1141,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1594,6 +1642,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1769,6 +1820,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1922,6 +1976,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2043,6 +2103,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2199,6 +2262,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2431,3 +2500,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/pl/LC_MESSAGES/messages.po b/translations/pl/LC_MESSAGES/messages.po index e0fc3fe7d65..b8b5e0f95b6 100644 --- a/translations/pl/LC_MESSAGES/messages.po +++ b/translations/pl/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-07-15 09:53+0000\n" "Last-Translator: Eryk Michalak \n" "Language: pl\n" @@ -317,6 +317,9 @@ msgstr "przez" msgid "cancel" msgstr "Anuluj" +msgid "cant_parse_exception" +msgstr "" + msgid "catch_index_exception" msgstr "" "Próbowałeś dostać się do elementu listy {list_name}, ale jest ona pusta " @@ -340,6 +343,9 @@ msgstr "Już jesteś uczeniem tej klasy" msgid "class_customize_success" msgstr "Personalizacje zostaly zapisane pomyślnie." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Logi" @@ -355,6 +361,9 @@ msgstr "Ta nazwa klasy jest nieprawidłowa." msgid "class_name_prompt" msgstr "Podaj proszę nazwę nowej klasy" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Statystyki klasy" @@ -364,9 +373,18 @@ msgstr "Zamknij" msgid "comma" msgstr "przecinek" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Polecenia" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "Gratulacje, {username}, ukończyłeś Hedy!" @@ -531,6 +549,9 @@ msgstr "Czy chcesz pobrać dane logowania po utworzeniu kont?" msgid "duplicate" msgstr "Duplikuj" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Od poziomu 2, {echo} nie jest potrzebne. Teraz możesz powtarzać odpowiedź" @@ -756,6 +777,21 @@ msgstr "Jeszcze nad nim popracuję" msgid "image_invalid" msgstr "Wybrany obraz jest niewłaściwy." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "wejście z {ask}" @@ -765,6 +801,9 @@ msgstr "liczba" msgid "invalid_class_link" msgstr "Niepoprawny link dołączenia do klasy." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Kod zaproszenia nauczyciela jest niewłaściwy. Aby zostać nauczycielem, " @@ -811,9 +850,15 @@ msgstr "Ostatnie zdobyte osiągnięcie" msgid "last_edited" msgstr "Ostatnio edytowano" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Ostatnie logowanie" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Ostatnia aktualizacja" @@ -850,6 +895,9 @@ msgstr "Link" msgid "list" msgstr "lista" +msgid "live_dashboard" +msgstr "" + msgid "logged_in_to_share" msgstr "Musisz się zalogować aby zapisać i udostępnić program." @@ -1242,6 +1290,9 @@ msgstr "Ten program zawiera błędy, czy na pewno chcesz go udostępnić?" msgid "program_header" msgstr "Moje programy" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Czy masz doświadczenie z programowaniem?" @@ -1375,6 +1426,9 @@ msgstr "Tylko uczniowie mogą pobrać listę klas" msgid "run_code_button" msgstr "Uruchom kod" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Zapisz" @@ -1492,6 +1546,12 @@ msgstr "Ten uczeń już jest w Twojej klasie." msgid "student_already_invite" msgstr "Ten uczeń został już zaproszony do klasy." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Ten użytkownik nie został znaleziony w systemie." @@ -1586,6 +1646,9 @@ msgstr "Hedy - Strona Administratora" msgid "title_class grid_overview" msgstr "Hedy - Przegląd siatki" +msgid "title_class live_statistics" +msgstr "" + msgid "title_class logs" msgstr "Hedy - Dzienniki" @@ -1707,6 +1770,12 @@ msgstr "Zaktualizuj profil publiczny" msgid "updating_indicator" msgstr "Aktualizowanie" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "Nazwa użytkownika" @@ -1930,3 +1999,4 @@ msgstr "Twój program" #~ msgid "too_many_attempts" #~ msgstr "Przekroczyłeś dozwoloną ilość prób" + diff --git a/translations/pt_BR/LC_MESSAGES/messages.po b/translations/pt_BR/LC_MESSAGES/messages.po index 848e7464aa6..c4948b9184a 100644 --- a/translations/pt_BR/LC_MESSAGES/messages.po +++ b/translations/pt_BR/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-07-01 03:41+0000\n" "Last-Translator: Lucas Araujo \n" "Language: pt_BR\n" @@ -374,6 +374,9 @@ msgstr "por" msgid "cancel" msgstr "Cancelar" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -402,6 +405,9 @@ msgstr "Você ja faz parte da turma" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Último login" @@ -421,6 +427,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Por favor, insira o nome da turma" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -432,10 +441,19 @@ msgstr "Sluiten" msgid "comma" msgstr "uma vírgula" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -643,6 +661,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -923,6 +944,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -935,6 +971,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -993,9 +1032,15 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Último login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1042,6 +1087,9 @@ msgstr "Log in" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1479,6 +1527,9 @@ msgstr "Esse programa contém um erro, você tem certeza que deseja compartilha- msgid "program_header" msgstr "Meus programas" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Você tem experiência em programação?" @@ -1642,6 +1693,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Executar código" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1782,6 +1836,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1901,6 +1961,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2050,6 +2113,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Usuário" @@ -2259,3 +2328,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/pt_PT/LC_MESSAGES/messages.po b/translations/pt_PT/LC_MESSAGES/messages.po index ec1f84dc172..2c3321faf72 100644 --- a/translations/pt_PT/LC_MESSAGES/messages.po +++ b/translations/pt_PT/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: pt_PT\n" @@ -378,6 +378,9 @@ msgstr "por" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -407,6 +410,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -427,6 +433,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -438,10 +447,19 @@ msgstr "Sluiten" msgid "comma" msgstr "uma vírgula" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -651,6 +669,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -934,6 +955,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -946,6 +982,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1004,10 +1043,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1054,6 +1099,9 @@ msgstr "Inicia sessão" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1502,6 +1550,9 @@ msgstr "Este programa contém um erro, tens a certeza que queres partilhar?" msgid "program_header" msgstr "Os meus programas" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Tens alguma experiência em programação?" @@ -1667,6 +1718,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Executa o código" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1808,6 +1862,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1928,6 +1988,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2078,6 +2141,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Utilizador" @@ -2287,3 +2356,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/ro/LC_MESSAGES/messages.po b/translations/ro/LC_MESSAGES/messages.po index 5a5b8fde4c3..a4211c1988e 100644 --- a/translations/ro/LC_MESSAGES/messages.po +++ b/translations/ro/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: ro\n" @@ -401,6 +401,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -431,6 +434,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -451,6 +457,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -463,10 +472,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -685,6 +703,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -974,6 +995,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -986,6 +1022,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1046,10 +1085,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1098,6 +1143,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1594,6 +1642,9 @@ msgstr "Acest program contine erori, ești sigur că vrei să-l distribui?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1769,6 +1820,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1923,6 +1977,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2043,6 +2103,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2199,6 +2262,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2415,3 +2484,4 @@ msgstr "Programul tău" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/ru/LC_MESSAGES/messages.po b/translations/ru/LC_MESSAGES/messages.po index 9e015a4415b..b095a93950d 100644 --- a/translations/ru/LC_MESSAGES/messages.po +++ b/translations/ru/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-27 15:52+0000\n" "Last-Translator: Evgeniy Khramov \n" "Language: ru\n" @@ -331,6 +331,9 @@ msgstr "от" msgid "cancel" msgstr "Отменить" +msgid "cant_parse_exception" +msgstr "" + msgid "catch_index_exception" msgstr "" "Вы пытались получить доступ к списку {list_name}, но он либо пуст, либо в" @@ -354,6 +357,9 @@ msgstr "Вы уже являетесь учеником класса" msgid "class_customize_success" msgstr "Класс успешно настроен." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Журналы" @@ -369,6 +375,9 @@ msgstr "Имя этого класса недействительно." msgid "class_name_prompt" msgstr "Пожалуйста, введите название нового класса" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Статистика класса" @@ -378,9 +387,18 @@ msgstr "Закрыть" msgid "comma" msgstr "запятая" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Команды" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "Поздравляем, {username}, вы завершили Hedy!" @@ -549,6 +567,9 @@ msgstr "" msgid "duplicate" msgstr "Дубликат" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Начиная со второго уровня {echo} больше не нужен. Теперь вы можете " @@ -775,6 +796,21 @@ msgstr "Я еще немного поработаю над этим" msgid "image_invalid" msgstr "Картинка, которую вы выбрали, не подходит." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "ввод от {ask}" @@ -784,6 +820,9 @@ msgstr "число" msgid "invalid_class_link" msgstr "Недействительная ссылка для присоединения к классу." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Код приглашения учителя недействителен. Чтобы стать учителем, обратитесь " @@ -832,9 +871,15 @@ msgstr "Последнее полученное достижение" msgid "last_edited" msgstr "Последнее редактирование" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Последний вход в систему" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Последнее обновление" @@ -873,6 +918,9 @@ msgstr "Ссылка" msgid "list" msgstr "список" +msgid "live_dashboard" +msgstr "" + msgid "logged_in_to_share" msgstr "Вы должны войти в систему, чтобы сохранить и поделиться программой." @@ -1265,6 +1313,9 @@ msgstr "Эта программа содержит ошибку. Вы увере msgid "program_header" msgstr "Мои программы" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Есть ли у вас опыт программирования?" @@ -1398,6 +1449,9 @@ msgstr "Только преподаватели могут получать кл msgid "run_code_button" msgstr "Выполнить код" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Сохранить" @@ -1515,6 +1569,12 @@ msgstr "Этот ученик уже учится в вашем классе." msgid "student_already_invite" msgstr "У этого студента уже есть ожидающее приглашение." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Этого имени пользователя не существует." @@ -1611,6 +1671,9 @@ msgstr "Hedy - Страница администратора" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + msgid "title_class logs" msgstr "Программы" @@ -1732,6 +1795,12 @@ msgstr "Обновление публичного профиля" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "пользователь" @@ -1957,3 +2026,4 @@ msgstr "Ваша программа" #~ msgid "too_many_attempts" #~ msgstr "Слишком много попыток" + diff --git a/translations/sq/LC_MESSAGES/messages.po b/translations/sq/LC_MESSAGES/messages.po index 007588ab589..51d78fd6bb8 100644 --- a/translations/sq/LC_MESSAGES/messages.po +++ b/translations/sq/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: sq\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -684,6 +702,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -973,6 +994,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -985,6 +1021,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1045,10 +1084,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1097,6 +1142,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1596,6 +1644,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1771,6 +1822,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1925,6 +1979,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2046,6 +2106,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2202,6 +2265,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2434,3 +2503,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/sr/LC_MESSAGES/messages.po b/translations/sr/LC_MESSAGES/messages.po index abf0a2b8b0e..f24ff313e3e 100644 --- a/translations/sr/LC_MESSAGES/messages.po +++ b/translations/sr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: sr\n" @@ -401,6 +401,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -431,6 +434,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -451,6 +457,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -463,10 +472,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "" @@ -687,6 +705,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -976,6 +997,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -988,6 +1024,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1048,10 +1087,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1100,6 +1145,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1599,6 +1647,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1774,6 +1825,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1928,6 +1982,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2049,6 +2109,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2205,6 +2268,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2426,3 +2495,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/sv/LC_MESSAGES/messages.po b/translations/sv/LC_MESSAGES/messages.po index 5bcfc80bed2..3c3ffa74d45 100644 --- a/translations/sv/LC_MESSAGES/messages.po +++ b/translations/sv/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-26 04:33+0000\n" "Last-Translator: Robert Storlind \n" "Language: sv\n" @@ -325,6 +325,9 @@ msgstr "av" msgid "cancel" msgstr "Avbryt" +msgid "cant_parse_exception" +msgstr "" + msgid "catch_index_exception" msgstr "" "Du försökte komma åt listan {list_name} men den är antingen tom eller så " @@ -348,6 +351,9 @@ msgstr "Du är redan elev i klassen" msgid "class_customize_success" msgstr "Klassen har anpassats." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Loggar" @@ -363,6 +369,9 @@ msgstr "Klassnamnet är ogiltigt." msgid "class_name_prompt" msgstr "Ange namnet på den nya klassen" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Klasstatistik" @@ -372,9 +381,18 @@ msgstr "Stäng" msgid "comma" msgstr "ett kommatecken" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Kommandon" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "Grattis, {username}, du har nått följande resultat med Hedy!" @@ -537,6 +555,9 @@ msgstr "Vill du ladda ner inloggningsuppgifterna när kontona har skapats?" msgid "duplicate" msgstr "Duplicera" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Från och med nivå 2 behövs inte längre {echo}. Du kan nu istället upprepa" @@ -761,6 +782,21 @@ msgstr "Jag jobbar på det lite till" msgid "image_invalid" msgstr "Bilden du valde är ogiltig." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "indata från {ask}" @@ -770,6 +806,9 @@ msgstr "ett tal" msgid "invalid_class_link" msgstr "Ogiltig länk för att gå med i klassen." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Koden för lärarinbjudan är ogiltig. För att bli lärare, kontakta " @@ -816,9 +855,15 @@ msgstr "Senast uppnådda prestation" msgid "last_edited" msgstr "Senast ändrad" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Senaste inloggning" +msgid "last_program" +msgstr "" + msgid "last_update" msgstr "Senaste uppdatering" @@ -855,6 +900,9 @@ msgstr "Länk" msgid "list" msgstr "en lista" +msgid "live_dashboard" +msgstr "" + msgid "logged_in_to_share" msgstr "Du måste vara inloggad för att spara och dela ett program." @@ -1246,6 +1294,9 @@ msgstr "" msgid "program_header" msgstr "Mina program" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "Har du erfarenhet av programmering?" @@ -1378,6 +1429,9 @@ msgstr "Bara lärare kan hämta klasser" msgid "run_code_button" msgstr "Kör kod" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Spara" @@ -1491,6 +1545,12 @@ msgstr "Den här eleven går redan i din klass." msgid "student_already_invite" msgstr "Eleven har redan en väntande inbjudan." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "Användarnamnet finns inte." @@ -1585,6 +1645,9 @@ msgstr "Hedy - Administratörssida" msgid "title_class grid_overview" msgstr "Hedy – Översikt som rutnät" +msgid "title_class live_statistics" +msgstr "" + msgid "title_class logs" msgstr "Hedy – Loggar" @@ -1703,6 +1766,12 @@ msgstr "Uppdatera offentlig profil" msgid "updating_indicator" msgstr "Uppdaterar" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "användare" @@ -1913,3 +1982,4 @@ msgstr "Ditt program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/sw/LC_MESSAGES/messages.po b/translations/sw/LC_MESSAGES/messages.po index 89a36c9e4ba..42a718810e2 100644 --- a/translations/sw/LC_MESSAGES/messages.po +++ b/translations/sw/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: sw\n" @@ -382,6 +382,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -411,6 +414,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -431,6 +437,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -442,10 +451,19 @@ msgstr "Sluiten" msgid "comma" msgstr "koma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -657,6 +675,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -941,6 +962,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -953,6 +989,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1011,10 +1050,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1061,6 +1106,9 @@ msgstr "Login" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1511,6 +1559,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "Programu zangu" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1677,6 +1728,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Endesha programu" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1817,6 +1871,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1937,6 +1997,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2089,6 +2152,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Jina la mtumiaji" @@ -2300,3 +2369,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/te/LC_MESSAGES/messages.po b/translations/te/LC_MESSAGES/messages.po index 385d3772cd5..fa99e4fbaba 100644 --- a/translations/te/LC_MESSAGES/messages.po +++ b/translations/te/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: te\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -684,6 +702,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -973,6 +994,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -985,6 +1021,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1045,10 +1084,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1097,6 +1142,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1596,6 +1644,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1771,6 +1822,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1925,6 +1979,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2046,6 +2106,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2202,6 +2265,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2431,3 +2500,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/th/LC_MESSAGES/messages.po b/translations/th/LC_MESSAGES/messages.po index 0bf4de97f73..84f21c47fa4 100644 --- a/translations/th/LC_MESSAGES/messages.po +++ b/translations/th/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: th\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -684,6 +702,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -973,6 +994,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -985,6 +1021,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1045,10 +1084,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1097,6 +1142,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1596,6 +1644,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1771,6 +1822,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1925,6 +1979,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2046,6 +2106,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2201,6 +2264,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2433,3 +2502,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/tl/LC_MESSAGES/messages.po b/translations/tl/LC_MESSAGES/messages.po index da5c1d7b6f2..ce137a1ceda 100644 --- a/translations/tl/LC_MESSAGES/messages.po +++ b/translations/tl/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: tl\n" @@ -401,6 +401,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -431,6 +434,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -451,6 +457,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -463,10 +472,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -685,6 +703,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -974,6 +995,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -986,6 +1022,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1046,10 +1085,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1098,6 +1143,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1597,6 +1645,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1772,6 +1823,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1926,6 +1980,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2047,6 +2107,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2203,6 +2266,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2432,3 +2501,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/tn/LC_MESSAGES/messages.po b/translations/tn/LC_MESSAGES/messages.po index 5ef7e01e762..447e6393051 100644 --- a/translations/tn/LC_MESSAGES/messages.po +++ b/translations/tn/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: tn\n" @@ -398,6 +398,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -428,6 +431,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -448,6 +454,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -460,10 +469,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -682,6 +700,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -971,6 +992,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -983,6 +1019,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1043,10 +1082,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1095,6 +1140,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1583,6 +1631,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1758,6 +1809,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1912,6 +1966,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2033,6 +2093,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2189,6 +2252,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2424,3 +2493,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/tr/LC_MESSAGES/messages.po b/translations/tr/LC_MESSAGES/messages.po index 0ac8ed1537d..8814dbedccc 100644 --- a/translations/tr/LC_MESSAGES/messages.po +++ b/translations/tr/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:11+0000\n" "Last-Translator: Anonymous \n" "Language: tr\n" @@ -395,6 +395,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -425,6 +428,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Last login" @@ -445,6 +451,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Show class statistics" @@ -457,10 +466,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -678,6 +696,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -970,6 +991,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Your chosen image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -982,6 +1018,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1042,10 +1081,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1094,6 +1139,9 @@ msgstr "Oturum aç" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1563,6 +1611,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1738,6 +1789,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1892,6 +1946,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2013,6 +2073,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Hedy - Join class" @@ -2167,6 +2230,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "Kullanıcı adı" @@ -2381,3 +2450,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/uk/LC_MESSAGES/messages.po b/translations/uk/LC_MESSAGES/messages.po index 362e170d880..d2200016c69 100644 --- a/translations/uk/LC_MESSAGES/messages.po +++ b/translations/uk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: uk\n" @@ -336,6 +336,9 @@ msgstr "by" msgid "cancel" msgstr "Скасувати" +msgid "cant_parse_exception" +msgstr "" + msgid "catch_index_exception" msgstr "" "Ви намагалися отримати доступ до списку {list_name}, але він або " @@ -359,6 +362,9 @@ msgstr "Ви вже є учнем класу" msgid "class_customize_success" msgstr "Клас успішно налаштовано." +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "Логи" @@ -374,6 +380,9 @@ msgstr "Це ім'я класу є неприпустимим." msgid "class_name_prompt" msgstr "Введіть назву нового класу" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "Статистика класу" @@ -383,9 +392,18 @@ msgstr "Закрити" msgid "comma" msgstr "кома" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "Команди" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "Вітаємо, {username}, ви успішно прошли курс Hedy!" @@ -553,6 +571,9 @@ msgstr "Бажаєте завантажити логіни для входу п msgid "duplicate" msgstr "Дублювання" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "Починаючи з рівня 2 команда {echo} більше не потрібна. Тепер ви можете " @@ -825,6 +846,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "Обрана вами картинка є невірною." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "вхідні дані з {ask}" @@ -836,6 +872,9 @@ msgstr "кількість" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "" "Код запрошення для викладача недійсний. Щоб стати викладачем, зверніться " @@ -891,9 +930,15 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "Останній вхід" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -938,6 +983,9 @@ msgstr "Link" msgid "list" msgstr "список" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1409,6 +1457,9 @@ msgstr "Ця програма містить помилку, ви дійсно msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1575,6 +1626,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + msgid "save" msgstr "Зберегти" @@ -1724,6 +1778,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -1841,6 +1901,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -1979,6 +2042,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2220,3 +2289,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/ur/LC_MESSAGES/messages.po b/translations/ur/LC_MESSAGES/messages.po index 878f355f927..d0828d54884 100644 --- a/translations/ur/LC_MESSAGES/messages.po +++ b/translations/ur/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: ur\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -684,6 +702,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -973,6 +994,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from ask" @@ -985,6 +1021,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1045,10 +1084,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1097,6 +1142,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1596,6 +1644,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1771,6 +1822,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1925,6 +1979,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2046,6 +2106,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2202,6 +2265,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2437,3 +2506,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/vi/LC_MESSAGES/messages.po b/translations/vi/LC_MESSAGES/messages.po index 768b68b2cd7..fe18d89c527 100644 --- a/translations/vi/LC_MESSAGES/messages.po +++ b/translations/vi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: vi\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -684,6 +702,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -973,6 +994,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -985,6 +1021,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1045,10 +1084,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1097,6 +1142,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1593,6 +1641,9 @@ msgstr "Chương trình này có lỗi, bạn có chắc rằng bạn muốn chi msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1768,6 +1819,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1922,6 +1976,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2042,6 +2102,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2195,6 +2258,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2424,3 +2493,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/zh_Hans/LC_MESSAGES/messages.po b/translations/zh_Hans/LC_MESSAGES/messages.po index cbdc2ab805c..6ba68813878 100644 --- a/translations/zh_Hans/LC_MESSAGES/messages.po +++ b/translations/zh_Hans/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: zh_Hans\n" @@ -280,6 +280,9 @@ msgstr "由" msgid "cancel" msgstr "取消" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -306,6 +309,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "成功自定义课程。" +msgid "class_live" +msgstr "" + msgid "class_logs" msgstr "日志" @@ -321,6 +327,9 @@ msgstr "此班级名称无效。" msgid "class_name_prompt" msgstr "请输入新班级的名称" +msgid "class_overview" +msgstr "" + msgid "class_stats" msgstr "班级统计数据" @@ -331,9 +340,18 @@ msgstr "Sluiten" msgid "comma" msgstr "逗号" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + msgid "commands" msgstr "命令" +msgid "common_errors" +msgstr "" + msgid "congrats_message" msgstr "恭喜你,{username},你已经完成了Hedy!" @@ -514,6 +532,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "重复" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + msgid "echo_out" msgstr "" "从第二级起,你不再需要{echo}。你可以用{ask}和{print}来复述答案。比如:名字 {is} {ask} 你叫什么?{print} " @@ -763,6 +784,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "你选择的图像是无效的。" +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + msgid "input" msgstr "提问中的输入" @@ -772,6 +808,9 @@ msgstr "数字" msgid "invalid_class_link" msgstr "用于加入班级的链接无效。" +msgid "invalid_command_exception" +msgstr "" + msgid "invalid_teacher_invitation_code" msgstr "教师邀请码无效。想要成为一名教师,请联系 hello@hedy.org。" @@ -819,9 +858,15 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "最后编辑" +msgid "last_error" +msgstr "" + msgid "last_login" msgstr "上次登录" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "上次的更新" @@ -863,6 +908,9 @@ msgstr "链接" msgid "list" msgstr "列表" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1266,6 +1314,9 @@ msgstr "这个程序包含一个错误,你确定要分享它吗?" msgid "program_header" msgstr "我的程序" +msgid "program_too_large_exception" +msgstr "" + msgid "programming_experience" msgstr "你有编程经验吗?" @@ -1412,6 +1463,9 @@ msgstr "只有教师可以获得有关班级的信息" msgid "run_code_button" msgstr "运行程序" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1540,6 +1594,12 @@ msgstr "该学生已在你的班级中。" msgid "student_already_invite" msgstr "该学生已有待处理的邀请。" +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + msgid "student_not_existing" msgstr "此用户名不存在。" @@ -1637,6 +1697,9 @@ msgstr "Hedy - 管理员页面" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "海蒂 - 加入班级" @@ -1763,6 +1826,12 @@ msgstr "更新公开的个人资料" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + msgid "user" msgstr "用户" @@ -1980,3 +2049,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/translations/zh_Hant/LC_MESSAGES/messages.po b/translations/zh_Hant/LC_MESSAGES/messages.po index 866e79c9233..482de7a15a5 100644 --- a/translations/zh_Hant/LC_MESSAGES/messages.po +++ b/translations/zh_Hant/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-08-18 18:42-0400\n" +"POT-Creation-Date: 2023-08-07 15:44-0400\n" "PO-Revision-Date: 2023-06-21 15:12+0000\n" "Last-Translator: Anonymous \n" "Language: zh_Hant\n" @@ -400,6 +400,9 @@ msgstr "by" msgid "cancel" msgstr "Cancel" +msgid "cant_parse_exception" +msgstr "" + #, fuzzy msgid "catch_index_exception" msgstr "" @@ -430,6 +433,9 @@ msgstr "You are already a student of class" msgid "class_customize_success" msgstr "Class successfully customized." +msgid "class_live" +msgstr "" + #, fuzzy msgid "class_logs" msgstr "Logs" @@ -450,6 +456,9 @@ msgstr "This class name is invalid." msgid "class_name_prompt" msgstr "Please enter the name of the new class" +msgid "class_overview" +msgstr "" + #, fuzzy msgid "class_stats" msgstr "Class statistics" @@ -462,10 +471,19 @@ msgstr "Sluiten" msgid "comma" msgstr "a comma" +msgid "command_not_available_yet_exception" +msgstr "" + +msgid "command_unavailable_exception" +msgstr "" + #, fuzzy msgid "commands" msgstr "Commands" +msgid "common_errors" +msgstr "" + #, fuzzy msgid "congrats_message" msgstr "Congratulations, {username}, you have completed Hedy!" @@ -684,6 +702,9 @@ msgstr "Do you want to download the login credentials after the accounts creatio msgid "duplicate" msgstr "Duplicate" +msgid "echo_and_ask_mismatch_exception" +msgstr "" + #, fuzzy msgid "echo_out" msgstr "" @@ -973,6 +994,21 @@ msgstr "I'll work on it a little longer" msgid "image_invalid" msgstr "The image you chose image is invalid." +msgid "incomplete_command_exception" +msgstr "" + +msgid "incorrect_handling_of_quotes_exception" +msgstr "" + +msgid "incorrect_use_of_types_exception" +msgstr "" + +msgid "incorrect_use_of_variable_exception" +msgstr "" + +msgid "indentation_exception" +msgstr "" + #, fuzzy msgid "input" msgstr "input from {ask}" @@ -985,6 +1021,9 @@ msgstr "a number" msgid "invalid_class_link" msgstr "Invalid link for joining the class." +msgid "invalid_command_exception" +msgstr "" + #, fuzzy msgid "invalid_teacher_invitation_code" msgstr "" @@ -1045,10 +1084,16 @@ msgstr "Last earned achievement" msgid "last_edited" msgstr "Last edited" +msgid "last_error" +msgstr "" + #, fuzzy msgid "last_login" msgstr "Last login" +msgid "last_program" +msgstr "" + #, fuzzy msgid "last_update" msgstr "Last update" @@ -1097,6 +1142,9 @@ msgstr "Link" msgid "list" msgstr "a list" +msgid "live_dashboard" +msgstr "" + #, fuzzy msgid "logged_in_to_share" msgstr "You must be logged in to save and share a program." @@ -1596,6 +1644,9 @@ msgstr "This program contains an error, are you sure you want to share it?" msgid "program_header" msgstr "My programs" +msgid "program_too_large_exception" +msgstr "" + #, fuzzy msgid "programming_experience" msgstr "Do you have programming experience?" @@ -1771,6 +1822,9 @@ msgstr "Only teachers can retrieve classes" msgid "run_code_button" msgstr "Run code" +msgid "runs_over_time" +msgstr "" + #, fuzzy msgid "save" msgstr "Save" @@ -1925,6 +1979,12 @@ msgstr "This student is already in your class." msgid "student_already_invite" msgstr "This student already has a pending invitation." +msgid "student_details" +msgstr "" + +msgid "student_list" +msgstr "" + #, fuzzy msgid "student_not_existing" msgstr "This username doesn't exist." @@ -2046,6 +2106,9 @@ msgstr "Hedy - Administrator page" msgid "title_class grid_overview" msgstr "Hedy - Grid overview" +msgid "title_class live_statistics" +msgstr "" + #, fuzzy msgid "title_class logs" msgstr "Programs" @@ -2202,6 +2265,12 @@ msgstr "Update public profile" msgid "updating_indicator" msgstr "Updating" +msgid "use_of_blanks_exception" +msgstr "" + +msgid "use_of_nested_functions_exception" +msgstr "" + #, fuzzy msgid "user" msgstr "user" @@ -2419,3 +2488,4 @@ msgstr "Your program" #~ msgid "too_many_attempts" #~ msgstr "Too many attempts" + diff --git a/website/database.py b/website/database.py index 74af3a77e63..4ff520d58e0 100644 --- a/website/database.py +++ b/website/database.py @@ -74,7 +74,7 @@ PUBLIC_PROFILES = dynamo.Table(storage, "public_profiles", partition_key="username") PARSONS = dynamo.Table(storage, "parsons", "id") STUDENT_ADVENTURES = dynamo.Table(storage, "student_adventures", "id") - +CLASS_ERRORS = dynamo.Table(storage, "class_errors", "id") # We use the epoch field to make an index on the users table, sorted by a different # sort key. In our case, we want to sort by 'created', so that we can make an ordered # list of users. @@ -126,6 +126,10 @@ storage, "quiz-stats", partition_key="id#level", sort_key="week", indexes=[dynamo.Index("id", "week")] ) +# Program stats also includes a boolean array indicating the order of successful and non-successful runs. +# In order to not flood the database, this history array can maximally have 100 entries. +MAX_CHART_HISTORY_SIZE = 50 + class Database: def record_quiz_answer(self, attempt_id, username, level, question_number, answer, is_correct): @@ -291,6 +295,19 @@ def store_student_adventure(self, student_adventure): STUDENT_ADVENTURES.create(student_adventure) return student_adventure + def get_class_errors(self, class_id): + # Fetch a student adventure with id formatted as studentID-adventureName-level + return CLASS_ERRORS.get({"id": class_id}) + + def update_class_errors(self, class_errors): + # Swap the ticked value when a request is sent + return CLASS_ERRORS.put(class_errors) + + def store_class_errors(self, class_errors): + # create a new class errors object + CLASS_ERRORS.create(class_errors) + return class_errors + def increase_user_program_count(self, username, delta=1): """Increase the program count of a user by the given delta.""" return USERS.update({"username": username}, {"program_count": dynamo.DynamoIncrement(delta)}) @@ -796,14 +813,25 @@ def get_quiz_stats(self, ids, start=None, end=None): data = [QUIZ_STATS.get_many({"id": i, "week": dynamo.Between(start_week, end_week)}) for i in ids] return functools.reduce(operator.iconcat, data, []) - def add_program_stats(self, id, level, number_of_lines, exception): + def add_program_stats(self, id, level, number_of_lines, exception, error_message=None): key = {"id#level": f"{id}#{level}", "week": self.to_year_week(date.today())} - add_attributes = {"id": id, "level": level, "number_of_lines": number_of_lines} + program_stats = PROGRAM_STATS.get_many({"id": id, "week": self.to_year_week(date.today())}) + + # chart history and error history are used for visual elements on the live dashboard, see statistics.py + # for how they are read from the database + chart_history = [] + if program_stats.records: + chart_history = program_stats.records[0].get('chart_history', []) + chart_slice = MAX_CHART_HISTORY_SIZE if len(chart_history) > MAX_CHART_HISTORY_SIZE else 0 + if exception: add_attributes[exception] = dynamo.DynamoIncrement() + new_chart_history = list(chart_history) + [0] else: add_attributes["successful_runs"] = dynamo.DynamoIncrement() + new_chart_history = list(chart_history) + [1] + add_attributes["chart_history"] = new_chart_history[-chart_slice:] return PROGRAM_STATS.update(key, add_attributes) diff --git a/website/for_teachers.py b/website/for_teachers.py index f4a9a27851a..bccf6abed85 100644 --- a/website/for_teachers.py +++ b/website/for_teachers.py @@ -609,13 +609,18 @@ def update_customizations(self, user, class_id): level_thresholds[name] = value customizations = self.db.get_class_customizations(class_id) + dashboard = customizations.get('dashboard_customization', {}) + levels = dashboard.get('selected_levels', [1]) customizations = { "id": class_id, "levels": levels, "opening_dates": opening_dates, "other_settings": body["other_settings"], "level_thresholds": level_thresholds, - "sorted_adventures": customizations["sorted_adventures"] + "sorted_adventures": customizations["sorted_adventures"], + 'dashboard_customization': { + 'selected_levels': levels + } } self.db.update_class_customizations(customizations) diff --git a/website/statistics.py b/website/statistics.py index 4eb52373a4b..17548e630c1 100644 --- a/website/statistics.py +++ b/website/statistics.py @@ -6,6 +6,8 @@ from flask_babel import gettext import utils import hedy_content +import exceptions as hedy_exceptions +from hedy import check_program_size_is_valid, parse_input, is_program_valid, process_input_string, HEDY_MAX_LEVEL import hedy import jinja_partials from website.flask_helpers import render_template @@ -227,20 +229,7 @@ def get_grid_info(self, user, class_id, level): students = sorted(class_.get("students", [])) teacher_adventures = self.db.get_teacher_adventures(user["username"]) - class_info = self.db.get_class_customizations(class_id) - if class_info and 'adventures' in class_info: - # it uses the old way so convert it to the new one - class_info['sorted_adventures'] = {str(i): [] for i in range(1, hedy.HEDY_MAX_LEVEL + 1)} - for adventure, levels in class_info['adventures'].items(): - for level in levels: - class_info['sorted_adventures'][str(level)].append( - {"name": adventure, "from_teacher": False}) - - self.db.update_class_customizations(class_info) - else: - # Create a new default customizations object in case it doesn't have one - class_info = self._create_customizations(class_id) - + class_info = get_customizations(self.db, class_id) class_adventures = class_info.get('sorted_adventures') adventure_names = {} @@ -290,20 +279,651 @@ def get_grid_info(self, user, class_id, level): return students, class_, class_adventures_formatted, ticked_adventures, adventure_names, student_adventures - def _create_customizations(self, class_id): - sorted_adventures = {} - for lvl, adventures in hedy_content.ADVENTURE_ORDER_PER_LEVEL.items(): - sorted_adventures[str(lvl)] = [{'name': adventure, 'from_teacher': False} for adventure in adventures] - customizations = { - "id": class_id, - "levels": [i for i in range(1, hedy.HEDY_MAX_LEVEL + 1)], - "opening_dates": {}, - "other_settings": [], - "level_thresholds": {}, - "sorted_adventures": sorted_adventures + +class LiveStatisticsModule(WebsiteModule): + def __init__(self, db: Database): + super().__init__("live-stats", __name__) + self.db = db + """ + Every exception must be listed here, and assigned a type. Currently we have the following + types of Exceptions: + * Programs too large: when the programs surpass our limit + * Use of blanks in programs: when the kids uses blanks in the programs (_) + * Use of nested functions: nested functions are not allowed in Hedy + * Incorrect use of types: this encompass errors that involve using the wrong type for a + built-in function or a matemathical operation + * Invalid command: We list here parse exception when the command used is wrong and we dont know it + * Incomplete command: when the command have several parts, and the user forgot one. + * Command not correct anymore: When a command changes sintax or is removed + * Command not available yet: for commands that will be available in the following levels, but not yet + * Incorect use of variable: When a variable is used before being assigned or is undefined. + * Incorrect Indentation: the user put a space where it didnt belong or the indentation doesnt match + * Echo and ask mismatch: when an echo is used without an ask + * Incorrect handling of quotes: any scenario where text is not handled correctly + """ + self.exception_types = { + 'InputTooBigException': 'program_too_large_exception', + 'CodePlaceholdersPresentException': 'use_of_blanks_exception', + 'NestedFunctionException': 'use_of_nested_functions_exception', + 'InvalidTypeCombinationException': 'incorrect_use_of_types_exception', + 'InvalidArgumentTypeException': 'incorrect_use_of_types_exception', + 'InvalidArgumentException': 'incorrect_use_of_types_exception', + 'InvalidCommandException': 'invalid_command_exception', + 'MissingCommandException': 'invalid_command_exception', + 'IncompleteCommandException': 'incomplete_command_exception', + 'MissingElseForPressitException': 'incomplete_command_exception', + 'MissingInnerCommandException': 'incomplete_command_exception', + 'IncompleteRepeatException': 'incomplete_command_exception', + 'WrongLevelException': 'command_unavailable_exception', + 'InvalidAtCommandException': 'command_unavailable_exception', + 'LockedLanguageFeatureException': 'command_not_available_yet_exception', + 'UnsupportedFloatException': 'command_not_available_yet_exception', + 'AccessBeforeAssignException': 'incorrect_use_of_variable_exception', + 'UndefinedVarException': 'incorrect_use_of_variable_exception', + 'CyclicVariableDefinitionException': 'incorrect_use_of_variable_exception', + 'IndentationException': 'indentation_exception', + 'InvalidSpaceException': 'indentation_exception', + 'NoIndentationException': 'indentation_exception', + 'LonelyEchoException': 'echo_and_ask_mismatch_exception', + 'UnsupportedStringValue': 'incorrect_handling_of_quotes_exception', + 'UnquotedAssignTextException': 'incorrect_handling_of_quotes_exception', + 'UnquotedEqualityCheckException': 'incorrect_handling_of_quotes_exception', + 'LonelyTextException': 'incorrect_handling_of_quotes_exception', + 'UnquotedTextException': 'incorrect_handling_of_quotes_exception', + 'ParseException': 'cant_parse_exception' } - self.db.update_class_customizations(customizations) - return customizations + self.MAX_CONTINUOUS_ERRORS = 3 + self.MAX_COMMON_ERRORS = 10 + self.MAX_FEED_SIZE = 4 + + def __selected_levels(self, class_id): + class_customization = get_customizations(self.db, class_id) + class_overview = class_customization.get('dashboard_customization') + if class_overview: + return class_overview.get('selected_levels', [1]) + return [1] + + def __common_errors(self, class_id): + common_errors = self.db.get_class_errors(class_id) + if not common_errors: + return self.db.store_class_errors(dict(id=class_id, errors=[])) + return common_errors + + def __all_students(self, class_): + """Returns a list of all students in a class along with some info.""" + students = [] + for student_username in class_.get("students", []): + programs = self.db.programs_for_user(student_username) + quiz_scores = self.db.get_quiz_stats([student_username]) + # Verify if the user did finish any quiz before getting the max() of the finished levels + finished_quizzes = any("finished" in x for x in quiz_scores) + highest_quiz = max([x.get("level") for x in quiz_scores if x.get("finished")]) if finished_quizzes else "-" + students.append( + { + "username": student_username, + "programs": len(programs), + "highest_level": highest_quiz, + "current_adventure": programs[0] if programs else "-", + "current_level": programs[0]['level'] if programs else '0' + } + ) + return students + + def __get_adventures_for_overview(self, user, class_id): + class_ = self.db.get_class(class_id) + # Data for student overview card + if hedy_content.Adventures(g.lang).has_adventures(): + adventures = hedy_content.Adventures(g.lang).get_adventure_keyname_name_levels() + else: + adventures = hedy_content.Adventures("en").get_adventure_keyname_name_levels() + teacher_adventures = self.db.get_teacher_adventures(user["username"]) + customizations = get_customizations(self.db, class_id) + # Array where (index-1) is the level, and the values are lists of the current adventures of the students + last_adventures = [] + found_students = [] + # loop in reverse to ignore early levels + for level in reversed(range(1, HEDY_MAX_LEVEL + 1)): + _data = [] + for _student in class_.get("students", []): + last_adventure = list(self.db.last_level_programs_for_user(_student, level).keys()) + if last_adventure and _student not in found_students: + _data.append({_student: last_adventure[0]}) + found_students.append(_student) + last_adventures.append(_data) + # reverse back to normal level order + last_adventures.reverse() + + return _get_available_adventures(adventures, teacher_adventures, customizations, last_adventures) + + @route("/live_stats/class/", methods=["GET"]) + @requires_login + def render_live_stats(self, user, class_id): + if not is_teacher(user) and not is_admin(user): + return utils.error_page(error=403, ui_message=gettext("retrieve_class_error")) + + class_ = self.db.get_class(class_id) + if not class_ or (class_["teacher"] != user["username"] and not is_admin(user)): + return utils.error_page(error=404, ui_message=gettext("no_such_class")) + + student = _check_student_arg() + dashboard_options_args = _build_url_args(student=student) + + students, common_errors, selected_levels, quiz_info, attempted_adventures, \ + adventures = self.get_class_live_stats(user, class_) + + return render_template( + "class-live-stats.html", + class_info={ + "id": class_id, + "students": students, + "common_errors": common_errors['errors'] + }, + class_overview={ + "selected_levels": selected_levels, + "quiz_info": quiz_info + }, + dashboard_options={ + "student": student + }, + attempted_adventures=attempted_adventures, + dashboard_options_args=dashboard_options_args, + adventures=adventures, + max_level=HEDY_MAX_LEVEL, + current_page="my-profile", + page_title=gettext("title_class live_statistics") + ) + + def get_class_live_stats(self, user, class_): + # Retrieve common errors and selected levels in class overview from the database for class + selected_levels = self.__selected_levels(class_['id']) + if selected_levels: + selected_levels = [int(level) for level in selected_levels] + selected_levels.sort() + + # identifies common errors in the class + common_errors = self.common_exception_detection(class_['id'], user) + + students = self.__all_students(class_) + adventures = self.__get_adventures_for_overview(user, class_['id']) + + quiz_stats = [] + for student_username in class_.get("students", []): + quiz_stats_student = self.db.get_quiz_stats([student_username]) + quiz_in_progress = [x.get("level") for x in quiz_stats_student + if x.get("started") and not x.get("finished")] + quiz_finished = [x.get("level") for x in quiz_stats_student if x.get("finished")] + quiz_stats.append( + { + "student": student_username, + "in_progress": quiz_in_progress, + "finished": quiz_finished + } + ) + quiz_info = _get_quiz_info(quiz_stats) + + attempted_adventures = {} + for level in range(1, HEDY_MAX_LEVEL+1): + programs_for_student = {} + for _student in class_.get("students", []): + adventures_for_student = [x['adventure_name'] for x in self.db.level_programs_for_user(_student, level)] + if adventures_for_student: + programs_for_student[_student] = adventures_for_student + if programs_for_student != []: + attempted_adventures[level] = programs_for_student + + return students, common_errors, selected_levels, quiz_info, attempted_adventures, adventures + + @route("/live_stats/class//select_level", methods=["GET"]) + @requires_login + def choose_level(self, user, class_id): + """ + Adds or remove the current level from the UI + """ + if not is_teacher(user) and not is_admin(user): + return utils.error_page(error=403, ui_message=gettext("retrieve_class_error")) + + class_ = self.db.get_class(class_id) + if not class_ or (class_["teacher"] != user["username"] and not is_admin(user)): + return utils.error_page(error=404, ui_message=gettext("no_such_class")) + + selected_levels = self.__selected_levels(class_id) + chosen_level = request.args.get("level") + + if int(chosen_level) in selected_levels: + selected_levels.remove(int(chosen_level)) + else: + selected_levels.append(int(chosen_level)) + + customization = get_customizations(self.db, class_id) + dashboard_customization = customization.get('dashboard_customization', {}) + dashboard_customization['selected_levels'] = selected_levels + customization['dashboard_customization'] = dashboard_customization + self.db.update_class_customizations(customization) + + students, common_errors, selected_levels, quiz_info, attempted_adventures, \ + adventures = self.get_class_live_stats(user, class_) + + student = _check_student_arg() + dashboard_options_args = _build_url_args(student=student) + + return jinja_partials.render_partial( + "partial-class-live-stats.html", + class_info={ + "id": class_id, + "students": students, + "common_errors": common_errors['errors'] + }, + class_overview={ + "selected_levels": selected_levels, + "quiz_info": quiz_info + }, + dashboard_options={ + "student": student + }, + attempted_adventures=attempted_adventures, + dashboard_options_args=dashboard_options_args, + adventures=adventures, + max_level=HEDY_MAX_LEVEL, + current_page="my-profile", + page_title=gettext("title_class live_statistics") + ) + + @route("/live_stats/class//refresh", methods=["GET"]) + @requires_login + def refresh_live_stats(self, user, class_id): + """ + Partialy refresh the live statistics page, be it hiding and showing the differents parts of the page + or refreshing the entirety of it + """ + + if not is_teacher(user) and not is_admin(user): + return utils.error_page(error=403, ui_message=gettext("retrieve_class_error")) + + class_ = self.db.get_class(class_id) + if not class_ or (class_["teacher"] != user["username"] and not is_admin(user)): + return utils.error_page(error=404, ui_message=gettext("no_such_class")) + + student = _check_student_arg() + dashboard_options_args = _build_url_args(student=student) + + students, common_errors, selected_levels, quiz_info, attempted_adventures, \ + adventures = self.get_class_live_stats(user, class_) + + # Give the template more data in case there's a student selected + if student: + class_students = class_.get("students", []) + if student not in class_students: + return utils.error_page(error=403, ui_message=gettext('not_enrolled')) + + student_programs, graph_data, graph_labels, selected_student = self.get_student_data(student, class_) + + return jinja_partials.render_partial( + "partial-class-live-stats.html", + dashboard_options={ + "student": student + }, + class_info={ + "id": class_id, + "students": students, + "common_errors": common_errors['errors'] + }, + class_overview={ + "selected_levels": selected_levels, + "quiz_info": quiz_info + }, + attempted_adventures=attempted_adventures, + dashboard_options_args=dashboard_options_args, + adventures=adventures, + max_level=HEDY_MAX_LEVEL, + adventure_names=hedy_content.Adventures(g.lang).get_adventure_names(), + student=selected_student, + student_programs=student_programs, + data=graph_data, + labels=graph_labels, + current_page='my-profile', + page_title=gettext("title_class live_statistics") + ) + else: + return jinja_partials.render_partial( + "partial-class-live-stats.html", + class_info={ + "id": class_id, + "students": students, + "common_errors": common_errors['errors'] + }, + class_overview={ + "selected_levels": selected_levels, + "quiz_info": quiz_info + }, + dashboard_options={ + "student": student + }, + attempted_adventures=attempted_adventures, + dashboard_options_args=dashboard_options_args, + adventures=adventures, + max_level=HEDY_MAX_LEVEL, + current_page="my-profile", + page_title=gettext("title_class live_statistics") + ) + + @route("/live_stats/class//student", methods=["GET"]) + @requires_login + def render_student_details____(self, user, class_id): + """ + Shows information about an individual student when they + are selected in the student list. + """ + + if not is_teacher(user) and not is_admin(user): + return utils.error_page(error=403, ui_message=gettext("retrieve_class_error")) + + class_ = self.db.get_class(class_id) + if not class_ or (class_["teacher"] != user["username"] and not is_admin(user)): + return utils.error_page(error=404, ui_message=gettext("no_such_class")) + + student = _check_student_arg() + dashboard_options_args = _build_url_args(student=student) + + students = class_.get("students", []) + if student not in students: + return utils.error_page(error=403, ui_message=gettext('not_enrolled')) + + students, common_errors, selected_levels, quiz_info, attempted_adventures, \ + adventures = self.get_class_live_stats(user, class_) + + student_programs, graph_data, graph_labels, selected_student = self.get_student_data(student, class_) + + return jinja_partials.render_partial( + "partial-class-live-stats.html", + dashboard_options={ + "student": student + }, + class_info={ + "id": class_id, + "students": students, + "common_errors": common_errors['errors'] + }, + class_overview={ + "selected_levels": selected_levels, + "quiz_info": quiz_info + }, + attempted_adventures=attempted_adventures, + dashboard_options_args=dashboard_options_args, + adventures=adventures, + max_level=HEDY_MAX_LEVEL, + adventure_names=hedy_content.Adventures(g.lang).get_adventure_names(), + student=selected_student, + student_programs=student_programs, + data=graph_data, + labels=graph_labels, + current_page='my-profile', + page_title=gettext("title_class live_statistics") + ) + + def get_student_data(self, student, class_): + """ + Returns the data for a specific student + """ + # Get data for selected student + programs = self.db.programs_for_user(student) + quiz_scores = self.db.get_quiz_stats([student]) + finished_quizzes = any("finished" in x for x in quiz_scores) + highest_quiz = max([x.get("level") for x in quiz_scores if x.get("finished")]) if finished_quizzes else "-" + selected_student = {"username": student, "programs": len(programs), "highest_level": highest_quiz} + + # Load in all program data for that specific student + student_programs = [] + for item in programs: + date = utils.delta_timestamp(item['date']) + # This way we only keep the first 10 lines to show as preview to the user + code = "\n".join(item['code'].split("\n")[:20]) + error_class = _get_error_info(item['code'], item['level'], item['lang']) + student_programs.append( + {'id': item['id'], + 'code': code, + 'date': date, + 'lang': item['lang'], + 'level': item['level'], + 'name': item['name'], + 'adventure_name': item.get('adventure_name'), + 'submitted': item.get('submitted'), + 'public': item.get('public'), + 'number_lines': item['code'].count('\n') + 1, + 'error_message': _translate_error(error_class, item['lang']) if error_class else None, + 'error_header': 'Oops' # TODO: get proper header message that gets translated, e.g. Transpile_error + } + ) + + # get data for graph from db, db conveniently stores amount of errors for student + graph_data = self.db.get_program_stats([selected_student['username']], None, None) + graph_data, graph_labels = _collect_graph_data(graph_data, window_size=10) + + attempted_adventures = {} + for level in range(1, HEDY_MAX_LEVEL+1): + programs_for_student = {} + for _student in class_.get("students", []): + adventures_for_student = [x['adventure_name'] for x in self.db.level_programs_for_user(_student, level)] + if adventures_for_student != []: + programs_for_student[_student] = adventures_for_student + if programs_for_student != []: + attempted_adventures[level] = programs_for_student + + return student_programs, graph_data, graph_labels, selected_student + + @route("/live_stats/class//pop_up", methods=["GET"]) + @requires_login + def render_common_error_items(self, user, class_id): + """ + Handles the rendering of the common error items in the common errors detection list. + """ + student = _check_student_arg() + dashboard_options_args = _build_url_args(student=student) + + selected_levels = self.__selected_levels(class_id) + common_errors = self.common_exception_detection(class_id, user) + + # get id of the common error to know which data to display from database + error_id = request.args.get("error-id", default="", type=str) + selected_item = None + if error_id: + selected_item = common_errors['errors'][int(error_id)] + + class_ = self.db.get_class(class_id) + students = self.__all_students(class_) + + adventures = self.__get_adventures_for_overview(user, class_id) + + quiz_stats = [] + for student_username in class_.get("students", []): + quiz_stats_student = self.db.get_quiz_stats([student_username]) + quiz_in_progress = [x.get("level") for x in quiz_stats_student + if x.get("started") and not x.get("finished")] + quiz_finished = [x.get("level") for x in quiz_stats_student if x.get("finished")] + quiz_stats.append( + { + "student": student_username, + "in_progress": quiz_in_progress, + "finished": quiz_finished + } + ) + quiz_info = _get_quiz_info(quiz_stats) + + attempted_adventures = {} + for level in range(1, HEDY_MAX_LEVEL+1): + programs_for_student = {} + for _student in class_.get("students", []): + adventures_for_student = [x['adventure_name'] for x in self.db.level_programs_for_user(_student, level)] + if adventures_for_student != []: + programs_for_student[_student] = adventures_for_student + if programs_for_student != []: + attempted_adventures[level] = programs_for_student + + return render_template( + "htmx-class-live-popup.html", + class_info={ + "id": class_id, + "students": students, + "common_errors": common_errors['errors'] + }, + class_overview={ + "selected_levels": selected_levels, + "quiz_info": quiz_info + }, + dashboard_options={ + "student": student + }, + dashboard_options_args=dashboard_options_args, + adventures=adventures, + attempted_adventures=attempted_adventures, + max_level=HEDY_MAX_LEVEL, + selected_item=selected_item, + current_page='my-profile' + ) + + @route("/live_stats/class//error/", methods=["DELETE"]) + @requires_login + def remove_common_error_item(self, user, class_id, error_id): + """ + Removes the common error item by setting the active flag to 0. + """ + common_errors = self.__common_errors(class_id) + for i in range(len(common_errors['errors'])): + if common_errors['errors'][i]['id'] == int(error_id) and common_errors['errors'][i]['active'] == 1: + common_errors['errors'][i]['active'] = 0 + self.db.update_class_errors(common_errors) + break + + return {}, 200 + + def retrieve_exceptions_per_student(self, class_id): + """ + Retrieves exceptions per student in the class + :param class_id: class id + :return: exceptions_per_user + """ + class_ = self.db.get_class(class_id) + exceptions_per_user = {} + students = sorted(class_.get("students", [])) + for student_username in students: + program_stats = self.db.get_program_stats([student_username], None, None) + if program_stats: + # if there are multiple weeks, only get the most recent week's data + program_stats = program_stats[-1] + exceptions = {k: v for k, v in program_stats.items() if k.lower().endswith("exception")} + exceptions_per_user[student_username] = exceptions + + return exceptions_per_user + + def new_id_calc(self, common_errors, class_id): + """ + Calculates the new id for a new common error entry. + :param common_errors: common errors from db + :param class_id: class id + :return: new id + """ + common_error_ids = [int(x['id']) for x in common_errors['errors']] + new_id = max(common_error_ids) + 1 if common_error_ids else 0 + + # reached max common errors + if new_id > 0 and new_id % self.MAX_COMMON_ERRORS == 0: + # find all disables entries + disables = [x['id'] for x in common_errors['errors'] if x['active'] == 0] + if disables: + # assign oldest not used id to new error + new_id = disables[0] + else: + # forcefully overwrite oldest error despite not being resolved and set oldest half of the db to + # inactive to free up space + # Todo: could use a better way to handle this + new_id = 0 + + for i in range(self.MAX_COMMON_ERRORS // 2): + common_errors['errors'][i]['active'] = 0 + self.db.update_class_errors(common_errors) + + return new_id + + def common_exception_detection(self, class_id, user): + """ + Detects misconceptions of students in the class based on errors they are making. + """ + common_errors = self.__common_errors(class_id) + # Group the error messages by session and count their occurrences + exceptions_per_user = self.retrieve_exceptions_per_student(class_id) # retrieves relevant data from db + labels = [x['label'] for x in common_errors['errors']] + exception_type_counts = {} + + # Iterate over each error and its corresponding username in the current session group + for username, exception_count in exceptions_per_user.items(): + for exception_name, count in exception_count.items(): + exception_type = self.exception_types[exception_name] + + if count >= self.MAX_CONTINUOUS_ERRORS: + # Check if the current exception type is in the dictionary + if exception_name not in exception_type_counts: + exception_type_counts[exception_type] = {} + # Check if the current exception is not in the exception_type_counts + # dictionary for the current exception_type + if exception_name not in exception_type_counts[exception_type]: + exception_type_counts[exception_type][exception_name] = {'freq': 0, 'users': []} + exception_type_counts[exception_type][exception_name]['freq'] += 1 + exception_type_counts[exception_type][exception_name]['users'].append(username) + + for exception_type, exception_name in sorted(exception_type_counts.items(), + key=lambda x: sum(x[1][exception_name]['freq'] + for exception_name in x[1]), + reverse=True)[:self.MAX_FEED_SIZE]: + sorted_exceptions = sorted(exception_name.items(), key=lambda x: x[1]['freq'], reverse=True) + all_users = [] + + for _, info in sorted_exceptions: + users_counts = [(user, info['users'].count(user)) for user in set(info['users'])] + sorted_users = sorted(users_counts, key=lambda x: x[1], reverse=True) + users_only = [user for user, _ in sorted_users] + all_users += users_only + + # checks to avoid duplicates + if exception_type in labels: + idx = labels.index(exception_type) + hits = 0 + for user in all_users: + if user in common_errors['errors'][idx]['students']: + hits += 1 + if hits == len(all_users): + # no update needed as entry already exists + continue # skip to next misconception + elif hits > 0: + # update existing entry, existing student(s) was found but new ones have to be added + common_errors['errors'][idx]['students'] = all_users + else: + # make new entry + new_id = self.new_id_calc(common_errors, class_id) + common_errors['errors'].append({ + 'id': new_id, + 'label': exception_type, + 'active': 1, + "students": users_only + }) + + return self.db.update_class_errors(common_errors) + + @route("/live_stats/class/", methods=["POST"]) + @requires_login + def select_levels(self, user, class_id): + """ + Stores the selected levels in the class overview in the database. + """ + body = request.json + levels = [int(i) for i in body["levels"]] + + class_customization = get_customizations(self.db, class_id) + class_customization['dashboard_customization'] = { + 'selected_levels': levels, + } + + self.db.update_class_customizations(class_customization) + + return {}, 200 def add(username, action): @@ -524,6 +1144,162 @@ def _calc_error_rate(fail, success): return (failed * 100) / max(1, failed + successful) +def _check_student_arg(): + """ + Checks the arguments of the request and returns the values. Mainly exists to avoid code duplication. + """ + + student = request.args.get("student", default=None, type=str) + student = None if student == "None" else student + + return student + + +def _get_available_adventures(adventures, teacher_adventures, customizations, last_adventures): + """ + Returns the available adventures for all levels, given the possible adventures per level, + the teacher (adventures) and customization. Also adds how many students are currently in + progress for each adventure. + + { level: [ { id, name, in_progress } ] } + """ + adventure_names = {} + for adv_key, adv_dic in adventures.items(): + for name, _ in adv_dic.items(): + adventure_names[adv_key] = hedy_content.get_localized_name(name, g.keyword_lang) + + for adventure in teacher_adventures: + adventure_names[adventure['id']] = adventure['name'] + + selected_adventures = {} + for level, adventure_list in customizations['sorted_adventures'].items(): + adventures_for_level = [] + for adventure in list(adventure_list): + if adventure['name'] == 'next': + continue + adventure_key = adventure['name'] + + students_in_progress = [] + for d in last_adventures[int(level) - 1]: + (student, last_adventure), = d.items() + if last_adventure == adventure_key: + students_in_progress.append(student) + + adventure_name = adventure_names[adventure_key] + adventures_for_level.append( + { + "id": adventure_key, + "name": adventure_name, + "in_progress": students_in_progress + } + ) + + selected_adventures[level] = adventures_for_level + + return selected_adventures + + +def _get_quiz_info(quiz_stats): + """ + Returns quiz info for each level containing the students in progress (started but not finished) + and the students that finished the quiz. + + { level: { students_in_progress, students_finished } } + """ + quiz_info = {} + for level in range(1, HEDY_MAX_LEVEL + 1): + students_in_progress, students_finished = [], [] + for stats in quiz_stats: + if level in stats.get("in_progress"): + students_in_progress.append(stats.get("student")) + elif level in stats.get("finished"): + students_finished.append(stats.get("student")) + + quiz_info[level] = {"students_in_progress": students_in_progress, "students_finished": students_finished} + + return quiz_info + + +def _get_error_info(code, level, lang='en'): + """ + Returns the server error given the code written by the student. Since the database only stores whether + the code produced an error or not, in order to get the error we have to rerun the code + through some hedy logic. + """ + try: + check_program_size_is_valid(code) + + level = int(level) + if level > HEDY_MAX_LEVEL: + raise Exception(f'Levels over {HEDY_MAX_LEVEL} not implemented yet') + + input_string = process_input_string(code, level, lang) + program_root = parse_input(input_string, level, lang) + + # Checks whether any error production nodes are present in the parse tree + is_program_valid(program_root, input_string, level, lang) + except hedy_exceptions.HedyException as exc: + return exc + return None + + +def _translate_error(error_class, lang): + """ + Translates the error code to the given language. + This is because the error code needs to be passed through the translation things in order to give more info on the + student details + screen. + + A part of this code is duplicate from app.hedy_error_to_response but importing app.py leads to circular + imports and moving those functions to util.py is cumbersome (but not impossible) given the integration with other + functions in app.py + """ + class_args = error_class.arguments + + error_template = gettext('' + str(error_class.error_code)) + + # Check if argument is substring of error_template, if so replace + for k, v in class_args.items(): + if f'{{{k}}}' in error_template: + error_template = error_template.replace(f'{{{k}}}', str(v)) + + return error_template + + +def _build_url_args(**kwargs): + """ + Builds a string of the url arguments used in the html file for routing. + This avoids lots of code duplication in the html file as well as making it easier to add/remove/change url + arguments. + """ + url_args = "" + c = 0 + for key, value in kwargs.items(): + if c == 0: + url_args += f"{key}={value}" + c += 1 + else: + url_args += f"&{key}={value}" + return url_args + + +def _collect_graph_data(data, window_size=5): + """ + Collects data to be shown in the line graph and limits it to the window size. + """ + graph_data, labels = [], [] + c = 0 + for week in data: + if 'chart_history' in week.keys(): + graph_data += week['chart_history'] + labels += list(range(c + 1, c + 1 + len(week['chart_history']))) + c += len(week['chart_history']) + + slice = window_size if len(graph_data) > window_size else 0 + + return graph_data[-slice:], labels[-slice:] + + def get_general_class_stats(students): # g.db instead of self.db since this function is not on a class current_week = g.db.to_year_week(date.today()) @@ -546,3 +1322,59 @@ def get_general_class_stats(students): "week": {"runs": weekly_successes + weekly_errors, "fails": weekly_errors}, "total": {"runs": successes + errors, "fails": errors}, } + + +def get_customizations(db, class_id): + """ + Retrieves the customizations for a specific class from the database. + + Args: + db (Database): The database object used to retrieve the customizations. + class_id (string): The ID of the class for which to retrieve the customizations. + + Returns: + customizations (dict): A dictionary containing the customizations for the class. + """ + customizations = db.get_class_customizations(class_id) + if customizations and 'adventures' in customizations: + # it uses the old way so convert it to the new one + customizations['sorted_adventures'] = {str(i): [] for i in range(1, hedy.HEDY_MAX_LEVEL + 1)} + for adventure, levels in customizations['adventures'].items(): + for level in levels: + customizations['sorted_adventures'][str(level)].append( + {"name": adventure, "from_teacher": False}) + + db.update_class_customizations(customizations) + elif not customizations: + # Create a new default customizations object in case it doesn't have one + customizations = _create_customizations(db, class_id) + return customizations + + +def _create_customizations(db, class_id): + """ + Create customizations for a given class. + + Args: + db (Database): The database object. + class_id (int): The ID of the class. + + Returns: + customizations (dict): The customizations for the class. + """ + sorted_adventures = {} + for lvl, adventures in hedy_content.ADVENTURE_ORDER_PER_LEVEL.items(): + sorted_adventures[str(lvl)] = [{'name': adventure, 'from_teacher': False} for adventure in adventures] + customizations = { + "id": class_id, + "levels": [i for i in range(1, hedy.HEDY_MAX_LEVEL + 1)], + "opening_dates": {}, + "other_settings": [], + "level_thresholds": {}, + "sorted_adventures": sorted_adventures, + "dashboard_customization": { + "selected_levels": [1] + }, + } + db.update_class_customizations(customizations) + return customizations From 2aaa14c5dc0146ffa1537f84c677f369f6ab8e2d Mon Sep 17 00:00:00 2001 From: "mergify[bot]" Date: Wed, 13 Sep 2023 10:14:26 +0000 Subject: [PATCH 2/2] =?UTF-8?q?Automatically=20update=20JavaScript=20bundl?= =?UTF-8?q?e=20=F0=9F=A4=96=20beep=20boop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/js/appbundle.js | 48 +++++++++++++++++++------------------- static/js/appbundle.js.map | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/static/js/appbundle.js b/static/js/appbundle.js index 2539c78e2b9..3887efa2260 100644 --- a/static/js/appbundle.js +++ b/static/js/appbundle.js @@ -1,4 +1,4 @@ -var hedyApp=(()=>{var Ah=Object.defineProperty,zh=Object.defineProperties;var Oh=Object.getOwnPropertyDescriptors;var Hl=Object.getOwnPropertySymbols;var $h=Object.prototype.hasOwnProperty,Rh=Object.prototype.propertyIsEnumerable;var Ul=(l,u,c)=>u in l?Ah(l,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[u]=c,ki=(l,u)=>{for(var c in u||(u={}))$h.call(u,c)&&Ul(l,c,u[c]);if(Hl)for(var c of Hl(u))Rh.call(u,c)&&Ul(l,c,u[c]);return l},Na=(l,u)=>zh(l,Oh(u));var Bo=(l=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(l,{get:(u,c)=>(typeof require!="undefined"?require:u)[c]}):l)(function(l){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+l+'" is not supported')});var dt=(l,u)=>()=>(u||l((u={exports:{}}).exports,u),u.exports);var Vl=dt((jm,Bh)=>{Bh.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 Yl=dt((Gm,Fh)=>{Fh.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:"afegir|add",and:"i|and",ask:"preguntar|ask",at:"a posici\xF3|at",black:"negre|black",blue:"blau|blue",brown:"marr\xF3|brown",call:"call",clear:"Neteja|clear",color:"color",comma:",",def:"def",define:"define",echo:"mostrar|echo",elif:"si no si|elif",else:"sino|else",for:"per a cada|for",forward:"avan\xE7ar|forward",from:"de|from",gray:"gris|gray",green:"verd|green",if:"si|if",in:"dins de|in",input:"entrada|input",is:"\xE9s|is",left:"esquerra|left",length:"mida|length",or:"o|or",orange:"taronja|orange",pink:"rosa|pink",pressed:"pitjat|pressed",print:"imprimir|print",purple:"violeta|purple",random:"aleatori|random",range:"seq\xFC\xE8ncia|range",red:"vermell|red",remove:"esborrar|remove",repeat:"repetir|repeat",return:"return",right:"dreta|right",sleep:"dormir|sleep",step:"pas|step",times:"vegades|times",to:"fins|to",to_list:"a|to",turn:"girar|turn",while:"mentre|while",white:"blanc|white",with:"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:"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"},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:"call",clear:"limpiar|clear",color:"color",comma:",",def:"def",define:"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:"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:"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:"dis|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:"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:"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:"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:"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:"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:"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"},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:"\u015Furada|at",black:"siyah|black",blue:"mavi|blue",brown:"kahverengi|brown",call:"call",clear:"temiz|clear",color:"renk|color",comma:",",def:"def",define:"define",echo:"eko|echo",elif:"elif",else:"ba\u015Fka|else",for:"\u015Funun i\xE7in|for",forward:"ileri|forward",from:"\u015Furadan|from",gray:"gri|gray",green:"ye\u015Fil|green",if:"e\u011Fer|if",in:"i\xE7inde|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:"dizi|range",red:"k\u0131rm\u0131z\u0131|red",remove:"sil|remove",repeat:"tekrar|repeat",return:"return",right:"sa\u011F|right",sleep:"bekle|sleep",step:"ad\u0131m|step",times:"kere|times",to:"\u015Furaya|to",to_list:"to",turn:"d\xF6nd\xFCr|turn",while:"iken|while",white:"beyaz|white",with:"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:"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\u202C\u202D\u202E|sleep",step:"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 Kl=dt(oo=>{"use strict";var ql=oo&&oo.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(oo,"__esModule",{value:!0});oo.initializeSyntaxHighlighter=void 0;var jh=ql(Vl()),Gh=ql(Yl());function Wh(l){var u=Xl(Gh.default),c=l.keywordLanguage;u.has(c)||(c="en");var p=u.get(c),f=JSON.stringify(jh.default),h=Hh(f,p),k=JSON.parse(h);if(window.define)for(var D=function(M){define("ace/mode/"+M.name,[],function(O,N,A){var C=O("ace/lib/oop"),z=O("ace/mode/text").Mode,H=O("ace/mode/text_highlight_rules").TextHighlightRules;function q(){this.$rules=M.rules,this.normalizeRules()}C.inherits(q,H);function K(){this.HighlightRules=q}C.inherits(K,z),N.Mode=K})},I=0,y=k;I{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.TRANSLATIONS=void 0;yi.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 zh=Object.defineProperty,Oh=Object.defineProperties;var $h=Object.getOwnPropertyDescriptors;var Ul=Object.getOwnPropertySymbols;var Rh=Object.prototype.hasOwnProperty,Bh=Object.prototype.propertyIsEnumerable;var Vl=(s,u,c)=>u in s?zh(s,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):s[u]=c,yi=(s,u)=>{for(var c in u||(u={}))Rh.call(u,c)&&Vl(s,c,u[c]);if(Ul)for(var c of Ul(u))Bh.call(u,c)&&Vl(s,c,u[c]);return s},Na=(s,u)=>Oh(s,$h(u));var Fo=(s=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(s,{get:(u,c)=>(typeof require!="undefined"?require:u)[c]}):s)(function(s){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+s+'" is not supported')});var dt=(s,u)=>()=>(u||s((u={exports:{}}).exports,u),u.exports);var Yl=dt((Km,Fh)=>{Fh.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 ql=dt((Zm,jh)=>{jh.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:"afegir|add",and:"i|and",ask:"preguntar|ask",at:"a posici\xF3|at",black:"negre|black",blue:"blau|blue",brown:"marr\xF3|brown",call:"call",clear:"Neteja|clear",color:"color",comma:",",def:"def",define:"define",echo:"mostrar|echo",elif:"si no si|elif",else:"sino|else",for:"per a cada|for",forward:"avan\xE7ar|forward",from:"de|from",gray:"gris|gray",green:"verd|green",if:"si|if",in:"dins de|in",input:"entrada|input",is:"\xE9s|is",left:"esquerra|left",length:"mida|length",or:"o|or",orange:"taronja|orange",pink:"rosa|pink",pressed:"pitjat|pressed",print:"imprimir|print",purple:"violeta|purple",random:"aleatori|random",range:"seq\xFC\xE8ncia|range",red:"vermell|red",remove:"esborrar|remove",repeat:"repetir|repeat",return:"return",right:"dreta|right",sleep:"dormir|sleep",step:"pas|step",times:"vegades|times",to:"fins|to",to_list:"a|to",turn:"girar|turn",while:"mentre|while",white:"blanc|white",with:"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:"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"},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:"call",clear:"limpiar|clear",color:"color",comma:",",def:"def",define:"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:"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:"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:"dis|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:"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:"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:"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:"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:"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:"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"},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:"\u015Furada|at",black:"siyah|black",blue:"mavi|blue",brown:"kahverengi|brown",call:"call",clear:"temiz|clear",color:"renk|color",comma:",",def:"def",define:"define",echo:"eko|echo",elif:"elif",else:"ba\u015Fka|else",for:"\u015Funun i\xE7in|for",forward:"ileri|forward",from:"\u015Furadan|from",gray:"gri|gray",green:"ye\u015Fil|green",if:"e\u011Fer|if",in:"i\xE7inde|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:"dizi|range",red:"k\u0131rm\u0131z\u0131|red",remove:"sil|remove",repeat:"tekrar|repeat",return:"return",right:"sa\u011F|right",sleep:"bekle|sleep",step:"ad\u0131m|step",times:"kere|times",to:"\u015Furaya|to",to_list:"to",turn:"d\xF6nd\xFCr|turn",while:"iken|while",white:"beyaz|white",with:"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:"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\u202C\u202D\u202E|sleep",step:"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 Zl=dt(ao=>{"use strict";var Xl=ao&&ao.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(ao,"__esModule",{value:!0});ao.initializeSyntaxHighlighter=void 0;var Gh=Xl(Yl()),Wh=Xl(ql());function Hh(s){var u=Kl(Wh.default),c=s.keywordLanguage;u.has(c)||(c="en");var p=u.get(c),f=JSON.stringify(Gh.default),h=Uh(f,p),k=JSON.parse(h);if(window.define)for(var D=function(M){define("ace/mode/"+M.name,[],function(O,N,A){var C=O("ace/lib/oop"),z=O("ace/mode/text").Mode,H=O("ace/mode/text_highlight_rules").TextHighlightRules;function q(){this.$rules=M.rules,this.normalizeRules()}C.inherits(q,H);function K(){this.HighlightRules=q}C.inherits(K,z),N.Mode=K})},I=0,y=k;I{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.TRANSLATIONS=void 0;bi.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 io=dt(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.setClientMessageLanguage=jr.ClientMessages=void 0;var Ta=Zl();jr.ClientMessages=Object.assign({},Ta.TRANSLATIONS.en);function Uh(l){var u;Object.assign(jr.ClientMessages,(u=Ta.TRANSLATIONS[l])!==null&&u!==void 0?u:Ta.TRANSLATIONS.en)}jr.setClientMessageLanguage=Uh});var Lr=dt(On=>{"use strict";var Vh=On&&On.__awaiter||function(l,u,c,p){function f(h){return h instanceof c?h:new c(function(k){k(h)})}return new(c||(c=Promise))(function(h,k){function D(S){try{y(p.next(S))}catch(M){k(M)}}function I(S){try{y(p.throw(S))}catch(M){k(M)}}function y(S){S.done?h(S.value):f(S.value).then(D,I)}y((p=p.apply(l,u||[])).next())})},Yh=On&&On.__generator||function(l,u){var c={label:0,sent:function(){if(h[0]&1)throw h[1];return h[1]},trys:[],ops:[]},p,f,h,k;return k={next:D(0),throw:D(1),return:D(2)},typeof Symbol=="function"&&(k[Symbol.iterator]=function(){return this}),k;function D(y){return function(S){return I([y,S])}}function I(y){if(p)throw new TypeError("Generator is already executing.");for(;c;)try{if(p=1,f&&(h=y[0]&2?f.return:y[0]?f.throw||((h=f.return)&&h.call(f),0):f.next)&&!(h=h.call(f,y[1])).done)return h;switch(f=0,h&&(y=[y[0]&2,h.value]),y[0]){case 0:case 1:h=y;break;case 4:return c.label++,{value:y[1],done:!1};case 5:c.label++,f=y[1],y=[0];continue;case 7:y=c.ops.pop(),c.trys.pop();continue;default:if(h=c.trys,!(h=h.length>0&&h[h.length-1])&&(y[0]===6||y[0]===2)){c=0;continue}if(y[0]===3&&(!h||y[1]>h[0]&&y[1]{(function(l){typeof Jl=="object"&&typeof Pa!="undefined"?Pa.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,c,p){function f(D,I){if(!c[D]){if(!u[D]){var y=typeof Bo=="function"&&Bo;if(!I&&y)return y(D,!0);if(h)return h(D,!0);var S=new Error("Cannot find module '"+D+"'");throw S.code="MODULE_NOT_FOUND",S}var M=c[D]={exports:{}};u[D][0].call(M.exports,function(O){var N=u[D][1][O];return f(N||O)},M,M.exports,l,u,c,p)}return c[D].exports}for(var h=typeof Bo=="function"&&Bo,k=0;k>2,M=(3&D)<<4|I>>4,O=1>6:64,N=2>4,I=(15&S)<<4|(M=h.indexOf(k.charAt(N++)))>>2,y=(3&M)<<6|(O=h.indexOf(k.charAt(N++))),z[A++]=D,M!==64&&(z[A++]=I),O!==64&&(z[A++]=y);return z}},{"./support":30,"./utils":32}],2:[function(l,u,c){"use strict";var p=l("./external"),f=l("./stream/DataWorker"),h=l("./stream/Crc32Probe"),k=l("./stream/DataLengthProbe");function D(I,y,S,M,O){this.compressedSize=I,this.uncompressedSize=y,this.crc32=S,this.compression=M,this.compressedContent=O}D.prototype={getContentWorker:function(){var I=new f(p.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new k("data_length")),y=this;return I.on("end",function(){if(this.streamInfo.data_length!==y.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),I},getCompressedWorker:function(){return new f(p.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},D.createWorkerFrom=function(I,y,S){return I.pipe(new h).pipe(new k("uncompressedSize")).pipe(y.compressWorker(S)).pipe(new k("compressedSize")).withStreamInfo("compression",y)},u.exports=D},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(l,u,c){"use strict";var p=l("./stream/GenericWorker");c.STORE={magic:"\0\0",compressWorker:function(){return new p("STORE compression")},uncompressWorker:function(){return new p("STORE decompression")}},c.DEFLATE=l("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(l,u,c){"use strict";var p=l("./utils"),f=function(){for(var h,k=[],D=0;D<256;D++){h=D;for(var I=0;I<8;I++)h=1&h?3988292384^h>>>1:h>>>1;k[D]=h}return k}();u.exports=function(h,k){return h!==void 0&&h.length?p.getTypeOf(h)!=="string"?function(D,I,y,S){var M=f,O=S+y;D^=-1;for(var N=S;N>>8^M[255&(D^I[N])];return-1^D}(0|k,h,h.length,0):function(D,I,y,S){var M=f,O=S+y;D^=-1;for(var N=S;N>>8^M[255&(D^I.charCodeAt(N))];return-1^D}(0|k,h,h.length,0):0}},{"./utils":32}],5:[function(l,u,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!0,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],6:[function(l,u,c){"use strict";var p=null;p=typeof Promise!="undefined"?Promise:l("lie"),u.exports={Promise:p}},{lie:37}],7:[function(l,u,c){"use strict";var p=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",f=l("pako"),h=l("./utils"),k=l("./stream/GenericWorker"),D=p?"uint8array":"array";function I(y,S){k.call(this,"FlateWorker/"+y),this._pako=null,this._pakoAction=y,this._pakoOptions=S,this.meta={}}c.magic="\b\0",h.inherits(I,k),I.prototype.processChunk=function(y){this.meta=y.meta,this._pako===null&&this._createPako(),this._pako.push(h.transformTo(D,y.data),!1)},I.prototype.flush=function(){k.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},I.prototype.cleanUp=function(){k.prototype.cleanUp.call(this),this._pako=null},I.prototype._createPako=function(){this._pako=new f[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var y=this;this._pako.onData=function(S){y.push({data:S,meta:y.meta})}},c.compressWorker=function(y){return new I("Deflate",y)},c.uncompressWorker=function(){return new I("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(l,u,c){"use strict";function p(M,O){var N,A="";for(N=0;N>>=8;return A}function f(M,O,N,A,C,z){var H,q,K=M.file,he=M.compression,re=z!==D.utf8encode,U=h.transformTo("string",z(K.name)),oe=h.transformTo("string",D.utf8encode(K.name)),de=K.comment,De=h.transformTo("string",z(de)),B=h.transformTo("string",D.utf8encode(de)),_e=oe.length!==K.name.length,w=B.length!==de.length,fe="",Se="",xe="",Oe=K.dir,be=K.date,Fe={crc32:0,compressedSize:0,uncompressedSize:0};O&&!N||(Fe.crc32=M.crc32,Fe.compressedSize=M.compressedSize,Fe.uncompressedSize=M.uncompressedSize);var se=0;O&&(se|=8),re||!_e&&!w||(se|=2048);var ie=0,Re=0;Oe&&(ie|=16),C==="UNIX"?(Re=798,ie|=function(we,At){var Ot=we;return we||(Ot=At?16893:33204),(65535&Ot)<<16}(K.unixPermissions,Oe)):(Re=20,ie|=function(we){return 63&(we||0)}(K.dosPermissions)),H=be.getUTCHours(),H<<=6,H|=be.getUTCMinutes(),H<<=5,H|=be.getUTCSeconds()/2,q=be.getUTCFullYear()-1980,q<<=4,q|=be.getUTCMonth()+1,q<<=5,q|=be.getUTCDate(),_e&&(Se=p(1,1)+p(I(U),4)+oe,fe+="up"+p(Se.length,2)+Se),w&&(xe=p(1,1)+p(I(De),4)+B,fe+="uc"+p(xe.length,2)+xe);var Ce="";return Ce+=` -\0`,Ce+=p(se,2),Ce+=he.magic,Ce+=p(H,2),Ce+=p(q,2),Ce+=p(Fe.crc32,4),Ce+=p(Fe.compressedSize,4),Ce+=p(Fe.uncompressedSize,4),Ce+=p(U.length,2),Ce+=p(fe.length,2),{fileRecord:y.LOCAL_FILE_HEADER+Ce+U+fe,dirRecord:y.CENTRAL_FILE_HEADER+p(Re,2)+Ce+p(De.length,2)+"\0\0\0\0"+p(ie,4)+p(A,4)+U+fe+De}}var h=l("../utils"),k=l("../stream/GenericWorker"),D=l("../utf8"),I=l("../crc32"),y=l("../signature");function S(M,O,N,A){k.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=O,this.zipPlatform=N,this.encodeFileName=A,this.streamFiles=M,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}h.inherits(S,k),S.prototype.push=function(M){var O=M.meta.percent||0,N=this.entriesCount,A=this._sources.length;this.accumulate?this.contentBuffer.push(M):(this.bytesWritten+=M.data.length,k.prototype.push.call(this,{data:M.data,meta:{currentFile:this.currentFile,percent:N?(O+100*(N-A-1))/N:100}}))},S.prototype.openedSource=function(M){this.currentSourceOffset=this.bytesWritten,this.currentFile=M.file.name;var O=this.streamFiles&&!M.file.dir;if(O){var N=f(M,O,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:N.fileRecord,meta:{percent:0}})}else this.accumulate=!0},S.prototype.closedSource=function(M){this.accumulate=!1;var O=this.streamFiles&&!M.file.dir,N=f(M,O,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(N.dirRecord),O)this.push({data:function(A){return y.DATA_DESCRIPTOR+p(A.crc32,4)+p(A.compressedSize,4)+p(A.uncompressedSize,4)}(M),meta:{percent:100}});else for(this.push({data:N.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},S.prototype.flush=function(){for(var M=this.bytesWritten,O=0;O=this.index;k--)D=(D<<8)+this.byteAt(k);return this.index+=h,D},readString:function(h){return p.transformTo("string",this.readData(h))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var h=this.readInt(4);return new Date(Date.UTC(1980+(h>>25&127),(h>>21&15)-1,h>>16&31,h>>11&31,h>>5&63,(31&h)<<1))}},u.exports=f},{"../utils":32}],19:[function(l,u,c){"use strict";var p=l("./Uint8ArrayReader");function f(h){p.call(this,h)}l("../utils").inherits(f,p),f.prototype.readData=function(h){this.checkOffset(h);var k=this.data.slice(this.zero+this.index,this.zero+this.index+h);return this.index+=h,k},u.exports=f},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(l,u,c){"use strict";var p=l("./DataReader");function f(h){p.call(this,h)}l("../utils").inherits(f,p),f.prototype.byteAt=function(h){return this.data.charCodeAt(this.zero+h)},f.prototype.lastIndexOfSignature=function(h){return this.data.lastIndexOf(h)-this.zero},f.prototype.readAndCheckSignature=function(h){return h===this.readData(4)},f.prototype.readData=function(h){this.checkOffset(h);var k=this.data.slice(this.zero+this.index,this.zero+this.index+h);return this.index+=h,k},u.exports=f},{"../utils":32,"./DataReader":18}],21:[function(l,u,c){"use strict";var p=l("./ArrayReader");function f(h){p.call(this,h)}l("../utils").inherits(f,p),f.prototype.readData=function(h){if(this.checkOffset(h),h===0)return new Uint8Array(0);var k=this.data.subarray(this.zero+this.index,this.zero+this.index+h);return this.index+=h,k},u.exports=f},{"../utils":32,"./ArrayReader":17}],22:[function(l,u,c){"use strict";var p=l("../utils"),f=l("../support"),h=l("./ArrayReader"),k=l("./StringReader"),D=l("./NodeBufferReader"),I=l("./Uint8ArrayReader");u.exports=function(y){var S=p.getTypeOf(y);return p.checkSupport(S),S!=="string"||f.uint8array?S==="nodebuffer"?new D(y):f.uint8array?new I(p.transformTo("uint8array",y)):new h(p.transformTo("array",y)):new k(y)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(l,u,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(l,u,c){"use strict";var p=l("./GenericWorker"),f=l("../utils");function h(k){p.call(this,"ConvertWorker to "+k),this.destType=k}f.inherits(h,p),h.prototype.processChunk=function(k){this.push({data:f.transformTo(this.destType,k.data),meta:k.meta})},u.exports=h},{"../utils":32,"./GenericWorker":28}],25:[function(l,u,c){"use strict";var p=l("./GenericWorker"),f=l("../crc32");function h(){p.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}l("../utils").inherits(h,p),h.prototype.processChunk=function(k){this.streamInfo.crc32=f(k.data,this.streamInfo.crc32||0),this.push(k)},u.exports=h},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(l,u,c){"use strict";var p=l("../utils"),f=l("./GenericWorker");function h(k){f.call(this,"DataLengthProbe for "+k),this.propName=k,this.withStreamInfo(k,0)}p.inherits(h,f),h.prototype.processChunk=function(k){if(k){var D=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=D+k.data.length}f.prototype.processChunk.call(this,k)},u.exports=h},{"../utils":32,"./GenericWorker":28}],27:[function(l,u,c){"use strict";var p=l("../utils"),f=l("./GenericWorker");function h(k){f.call(this,"DataWorker");var D=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,k.then(function(I){D.dataIsReady=!0,D.data=I,D.max=I&&I.length||0,D.type=p.getTypeOf(I),D.isPaused||D._tickAndRepeat()},function(I){D.error(I)})}p.inherits(h,f),h.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},h.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,p.delay(this._tickAndRepeat,[],this)),!0)},h.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(p.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},h.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var k=null,D=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":k=this.data.substring(this.index,D);break;case"uint8array":k=this.data.subarray(this.index,D);break;case"array":case"nodebuffer":k=this.data.slice(this.index,D)}return this.index=D,this.push({data:k,meta:{percent:this.max?this.index/this.max*100:0}})},u.exports=h},{"../utils":32,"./GenericWorker":28}],28:[function(l,u,c){"use strict";function p(f){this.name=f||"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}p.prototype={push:function(f){this.emit("data",f)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(f){this.emit("error",f)}return!0},error:function(f){return!this.isFinished&&(this.isPaused?this.generatedError=f:(this.isFinished=!0,this.emit("error",f),this.previous&&this.previous.error(f),this.cleanUp()),!0)},on:function(f,h){return this._listeners[f].push(h),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(f,h){if(this._listeners[f])for(var k=0;k "+f:f}},u.exports=p},{}],29:[function(l,u,c){"use strict";var p=l("../utils"),f=l("./ConvertWorker"),h=l("./GenericWorker"),k=l("../base64"),D=l("../support"),I=l("../external"),y=null;if(D.nodestream)try{y=l("../nodejs/NodejsStreamOutputAdapter")}catch(O){}function S(O,N){return new I.Promise(function(A,C){var z=[],H=O._internalType,q=O._outputType,K=O._mimeType;O.on("data",function(he,re){z.push(he),N&&N(re)}).on("error",function(he){z=[],C(he)}).on("end",function(){try{var he=function(re,U,oe){switch(re){case"blob":return p.newBlob(p.transformTo("arraybuffer",U),oe);case"base64":return k.encode(U);default:return p.transformTo(re,U)}}(q,function(re,U){var oe,de=0,De=null,B=0;for(oe=0;oe>>6:(A<65536?N[H++]=224|A>>>12:(N[H++]=240|A>>>18,N[H++]=128|A>>>12&63),N[H++]=128|A>>>6&63),N[H++]=128|63&A);return N}(M)},c.utf8decode=function(M){return f.nodebuffer?p.transformTo("nodebuffer",M).toString("utf-8"):function(O){var N,A,C,z,H=O.length,q=new Array(2*H);for(N=A=0;N>10&1023,q[A++]=56320|1023&C)}return q.length!==A&&(q.subarray?q=q.subarray(0,A):q.length=A),p.applyFromCharCode(q)}(M=p.transformTo(f.uint8array?"uint8array":"array",M))},p.inherits(y,k),y.prototype.processChunk=function(M){var O=p.transformTo(f.uint8array?"uint8array":"array",M.data);if(this.leftOver&&this.leftOver.length){if(f.uint8array){var N=O;(O=new Uint8Array(N.length+this.leftOver.length)).set(this.leftOver,0),O.set(N,this.leftOver.length)}else O=this.leftOver.concat(O);this.leftOver=null}var A=function(z,H){var q;for((H=H||z.length)>z.length&&(H=z.length),q=H-1;0<=q&&(192&z[q])==128;)q--;return q<0||q===0?H:q+D[z[q]]>H?q:H}(O),C=O;A!==O.length&&(f.uint8array?(C=O.subarray(0,A),this.leftOver=O.subarray(A,O.length)):(C=O.slice(0,A),this.leftOver=O.slice(A,O.length))),this.push({data:c.utf8decode(C),meta:M.meta})},y.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:c.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},c.Utf8DecodeWorker=y,p.inherits(S,k),S.prototype.processChunk=function(M){this.push({data:c.utf8encode(M.data),meta:M.meta})},c.Utf8EncodeWorker=S},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(l,u,c){"use strict";var p=l("./support"),f=l("./base64"),h=l("./nodejsUtils"),k=l("./external");function D(N){return N}function I(N,A){for(var C=0;C>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=p(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=M.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=M.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=M.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=M.readInt(4))}},readExtraFields:function(M){var O,N,A,C=M.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});M.index+4>>6:(M<65536?S[A++]=224|M>>>12:(S[A++]=240|M>>>18,S[A++]=128|M>>>12&63),S[A++]=128|M>>>6&63),S[A++]=128|63&M);return S},c.buf2binstring=function(y){return I(y,y.length)},c.binstring2buf=function(y){for(var S=new p.Buf8(y.length),M=0,O=S.length;M>10&1023,z[O++]=56320|1023&N)}return I(z,O)},c.utf8border=function(y,S){var M;for((S=S||y.length)>y.length&&(S=y.length),M=S-1;0<=M&&(192&y[M])==128;)M--;return M<0||M===0?S:M+k[y[M]]>S?M:S}},{"./common":41}],43:[function(l,u,c){"use strict";u.exports=function(p,f,h,k){for(var D=65535&p|0,I=p>>>16&65535|0,y=0;h!==0;){for(h-=y=2e3>>1:f>>>1;h[k]=f}return h}();u.exports=function(f,h,k,D){var I=p,y=D+k;f^=-1;for(var S=D;S>>8^I[255&(f^h[S])];return-1^f}},{}],46:[function(l,u,c){"use strict";var p,f=l("../utils/common"),h=l("./trees"),k=l("./adler32"),D=l("./crc32"),I=l("./messages"),y=0,S=4,M=0,O=-2,N=-1,A=4,C=2,z=8,H=9,q=286,K=30,he=19,re=2*q+1,U=15,oe=3,de=258,De=de+oe+1,B=42,_e=113,w=1,fe=2,Se=3,xe=4;function Oe(g,ue){return g.msg=I[ue],ue}function be(g){return(g<<1)-(4g.avail_out&&(Z=g.avail_out),Z!==0&&(f.arraySet(g.output,ue.pending_buf,ue.pending_out,Z,g.next_out),g.next_out+=Z,ue.pending_out+=Z,g.total_out+=Z,g.avail_out-=Z,ue.pending-=Z,ue.pending===0&&(ue.pending_out=0))}function ie(g,ue){h._tr_flush_block(g,0<=g.block_start?g.block_start:-1,g.strstart-g.block_start,ue),g.block_start=g.strstart,se(g.strm)}function Re(g,ue){g.pending_buf[g.pending++]=ue}function Ce(g,ue){g.pending_buf[g.pending++]=ue>>>8&255,g.pending_buf[g.pending++]=255&ue}function we(g,ue){var Z,P,T=g.max_chain_length,j=g.strstart,ee=g.prev_length,te=g.nice_match,Y=g.strstart>g.w_size-De?g.strstart-(g.w_size-De):0,le=g.window,ye=g.w_mask,ge=g.prev,ve=g.strstart+de,Je=le[j+ee-1],Ke=le[j+ee];g.prev_length>=g.good_match&&(T>>=2),te>g.lookahead&&(te=g.lookahead);do if(le[(Z=ue)+ee]===Ke&&le[Z+ee-1]===Je&&le[Z]===le[j]&&le[++Z]===le[j+1]){j+=2,Z++;do;while(le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&jY&&--T!=0);return ee<=g.lookahead?ee:g.lookahead}function At(g){var ue,Z,P,T,j,ee,te,Y,le,ye,ge=g.w_size;do{if(T=g.window_size-g.lookahead-g.strstart,g.strstart>=ge+(ge-De)){for(f.arraySet(g.window,g.window,ge,ge,0),g.match_start-=ge,g.strstart-=ge,g.block_start-=ge,ue=Z=g.hash_size;P=g.head[--ue],g.head[ue]=ge<=P?P-ge:0,--Z;);for(ue=Z=ge;P=g.prev[--ue],g.prev[ue]=ge<=P?P-ge:0,--Z;);T+=ge}if(g.strm.avail_in===0)break;if(ee=g.strm,te=g.window,Y=g.strstart+g.lookahead,le=T,ye=void 0,ye=ee.avail_in,le=oe)for(j=g.strstart-g.insert,g.ins_h=g.window[j],g.ins_h=(g.ins_h<=oe&&(g.ins_h=(g.ins_h<=oe)if(P=h._tr_tally(g,g.strstart-g.match_start,g.match_length-oe),g.lookahead-=g.match_length,g.match_length<=g.max_lazy_match&&g.lookahead>=oe){for(g.match_length--;g.strstart++,g.ins_h=(g.ins_h<=oe&&(g.ins_h=(g.ins_h<=oe&&g.match_length<=g.prev_length){for(T=g.strstart+g.lookahead-oe,P=h._tr_tally(g,g.strstart-1-g.prev_match,g.prev_length-oe),g.lookahead-=g.prev_length-1,g.prev_length-=2;++g.strstart<=T&&(g.ins_h=(g.ins_h<g.pending_buf_size-5&&(Z=g.pending_buf_size-5);;){if(g.lookahead<=1){if(At(g),g.lookahead===0&&ue===y)return w;if(g.lookahead===0)break}g.strstart+=g.lookahead,g.lookahead=0;var P=g.block_start+Z;if((g.strstart===0||g.strstart>=P)&&(g.lookahead=g.strstart-P,g.strstart=P,ie(g,!1),g.strm.avail_out===0)||g.strstart-g.block_start>=g.w_size-De&&(ie(g,!1),g.strm.avail_out===0))return w}return g.insert=0,ue===S?(ie(g,!0),g.strm.avail_out===0?Se:xe):(g.strstart>g.block_start&&(ie(g,!1),g.strm.avail_out),w)}),new ot(4,4,8,4,Ot),new ot(4,5,16,8,Ot),new ot(4,6,32,32,Ot),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)],c.deflateInit=function(g,ue){return yt(g,ue,z,15,8,0)},c.deflateInit2=yt,c.deflateReset=Rt,c.deflateResetKeep=tt,c.deflateSetHeader=function(g,ue){return g&&g.state?g.state.wrap!==2?O:(g.state.gzhead=ue,M):O},c.deflate=function(g,ue){var Z,P,T,j;if(!g||!g.state||5>8&255),Re(P,P.gzhead.time>>16&255),Re(P,P.gzhead.time>>24&255),Re(P,P.level===9?2:2<=P.strategy||P.level<2?4:0),Re(P,255&P.gzhead.os),P.gzhead.extra&&P.gzhead.extra.length&&(Re(P,255&P.gzhead.extra.length),Re(P,P.gzhead.extra.length>>8&255)),P.gzhead.hcrc&&(g.adler=D(g.adler,P.pending_buf,P.pending,0)),P.gzindex=0,P.status=69):(Re(P,0),Re(P,0),Re(P,0),Re(P,0),Re(P,0),Re(P,P.level===9?2:2<=P.strategy||P.level<2?4:0),Re(P,3),P.status=_e);else{var ee=z+(P.w_bits-8<<4)<<8;ee|=(2<=P.strategy||P.level<2?0:P.level<6?1:P.level===6?2:3)<<6,P.strstart!==0&&(ee|=32),ee+=31-ee%31,P.status=_e,Ce(P,ee),P.strstart!==0&&(Ce(P,g.adler>>>16),Ce(P,65535&g.adler)),g.adler=1}if(P.status===69)if(P.gzhead.extra){for(T=P.pending;P.gzindex<(65535&P.gzhead.extra.length)&&(P.pending!==P.pending_buf_size||(P.gzhead.hcrc&&P.pending>T&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),se(g),T=P.pending,P.pending!==P.pending_buf_size));)Re(P,255&P.gzhead.extra[P.gzindex]),P.gzindex++;P.gzhead.hcrc&&P.pending>T&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),P.gzindex===P.gzhead.extra.length&&(P.gzindex=0,P.status=73)}else P.status=73;if(P.status===73)if(P.gzhead.name){T=P.pending;do{if(P.pending===P.pending_buf_size&&(P.gzhead.hcrc&&P.pending>T&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),se(g),T=P.pending,P.pending===P.pending_buf_size)){j=1;break}j=P.gzindexT&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),j===0&&(P.gzindex=0,P.status=91)}else P.status=91;if(P.status===91)if(P.gzhead.comment){T=P.pending;do{if(P.pending===P.pending_buf_size&&(P.gzhead.hcrc&&P.pending>T&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),se(g),T=P.pending,P.pending===P.pending_buf_size)){j=1;break}j=P.gzindexT&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),j===0&&(P.status=103)}else P.status=103;if(P.status===103&&(P.gzhead.hcrc?(P.pending+2>P.pending_buf_size&&se(g),P.pending+2<=P.pending_buf_size&&(Re(P,255&g.adler),Re(P,g.adler>>8&255),g.adler=0,P.status=_e)):P.status=_e),P.pending!==0){if(se(g),g.avail_out===0)return P.last_flush=-1,M}else if(g.avail_in===0&&be(ue)<=be(Z)&&ue!==S)return Oe(g,-5);if(P.status===666&&g.avail_in!==0)return Oe(g,-5);if(g.avail_in!==0||P.lookahead!==0||ue!==y&&P.status!==666){var te=P.strategy===2?function(Y,le){for(var ye;;){if(Y.lookahead===0&&(At(Y),Y.lookahead===0)){if(le===y)return w;break}if(Y.match_length=0,ye=h._tr_tally(Y,0,Y.window[Y.strstart]),Y.lookahead--,Y.strstart++,ye&&(ie(Y,!1),Y.strm.avail_out===0))return w}return Y.insert=0,le===S?(ie(Y,!0),Y.strm.avail_out===0?Se:xe):Y.last_lit&&(ie(Y,!1),Y.strm.avail_out===0)?w:fe}(P,ue):P.strategy===3?function(Y,le){for(var ye,ge,ve,Je,Ke=Y.window;;){if(Y.lookahead<=de){if(At(Y),Y.lookahead<=de&&le===y)return w;if(Y.lookahead===0)break}if(Y.match_length=0,Y.lookahead>=oe&&0Y.lookahead&&(Y.match_length=Y.lookahead)}if(Y.match_length>=oe?(ye=h._tr_tally(Y,1,Y.match_length-oe),Y.lookahead-=Y.match_length,Y.strstart+=Y.match_length,Y.match_length=0):(ye=h._tr_tally(Y,0,Y.window[Y.strstart]),Y.lookahead--,Y.strstart++),ye&&(ie(Y,!1),Y.strm.avail_out===0))return w}return Y.insert=0,le===S?(ie(Y,!0),Y.strm.avail_out===0?Se:xe):Y.last_lit&&(ie(Y,!1),Y.strm.avail_out===0)?w:fe}(P,ue):p[P.level].func(P,ue);if(te!==Se&&te!==xe||(P.status=666),te===w||te===Se)return g.avail_out===0&&(P.last_flush=-1),M;if(te===fe&&(ue===1?h._tr_align(P):ue!==5&&(h._tr_stored_block(P,0,0,!1),ue===3&&(Fe(P.head),P.lookahead===0&&(P.strstart=0,P.block_start=0,P.insert=0))),se(g),g.avail_out===0))return P.last_flush=-1,M}return ue!==S?M:P.wrap<=0?1:(P.wrap===2?(Re(P,255&g.adler),Re(P,g.adler>>8&255),Re(P,g.adler>>16&255),Re(P,g.adler>>24&255),Re(P,255&g.total_in),Re(P,g.total_in>>8&255),Re(P,g.total_in>>16&255),Re(P,g.total_in>>24&255)):(Ce(P,g.adler>>>16),Ce(P,65535&g.adler)),se(g),0=Z.w_size&&(j===0&&(Fe(Z.head),Z.strstart=0,Z.block_start=0,Z.insert=0),le=new f.Buf8(Z.w_size),f.arraySet(le,ue,ye-Z.w_size,Z.w_size,0),ue=le,ye=Z.w_size),ee=g.avail_in,te=g.next_in,Y=g.input,g.avail_in=ye,g.next_in=0,g.input=ue,At(Z);Z.lookahead>=oe;){for(P=Z.strstart,T=Z.lookahead-(oe-1);Z.ins_h=(Z.ins_h<>>=oe=U>>>24,H-=oe,(oe=U>>>16&255)==0)fe[I++]=65535&U;else{if(!(16&oe)){if((64&oe)==0){U=q[(65535&U)+(z&(1<>>=oe,H-=oe),H<15&&(z+=w[k++]<>>=oe=U>>>24,H-=oe,!(16&(oe=U>>>16&255))){if((64&oe)==0){U=K[(65535&U)+(z&(1<>>=oe,H-=oe,(oe=I-y)>3,z&=(1<<(H-=de<<3))-1,p.next_in=k,p.next_out=I,p.avail_in=k>>24&255)+(B>>>8&65280)+((65280&B)<<8)+((255&B)<<24)}function z(){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 p.Buf16(320),this.work=new p.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function H(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=O,_e.last=0,_e.havedict=0,_e.dmax=32768,_e.head=null,_e.hold=0,_e.bits=0,_e.lencode=_e.lendyn=new p.Buf32(N),_e.distcode=_e.distdyn=new p.Buf32(A),_e.sane=1,_e.back=-1,S):M}function q(B){var _e;return B&&B.state?((_e=B.state).wsize=0,_e.whave=0,_e.wnext=0,H(B)):M}function K(B,_e){var w,fe;return B&&B.state?(fe=B.state,_e<0?(w=0,_e=-_e):(w=1+(_e>>4),_e<48&&(_e&=15)),_e&&(_e<8||15<_e)?M:(fe.window!==null&&fe.wbits!==_e&&(fe.window=null),fe.wrap=w,fe.wbits=_e,q(B))):M}function he(B,_e){var w,fe;return B?(fe=new z,(B.state=fe).window=null,(w=K(B,_e))!==S&&(B.state=null),w):M}var re,U,oe=!0;function de(B){if(oe){var _e;for(re=new p.Buf32(512),U=new p.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(D(I,B.lens,0,288,re,0,B.work,{bits:9}),_e=0;_e<32;)B.lens[_e++]=5;D(y,B.lens,0,32,U,0,B.work,{bits:5}),oe=!1}B.lencode=re,B.lenbits=9,B.distcode=U,B.distbits=5}function De(B,_e,w,fe){var Se,xe=B.state;return xe.window===null&&(xe.wsize=1<=xe.wsize?(p.arraySet(xe.window,_e,w-xe.wsize,xe.wsize,0),xe.wnext=0,xe.whave=xe.wsize):(fe<(Se=xe.wsize-xe.wnext)&&(Se=fe),p.arraySet(xe.window,_e,w-fe,Se,xe.wnext),(fe-=Se)?(p.arraySet(xe.window,_e,w-fe,fe,0),xe.wnext=fe,xe.whave=xe.wsize):(xe.wnext+=Se,xe.wnext===xe.wsize&&(xe.wnext=0),xe.whave>>8&255,w.check=h(w.check,j,2,0),ie=se=0,w.mode=2;break}if(w.flags=0,w.head&&(w.head.done=!1),!(1&w.wrap)||(((255&se)<<8)+(se>>8))%31){B.msg="incorrect header check",w.mode=30;break}if((15&se)!=8){B.msg="unknown compression method",w.mode=30;break}if(ie-=4,g=8+(15&(se>>>=4)),w.wbits===0)w.wbits=g;else if(g>w.wbits){B.msg="invalid window size",w.mode=30;break}w.dmax=1<>8&1),512&w.flags&&(j[0]=255&se,j[1]=se>>>8&255,w.check=h(w.check,j,2,0)),ie=se=0,w.mode=3;case 3:for(;ie<32;){if(be===0)break e;be--,se+=fe[xe++]<>>8&255,j[2]=se>>>16&255,j[3]=se>>>24&255,w.check=h(w.check,j,4,0)),ie=se=0,w.mode=4;case 4:for(;ie<16;){if(be===0)break e;be--,se+=fe[xe++]<>8),512&w.flags&&(j[0]=255&se,j[1]=se>>>8&255,w.check=h(w.check,j,2,0)),ie=se=0,w.mode=5;case 5:if(1024&w.flags){for(;ie<16;){if(be===0)break e;be--,se+=fe[xe++]<>>8&255,w.check=h(w.check,j,2,0)),ie=se=0}else w.head&&(w.head.extra=null);w.mode=6;case 6:if(1024&w.flags&&(be<(we=w.length)&&(we=be),we&&(w.head&&(g=w.head.extra_len-w.length,w.head.extra||(w.head.extra=new Array(w.head.extra_len)),p.arraySet(w.head.extra,fe,xe,we,g)),512&w.flags&&(w.check=h(w.check,fe,we,xe)),be-=we,xe+=we,w.length-=we),w.length))break e;w.length=0,w.mode=7;case 7:if(2048&w.flags){if(be===0)break e;for(we=0;g=fe[xe+we++],w.head&&g&&w.length<65536&&(w.head.name+=String.fromCharCode(g)),g&&we>9&1,w.head.done=!0),B.adler=w.check=0,w.mode=12;break;case 10:for(;ie<32;){if(be===0)break e;be--,se+=fe[xe++]<>>=7&ie,ie-=7&ie,w.mode=27;break}for(;ie<3;){if(be===0)break e;be--,se+=fe[xe++]<>>=1)){case 0:w.mode=14;break;case 1:if(de(w),w.mode=20,_e!==6)break;se>>>=2,ie-=2;break e;case 2:w.mode=17;break;case 3:B.msg="invalid block type",w.mode=30}se>>>=2,ie-=2;break;case 14:for(se>>>=7&ie,ie-=7&ie;ie<32;){if(be===0)break e;be--,se+=fe[xe++]<>>16^65535)){B.msg="invalid stored block lengths",w.mode=30;break}if(w.length=65535&se,ie=se=0,w.mode=15,_e===6)break e;case 15:w.mode=16;case 16:if(we=w.length){if(be>>=5,ie-=5,w.ndist=1+(31&se),se>>>=5,ie-=5,w.ncode=4+(15&se),se>>>=4,ie-=4,286>>=3,ie-=3}for(;w.have<19;)w.lens[ee[w.have++]]=0;if(w.lencode=w.lendyn,w.lenbits=7,Z={bits:w.lenbits},ue=D(0,w.lens,0,19,w.lencode,0,w.work,Z),w.lenbits=Z.bits,ue){B.msg="invalid code lengths set",w.mode=30;break}w.have=0,w.mode=19;case 19:for(;w.have>>16&255,kt=65535&T,!((et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[xe++]<>>=et,ie-=et,w.lens[w.have++]=kt;else{if(kt===16){for(P=et+2;ie>>=et,ie-=et,w.have===0){B.msg="invalid bit length repeat",w.mode=30;break}g=w.lens[w.have-1],we=3+(3&se),se>>>=2,ie-=2}else if(kt===17){for(P=et+3;ie>>=et)),se>>>=3,ie-=3}else{for(P=et+7;ie>>=et)),se>>>=7,ie-=7}if(w.have+we>w.nlen+w.ndist){B.msg="invalid bit length repeat",w.mode=30;break}for(;we--;)w.lens[w.have++]=g}}if(w.mode===30)break;if(w.lens[256]===0){B.msg="invalid code -- missing end-of-block",w.mode=30;break}if(w.lenbits=9,Z={bits:w.lenbits},ue=D(I,w.lens,0,w.nlen,w.lencode,0,w.work,Z),w.lenbits=Z.bits,ue){B.msg="invalid literal/lengths set",w.mode=30;break}if(w.distbits=6,w.distcode=w.distdyn,Z={bits:w.distbits},ue=D(y,w.lens,w.nlen,w.ndist,w.distcode,0,w.work,Z),w.distbits=Z.bits,ue){B.msg="invalid distances set",w.mode=30;break}if(w.mode=20,_e===6)break e;case 20:w.mode=21;case 21:if(6<=be&&258<=Fe){B.next_out=Oe,B.avail_out=Fe,B.next_in=xe,B.avail_in=be,w.hold=se,w.bits=ie,k(B,Ce),Oe=B.next_out,Se=B.output,Fe=B.avail_out,xe=B.next_in,fe=B.input,be=B.avail_in,se=w.hold,ie=w.bits,w.mode===12&&(w.back=-1);break}for(w.back=0;ot=(T=w.lencode[se&(1<>>16&255,kt=65535&T,!((et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[xe++]<>tt)])>>>16&255,kt=65535&T,!(tt+(et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[xe++]<>>=tt,ie-=tt,w.back+=tt}if(se>>>=et,ie-=et,w.back+=et,w.length=kt,ot===0){w.mode=26;break}if(32&ot){w.back=-1,w.mode=12;break}if(64&ot){B.msg="invalid literal/length code",w.mode=30;break}w.extra=15&ot,w.mode=22;case 22:if(w.extra){for(P=w.extra;ie>>=w.extra,ie-=w.extra,w.back+=w.extra}w.was=w.length,w.mode=23;case 23:for(;ot=(T=w.distcode[se&(1<>>16&255,kt=65535&T,!((et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[xe++]<>tt)])>>>16&255,kt=65535&T,!(tt+(et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[xe++]<>>=tt,ie-=tt,w.back+=tt}if(se>>>=et,ie-=et,w.back+=et,64&ot){B.msg="invalid distance code",w.mode=30;break}w.offset=kt,w.extra=15&ot,w.mode=24;case 24:if(w.extra){for(P=w.extra;ie>>=w.extra,ie-=w.extra,w.back+=w.extra}if(w.offset>w.dmax){B.msg="invalid distance too far back",w.mode=30;break}w.mode=25;case 25:if(Fe===0)break e;if(we=Ce-Fe,w.offset>we){if((we=w.offset-we)>w.whave&&w.sane){B.msg="invalid distance too far back",w.mode=30;break}At=we>w.wnext?(we-=w.wnext,w.wsize-we):w.wnext-we,we>w.length&&(we=w.length),Ot=w.window}else Ot=Se,At=Oe-w.offset,we=w.length;for(Fere?(oe=At[Ot+A[_e]],ie[Re+A[_e]]):(oe=96,0),z=1<>Oe)+(H-=z)]=U<<24|oe<<16|de|0,H!==0;);for(z=1<>=1;if(z!==0?(se&=z-1,se+=z):se=0,_e++,--Ce[B]==0){if(B===fe)break;B=y[S+A[_e]]}if(Se>>7)]}function Re(T,j){T.pending_buf[T.pending++]=255&j,T.pending_buf[T.pending++]=j>>>8&255}function Ce(T,j,ee){T.bi_valid>C-ee?(T.bi_buf|=j<>C-T.bi_valid,T.bi_valid+=ee-C):(T.bi_buf|=j<>>=1,ee<<=1,0<--j;);return ee>>>1}function Ot(T,j,ee){var te,Y,le=new Array(A+1),ye=0;for(te=1;te<=A;te++)le[te]=ye=ye+ee[te-1]<<1;for(Y=0;Y<=j;Y++){var ge=T[2*Y+1];ge!==0&&(T[2*Y]=At(le[ge]++,ge))}}function et(T){var j;for(j=0;j>1;1<=ee;ee--)tt(T,le,ee);for(Y=ve;ee=T.heap[1],T.heap[1]=T.heap[T.heap_len--],tt(T,le,1),te=T.heap[1],T.heap[--T.heap_max]=ee,T.heap[--T.heap_max]=te,le[2*Y]=le[2*ee]+le[2*te],T.depth[Y]=(T.depth[ee]>=T.depth[te]?T.depth[ee]:T.depth[te])+1,le[2*ee+1]=le[2*te+1]=Y,T.heap[1]=Y++,tt(T,le,1),2<=T.heap_len;);T.heap[--T.heap_max]=T.heap[1],function(Ke,We){var nt,Gt,kn,Et,Pn,en,Bt=We.dyn_tree,sn=We.max_code,Ht=We.stat_desc.static_tree,Cn=We.stat_desc.has_stree,Xn=We.stat_desc.extra_bits,Kn=We.stat_desc.extra_base,Xt=We.stat_desc.max_length,yn=0;for(Et=0;Et<=A;Et++)Ke.bl_count[Et]=0;for(Bt[2*Ke.heap[Ke.heap_max]+1]=0,nt=Ke.heap_max+1;nt>=7;Y>>=1)if(1&Je&&ge.dyn_ltree[2*ve]!==0)return f;if(ge.dyn_ltree[18]!==0||ge.dyn_ltree[20]!==0||ge.dyn_ltree[26]!==0)return h;for(ve=32;ve>>3,(le=T.static_len+3+7>>>3)<=Y&&(Y=le)):Y=le=ee+5,ee+4<=Y&&j!==-1?P(T,j,ee,te):T.strategy===4||le===Y?(Ce(T,2+(te?1:0),3),Rt(T,De,B)):(Ce(T,4+(te?1:0),3),function(ge,ve,Je,Ke){var We;for(Ce(ge,ve-257,5),Ce(ge,Je-1,5),Ce(ge,Ke-4,4),We=0;We>>8&255,T.pending_buf[T.d_buf+2*T.last_lit+1]=255&j,T.pending_buf[T.l_buf+T.last_lit]=255&ee,T.last_lit++,j===0?T.dyn_ltree[2*ee]++:(T.matches++,j--,T.dyn_ltree[2*(w[ee]+y+1)]++,T.dyn_dtree[2*ie(j)]++),T.last_lit===T.lit_bufsize-1},c._tr_align=function(T){Ce(T,2,3),we(T,H,De),function(j){j.bi_valid===16?(Re(j,j.bi_buf),j.bi_buf=0,j.bi_valid=0):8<=j.bi_valid&&(j.pending_buf[j.pending++]=255&j.bi_buf,j.bi_buf>>=8,j.bi_valid-=8)}(T)}},{"../utils/common":41}],53:[function(l,u,c){"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,c){(function(p){(function(f,h){"use strict";if(!f.setImmediate){var k,D,I,y,S=1,M={},O=!1,N=f.document,A=Object.getPrototypeOf&&Object.getPrototypeOf(f);A=A&&A.setTimeout?A:f,k={}.toString.call(f.process)==="[object process]"?function(q){process.nextTick(function(){z(q)})}:function(){if(f.postMessage&&!f.importScripts){var q=!0,K=f.onmessage;return f.onmessage=function(){q=!1},f.postMessage("","*"),f.onmessage=K,q}}()?(y="setImmediate$"+Math.random()+"$",f.addEventListener?f.addEventListener("message",H,!1):f.attachEvent("onmessage",H),function(q){f.postMessage(y+q,"*")}):f.MessageChannel?((I=new MessageChannel).port1.onmessage=function(q){z(q.data)},function(q){I.port2.postMessage(q)}):N&&"onreadystatechange"in N.createElement("script")?(D=N.documentElement,function(q){var K=N.createElement("script");K.onreadystatechange=function(){z(q),K.onreadystatechange=null,D.removeChild(K),K=null},D.appendChild(K)}):function(q){setTimeout(z,0,q)},A.setImmediate=function(q){typeof q!="function"&&(q=new Function(""+q));for(var K=new Array(arguments.length-1),he=0;he{"use strict";var bi=ao&&ao.__assign||function(){return bi=Object.assign||function(l){for(var u,c=1,p=arguments.length;c{"use strict";Object.defineProperty(wi,"__esModule",{value:!0});wi.Tabs=void 0;var Zh=eu(),Jh=function(){function l(u){var c=this;u===void 0&&(u={}),this._currentTab="",this.tabEvents=new Zh.EventEmitter({beforeSwitch:!0,afterSwitch:!0}),$("*[data-tab]").on("click",function(h){var k=$(h.target),D=k.data("tab");h.preventDefault(),c.switchToTab(D)});var p=u.initialTab;if(!p&&window.location.hash){var f=window.location.hash.replace(/^#/,"");p=f}p||(p=$(".tab:first").attr("data-tab")),p&&this.switchToTab(p)}return l.prototype.switchToTab=function(u){var c=this,p=function(){var h=c._currentTab;c._currentTab=u;var k=u!=="level"?u:"";window.history&&window.history.replaceState(null,"","#"+k);var D=$('*[data-tab="'+u+'"]'),I=D.siblings("*[data-tab]"),y=$('*[data-tabtarget="'+u+'"]'),S=y.siblings("*[data-tabtarget]");I.removeClass("tab-selected"),D.addClass("tab-selected"),S.addClass("hidden"),y.removeClass("hidden"),c.tabEvents.emit("afterSwitch",{oldTab:h,newTab:u})};if(this._currentTab!=""){var f=this.tabEvents.emit("beforeSwitch",{oldTab:this._currentTab,newTab:u});f.then(p)}else p()},Object.defineProperty(l.prototype,"currentTab",{get:function(){return this._currentTab},enumerable:!1,configurable:!0}),l.prototype.on=function(u,c){var p=this.tabEvents.on(u,c);return u==="afterSwitch"&&this.tabEvents.emit("afterSwitch",{oldTab:"",newTab:this._currentTab}),p},l}();wi.Tabs=Jh});var nu=dt(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.normal_prefix=Er.pygame_prefix=Er.turtle_prefix=void 0;Er.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 so=dt(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.setClientMessageLanguage=Wr.ClientMessages=void 0;var Ta=Jl();Wr.ClientMessages=Object.assign({},Ta.TRANSLATIONS.en);function Vh(s){var u;Object.assign(Wr.ClientMessages,(u=Ta.TRANSLATIONS[s])!==null&&u!==void 0?u:Ta.TRANSLATIONS.en)}Wr.setClientMessageLanguage=Vh});var vr=dt($n=>{"use strict";var Yh=$n&&$n.__awaiter||function(s,u,c,p){function f(h){return h instanceof c?h:new c(function(k){k(h)})}return new(c||(c=Promise))(function(h,k){function D(S){try{y(p.next(S))}catch(M){k(M)}}function I(S){try{y(p.throw(S))}catch(M){k(M)}}function y(S){S.done?h(S.value):f(S.value).then(D,I)}y((p=p.apply(s,u||[])).next())})},qh=$n&&$n.__generator||function(s,u){var c={label:0,sent:function(){if(h[0]&1)throw h[1];return h[1]},trys:[],ops:[]},p,f,h,k;return k={next:D(0),throw:D(1),return:D(2)},typeof Symbol=="function"&&(k[Symbol.iterator]=function(){return this}),k;function D(y){return function(S){return I([y,S])}}function I(y){if(p)throw new TypeError("Generator is already executing.");for(;c;)try{if(p=1,f&&(h=y[0]&2?f.return:y[0]?f.throw||((h=f.return)&&h.call(f),0):f.next)&&!(h=h.call(f,y[1])).done)return h;switch(f=0,h&&(y=[y[0]&2,h.value]),y[0]){case 0:case 1:h=y;break;case 4:return c.label++,{value:y[1],done:!1};case 5:c.label++,f=y[1],y=[0];continue;case 7:y=c.ops.pop(),c.trys.pop();continue;default:if(h=c.trys,!(h=h.length>0&&h[h.length-1])&&(y[0]===6||y[0]===2)){c=0;continue}if(y[0]===3&&(!h||y[1]>h[0]&&y[1]{(function(s){typeof Ql=="object"&&typeof Pa!="undefined"?Pa.exports=s():typeof define=="function"&&define.amd?define([],s):(typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:this).JSZip=s()})(function(){return function s(u,c,p){function f(D,I){if(!c[D]){if(!u[D]){var y=typeof Fo=="function"&&Fo;if(!I&&y)return y(D,!0);if(h)return h(D,!0);var S=new Error("Cannot find module '"+D+"'");throw S.code="MODULE_NOT_FOUND",S}var M=c[D]={exports:{}};u[D][0].call(M.exports,function(O){var N=u[D][1][O];return f(N||O)},M,M.exports,s,u,c,p)}return c[D].exports}for(var h=typeof Fo=="function"&&Fo,k=0;k>2,M=(3&D)<<4|I>>4,O=1>6:64,N=2>4,I=(15&S)<<4|(M=h.indexOf(k.charAt(N++)))>>2,y=(3&M)<<6|(O=h.indexOf(k.charAt(N++))),z[A++]=D,M!==64&&(z[A++]=I),O!==64&&(z[A++]=y);return z}},{"./support":30,"./utils":32}],2:[function(s,u,c){"use strict";var p=s("./external"),f=s("./stream/DataWorker"),h=s("./stream/Crc32Probe"),k=s("./stream/DataLengthProbe");function D(I,y,S,M,O){this.compressedSize=I,this.uncompressedSize=y,this.crc32=S,this.compression=M,this.compressedContent=O}D.prototype={getContentWorker:function(){var I=new f(p.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new k("data_length")),y=this;return I.on("end",function(){if(this.streamInfo.data_length!==y.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),I},getCompressedWorker:function(){return new f(p.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},D.createWorkerFrom=function(I,y,S){return I.pipe(new h).pipe(new k("uncompressedSize")).pipe(y.compressWorker(S)).pipe(new k("compressedSize")).withStreamInfo("compression",y)},u.exports=D},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(s,u,c){"use strict";var p=s("./stream/GenericWorker");c.STORE={magic:"\0\0",compressWorker:function(){return new p("STORE compression")},uncompressWorker:function(){return new p("STORE decompression")}},c.DEFLATE=s("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(s,u,c){"use strict";var p=s("./utils"),f=function(){for(var h,k=[],D=0;D<256;D++){h=D;for(var I=0;I<8;I++)h=1&h?3988292384^h>>>1:h>>>1;k[D]=h}return k}();u.exports=function(h,k){return h!==void 0&&h.length?p.getTypeOf(h)!=="string"?function(D,I,y,S){var M=f,O=S+y;D^=-1;for(var N=S;N>>8^M[255&(D^I[N])];return-1^D}(0|k,h,h.length,0):function(D,I,y,S){var M=f,O=S+y;D^=-1;for(var N=S;N>>8^M[255&(D^I.charCodeAt(N))];return-1^D}(0|k,h,h.length,0):0}},{"./utils":32}],5:[function(s,u,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!0,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],6:[function(s,u,c){"use strict";var p=null;p=typeof Promise!="undefined"?Promise:s("lie"),u.exports={Promise:p}},{lie:37}],7:[function(s,u,c){"use strict";var p=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",f=s("pako"),h=s("./utils"),k=s("./stream/GenericWorker"),D=p?"uint8array":"array";function I(y,S){k.call(this,"FlateWorker/"+y),this._pako=null,this._pakoAction=y,this._pakoOptions=S,this.meta={}}c.magic="\b\0",h.inherits(I,k),I.prototype.processChunk=function(y){this.meta=y.meta,this._pako===null&&this._createPako(),this._pako.push(h.transformTo(D,y.data),!1)},I.prototype.flush=function(){k.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},I.prototype.cleanUp=function(){k.prototype.cleanUp.call(this),this._pako=null},I.prototype._createPako=function(){this._pako=new f[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var y=this;this._pako.onData=function(S){y.push({data:S,meta:y.meta})}},c.compressWorker=function(y){return new I("Deflate",y)},c.uncompressWorker=function(){return new I("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(s,u,c){"use strict";function p(M,O){var N,A="";for(N=0;N>>=8;return A}function f(M,O,N,A,C,z){var H,q,K=M.file,he=M.compression,re=z!==D.utf8encode,U=h.transformTo("string",z(K.name)),oe=h.transformTo("string",D.utf8encode(K.name)),de=K.comment,De=h.transformTo("string",z(de)),B=h.transformTo("string",D.utf8encode(de)),_e=oe.length!==K.name.length,w=B.length!==de.length,fe="",Se="",ve="",Oe=K.dir,be=K.date,Fe={crc32:0,compressedSize:0,uncompressedSize:0};O&&!N||(Fe.crc32=M.crc32,Fe.compressedSize=M.compressedSize,Fe.uncompressedSize=M.uncompressedSize);var se=0;O&&(se|=8),re||!_e&&!w||(se|=2048);var ie=0,Re=0;Oe&&(ie|=16),C==="UNIX"?(Re=798,ie|=function(we,At){var Ot=we;return we||(Ot=At?16893:33204),(65535&Ot)<<16}(K.unixPermissions,Oe)):(Re=20,ie|=function(we){return 63&(we||0)}(K.dosPermissions)),H=be.getUTCHours(),H<<=6,H|=be.getUTCMinutes(),H<<=5,H|=be.getUTCSeconds()/2,q=be.getUTCFullYear()-1980,q<<=4,q|=be.getUTCMonth()+1,q<<=5,q|=be.getUTCDate(),_e&&(Se=p(1,1)+p(I(U),4)+oe,fe+="up"+p(Se.length,2)+Se),w&&(ve=p(1,1)+p(I(De),4)+B,fe+="uc"+p(ve.length,2)+ve);var Ce="";return Ce+=` +\0`,Ce+=p(se,2),Ce+=he.magic,Ce+=p(H,2),Ce+=p(q,2),Ce+=p(Fe.crc32,4),Ce+=p(Fe.compressedSize,4),Ce+=p(Fe.uncompressedSize,4),Ce+=p(U.length,2),Ce+=p(fe.length,2),{fileRecord:y.LOCAL_FILE_HEADER+Ce+U+fe,dirRecord:y.CENTRAL_FILE_HEADER+p(Re,2)+Ce+p(De.length,2)+"\0\0\0\0"+p(ie,4)+p(A,4)+U+fe+De}}var h=s("../utils"),k=s("../stream/GenericWorker"),D=s("../utf8"),I=s("../crc32"),y=s("../signature");function S(M,O,N,A){k.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=O,this.zipPlatform=N,this.encodeFileName=A,this.streamFiles=M,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}h.inherits(S,k),S.prototype.push=function(M){var O=M.meta.percent||0,N=this.entriesCount,A=this._sources.length;this.accumulate?this.contentBuffer.push(M):(this.bytesWritten+=M.data.length,k.prototype.push.call(this,{data:M.data,meta:{currentFile:this.currentFile,percent:N?(O+100*(N-A-1))/N:100}}))},S.prototype.openedSource=function(M){this.currentSourceOffset=this.bytesWritten,this.currentFile=M.file.name;var O=this.streamFiles&&!M.file.dir;if(O){var N=f(M,O,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:N.fileRecord,meta:{percent:0}})}else this.accumulate=!0},S.prototype.closedSource=function(M){this.accumulate=!1;var O=this.streamFiles&&!M.file.dir,N=f(M,O,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(N.dirRecord),O)this.push({data:function(A){return y.DATA_DESCRIPTOR+p(A.crc32,4)+p(A.compressedSize,4)+p(A.uncompressedSize,4)}(M),meta:{percent:100}});else for(this.push({data:N.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},S.prototype.flush=function(){for(var M=this.bytesWritten,O=0;O=this.index;k--)D=(D<<8)+this.byteAt(k);return this.index+=h,D},readString:function(h){return p.transformTo("string",this.readData(h))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var h=this.readInt(4);return new Date(Date.UTC(1980+(h>>25&127),(h>>21&15)-1,h>>16&31,h>>11&31,h>>5&63,(31&h)<<1))}},u.exports=f},{"../utils":32}],19:[function(s,u,c){"use strict";var p=s("./Uint8ArrayReader");function f(h){p.call(this,h)}s("../utils").inherits(f,p),f.prototype.readData=function(h){this.checkOffset(h);var k=this.data.slice(this.zero+this.index,this.zero+this.index+h);return this.index+=h,k},u.exports=f},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(s,u,c){"use strict";var p=s("./DataReader");function f(h){p.call(this,h)}s("../utils").inherits(f,p),f.prototype.byteAt=function(h){return this.data.charCodeAt(this.zero+h)},f.prototype.lastIndexOfSignature=function(h){return this.data.lastIndexOf(h)-this.zero},f.prototype.readAndCheckSignature=function(h){return h===this.readData(4)},f.prototype.readData=function(h){this.checkOffset(h);var k=this.data.slice(this.zero+this.index,this.zero+this.index+h);return this.index+=h,k},u.exports=f},{"../utils":32,"./DataReader":18}],21:[function(s,u,c){"use strict";var p=s("./ArrayReader");function f(h){p.call(this,h)}s("../utils").inherits(f,p),f.prototype.readData=function(h){if(this.checkOffset(h),h===0)return new Uint8Array(0);var k=this.data.subarray(this.zero+this.index,this.zero+this.index+h);return this.index+=h,k},u.exports=f},{"../utils":32,"./ArrayReader":17}],22:[function(s,u,c){"use strict";var p=s("../utils"),f=s("../support"),h=s("./ArrayReader"),k=s("./StringReader"),D=s("./NodeBufferReader"),I=s("./Uint8ArrayReader");u.exports=function(y){var S=p.getTypeOf(y);return p.checkSupport(S),S!=="string"||f.uint8array?S==="nodebuffer"?new D(y):f.uint8array?new I(p.transformTo("uint8array",y)):new h(p.transformTo("array",y)):new k(y)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(s,u,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(s,u,c){"use strict";var p=s("./GenericWorker"),f=s("../utils");function h(k){p.call(this,"ConvertWorker to "+k),this.destType=k}f.inherits(h,p),h.prototype.processChunk=function(k){this.push({data:f.transformTo(this.destType,k.data),meta:k.meta})},u.exports=h},{"../utils":32,"./GenericWorker":28}],25:[function(s,u,c){"use strict";var p=s("./GenericWorker"),f=s("../crc32");function h(){p.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}s("../utils").inherits(h,p),h.prototype.processChunk=function(k){this.streamInfo.crc32=f(k.data,this.streamInfo.crc32||0),this.push(k)},u.exports=h},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(s,u,c){"use strict";var p=s("../utils"),f=s("./GenericWorker");function h(k){f.call(this,"DataLengthProbe for "+k),this.propName=k,this.withStreamInfo(k,0)}p.inherits(h,f),h.prototype.processChunk=function(k){if(k){var D=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=D+k.data.length}f.prototype.processChunk.call(this,k)},u.exports=h},{"../utils":32,"./GenericWorker":28}],27:[function(s,u,c){"use strict";var p=s("../utils"),f=s("./GenericWorker");function h(k){f.call(this,"DataWorker");var D=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,k.then(function(I){D.dataIsReady=!0,D.data=I,D.max=I&&I.length||0,D.type=p.getTypeOf(I),D.isPaused||D._tickAndRepeat()},function(I){D.error(I)})}p.inherits(h,f),h.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},h.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,p.delay(this._tickAndRepeat,[],this)),!0)},h.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(p.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},h.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var k=null,D=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":k=this.data.substring(this.index,D);break;case"uint8array":k=this.data.subarray(this.index,D);break;case"array":case"nodebuffer":k=this.data.slice(this.index,D)}return this.index=D,this.push({data:k,meta:{percent:this.max?this.index/this.max*100:0}})},u.exports=h},{"../utils":32,"./GenericWorker":28}],28:[function(s,u,c){"use strict";function p(f){this.name=f||"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}p.prototype={push:function(f){this.emit("data",f)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(f){this.emit("error",f)}return!0},error:function(f){return!this.isFinished&&(this.isPaused?this.generatedError=f:(this.isFinished=!0,this.emit("error",f),this.previous&&this.previous.error(f),this.cleanUp()),!0)},on:function(f,h){return this._listeners[f].push(h),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(f,h){if(this._listeners[f])for(var k=0;k "+f:f}},u.exports=p},{}],29:[function(s,u,c){"use strict";var p=s("../utils"),f=s("./ConvertWorker"),h=s("./GenericWorker"),k=s("../base64"),D=s("../support"),I=s("../external"),y=null;if(D.nodestream)try{y=s("../nodejs/NodejsStreamOutputAdapter")}catch(O){}function S(O,N){return new I.Promise(function(A,C){var z=[],H=O._internalType,q=O._outputType,K=O._mimeType;O.on("data",function(he,re){z.push(he),N&&N(re)}).on("error",function(he){z=[],C(he)}).on("end",function(){try{var he=function(re,U,oe){switch(re){case"blob":return p.newBlob(p.transformTo("arraybuffer",U),oe);case"base64":return k.encode(U);default:return p.transformTo(re,U)}}(q,function(re,U){var oe,de=0,De=null,B=0;for(oe=0;oe>>6:(A<65536?N[H++]=224|A>>>12:(N[H++]=240|A>>>18,N[H++]=128|A>>>12&63),N[H++]=128|A>>>6&63),N[H++]=128|63&A);return N}(M)},c.utf8decode=function(M){return f.nodebuffer?p.transformTo("nodebuffer",M).toString("utf-8"):function(O){var N,A,C,z,H=O.length,q=new Array(2*H);for(N=A=0;N>10&1023,q[A++]=56320|1023&C)}return q.length!==A&&(q.subarray?q=q.subarray(0,A):q.length=A),p.applyFromCharCode(q)}(M=p.transformTo(f.uint8array?"uint8array":"array",M))},p.inherits(y,k),y.prototype.processChunk=function(M){var O=p.transformTo(f.uint8array?"uint8array":"array",M.data);if(this.leftOver&&this.leftOver.length){if(f.uint8array){var N=O;(O=new Uint8Array(N.length+this.leftOver.length)).set(this.leftOver,0),O.set(N,this.leftOver.length)}else O=this.leftOver.concat(O);this.leftOver=null}var A=function(z,H){var q;for((H=H||z.length)>z.length&&(H=z.length),q=H-1;0<=q&&(192&z[q])==128;)q--;return q<0||q===0?H:q+D[z[q]]>H?q:H}(O),C=O;A!==O.length&&(f.uint8array?(C=O.subarray(0,A),this.leftOver=O.subarray(A,O.length)):(C=O.slice(0,A),this.leftOver=O.slice(A,O.length))),this.push({data:c.utf8decode(C),meta:M.meta})},y.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:c.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},c.Utf8DecodeWorker=y,p.inherits(S,k),S.prototype.processChunk=function(M){this.push({data:c.utf8encode(M.data),meta:M.meta})},c.Utf8EncodeWorker=S},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(s,u,c){"use strict";var p=s("./support"),f=s("./base64"),h=s("./nodejsUtils"),k=s("./external");function D(N){return N}function I(N,A){for(var C=0;C>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=p(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=M.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=M.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=M.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=M.readInt(4))}},readExtraFields:function(M){var O,N,A,C=M.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});M.index+4>>6:(M<65536?S[A++]=224|M>>>12:(S[A++]=240|M>>>18,S[A++]=128|M>>>12&63),S[A++]=128|M>>>6&63),S[A++]=128|63&M);return S},c.buf2binstring=function(y){return I(y,y.length)},c.binstring2buf=function(y){for(var S=new p.Buf8(y.length),M=0,O=S.length;M>10&1023,z[O++]=56320|1023&N)}return I(z,O)},c.utf8border=function(y,S){var M;for((S=S||y.length)>y.length&&(S=y.length),M=S-1;0<=M&&(192&y[M])==128;)M--;return M<0||M===0?S:M+k[y[M]]>S?M:S}},{"./common":41}],43:[function(s,u,c){"use strict";u.exports=function(p,f,h,k){for(var D=65535&p|0,I=p>>>16&65535|0,y=0;h!==0;){for(h-=y=2e3>>1:f>>>1;h[k]=f}return h}();u.exports=function(f,h,k,D){var I=p,y=D+k;f^=-1;for(var S=D;S>>8^I[255&(f^h[S])];return-1^f}},{}],46:[function(s,u,c){"use strict";var p,f=s("../utils/common"),h=s("./trees"),k=s("./adler32"),D=s("./crc32"),I=s("./messages"),y=0,S=4,M=0,O=-2,N=-1,A=4,C=2,z=8,H=9,q=286,K=30,he=19,re=2*q+1,U=15,oe=3,de=258,De=de+oe+1,B=42,_e=113,w=1,fe=2,Se=3,ve=4;function Oe(g,ue){return g.msg=I[ue],ue}function be(g){return(g<<1)-(4g.avail_out&&(Z=g.avail_out),Z!==0&&(f.arraySet(g.output,ue.pending_buf,ue.pending_out,Z,g.next_out),g.next_out+=Z,ue.pending_out+=Z,g.total_out+=Z,g.avail_out-=Z,ue.pending-=Z,ue.pending===0&&(ue.pending_out=0))}function ie(g,ue){h._tr_flush_block(g,0<=g.block_start?g.block_start:-1,g.strstart-g.block_start,ue),g.block_start=g.strstart,se(g.strm)}function Re(g,ue){g.pending_buf[g.pending++]=ue}function Ce(g,ue){g.pending_buf[g.pending++]=ue>>>8&255,g.pending_buf[g.pending++]=255&ue}function we(g,ue){var Z,P,T=g.max_chain_length,j=g.strstart,ee=g.prev_length,te=g.nice_match,Y=g.strstart>g.w_size-De?g.strstart-(g.w_size-De):0,le=g.window,ye=g.w_mask,ge=g.prev,xe=g.strstart+de,Je=le[j+ee-1],Ke=le[j+ee];g.prev_length>=g.good_match&&(T>>=2),te>g.lookahead&&(te=g.lookahead);do if(le[(Z=ue)+ee]===Ke&&le[Z+ee-1]===Je&&le[Z]===le[j]&&le[++Z]===le[j+1]){j+=2,Z++;do;while(le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&le[++j]===le[++Z]&&jY&&--T!=0);return ee<=g.lookahead?ee:g.lookahead}function At(g){var ue,Z,P,T,j,ee,te,Y,le,ye,ge=g.w_size;do{if(T=g.window_size-g.lookahead-g.strstart,g.strstart>=ge+(ge-De)){for(f.arraySet(g.window,g.window,ge,ge,0),g.match_start-=ge,g.strstart-=ge,g.block_start-=ge,ue=Z=g.hash_size;P=g.head[--ue],g.head[ue]=ge<=P?P-ge:0,--Z;);for(ue=Z=ge;P=g.prev[--ue],g.prev[ue]=ge<=P?P-ge:0,--Z;);T+=ge}if(g.strm.avail_in===0)break;if(ee=g.strm,te=g.window,Y=g.strstart+g.lookahead,le=T,ye=void 0,ye=ee.avail_in,le=oe)for(j=g.strstart-g.insert,g.ins_h=g.window[j],g.ins_h=(g.ins_h<=oe&&(g.ins_h=(g.ins_h<=oe)if(P=h._tr_tally(g,g.strstart-g.match_start,g.match_length-oe),g.lookahead-=g.match_length,g.match_length<=g.max_lazy_match&&g.lookahead>=oe){for(g.match_length--;g.strstart++,g.ins_h=(g.ins_h<=oe&&(g.ins_h=(g.ins_h<=oe&&g.match_length<=g.prev_length){for(T=g.strstart+g.lookahead-oe,P=h._tr_tally(g,g.strstart-1-g.prev_match,g.prev_length-oe),g.lookahead-=g.prev_length-1,g.prev_length-=2;++g.strstart<=T&&(g.ins_h=(g.ins_h<g.pending_buf_size-5&&(Z=g.pending_buf_size-5);;){if(g.lookahead<=1){if(At(g),g.lookahead===0&&ue===y)return w;if(g.lookahead===0)break}g.strstart+=g.lookahead,g.lookahead=0;var P=g.block_start+Z;if((g.strstart===0||g.strstart>=P)&&(g.lookahead=g.strstart-P,g.strstart=P,ie(g,!1),g.strm.avail_out===0)||g.strstart-g.block_start>=g.w_size-De&&(ie(g,!1),g.strm.avail_out===0))return w}return g.insert=0,ue===S?(ie(g,!0),g.strm.avail_out===0?Se:ve):(g.strstart>g.block_start&&(ie(g,!1),g.strm.avail_out),w)}),new ot(4,4,8,4,Ot),new ot(4,5,16,8,Ot),new ot(4,6,32,32,Ot),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)],c.deflateInit=function(g,ue){return yt(g,ue,z,15,8,0)},c.deflateInit2=yt,c.deflateReset=Rt,c.deflateResetKeep=tt,c.deflateSetHeader=function(g,ue){return g&&g.state?g.state.wrap!==2?O:(g.state.gzhead=ue,M):O},c.deflate=function(g,ue){var Z,P,T,j;if(!g||!g.state||5>8&255),Re(P,P.gzhead.time>>16&255),Re(P,P.gzhead.time>>24&255),Re(P,P.level===9?2:2<=P.strategy||P.level<2?4:0),Re(P,255&P.gzhead.os),P.gzhead.extra&&P.gzhead.extra.length&&(Re(P,255&P.gzhead.extra.length),Re(P,P.gzhead.extra.length>>8&255)),P.gzhead.hcrc&&(g.adler=D(g.adler,P.pending_buf,P.pending,0)),P.gzindex=0,P.status=69):(Re(P,0),Re(P,0),Re(P,0),Re(P,0),Re(P,0),Re(P,P.level===9?2:2<=P.strategy||P.level<2?4:0),Re(P,3),P.status=_e);else{var ee=z+(P.w_bits-8<<4)<<8;ee|=(2<=P.strategy||P.level<2?0:P.level<6?1:P.level===6?2:3)<<6,P.strstart!==0&&(ee|=32),ee+=31-ee%31,P.status=_e,Ce(P,ee),P.strstart!==0&&(Ce(P,g.adler>>>16),Ce(P,65535&g.adler)),g.adler=1}if(P.status===69)if(P.gzhead.extra){for(T=P.pending;P.gzindex<(65535&P.gzhead.extra.length)&&(P.pending!==P.pending_buf_size||(P.gzhead.hcrc&&P.pending>T&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),se(g),T=P.pending,P.pending!==P.pending_buf_size));)Re(P,255&P.gzhead.extra[P.gzindex]),P.gzindex++;P.gzhead.hcrc&&P.pending>T&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),P.gzindex===P.gzhead.extra.length&&(P.gzindex=0,P.status=73)}else P.status=73;if(P.status===73)if(P.gzhead.name){T=P.pending;do{if(P.pending===P.pending_buf_size&&(P.gzhead.hcrc&&P.pending>T&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),se(g),T=P.pending,P.pending===P.pending_buf_size)){j=1;break}j=P.gzindexT&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),j===0&&(P.gzindex=0,P.status=91)}else P.status=91;if(P.status===91)if(P.gzhead.comment){T=P.pending;do{if(P.pending===P.pending_buf_size&&(P.gzhead.hcrc&&P.pending>T&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),se(g),T=P.pending,P.pending===P.pending_buf_size)){j=1;break}j=P.gzindexT&&(g.adler=D(g.adler,P.pending_buf,P.pending-T,T)),j===0&&(P.status=103)}else P.status=103;if(P.status===103&&(P.gzhead.hcrc?(P.pending+2>P.pending_buf_size&&se(g),P.pending+2<=P.pending_buf_size&&(Re(P,255&g.adler),Re(P,g.adler>>8&255),g.adler=0,P.status=_e)):P.status=_e),P.pending!==0){if(se(g),g.avail_out===0)return P.last_flush=-1,M}else if(g.avail_in===0&&be(ue)<=be(Z)&&ue!==S)return Oe(g,-5);if(P.status===666&&g.avail_in!==0)return Oe(g,-5);if(g.avail_in!==0||P.lookahead!==0||ue!==y&&P.status!==666){var te=P.strategy===2?function(Y,le){for(var ye;;){if(Y.lookahead===0&&(At(Y),Y.lookahead===0)){if(le===y)return w;break}if(Y.match_length=0,ye=h._tr_tally(Y,0,Y.window[Y.strstart]),Y.lookahead--,Y.strstart++,ye&&(ie(Y,!1),Y.strm.avail_out===0))return w}return Y.insert=0,le===S?(ie(Y,!0),Y.strm.avail_out===0?Se:ve):Y.last_lit&&(ie(Y,!1),Y.strm.avail_out===0)?w:fe}(P,ue):P.strategy===3?function(Y,le){for(var ye,ge,xe,Je,Ke=Y.window;;){if(Y.lookahead<=de){if(At(Y),Y.lookahead<=de&&le===y)return w;if(Y.lookahead===0)break}if(Y.match_length=0,Y.lookahead>=oe&&0Y.lookahead&&(Y.match_length=Y.lookahead)}if(Y.match_length>=oe?(ye=h._tr_tally(Y,1,Y.match_length-oe),Y.lookahead-=Y.match_length,Y.strstart+=Y.match_length,Y.match_length=0):(ye=h._tr_tally(Y,0,Y.window[Y.strstart]),Y.lookahead--,Y.strstart++),ye&&(ie(Y,!1),Y.strm.avail_out===0))return w}return Y.insert=0,le===S?(ie(Y,!0),Y.strm.avail_out===0?Se:ve):Y.last_lit&&(ie(Y,!1),Y.strm.avail_out===0)?w:fe}(P,ue):p[P.level].func(P,ue);if(te!==Se&&te!==ve||(P.status=666),te===w||te===Se)return g.avail_out===0&&(P.last_flush=-1),M;if(te===fe&&(ue===1?h._tr_align(P):ue!==5&&(h._tr_stored_block(P,0,0,!1),ue===3&&(Fe(P.head),P.lookahead===0&&(P.strstart=0,P.block_start=0,P.insert=0))),se(g),g.avail_out===0))return P.last_flush=-1,M}return ue!==S?M:P.wrap<=0?1:(P.wrap===2?(Re(P,255&g.adler),Re(P,g.adler>>8&255),Re(P,g.adler>>16&255),Re(P,g.adler>>24&255),Re(P,255&g.total_in),Re(P,g.total_in>>8&255),Re(P,g.total_in>>16&255),Re(P,g.total_in>>24&255)):(Ce(P,g.adler>>>16),Ce(P,65535&g.adler)),se(g),0=Z.w_size&&(j===0&&(Fe(Z.head),Z.strstart=0,Z.block_start=0,Z.insert=0),le=new f.Buf8(Z.w_size),f.arraySet(le,ue,ye-Z.w_size,Z.w_size,0),ue=le,ye=Z.w_size),ee=g.avail_in,te=g.next_in,Y=g.input,g.avail_in=ye,g.next_in=0,g.input=ue,At(Z);Z.lookahead>=oe;){for(P=Z.strstart,T=Z.lookahead-(oe-1);Z.ins_h=(Z.ins_h<>>=oe=U>>>24,H-=oe,(oe=U>>>16&255)==0)fe[I++]=65535&U;else{if(!(16&oe)){if((64&oe)==0){U=q[(65535&U)+(z&(1<>>=oe,H-=oe),H<15&&(z+=w[k++]<>>=oe=U>>>24,H-=oe,!(16&(oe=U>>>16&255))){if((64&oe)==0){U=K[(65535&U)+(z&(1<>>=oe,H-=oe,(oe=I-y)>3,z&=(1<<(H-=de<<3))-1,p.next_in=k,p.next_out=I,p.avail_in=k>>24&255)+(B>>>8&65280)+((65280&B)<<8)+((255&B)<<24)}function z(){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 p.Buf16(320),this.work=new p.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function H(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=O,_e.last=0,_e.havedict=0,_e.dmax=32768,_e.head=null,_e.hold=0,_e.bits=0,_e.lencode=_e.lendyn=new p.Buf32(N),_e.distcode=_e.distdyn=new p.Buf32(A),_e.sane=1,_e.back=-1,S):M}function q(B){var _e;return B&&B.state?((_e=B.state).wsize=0,_e.whave=0,_e.wnext=0,H(B)):M}function K(B,_e){var w,fe;return B&&B.state?(fe=B.state,_e<0?(w=0,_e=-_e):(w=1+(_e>>4),_e<48&&(_e&=15)),_e&&(_e<8||15<_e)?M:(fe.window!==null&&fe.wbits!==_e&&(fe.window=null),fe.wrap=w,fe.wbits=_e,q(B))):M}function he(B,_e){var w,fe;return B?(fe=new z,(B.state=fe).window=null,(w=K(B,_e))!==S&&(B.state=null),w):M}var re,U,oe=!0;function de(B){if(oe){var _e;for(re=new p.Buf32(512),U=new p.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(D(I,B.lens,0,288,re,0,B.work,{bits:9}),_e=0;_e<32;)B.lens[_e++]=5;D(y,B.lens,0,32,U,0,B.work,{bits:5}),oe=!1}B.lencode=re,B.lenbits=9,B.distcode=U,B.distbits=5}function De(B,_e,w,fe){var Se,ve=B.state;return ve.window===null&&(ve.wsize=1<=ve.wsize?(p.arraySet(ve.window,_e,w-ve.wsize,ve.wsize,0),ve.wnext=0,ve.whave=ve.wsize):(fe<(Se=ve.wsize-ve.wnext)&&(Se=fe),p.arraySet(ve.window,_e,w-fe,Se,ve.wnext),(fe-=Se)?(p.arraySet(ve.window,_e,w-fe,fe,0),ve.wnext=fe,ve.whave=ve.wsize):(ve.wnext+=Se,ve.wnext===ve.wsize&&(ve.wnext=0),ve.whave>>8&255,w.check=h(w.check,j,2,0),ie=se=0,w.mode=2;break}if(w.flags=0,w.head&&(w.head.done=!1),!(1&w.wrap)||(((255&se)<<8)+(se>>8))%31){B.msg="incorrect header check",w.mode=30;break}if((15&se)!=8){B.msg="unknown compression method",w.mode=30;break}if(ie-=4,g=8+(15&(se>>>=4)),w.wbits===0)w.wbits=g;else if(g>w.wbits){B.msg="invalid window size",w.mode=30;break}w.dmax=1<>8&1),512&w.flags&&(j[0]=255&se,j[1]=se>>>8&255,w.check=h(w.check,j,2,0)),ie=se=0,w.mode=3;case 3:for(;ie<32;){if(be===0)break e;be--,se+=fe[ve++]<>>8&255,j[2]=se>>>16&255,j[3]=se>>>24&255,w.check=h(w.check,j,4,0)),ie=se=0,w.mode=4;case 4:for(;ie<16;){if(be===0)break e;be--,se+=fe[ve++]<>8),512&w.flags&&(j[0]=255&se,j[1]=se>>>8&255,w.check=h(w.check,j,2,0)),ie=se=0,w.mode=5;case 5:if(1024&w.flags){for(;ie<16;){if(be===0)break e;be--,se+=fe[ve++]<>>8&255,w.check=h(w.check,j,2,0)),ie=se=0}else w.head&&(w.head.extra=null);w.mode=6;case 6:if(1024&w.flags&&(be<(we=w.length)&&(we=be),we&&(w.head&&(g=w.head.extra_len-w.length,w.head.extra||(w.head.extra=new Array(w.head.extra_len)),p.arraySet(w.head.extra,fe,ve,we,g)),512&w.flags&&(w.check=h(w.check,fe,we,ve)),be-=we,ve+=we,w.length-=we),w.length))break e;w.length=0,w.mode=7;case 7:if(2048&w.flags){if(be===0)break e;for(we=0;g=fe[ve+we++],w.head&&g&&w.length<65536&&(w.head.name+=String.fromCharCode(g)),g&&we>9&1,w.head.done=!0),B.adler=w.check=0,w.mode=12;break;case 10:for(;ie<32;){if(be===0)break e;be--,se+=fe[ve++]<>>=7&ie,ie-=7&ie,w.mode=27;break}for(;ie<3;){if(be===0)break e;be--,se+=fe[ve++]<>>=1)){case 0:w.mode=14;break;case 1:if(de(w),w.mode=20,_e!==6)break;se>>>=2,ie-=2;break e;case 2:w.mode=17;break;case 3:B.msg="invalid block type",w.mode=30}se>>>=2,ie-=2;break;case 14:for(se>>>=7&ie,ie-=7&ie;ie<32;){if(be===0)break e;be--,se+=fe[ve++]<>>16^65535)){B.msg="invalid stored block lengths",w.mode=30;break}if(w.length=65535&se,ie=se=0,w.mode=15,_e===6)break e;case 15:w.mode=16;case 16:if(we=w.length){if(be>>=5,ie-=5,w.ndist=1+(31&se),se>>>=5,ie-=5,w.ncode=4+(15&se),se>>>=4,ie-=4,286>>=3,ie-=3}for(;w.have<19;)w.lens[ee[w.have++]]=0;if(w.lencode=w.lendyn,w.lenbits=7,Z={bits:w.lenbits},ue=D(0,w.lens,0,19,w.lencode,0,w.work,Z),w.lenbits=Z.bits,ue){B.msg="invalid code lengths set",w.mode=30;break}w.have=0,w.mode=19;case 19:for(;w.have>>16&255,kt=65535&T,!((et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[ve++]<>>=et,ie-=et,w.lens[w.have++]=kt;else{if(kt===16){for(P=et+2;ie>>=et,ie-=et,w.have===0){B.msg="invalid bit length repeat",w.mode=30;break}g=w.lens[w.have-1],we=3+(3&se),se>>>=2,ie-=2}else if(kt===17){for(P=et+3;ie>>=et)),se>>>=3,ie-=3}else{for(P=et+7;ie>>=et)),se>>>=7,ie-=7}if(w.have+we>w.nlen+w.ndist){B.msg="invalid bit length repeat",w.mode=30;break}for(;we--;)w.lens[w.have++]=g}}if(w.mode===30)break;if(w.lens[256]===0){B.msg="invalid code -- missing end-of-block",w.mode=30;break}if(w.lenbits=9,Z={bits:w.lenbits},ue=D(I,w.lens,0,w.nlen,w.lencode,0,w.work,Z),w.lenbits=Z.bits,ue){B.msg="invalid literal/lengths set",w.mode=30;break}if(w.distbits=6,w.distcode=w.distdyn,Z={bits:w.distbits},ue=D(y,w.lens,w.nlen,w.ndist,w.distcode,0,w.work,Z),w.distbits=Z.bits,ue){B.msg="invalid distances set",w.mode=30;break}if(w.mode=20,_e===6)break e;case 20:w.mode=21;case 21:if(6<=be&&258<=Fe){B.next_out=Oe,B.avail_out=Fe,B.next_in=ve,B.avail_in=be,w.hold=se,w.bits=ie,k(B,Ce),Oe=B.next_out,Se=B.output,Fe=B.avail_out,ve=B.next_in,fe=B.input,be=B.avail_in,se=w.hold,ie=w.bits,w.mode===12&&(w.back=-1);break}for(w.back=0;ot=(T=w.lencode[se&(1<>>16&255,kt=65535&T,!((et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[ve++]<>tt)])>>>16&255,kt=65535&T,!(tt+(et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[ve++]<>>=tt,ie-=tt,w.back+=tt}if(se>>>=et,ie-=et,w.back+=et,w.length=kt,ot===0){w.mode=26;break}if(32&ot){w.back=-1,w.mode=12;break}if(64&ot){B.msg="invalid literal/length code",w.mode=30;break}w.extra=15&ot,w.mode=22;case 22:if(w.extra){for(P=w.extra;ie>>=w.extra,ie-=w.extra,w.back+=w.extra}w.was=w.length,w.mode=23;case 23:for(;ot=(T=w.distcode[se&(1<>>16&255,kt=65535&T,!((et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[ve++]<>tt)])>>>16&255,kt=65535&T,!(tt+(et=T>>>24)<=ie);){if(be===0)break e;be--,se+=fe[ve++]<>>=tt,ie-=tt,w.back+=tt}if(se>>>=et,ie-=et,w.back+=et,64&ot){B.msg="invalid distance code",w.mode=30;break}w.offset=kt,w.extra=15&ot,w.mode=24;case 24:if(w.extra){for(P=w.extra;ie>>=w.extra,ie-=w.extra,w.back+=w.extra}if(w.offset>w.dmax){B.msg="invalid distance too far back",w.mode=30;break}w.mode=25;case 25:if(Fe===0)break e;if(we=Ce-Fe,w.offset>we){if((we=w.offset-we)>w.whave&&w.sane){B.msg="invalid distance too far back",w.mode=30;break}At=we>w.wnext?(we-=w.wnext,w.wsize-we):w.wnext-we,we>w.length&&(we=w.length),Ot=w.window}else Ot=Se,At=Oe-w.offset,we=w.length;for(Fere?(oe=At[Ot+A[_e]],ie[Re+A[_e]]):(oe=96,0),z=1<>Oe)+(H-=z)]=U<<24|oe<<16|de|0,H!==0;);for(z=1<>=1;if(z!==0?(se&=z-1,se+=z):se=0,_e++,--Ce[B]==0){if(B===fe)break;B=y[S+A[_e]]}if(Se>>7)]}function Re(T,j){T.pending_buf[T.pending++]=255&j,T.pending_buf[T.pending++]=j>>>8&255}function Ce(T,j,ee){T.bi_valid>C-ee?(T.bi_buf|=j<>C-T.bi_valid,T.bi_valid+=ee-C):(T.bi_buf|=j<>>=1,ee<<=1,0<--j;);return ee>>>1}function Ot(T,j,ee){var te,Y,le=new Array(A+1),ye=0;for(te=1;te<=A;te++)le[te]=ye=ye+ee[te-1]<<1;for(Y=0;Y<=j;Y++){var ge=T[2*Y+1];ge!==0&&(T[2*Y]=At(le[ge]++,ge))}}function et(T){var j;for(j=0;j>1;1<=ee;ee--)tt(T,le,ee);for(Y=xe;ee=T.heap[1],T.heap[1]=T.heap[T.heap_len--],tt(T,le,1),te=T.heap[1],T.heap[--T.heap_max]=ee,T.heap[--T.heap_max]=te,le[2*Y]=le[2*ee]+le[2*te],T.depth[Y]=(T.depth[ee]>=T.depth[te]?T.depth[ee]:T.depth[te])+1,le[2*ee+1]=le[2*te+1]=Y,T.heap[1]=Y++,tt(T,le,1),2<=T.heap_len;);T.heap[--T.heap_max]=T.heap[1],function(Ke,We){var nt,Gt,yn,Et,Cn,en,Bt=We.dyn_tree,sn=We.max_code,Ht=We.stat_desc.static_tree,Dn=We.stat_desc.has_stree,Zn=We.stat_desc.extra_bits,Jn=We.stat_desc.extra_base,Xt=We.stat_desc.max_length,bn=0;for(Et=0;Et<=A;Et++)Ke.bl_count[Et]=0;for(Bt[2*Ke.heap[Ke.heap_max]+1]=0,nt=Ke.heap_max+1;nt>=7;Y>>=1)if(1&Je&&ge.dyn_ltree[2*xe]!==0)return f;if(ge.dyn_ltree[18]!==0||ge.dyn_ltree[20]!==0||ge.dyn_ltree[26]!==0)return h;for(xe=32;xe>>3,(le=T.static_len+3+7>>>3)<=Y&&(Y=le)):Y=le=ee+5,ee+4<=Y&&j!==-1?P(T,j,ee,te):T.strategy===4||le===Y?(Ce(T,2+(te?1:0),3),Rt(T,De,B)):(Ce(T,4+(te?1:0),3),function(ge,xe,Je,Ke){var We;for(Ce(ge,xe-257,5),Ce(ge,Je-1,5),Ce(ge,Ke-4,4),We=0;We>>8&255,T.pending_buf[T.d_buf+2*T.last_lit+1]=255&j,T.pending_buf[T.l_buf+T.last_lit]=255&ee,T.last_lit++,j===0?T.dyn_ltree[2*ee]++:(T.matches++,j--,T.dyn_ltree[2*(w[ee]+y+1)]++,T.dyn_dtree[2*ie(j)]++),T.last_lit===T.lit_bufsize-1},c._tr_align=function(T){Ce(T,2,3),we(T,H,De),function(j){j.bi_valid===16?(Re(j,j.bi_buf),j.bi_buf=0,j.bi_valid=0):8<=j.bi_valid&&(j.pending_buf[j.pending++]=255&j.bi_buf,j.bi_buf>>=8,j.bi_valid-=8)}(T)}},{"../utils/common":41}],53:[function(s,u,c){"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(s,u,c){(function(p){(function(f,h){"use strict";if(!f.setImmediate){var k,D,I,y,S=1,M={},O=!1,N=f.document,A=Object.getPrototypeOf&&Object.getPrototypeOf(f);A=A&&A.setTimeout?A:f,k={}.toString.call(f.process)==="[object process]"?function(q){process.nextTick(function(){z(q)})}:function(){if(f.postMessage&&!f.importScripts){var q=!0,K=f.onmessage;return f.onmessage=function(){q=!1},f.postMessage("","*"),f.onmessage=K,q}}()?(y="setImmediate$"+Math.random()+"$",f.addEventListener?f.addEventListener("message",H,!1):f.attachEvent("onmessage",H),function(q){f.postMessage(y+q,"*")}):f.MessageChannel?((I=new MessageChannel).port1.onmessage=function(q){z(q.data)},function(q){I.port2.postMessage(q)}):N&&"onreadystatechange"in N.createElement("script")?(D=N.documentElement,function(q){var K=N.createElement("script");K.onreadystatechange=function(){z(q),K.onreadystatechange=null,D.removeChild(K),K=null},D.appendChild(K)}):function(q){setTimeout(z,0,q)},A.setImmediate=function(q){typeof q!="function"&&(q=new Function(""+q));for(var K=new Array(arguments.length-1),he=0;he{"use strict";var wi=lo&&lo.__assign||function(){return wi=Object.assign||function(s){for(var u,c=1,p=arguments.length;c{"use strict";Object.defineProperty(Li,"__esModule",{value:!0});Li.Tabs=void 0;var Jh=tu(),Qh=function(){function s(u){var c=this;u===void 0&&(u={}),this._currentTab="",this.tabEvents=new Jh.EventEmitter({beforeSwitch:!0,afterSwitch:!0}),$("*[data-tab]").on("click",function(h){var k=$(h.target),D=k.data("tab");h.preventDefault(),c.switchToTab(D)});var p=u.initialTab;if(!p&&window.location.hash){var f=window.location.hash.replace(/^#/,"");p=f}p||(p=$(".tab:first").attr("data-tab")),p&&this.switchToTab(p)}return s.prototype.switchToTab=function(u){var c=this,p=function(){var h=c._currentTab;c._currentTab=u;var k=u!=="level"?u:"";window.history&&window.history.replaceState(null,"","#"+k);var D=$('*[data-tab="'+u+'"]'),I=D.siblings("*[data-tab]"),y=$('*[data-tabtarget="'+u+'"]'),S=y.siblings("*[data-tabtarget]");I.removeClass("tab-selected"),D.addClass("tab-selected"),S.addClass("hidden"),y.removeClass("hidden"),c.tabEvents.emit("afterSwitch",{oldTab:h,newTab:u})};if(this._currentTab!=""){var f=this.tabEvents.emit("beforeSwitch",{oldTab:this._currentTab,newTab:u});f.then(p)}else p()},Object.defineProperty(s.prototype,"currentTab",{get:function(){return this._currentTab},enumerable:!1,configurable:!0}),s.prototype.on=function(u,c){var p=this.tabEvents.on(u,c);return u==="afterSwitch"&&this.tabEvents.emit("afterSwitch",{oldTab:"",newTab:this._currentTab}),p},s}();Li.Tabs=Qh});var ru=dt(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.normal_prefix=Sr.pygame_prefix=Sr.turtle_prefix=void 0;Sr.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() -`;Er.pygame_prefix=`# coding=utf8 +`;Sr.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) -`;Er.normal_prefix=`# coding=utf8 +`;Sr.normal_prefix=`# coding=utf8 import random # noqa F401 import time # noqa F401 @@ -315,17 +315,17 @@ def convert_numerals(alphabet, number): T = int number = ''.join(all_numerals_converted) return T(f'{sign}{number}') -`});var ru=dt(Li=>{"use strict";Object.defineProperty(Li,"__esModule",{value:!0});Li.isServerSaveInfo=void 0;function Qh(l){return!!l&&typeof l=="object"&&!!l.id}Li.isServerSaveInfo=Qh});var Mi=dt(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.tutorialPopup=mr.relocatePopup=mr.removeBorder=mr.addHighlightBorder=void 0;var e_=Lr();function t_(l){$("#"+l).addClass("border-2 rounded-lg border-red-500")}mr.addHighlightBorder=t_;function n_(l){$("#"+l).removeClass("border-2 border-red-500")}mr.removeBorder=n_;function r_(l,u){if($("#tutorial-pop-up").css({top:"20%",left:"50%"}),l&&u){var c=l.toString()+"%",p=u.toString()+"%";$("#tutorial-pop-up").css({top:p,left:c})}}mr.relocatePopup=r_;function o_(l,u){var c="/get_tutorial_step/"+l+"/";$.ajax({type:"GET",url:c+u.toString(),dataType:"json"}).done(function(p){$("#tutorial_title").text(p.title),$("#tutorial_text").text(p.text),$("#tutorial-pop-up").fadeIn(800)}).fail(function(p){e_.modal.notifyError(p.responseText)})}mr.tutorialPopup=o_});var Ni=dt(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.clearUnsavedChanges=Sr.markUnsavedChanges=Sr.hasUnsavedChanges=void 0;var i_=io();function ou(l){return l.preventDefault(),l.returnValue=i_.ClientMessages.Unsaved_Changes}var Ca=!1;function a_(){return Ca}Sr.hasUnsavedChanges=a_;function s_(){Ca=!0,window.addEventListener("beforeunload",ou,{capture:!0})}Sr.markUnsavedChanges=s_;function l_(){Ca=!1,window.removeEventListener("beforeunload",ou,{capture:!0})}Sr.clearUnsavedChanges=l_});var au=dt(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.callNextIntroStep=so.startIntro=void 0;var Un=tr(),lt=Mi(),Fo=Ni(),Lt=0;function u_(){Lt=1,$("#adventures").hide(),$("#variables_container").hide(),Un.theGlobalEditor===null||Un.theGlobalEditor===void 0||Un.theGlobalEditor.setValue(""),(0,lt.tutorialPopup)("intro",Lt)}so.startIntro=u_;function c_(){Lt+=1,Lt==2?d_():Lt==3?p_():Lt==4?h_():Lt==5?__():Lt==6?f_():Lt==7?g_():Lt==8?m_():Lt==9?x_():Lt==10?v_():Lt==11?k_():Lt==12?y_():Lt==13?b_():Lt==14?w_():Lt==15?((0,Un.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(){iu(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10")},5e3):(iu(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10"))},500)):location.replace("/hedy")}so.callNextIntroStep=c_;function d_(){$("#editor").addClass("z-40"),(0,lt.addHighlightBorder)("editor"),(0,lt.relocatePopup)(65,30),Un.theGlobalEditor===null||Un.theGlobalEditor===void 0||Un.theGlobalEditor.setValue("print ___"),(0,lt.tutorialPopup)("intro",Lt)}function p_(){(0,lt.removeBorder)("editor"),$("#code_output").addClass("z-40"),(0,lt.addHighlightBorder)("code_output"),(0,Un.runit)(1,"en","",function(){$("#output").focus()}),(0,lt.relocatePopup)(35,30),(0,lt.tutorialPopup)("intro",Lt)}function h_(){(0,lt.removeBorder)("code_output"),$("#code_related_buttons").show(),$("#runButtonContainer").addClass("z-40"),(0,lt.addHighlightBorder)("runButtonContainer"),(0,lt.relocatePopup)(50,30),(0,lt.tutorialPopup)("intro",Lt)}function __(){$.ajax({type:"GET",url:"/get_tutorial_step/intro/code_snippet/",dataType:"json"}).done(function(l){Un.theGlobalEditor===null||Un.theGlobalEditor===void 0||Un.theGlobalEditor.setValue(l.code)}).fail(function(){Un.theGlobalEditor===null||Un.theGlobalEditor===void 0||Un.theGlobalEditor.setValue(`print Hello world! -print I'm learning Hedy with the tutorial!`)}),(0,lt.relocatePopup)(50,70),(0,lt.tutorialPopup)("intro",Lt)}function f_(){(0,lt.removeBorder)("runButtonContainer"),$("#editor").removeClass("z-40"),$("#code_output").removeClass("z-40"),$("#runButtonContainer").removeClass("z-40"),$("#speak_container").addClass("z-40 bg-white relative"),(0,lt.addHighlightBorder)("speak_container"),(0,lt.relocatePopup)(50,30),(0,lt.tutorialPopup)("intro",Lt)}function g_(){$("#editor").addClass("z-40"),$("#code_output").addClass("z-40"),$("#runButtonContainer").addClass("z-40"),(0,lt.relocatePopup)(50,70),(0,lt.tutorialPopup)("intro",Lt)}function m_(){(0,lt.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,lt.addHighlightBorder)("next_level_button"),(0,lt.relocatePopup)(50,30),(0,lt.tutorialPopup)("intro",Lt)}function x_(){(0,lt.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,Fo.clearUnsavedChanges)(),(0,lt.addHighlightBorder)("adventures"),(0,lt.relocatePopup)(50,40),(0,lt.tutorialPopup)("intro",Lt)}function v_(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="story"&&((0,Fo.clearUnsavedChanges)(),$(this).click())}),(0,lt.tutorialPopup)("intro",Lt)}function k_(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="parsons"&&((0,Fo.clearUnsavedChanges)(),$(this).click())}),(0,lt.tutorialPopup)("intro",Lt)}function y_(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="quiz"&&((0,Fo.clearUnsavedChanges)(),$(this).click())}),(0,lt.tutorialPopup)("intro",Lt)}function b_(){$("#adventures-buttons").children().each(function(){$(this).attr("data-tab")=="default"&&((0,Fo.clearUnsavedChanges)(),$(this).click())}),(0,lt.removeBorder)("adventures"),$("#code_content_container").removeClass("z-40"),$("#level-header").addClass("z-40"),$("#cheatsheet_container").hide(),(0,lt.addHighlightBorder)("level-header"),$("#save_program_button").removeAttr("onclick"),$("#share_program_button").removeAttr("onclick"),(0,lt.relocatePopup)(50,30),(0,lt.tutorialPopup)("intro",Lt)}function w_(){$("#cheatsheet_container").show(),$("#code_output").removeClass("z-40"),$("#adventures").removeClass("z-40"),$("#cheatsheet_dropdown").addClass("z-40"),$("#cheatsheet_dropdown").show(),(0,lt.tutorialPopup)("intro",Lt)}function iu(){(0,lt.removeBorder)("level-header"),$("#level-header").removeClass("z-40"),$("#cheatsheet_dropdown").removeClass("z-40"),$("#cheatsheet_dropdown").hide(),(0,lt.relocatePopup)(50,15),(0,lt.tutorialPopup)("intro",Lt)}});var lu=dt(lo=>{"use strict";Object.defineProperty(lo,"__esModule",{value:!0});lo.callTeacherNextStep=lo.startTeacher=void 0;var L_=tr(),gn=Mi(),$n=0;function M_(){$n=1,(0,gn.tutorialPopup)("teacher",$n)}lo.startTeacher=M_;function N_(){$n+=1,$n==2?T_():$n==3?P_():$n==4?C_():$n==5?D_():$n==6?E_():$n==7?((0,L_.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(){su(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10")},5e3):(su(),$("#achievement_pop-up").removeClass("z-50"),$("#achievement_pop-up").addClass("z-10"))},500)):location.replace("/for-teachers")}lo.callTeacherNextStep=N_;function T_(){$("#auth_main_container").addClass("z-40"),$("#teacher_classes").addClass("z-40 bg-gray-100"),(0,gn.addHighlightBorder)("teacher_classes"),(0,gn.relocatePopup)(50,40),(0,gn.tutorialPopup)("teacher",$n)}function P_(){(0,gn.tutorialPopup)("teacher",$n)}function C_(){$("#teacher_adventures").addClass("z-40 bg-gray-100"),(0,gn.removeBorder)("teacher_classes"),(0,gn.addHighlightBorder)("teacher_adventures"),(0,gn.relocatePopup)(50,70),(0,gn.tutorialPopup)("teacher",$n)}function D_(){$("#teacher_accounts").addClass("z-40 bg-gray-100"),(0,gn.removeBorder)("teacher_adventures"),(0,gn.addHighlightBorder)("teacher_accounts"),(0,gn.relocatePopup)(50,20),(0,gn.tutorialPopup)("teacher",$n)}function E_(){$("#teacher_documentation").addClass("z-40 bg-gray-100"),(0,gn.removeBorder)("teacher_accounts"),(0,gn.addHighlightBorder)("teacher_documentation"),(0,gn.tutorialPopup)("teacher",$n)}function su(){(0,gn.removeBorder)("teacher_documentation"),(0,gn.tutorialPopup)("teacher",$n)}});var uu=dt(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.callNextStepLevel1=uo.startLevel1=void 0;var Da=tr(),Ea=Mi(),jo=0;function S_(){jo=1,(0,Ea.tutorialPopup)("1",jo)}uo.startLevel1=S_;function I_(){jo+=1,jo==2?(Da.theGlobalEditor===null||Da.theGlobalEditor===void 0||Da.theGlobalEditor.setValue("print Hello world!"),(0,Ea.relocatePopup)(50,70),(0,Ea.tutorialPopup)("1",2)):jo==3&&location.replace("/hedy")}uo.callNextStepLevel1=I_});var Go=dt(xr=>{"use strict";Object.defineProperty(xr,"__esModule",{value:!0});xr.startTeacherTutorial=xr.startLevelTutorial=xr.startIntroTutorial=xr.initializeTutorial=void 0;var cu=au(),du=lu(),pu=uu(),co="";function A_(){$("#tutorial_next_button").off("click").on("click",function(){return $("#tutorial-pop-up").hide(),co=="intro"?(0,cu.callNextIntroStep)():co=="teacher"?(0,du.callTeacherNextStep)():B_(co)})}xr.initializeTutorial=A_;function z_(){$("#tutorial-mask").show(),co="intro",(0,cu.startIntro)()}xr.startIntroTutorial=z_;function O_(l){$("#tutorial-mask").show(),co=l,R_(l)}xr.startLevelTutorial=O_;function $_(){$("#tutorial-mask").show(),co="teacher",(0,du.startTeacher)()}xr.startTeacherTutorial=$_;function R_(l){l=="1"&&(0,pu.startLevel1)()}function B_(l){l=="1"&&(0,pu.callNextStepLevel1)()}});var _u=dt(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.loadNextExercise=po.loadParsonsExercise=void 0;var F_=Lr(),j_=tr();function hu(l,u){$("#next_parson_button").hide();var c=new URLSearchParams(window.location.search),p="/parsons/get-exercise/"+l+"/"+u;c.has("keyword_language")&&(p+="/"+c.get("keyword_language")),$.ajax({type:"GET",url:p,dataType:"json"}).done(function(f){$("#parsons_container").show(),$("#next_parson_button").attr("current_exercise",u),G_(),W_(u),H_(f),U_(l,u)}).fail(function(f){F_.modal.notifyError(f.responseText)})}po.loadParsonsExercise=hu;function G_(){(0,j_.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 W_(l){$(".parsons_header_text_container").hide(),$(".step").removeClass("current"),$("#parsons_header_text_"+l).show(),$("#parsons_header_"+l).addClass("current")}function H_(l){var u=Y_(l.code),c=Object.keys(u);$(".parsons_start_line_container").hide(),$(".parsons_goal_line_container").hide(),q_(c),c.forEach(function(p,f){var h=u[p],k=f+1;ace.edit("start_parsons_"+k).session.setValue(h.replace(/\n+$/,""),-1),$("#start_parsons_div_"+k).attr("index",p),$("#start_parsons_div_"+k).attr("code",h),ace.edit("goal_parsons_"+k).session.setValue(""),$("#parsons_start_line_container_"+k).show(),$("#parsons_goal_line_container_"+k).show()}),$("#parsons_explanation_story").text(l.story)}function U_(l,u){var c=$("#next_parson_button").attr("max_exercise")||1;u=1;u--){var c=Math.floor(Math.random()*u),p=l[c];l[c]=l[u],l[u]=p}}});var mu=dt(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.onElementBecomesVisible=ho.checkNow=void 0;var Ti=new Array;function fu(l){var u=$(window).scrollTop(),c=u+$(window).height(),p=$(l).offset().top;return p<=c&&p>=u}function gu(){for(var l=0;l{"use strict";var Sa=an&&an.__assign||function(){return Sa=Object.assign||function(l){for(var u,c=1,p=arguments.length;c"+l[c][0]+": "+l[c][1]+"");vu()}}an.load_variables=J_;function Q_(l){var u="",c=parseInt(l.v);return typeof c=="number"&&!isNaN(c)&&(u="#ffffff"),typeof l.v=="string"&&isNaN(c)&&(u="#ffffff"),typeof l.v=="boolean"&&(u="#ffffff"),l.tp$name=="list"&&(u="#ffffff"),u}function ef(l){var u=[],c=["random","time","int_saver","int_$rw$","turtle","t"];for(var p in l)if(!p.includes("__")&&!c.includes(p)){var f=Q_(l[p]),h=tf(p),k=[h,l[p].v,f];u.push(k)}return u}function tf(l){return l.replace(/_\$rw\$$/,"")}var Di="ace_breakpoint";function nf(l){if(Pi=l.markers,xu=l.editor,Ia=l.level,Aa=l.language,Ci||($("#variables").hide(),$("#variable_button").hide()),l.level>0){var u=l.level;_o=u<=7}if(_o||$("#debug_button").hide(),l.level!=0){var u=l.level;Ci=u>=2,vu()}rf(l.editor)}an.initializeDebugger=nf;function rf(l){var l=ace.edit("editor");l.on("guttermousedown",function(u){var c=u.domEvent.target;if(c.className.indexOf("ace_gutter-cell")!=-1&&!(u.clientX>25+c.getBoundingClientRect().left)){var p=Lu(u.editor),f=u.getDocumentPosition().row;if(p[f]===void 0&&f!==u.editor.getLastVisibleRow()+1)if(of(event)){var h=f;for(var k in p){var D=parseInt(k);D{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.localLoadOnce=vr.localLoad=vr.localDelete=vr.localSave=void 0;function cf(l,u){var c;(c=window.localStorage)===null||c===void 0||c.setItem(l,JSON.stringify(u))}vr.localSave=cf;function Mu(l){var u;(u=window.localStorage)===null||u===void 0||u.removeItem(l)}vr.localDelete=Mu;function Nu(l){var u,c=(u=window.localStorage)===null||u===void 0?void 0:u.getItem(l);try{return c?JSON.parse(c):void 0}catch(p){return}}vr.localLoad=Nu;function df(l){var u=Nu(l);return u!==void 0&&Mu(l),u}vr.localLoadOnce=df});var Tu=dt(($a,Ra)=>{(function(l,u){typeof $a=="object"&&typeof Ra!="undefined"?Ra.exports=u():typeof define=="function"&&define.amd?define(u):(l=l||self,l.DOMPurify=u())})($a,function(){"use strict";function l(P){if(Array.isArray(P)){for(var T=0,j=Array(P.length);T1?j-1:0),te=1;te/gm),At=D(/^data-[\-\w.\u00B7-\uFFFF]/),Ot=D(/^aria-[\-\w]+$/),et=D(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ot=D(/^(?:\w+script|data):/i),kt=D(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(P){return typeof P}:function(P){return P&&typeof Symbol=="function"&&P.constructor===Symbol&&P!==Symbol.prototype?"symbol":typeof P};function Rt(P){if(Array.isArray(P)){for(var T=0,j=Array(P.length);T0&&arguments[0]!==void 0?arguments[0]:yt(),T=function(V){return ue(V)};if(T.version="2.3.5",T.removed=[],!P||!P.document||P.document.nodeType!==9)return T.isSupported=!1,T;var j=P.document,ee=P.document,te=P.DocumentFragment,Y=P.HTMLTemplateElement,le=P.Node,ye=P.Element,ge=P.NodeFilter,ve=P.NamedNodeMap,Je=ve===void 0?P.NamedNodeMap||P.MozNamedAttrMap:ve,Ke=P.HTMLFormElement,We=P.DOMParser,nt=P.trustedTypes,Gt=ye.prototype,kn=B(Gt,"cloneNode"),Et=B(Gt,"nextSibling"),Pn=B(Gt,"childNodes"),en=B(Gt,"parentNode");if(typeof Y=="function"){var Bt=ee.createElement("template");Bt.content&&Bt.content.ownerDocument&&(ee=Bt.content.ownerDocument)}var sn=g(nt,j),Ht=sn?sn.createHTML(""):"",Cn=ee,Xn=Cn.implementation,Kn=Cn.createNodeIterator,Xt=Cn.createDocumentFragment,yn=Cn.getElementsByTagName,ln=j.importNode,bn={};try{bn=De(ee).documentMode?ee.documentMode:{}}catch(Ae){}var un={};T.isSupported=typeof en=="function"&&Xn&&typeof Xn.createHTMLDocument!="undefined"&&bn!==9;var wn=Ce,Zn=we,lr=At,Ir=Ot,Yr=ot,rt=kt,Mt=et,qe=null,Mr=de({},[].concat(Rt(_e),Rt(w),Rt(fe),Rt(xe),Rt(be))),bt=null,Ar=de({},[].concat(Rt(Fe),Rt(se),Rt(ie),Rt(Re))),Ne=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}})),mn=null,rr=null,hn=!0,nn=!0,ur=!1,Dn=!1,_n=!1,jn=!1,cr=!1,En=!1,Ut=!1,Nt=!1,dr=!0,or=!0,Yn=!1,tn={},Vt=null,Jn=de({},["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"]),Ft=null,ir=de({},["audio","video","img","source","image","track"]),jt=null,xt=de({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Sn="http://www.w3.org/1998/Math/MathML",ar="http://www.w3.org/2000/svg",Be="http://www.w3.org/1999/xhtml",Kt=Be,In=!1,Tt=void 0,Gn=["application/xhtml+xml","text/html"],pr="text/html",An=void 0,m=null,v=ee.createElement("form"),L=function(V){return V instanceof RegExp||V instanceof Function},R=function(V){m&&m===V||((!V||(typeof V=="undefined"?"undefined":tt(V))!=="object")&&(V={}),V=De(V),qe="ALLOWED_TAGS"in V?de({},V.ALLOWED_TAGS):Mr,bt="ALLOWED_ATTR"in V?de({},V.ALLOWED_ATTR):Ar,jt="ADD_URI_SAFE_ATTR"in V?de(De(xt),V.ADD_URI_SAFE_ATTR):xt,Ft="ADD_DATA_URI_TAGS"in V?de(De(ir),V.ADD_DATA_URI_TAGS):ir,Vt="FORBID_CONTENTS"in V?de({},V.FORBID_CONTENTS):Jn,mn="FORBID_TAGS"in V?de({},V.FORBID_TAGS):{},rr="FORBID_ATTR"in V?de({},V.FORBID_ATTR):{},tn="USE_PROFILES"in V?V.USE_PROFILES:!1,hn=V.ALLOW_ARIA_ATTR!==!1,nn=V.ALLOW_DATA_ATTR!==!1,ur=V.ALLOW_UNKNOWN_PROTOCOLS||!1,Dn=V.SAFE_FOR_TEMPLATES||!1,_n=V.WHOLE_DOCUMENT||!1,En=V.RETURN_DOM||!1,Ut=V.RETURN_DOM_FRAGMENT||!1,Nt=V.RETURN_TRUSTED_TYPE||!1,cr=V.FORCE_BODY||!1,dr=V.SANITIZE_DOM!==!1,or=V.KEEP_CONTENT!==!1,Yn=V.IN_PLACE||!1,Mt=V.ALLOWED_URI_REGEXP||Mt,Kt=V.NAMESPACE||Be,V.CUSTOM_ELEMENT_HANDLING&&L(V.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ne.tagNameCheck=V.CUSTOM_ELEMENT_HANDLING.tagNameCheck),V.CUSTOM_ELEMENT_HANDLING&&L(V.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ne.attributeNameCheck=V.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),V.CUSTOM_ELEMENT_HANDLING&&typeof V.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Ne.allowCustomizedBuiltInElements=V.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Tt=Gn.indexOf(V.PARSER_MEDIA_TYPE)===-1?Tt=pr:Tt=V.PARSER_MEDIA_TYPE,An=Tt==="application/xhtml+xml"?function(Le){return Le}:C,Dn&&(nn=!1),Ut&&(En=!0),tn&&(qe=de({},[].concat(Rt(be))),bt=[],tn.html===!0&&(de(qe,_e),de(bt,Fe)),tn.svg===!0&&(de(qe,w),de(bt,se),de(bt,Re)),tn.svgFilters===!0&&(de(qe,fe),de(bt,se),de(bt,Re)),tn.mathMl===!0&&(de(qe,xe),de(bt,ie),de(bt,Re))),V.ADD_TAGS&&(qe===Mr&&(qe=De(qe)),de(qe,V.ADD_TAGS)),V.ADD_ATTR&&(bt===Ar&&(bt=De(bt)),de(bt,V.ADD_ATTR)),V.ADD_URI_SAFE_ATTR&&de(jt,V.ADD_URI_SAFE_ATTR),V.FORBID_CONTENTS&&(Vt===Jn&&(Vt=De(Vt)),de(Vt,V.FORBID_CONTENTS)),or&&(qe["#text"]=!0),_n&&de(qe,["html","head","body"]),qe.table&&(de(qe,["tbody"]),delete mn.tbody),k&&k(V),m=V)},G=de({},["mi","mo","mn","ms","mtext"]),J=de({},["foreignobject","desc","title","annotation-xml"]),Q=de({},w);de(Q,fe),de(Q,Se);var ce=de({},xe);de(ce,Oe);var me=function(V){var Le=en(V);(!Le||!Le.tagName)&&(Le={namespaceURI:Be,tagName:"template"});var Ie=C(V.tagName),He=C(Le.tagName);if(V.namespaceURI===ar)return Le.namespaceURI===Be?Ie==="svg":Le.namespaceURI===Sn?Ie==="svg"&&(He==="annotation-xml"||G[He]):Boolean(Q[Ie]);if(V.namespaceURI===Sn)return Le.namespaceURI===Be?Ie==="math":Le.namespaceURI===ar?Ie==="math"&&J[He]:Boolean(ce[Ie]);if(V.namespaceURI===Be){if(Le.namespaceURI===ar&&!J[He]||Le.namespaceURI===Sn&&!G[He])return!1;var gt=de({},["title","style","font","a","script"]);return!ce[Ie]&&(gt[Ie]||!Q[Ie])}return!1},Ee=function(V){A(T.removed,{element:V});try{V.parentNode.removeChild(V)}catch(Le){try{V.outerHTML=Ht}catch(Ie){V.remove()}}},Ye=function(V,Le){try{A(T.removed,{attribute:Le.getAttributeNode(V),from:Le})}catch(Ie){A(T.removed,{attribute:null,from:Le})}if(Le.removeAttribute(V),V==="is"&&!bt[V])if(En||Ut)try{Ee(Le)}catch(Ie){}else try{Le.setAttribute(V,"")}catch(Ie){}},Ze=function(V){var Le=void 0,Ie=void 0;if(cr)V=""+V;else{var He=z(V,/^[\r\n\t ]+/);Ie=He&&He[0]}Tt==="application/xhtml+xml"&&(V=''+V+"");var gt=sn?sn.createHTML(V):V;if(Kt===Be)try{Le=new We().parseFromString(gt,Tt)}catch(ft){}if(!Le||!Le.documentElement){Le=Xn.createDocument(Kt,"template",null);try{Le.documentElement.innerHTML=In?"":gt}catch(ft){}}var St=Le.body||Le.documentElement;return V&&Ie&&St.insertBefore(ee.createTextNode(Ie),St.childNodes[0]||null),Kt===Be?yn.call(Le,_n?"html":"body")[0]:_n?Le.documentElement:St},pt=function(V){return Kn.call(V.ownerDocument||V,V,ge.SHOW_ELEMENT|ge.SHOW_COMMENT|ge.SHOW_TEXT,null,!1)},Xe=function(V){return V instanceof Ke&&(typeof V.nodeName!="string"||typeof V.textContent!="string"||typeof V.removeChild!="function"||!(V.attributes instanceof Je)||typeof V.removeAttribute!="function"||typeof V.setAttribute!="function"||typeof V.namespaceURI!="string"||typeof V.insertBefore!="function")},Qe=function(V){return(typeof le=="undefined"?"undefined":tt(le))==="object"?V instanceof le:V&&(typeof V=="undefined"?"undefined":tt(V))==="object"&&typeof V.nodeType=="number"&&typeof V.nodeName=="string"},je=function(V,Le,Ie){!un[V]||O(un[V],function(He){He.call(T,Le,Ie,m)})},Pt=function(V){var Le=void 0;if(je("beforeSanitizeElements",V,null),Xe(V)||z(V.nodeName,/[\u0080-\uFFFF]/))return Ee(V),!0;var Ie=An(V.nodeName);if(je("uponSanitizeElement",V,{tagName:Ie,allowedTags:qe}),!Qe(V.firstElementChild)&&(!Qe(V.content)||!Qe(V.content.firstElementChild))&&he(/<[/\w]/g,V.innerHTML)&&he(/<[/\w]/g,V.textContent)||Ie==="select"&&he(/