const lang = Object.freeze(JSON.parse("{\"displayName\":\"Python\",\"name\":\"python\",\"patterns\":[{\"include\":\"#statement\"},{\"include\":\"#expression\"}],\"repository\":{\"annotated-parameter\":{\"begin\":\"\\\\b([[:alpha:]_]\\\\w*)\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.annotation.python\"}},\"end\":\"(,)|(?=\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"}]},\"assignment-operator\":{\"match\":\"<<=|>>=|//=|\\\\*\\\\*=|\\\\+=|-=|/=|@=|\\\\*=|%=|~=|\\\\^=|&=|\\\\|=|=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},\"backticks\":{\"begin\":\"\\\\`\",\"end\":\"(?:\\\\`|(?))\",\"name\":\"comment.typehint.punctuation.notation.python\"},{\"match\":\"([[:alpha:]_]\\\\w*)\",\"name\":\"comment.typehint.variable.notation.python\"}]},{\"include\":\"#comments-base\"}]},\"comments-base\":{\"begin\":\"(\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($)\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"comments-string-double-three\":{\"begin\":\"(\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($|(?=\\\"\\\"\\\"))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"comments-string-single-three\":{\"begin\":\"(\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($|(?='''))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"curly-braces\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.begin.python\"}},\"end\":\"\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.end.python\"}},\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.dict.python\"},{\"include\":\"#expression\"}]},\"decorator\":{\"begin\":\"^\\\\s*((@))\\\\s*(?=[[:alpha:]_]\\\\w*)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.decorator.python\"},\"2\":{\"name\":\"punctuation.definition.decorator.python\"}},\"end\":\"(\\\\))(?:(.*?)(?=\\\\s*(?:\\\\#|$)))|(?=\\\\n|\\\\#)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"},\"2\":{\"name\":\"invalid.illegal.decorator.python\"}},\"name\":\"meta.function.decorator.python\",\"patterns\":[{\"include\":\"#decorator-name\"},{\"include\":\"#function-arguments\"}]},\"decorator-name\":{\"patterns\":[{\"include\":\"#builtin-callables\"},{\"include\":\"#illegal-object-name\"},{\"captures\":{\"2\":{\"name\":\"punctuation.separator.period.python\"}},\"match\":\"([[:alpha:]_]\\\\w*)|(\\\\.)\",\"name\":\"entity.name.function.decorator.python\"},{\"include\":\"#line-continuation\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.decorator.python\"}},\"match\":\"\\\\s*([^([:alpha:]\\\\s_\\\\.#\\\\\\\\].*?)(?=\\\\#|$)\",\"name\":\"invalid.illegal.decorator.python\"}]},\"docstring\":{\"patterns\":[{\"begin\":\"(\\\\'\\\\'\\\\'|\\\\\\\"\\\\\\\"\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\1)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"}},\"name\":\"string.quoted.docstring.multi.python\",\"patterns\":[{\"include\":\"#docstring-prompt\"},{\"include\":\"#codetags\"},{\"include\":\"#docstring-guts-unicode\"}]},{\"begin\":\"([rR])(\\\\'\\\\'\\\\'|\\\\\\\"\\\\\\\"\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"}},\"name\":\"string.quoted.docstring.raw.multi.python\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#docstring-prompt\"},{\"include\":\"#codetags\"}]},{\"begin\":\"(\\\\'|\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\1)|(\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.docstring.single.python\",\"patterns\":[{\"include\":\"#codetags\"},{\"include\":\"#docstring-guts-unicode\"}]},{\"begin\":\"([rR])(\\\\'|\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\2)|(\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.docstring.raw.single.python\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#codetags\"}]}]},\"docstring-guts-unicode\":{\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"docstring-prompt\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"(?:(?:^|\\\\G)\\\\s*((?:>>>|\\\\.\\\\.\\\\.)\\\\s)(?=\\\\s*\\\\S))\"},\"docstring-statement\":{\"begin\":\"^(?=\\\\s*[rR]?(\\\\'\\\\'\\\\'|\\\\\\\"\\\\\\\"\\\\\\\"|\\\\'|\\\\\\\"))\",\"comment\":\"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring\",\"end\":\"((?<=\\\\1)|^)(?!\\\\s*[rR]?(\\\\'\\\\'\\\\'|\\\\\\\"\\\\\\\"\\\\\\\"|\\\\'|\\\\\\\"))\",\"patterns\":[{\"include\":\"#docstring\"}]},\"double-one-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\[\\\\^?\\\\](?!.*?\\\\])\"},{\"begin\":\"(\\\\[)(\\\\^)?(\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\]|(?=\\\"))|((?=(?)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\)|(?=\\\"))|((?=(?)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\)|(?=\\\"\\\"\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-parentheses\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\)|(?=\\\"\\\"\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\(\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\)|(?=\\\"\\\"\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"ellipsis\":{\"match\":\"\\\\.\\\\.\\\\.\",\"name\":\"constant.other.ellipsis.python\"},\"escape-sequence\":{\"match\":\"\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{1,3}|[\\\\\\\\\\\"'abfnrtv])\",\"name\":\"constant.character.escape.python\"},\"escape-sequence-unicode\":{\"patterns\":[{\"match\":\"\\\\\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\\\{[\\\\w\\\\s]+?\\\\})\",\"name\":\"constant.character.escape.python\"}]},\"expression\":{\"comment\":\"All valid Python expressions\",\"patterns\":[{\"include\":\"#expression-base\"},{\"include\":\"#member-access\"},{\"comment\":\"Tokenize identifiers to help linters\",\"match\":\"\\\\b([[:alpha:]_]\\\\w*)\\\\b\"}]},\"expression-bare\":{\"comment\":\"valid Python expressions w/o comments and line continuation\",\"patterns\":[{\"include\":\"#backticks\"},{\"include\":\"#illegal-anno\"},{\"include\":\"#literal\"},{\"include\":\"#regexp\"},{\"include\":\"#string\"},{\"include\":\"#lambda\"},{\"include\":\"#generator\"},{\"include\":\"#illegal-operator\"},{\"include\":\"#operator\"},{\"include\":\"#curly-braces\"},{\"include\":\"#item-access\"},{\"include\":\"#list\"},{\"include\":\"#odd-function-call\"},{\"include\":\"#round-braces\"},{\"include\":\"#function-call\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#builtin-types\"},{\"include\":\"#builtin-exceptions\"},{\"include\":\"#magic-names\"},{\"include\":\"#special-names\"},{\"include\":\"#illegal-names\"},{\"include\":\"#special-variables\"},{\"include\":\"#ellipsis\"},{\"include\":\"#punctuation\"},{\"include\":\"#line-continuation\"}]},\"expression-base\":{\"comment\":\"valid Python expressions with comments and line continuation\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expression-bare\"},{\"include\":\"#line-continuation\"}]},\"f-expression\":{\"comment\":\"All valid Python expressions, except comments and line continuation\",\"patterns\":[{\"include\":\"#expression-bare\"},{\"include\":\"#member-access\"},{\"comment\":\"Tokenize identifiers to help linters\",\"match\":\"\\\\b([[:alpha:]_]\\\\w*)\\\\b\"}]},\"fregexp-base-expression\":{\"patterns\":[{\"include\":\"#fregexp-quantifier\"},{\"include\":\"#fstring-formatting-braces\"},{\"match\":\"\\\\{.*?\\\\}\"},{\"include\":\"#regexp-base-common\"}]},\"fregexp-quantifier\":{\"match\":\"\\\\{\\\\{(\\\\d+|\\\\d+,(\\\\d+)?|,\\\\d+)\\\\}\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},\"fstring-fnorm-quoted-multi-line\":{\"begin\":\"(\\\\b[fF])([bBuU])?('''|\\\"\\\"\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.multi.python storage.type.string.python\"},\"2\":{\"name\":\"invalid.illegal.prefix.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python\"}},\"end\":\"(\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-multi-core\"}]},\"fstring-fnorm-quoted-single-line\":{\"begin\":\"(\\\\b[fF])([bBuU])?((['\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.single.python storage.type.string.python\"},\"2\":{\"name\":\"invalid.illegal.prefix.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python\"}},\"end\":\"(\\\\3)|((?=^]?[-+ ]?\\\\#?\\\\d*,?(\\\\.\\\\d+)?[bcdeEfFgGnosxX%]?)(?=})\"},{\"include\":\"#fstring-terminator-multi-tail\"}]},\"fstring-terminator-multi-tail\":{\"begin\":\"((?:=?)(?:![rsa])?)(:)(?=.*?{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"match\":\"([bcdeEfFgGnosxX%])(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\.\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(,)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\#)\",\"name\":\"storage.type.format.python\"},{\"match\":\"([-+ ])\",\"name\":\"storage.type.format.python\"},{\"match\":\"([<>=^])\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\w)\",\"name\":\"storage.type.format.python\"}]},\"fstring-terminator-single\":{\"patterns\":[{\"match\":\"(=(![rsa])?)(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(=?![rsa])(?=})\",\"name\":\"storage.type.format.python\"},{\"captures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"match\":\"((?:=?)(?:![rsa])?)(:\\\\w?[<>=^]?[-+ ]?\\\\#?\\\\d*,?(\\\\.\\\\d+)?[bcdeEfFgGnosxX%]?)(?=})\"},{\"include\":\"#fstring-terminator-single-tail\"}]},\"fstring-terminator-single-tail\":{\"begin\":\"((?:=?)(?:![rsa])?)(:)(?=.*?{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"end\":\"(?=})|(?=\\\\n)\",\"patterns\":[{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"match\":\"([bcdeEfFgGnosxX%])(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\.\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(,)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\#)\",\"name\":\"storage.type.format.python\"},{\"match\":\"([-+ ])\",\"name\":\"storage.type.format.python\"},{\"match\":\"([<>=^])\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\w)\",\"name\":\"storage.type.format.python\"}]},\"function-arguments\":{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"contentName\":\"meta.function-call.arguments.python\",\"end\":\"(?=\\\\))(?!\\\\)\\\\s*\\\\()\",\"patterns\":[{\"match\":\"(,)\",\"name\":\"punctuation.separator.arguments.python\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.unpacking.arguments.python\"}},\"match\":\"(?:(?<=[,(])|^)\\\\s*(\\\\*{1,2})\"},{\"include\":\"#lambda-incomplete\"},{\"include\":\"#illegal-names\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function-call.python\"},\"2\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\b([[:alpha:]_]\\\\w*)\\\\s*(=)(?!=)\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},{\"include\":\"#expression\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"match\":\"\\\\s*(\\\\))\\\\s*(\\\\()\"}]},\"function-call\":{\"begin\":\"\\\\b(?=([[:alpha:]_]\\\\w*)\\\\s*(\\\\())\",\"comment\":\"Regular function call of the type \\\"name(args)\\\"\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.function-call.python\",\"patterns\":[{\"include\":\"#special-variables\"},{\"include\":\"#function-name\"},{\"include\":\"#function-arguments\"}]},\"function-declaration\":{\"begin\":\"\\\\s*(?:\\\\b(async)\\\\s+)?\\\\b(def)\\\\s+(?=[[:alpha:]_][[:word:]]*\\\\s*\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.async.python\"},\"2\":{\"name\":\"storage.type.function.python\"}},\"end\":\"(:|(?=[#'\\\"\\\\n]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.python\"}},\"name\":\"meta.function.python\",\"patterns\":[{\"include\":\"#function-def-name\"},{\"include\":\"#parameters\"},{\"include\":\"#line-continuation\"},{\"include\":\"#return-annotation\"}]},\"function-def-name\":{\"patterns\":[{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-possible-callables\"},{\"match\":\"\\\\b([[:alpha:]_]\\\\w*)\\\\b\",\"name\":\"entity.name.function.python\"}]},\"function-name\":{\"patterns\":[{\"include\":\"#builtin-possible-callables\"},{\"comment\":\"Some color schemas support meta.function-call.generic scope\",\"match\":\"\\\\b([[:alpha:]_]\\\\w*)\\\\b\",\"name\":\"meta.function-call.generic.python\"}]},\"generator\":{\"begin\":\"\\\\bfor\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.python\"}},\"comment\":\"Match \\\"for ... in\\\" construct used in generators and for loops to\\ncorrectly identify the \\\"in\\\" as a control flow keyword.\\n\",\"end\":\"\\\\bin\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.flow.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"illegal-anno\":{\"match\":\"->\",\"name\":\"invalid.illegal.annotation.python\"},\"illegal-names\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"},\"2\":{\"name\":\"keyword.control.import.python\"}},\"match\":\"\\\\b(?:(and|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\\\\.)lambda|lambda(?=\\\\s*[\\\\.=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(as|import))\\\\b\"},\"illegal-object-name\":{\"comment\":\"It's illegal to name class or function \\\"True\\\"\",\"match\":\"\\\\b(True|False|None)\\\\b\",\"name\":\"keyword.illegal.name.python\"},\"illegal-operator\":{\"patterns\":[{\"match\":\"&&|\\\\|\\\\||--|\\\\+\\\\+\",\"name\":\"invalid.illegal.operator.python\"},{\"match\":\"[?$]\",\"name\":\"invalid.illegal.operator.python\"},{\"comment\":\"We don't want `!` to flash when we're typing `!=`\",\"match\":\"!\\\\b\",\"name\":\"invalid.illegal.operator.python\"}]},\"import\":{\"comment\":\"Import statements used to correctly mark `from`, `import`, and `as`\\n\",\"patterns\":[{\"begin\":\"\\\\b(?>|&|\\\\||\\\\^|~)|(\\\\*\\\\*|\\\\*|\\\\+|-|%|//|/|@)|(!=|==|>=|<=|<|>)|(:=)\"},\"parameter-special\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"variable.parameter.function.language.special.self.python\"},\"3\":{\"name\":\"variable.parameter.function.language.special.cls.python\"},\"4\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"\\\\b((self)|(cls))\\\\b\\\\s*(?:(,)|(?=\\\\)))\"},\"parameters\":{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.python\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.python\"}},\"name\":\"meta.function.parameters.python\",\"patterns\":[{\"match\":\"/\",\"name\":\"keyword.operator.positional.parameter.python\"},{\"match\":\"(\\\\*\\\\*|\\\\*)\",\"name\":\"keyword.operator.unpacking.parameter.python\"},{\"include\":\"#lambda-incomplete\"},{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#parameter-special\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"([[:alpha:]_]\\\\w*)\\\\s*(?:(,)|(?=[)#\\\\n=]))\"},{\"include\":\"#comments\"},{\"include\":\"#loose-default\"},{\"include\":\"#annotated-parameter\"}]},\"punctuation\":{\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.colon.python\"},{\"match\":\",\",\"name\":\"punctuation.separator.element.python\"}]},\"regexp\":{\"patterns\":[{\"include\":\"#regexp-single-three-line\"},{\"include\":\"#regexp-double-three-line\"},{\"include\":\"#regexp-single-one-line\"},{\"include\":\"#regexp-double-one-line\"}]},\"regexp-backreference\":{\"captures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.backreference.regexp\"},\"3\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp\"}},\"match\":\"(\\\\()(\\\\?P=\\\\w+(?:\\\\s+[[:alnum:]]+)?)(\\\\))\",\"name\":\"meta.backreference.named.regexp\"},\"regexp-backreference-number\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.backreference.regexp\"}},\"match\":\"(\\\\\\\\[1-9]\\\\d?)\",\"name\":\"meta.backreference.regexp\"},\"regexp-base-common\":{\"patterns\":[{\"match\":\"\\\\.\",\"name\":\"support.other.match.any.regexp\"},{\"match\":\"\\\\^\",\"name\":\"support.other.match.begin.regexp\"},{\"match\":\"\\\\$\",\"name\":\"support.other.match.end.regexp\"},{\"match\":\"[+*?]\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\|\",\"name\":\"keyword.operator.disjunction.regexp\"},{\"include\":\"#regexp-escape-sequence\"}]},\"regexp-base-expression\":{\"patterns\":[{\"include\":\"#regexp-quantifier\"},{\"include\":\"#regexp-base-common\"}]},\"regexp-charecter-set-escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\[abfnrtv\\\\\\\\]\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-special\"},{\"match\":\"\\\\\\\\([0-7]{1,3})\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-double-one-line\":{\"begin\":\"\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\")|(?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.annotation.result.python\"}},\"end\":\"(?=:)\",\"patterns\":[{\"include\":\"#expression\"}]},\"round-braces\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.begin.python\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.end.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"semicolon\":{\"patterns\":[{\"match\":\"\\\\;$\",\"name\":\"invalid.deprecated.semicolon.python\"}]},\"single-one-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\[\\\\^?\\\\](?!.*?\\\\])\"},{\"begin\":\"(\\\\[)(\\\\^)?(\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\]|(?=\\\\'))|((?=(?)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\)|(?=\\\\'))|((?=(?)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\)|(?=\\\\'\\\\'\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-parentheses\":{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\)|(?=\\\\'\\\\'\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\(\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\)|(?=\\\\'\\\\'\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"special-names\":{\"match\":\"\\\\b(_*[[:upper:]][_\\\\d]*[[:upper:]])[[:upper:]\\\\d]*(_\\\\w*)?\\\\b\",\"name\":\"constant.other.caps.python\"},\"special-variables\":{\"captures\":{\"1\":{\"name\":\"variable.language.special.self.python\"},\"2\":{\"name\":\"variable.language.special.cls.python\"}},\"match\":\"\\\\b(?=^]?[-+ ]?\\\\#?\\\\d*,?(\\\\.\\\\d+)?[bcdeEfFgGnosxX%]?)?}))\",\"name\":\"meta.format.brace.python\"},{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"3\":{\"name\":\"storage.type.format.python\"},\"4\":{\"name\":\"storage.type.format.python\"}},\"match\":\"({\\\\w*(\\\\.[[:alpha:]_]\\\\w*|\\\\[[^\\\\]'\\\"]+\\\\])*(![rsa])?(:)[^'\\\"{}\\\\n]*(?:\\\\{[^'\\\"}\\\\n]*?\\\\}[^'\\\"{}\\\\n]*)*})\",\"name\":\"meta.format.brace.python\"}]},\"string-consume-escape\":{\"match\":\"\\\\\\\\['\\\"\\\\n\\\\\\\\]\"},\"string-entity\":{\"patterns\":[{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"},{\"include\":\"#string-formatting\"}]},\"string-formatting\":{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"match\":\"(%(\\\\([\\\\w\\\\s]*\\\\))?[-+#0 ]*(\\\\d+|\\\\*)?(\\\\.(\\\\d+|\\\\*))?([hlL])?[diouxXeEfFgGcrsab%])\",\"name\":\"meta.format.percent.python\"},\"string-line-continuation\":{\"match\":\"\\\\\\\\$\",\"name\":\"constant.language.python\"},\"string-multi-bad-brace1-formatting-raw\":{\"begin\":\"(?=\\\\{%(.*?(?!'''|\\\"\\\"\\\"))%\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?='''|\\\"\\\"\\\")\",\"patterns\":[{\"include\":\"#string-consume-escape\"}]},\"string-multi-bad-brace1-formatting-unicode\":{\"begin\":\"(?=\\\\{%(.*?(?!'''|\\\"\\\"\\\"))%\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?='''|\\\"\\\"\\\")\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"string-multi-bad-brace2-formatting-raw\":{\"begin\":\"(?!\\\\{\\\\{)(?=\\\\{(\\\\w*?(?!'''|\\\"\\\"\\\")[^!:\\\\.\\\\[}\\\\w]).*?(?!'''|\\\"\\\"\\\")\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?='''|\\\"\\\"\\\")\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-multi-bad-brace2-formatting-unicode\":{\"begin\":\"(?!\\\\{\\\\{)(?=\\\\{(\\\\w*?(?!'''|\\\"\\\"\\\")[^!:\\\\.\\\\[}\\\\w]).*?(?!'''|\\\"\\\"\\\")\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?='''|\\\"\\\"\\\")\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"}]},\"string-quoted-multi-line\":{\"begin\":\"(?:\\\\b([rR])(?=[uU]))?([uU])?('''|\\\"\\\"\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.multi.python\",\"patterns\":[{\"include\":\"#string-multi-bad-brace1-formatting-unicode\"},{\"include\":\"#string-multi-bad-brace2-formatting-unicode\"},{\"include\":\"#string-unicode-guts\"}]},\"string-quoted-single-line\":{\"begin\":\"(?:\\\\b([rR])(?=[uU]))?([uU])?((['\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\3)|((?