{"version":3,"file":"8913.1773658335e9a4527e40.js","mappings":"sFA2lBAA,EAAOC,QA/kBP,SAAaC,GACX,MAAMC,EAAQD,EAAKC,MAGbC,EAAe,yBACfC,EAAWF,EAAMG,OACrB,2CACAF,GAEIG,EAA4BJ,EAAMG,OACtC,yEACAF,GACII,EAAW,CACfC,MAAO,WACPC,MAAO,OAASL,GAYZM,EAAQ,CACZF,MAAO,QACPG,SAAU,CACR,CAAEC,MAAO,SACT,CACEA,MAAO,OACPC,IAAK,QAILC,EAAgBb,EAAKc,QAAQd,EAAKe,iBAAkB,CAAEC,QAAS,OAW/DC,EAAa,UACbC,EAAS,CACbX,MAAO,SACPG,SAAU,CAbUV,EAAKc,QAAQd,EAAKmB,kBAAmB,CACzDH,QAAS,KACTI,SAAUpB,EAAKmB,kBAAkBC,SAAShB,OAAOK,KAa/CI,EAXYb,EAAKqB,kBAAkB,CACrCV,MAAO,mBACPC,IAAK,gBACLQ,SAAUpB,EAAKmB,kBAAkBC,SAAShB,OAAOK,OAY7Ca,EAAS,CACbf,MAAO,SACPG,SAAU,CACR,CAAEC,MAAO,+BACT,CAAEA,MAAO,iCACT,CAAEA,MAAO,6CAET,CAAEA,MAAO,+EAEXY,UAAW,GAEPC,EAAW,CACf,QACA,OACA,QAEIC,EAAM,CAGV,YACA,UACA,WACA,eACA,2BACA,WACA,aACA,gBACA,YAGA,MACA,OACA,OACA,UACA,eACA,QACA,UACA,eAMA,QACA,WACA,MACA,KACA,SACA,OACA,UACA,QACA,WACA,OACA,QACA,QACA,QACA,QACA,WACA,UACA,UACA,KACA,SACA,OACA,SACA,QACA,aACA,SACA,aACA,QACA,YACA,WACA,OACA,OACA,UACA,QACA,UACA,QACA,MACA,UACA,OACA,SACA,OACA,KACA,aACA,aACA,YACA,MACA,UACA,YACA,QACA,WACA,OACA,UACA,QACA,MACA,QACA,SACA,KACA,UACA,YACA,SACA,WACA,OACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,MACA,OACA,QACA,MACA,SAGIC,EAAY,CAGhB,UACA,iBACA,qBACA,kBACA,gBACA,cACA,iBACA,2BACA,yBACA,kBACA,yBACA,eACA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","sources":["webpack://telegram-t/./node_modules/highlight.js/lib/languages/php.js"],"sourcesContent":["/*\nLanguage: PHP\nAuthor: Victor Karamzin \nContributors: Evgeny Stepanischev , Ivan Sagalaev \nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n const IDENT_RE = regex.concat(\n /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n NOT_PERL_ETC);\n // Will not detect camelCase classes\n const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n NOT_PERL_ETC);\n const VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE,\n };\n const PREPROCESSOR = {\n scope: 'meta',\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?=/ },\n // less relevant per PSR-1 which says not to use short-tags\n { begin: /<\\?/, relevance: 0.1 },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n scope: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n {\n begin: /\\{\\$/,\n end: /\\}/\n }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n const HEREDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*(\\w+)\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n const WHITESPACE = '[ \\t\\n]';\n const STRING = {\n scope: 'string',\n variants: [\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC\n ]\n };\n const NUMBER = {\n scope: 'number',\n variants: [\n { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const LITERALS = [\n \"false\",\n \"null\",\n \"true\"\n ];\n const KWS = [\n // Magic constants:\n // \n \"__CLASS__\",\n \"__DIR__\",\n \"__FILE__\",\n \"__FUNCTION__\",\n \"__COMPILER_HALT_OFFSET__\",\n \"__LINE__\",\n \"__METHOD__\",\n \"__NAMESPACE__\",\n \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\",\n \"echo\",\n \"exit\",\n \"include\",\n \"include_once\",\n \"print\",\n \"require\",\n \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // \n // \n \"array\",\n \"abstract\",\n \"and\",\n \"as\",\n \"binary\",\n \"bool\",\n \"boolean\",\n \"break\",\n \"callable\",\n \"case\",\n \"catch\",\n \"class\",\n \"clone\",\n \"const\",\n \"continue\",\n \"declare\",\n \"default\",\n \"do\",\n \"double\",\n \"else\",\n \"elseif\",\n \"empty\",\n \"enddeclare\",\n \"endfor\",\n \"endforeach\",\n \"endif\",\n \"endswitch\",\n \"endwhile\",\n \"enum\",\n \"eval\",\n \"extends\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"foreach\",\n \"from\",\n \"global\",\n \"goto\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"insteadof\",\n \"int\",\n \"integer\",\n \"interface\",\n \"isset\",\n \"iterable\",\n \"list\",\n \"match|0\",\n \"mixed\",\n \"new\",\n \"never\",\n \"object\",\n \"or\",\n \"private\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"real\",\n \"return\",\n \"string\",\n \"switch\",\n \"throw\",\n \"trait\",\n \"try\",\n \"unset\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"xor\",\n \"yield\"\n ];\n\n const BUILT_INS = [\n // Standard PHP library:\n // \n \"Error|0\",\n \"AppendIterator\",\n \"ArgumentCountError\",\n \"ArithmeticError\",\n \"ArrayIterator\",\n \"ArrayObject\",\n \"AssertionError\",\n \"BadFunctionCallException\",\n \"BadMethodCallException\",\n \"CachingIterator\",\n \"CallbackFilterIterator\",\n \"CompileError\",\n \"Countable\",\n \"DirectoryIterator\",\n \"DivisionByZeroError\",\n \"DomainException\",\n \"EmptyIterator\",\n \"ErrorException\",\n \"Exception\",\n \"FilesystemIterator\",\n \"FilterIterator\",\n \"GlobIterator\",\n \"InfiniteIterator\",\n \"InvalidArgumentException\",\n \"IteratorIterator\",\n \"LengthException\",\n \"LimitIterator\",\n \"LogicException\",\n \"MultipleIterator\",\n \"NoRewindIterator\",\n \"OutOfBoundsException\",\n \"OutOfRangeException\",\n \"OuterIterator\",\n \"OverflowException\",\n \"ParentIterator\",\n \"ParseError\",\n \"RangeException\",\n \"RecursiveArrayIterator\",\n \"RecursiveCachingIterator\",\n \"RecursiveCallbackFilterIterator\",\n \"RecursiveDirectoryIterator\",\n \"RecursiveFilterIterator\",\n \"RecursiveIterator\",\n \"RecursiveIteratorIterator\",\n \"RecursiveRegexIterator\",\n \"RecursiveTreeIterator\",\n \"RegexIterator\",\n \"RuntimeException\",\n \"SeekableIterator\",\n \"SplDoublyLinkedList\",\n \"SplFileInfo\",\n \"SplFileObject\",\n \"SplFixedArray\",\n \"SplHeap\",\n \"SplMaxHeap\",\n \"SplMinHeap\",\n \"SplObjectStorage\",\n \"SplObserver\",\n \"SplPriorityQueue\",\n \"SplQueue\",\n \"SplStack\",\n \"SplSubject\",\n \"SplTempFileObject\",\n \"TypeError\",\n \"UnderflowException\",\n \"UnexpectedValueException\",\n \"UnhandledMatchError\",\n // Reserved interfaces:\n // \n \"ArrayAccess\",\n \"BackedEnum\",\n \"Closure\",\n \"Fiber\",\n \"Generator\",\n \"Iterator\",\n \"IteratorAggregate\",\n \"Serializable\",\n \"Stringable\",\n \"Throwable\",\n \"Traversable\",\n \"UnitEnum\",\n \"WeakReference\",\n \"WeakMap\",\n // Reserved classes:\n // \n \"Directory\",\n \"__PHP_Incomplete_Class\",\n \"parent\",\n \"php_user_filter\",\n \"self\",\n \"static\",\n \"stdClass\"\n ];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n const dualCase = (items) => {\n /** @type string[] */\n const result = [];\n items.forEach(item => {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n\n const KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS,\n };\n\n /**\n * @param {string[]} items */\n const normalizeKeywords = (items) => {\n return items.map(item => {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n\n const CONSTRUCTOR_CALL = { variants: [\n {\n match: [\n /new/,\n regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n PASCAL_CASE_CLASS_NAME_RE,\n ],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\",\n },\n }\n ] };\n\n const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n {\n match: [\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: { 2: \"variable.constant\", },\n },\n {\n match: [\n /::/,\n /class/,\n ],\n scope: { 2: \"variable.language\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\",\n },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n \"::\",\n regex.lookahead(/(?!class\\b)/)\n ),\n ],\n scope: { 1: \"title.class\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n /::/,\n /class/,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\",\n },\n }\n ] };\n\n const NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n };\n const PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n NAMED_ARGUMENT,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ],\n };\n const FUNCTION_INVOKE = {\n relevance: 0,\n match: [\n /\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n IDENT_RE,\n regex.concat(WHITESPACE, \"*\"),\n regex.lookahead(/(?=\\()/)\n ],\n scope: { 3: \"title.function.invoke\", },\n contains: [ PARAMS_MODE ]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n const ATTRIBUTE_CONTAINS = [\n NAMED_ARGUMENT,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ];\n\n const ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*/, PASCAL_CASE_CLASS_NAME_RE),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n {\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n 'self',\n ...ATTRIBUTE_CONTAINS,\n ]\n },\n ...ATTRIBUTE_CONTAINS,\n {\n scope: 'meta',\n match: PASCAL_CASE_CLASS_NAME_RE\n }\n ]\n };\n\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n ATTRIBUTES,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$'),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [\n {\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }\n ] }\n ),\n {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }\n ]\n }\n },\n PREPROCESSOR,\n {\n scope: 'variable.language',\n match: /\\$this\\b/\n },\n VARIABLE,\n FUNCTION_INVOKE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n {\n match: [\n /const/,\n /\\s/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\",\n },\n },\n CONSTRUCTOR_CALL,\n {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n { beginKeywords: 'use', },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n },\n ]\n },\n {\n scope: 'class',\n variants: [\n {\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n },\n {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n STRING,\n NUMBER,\n ]\n };\n}\n\nmodule.exports = php;\n"],"names":["module","exports","hljs","regex","NOT_PERL_ETC","IDENT_RE","concat","PASCAL_CASE_CLASS_NAME_RE","VARIABLE","scope","match","SUBST","variants","begin","end","SINGLE_QUOTED","inherit","APOS_STRING_MODE","illegal","WHITESPACE","STRING","QUOTE_STRING_MODE","contains","END_SAME_AS_BEGIN","NUMBER","relevance","LITERALS","KWS","BUILT_INS","KEYWORDS","keyword","literal","items","result","forEach","item","push","toLowerCase","toUpperCase","dualCase","built_in","normalizeKeywords","map","replace","CONSTRUCTOR_CALL","join","CONSTANT_REFERENCE","LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON","lookahead","NAMED_ARGUMENT","PARAMS_MODE","keywords","C_BLOCK_COMMENT_MODE","FUNCTION_INVOKE","ATTRIBUTE_CONTAINS","case_insensitive","beginScope","endScope","HASH_COMMENT_MODE","COMMENT","starts","MATCH_NOTHING_RE","endsParent","beginKeywords","excludeEnd","UNDERSCORE_TITLE_MODE","excludeBegin"],"sourceRoot":""}