/* Copyright (c) 2006, Ivan Sagalaev. All rights reserved. SPDX-License-Identifier: BSD-3-Clause */ 'use strict';function escape$$module$third_party$javascript$highlightjs$src$lib$regex(value){return new RegExp(value.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function source$$module$third_party$javascript$highlightjs$src$lib$regex(re){if(!re)return null;if(typeof re==="string")return re;return re.source}function lookahead$$module$third_party$javascript$highlightjs$src$lib$regex(re){return concat$$module$third_party$javascript$highlightjs$src$lib$regex("(?=",re,")")} function anyNumberOfTimes$$module$third_party$javascript$highlightjs$src$lib$regex(re){return concat$$module$third_party$javascript$highlightjs$src$lib$regex("(",re,")*")}function optional$$module$third_party$javascript$highlightjs$src$lib$regex(re){return concat$$module$third_party$javascript$highlightjs$src$lib$regex("(",re,")?")} function concat$$module$third_party$javascript$highlightjs$src$lib$regex(...args){const joined=args.map(x=>{return source$$module$third_party$javascript$highlightjs$src$lib$regex(x)}).join("");return joined}function either$$module$third_party$javascript$highlightjs$src$lib$regex(...args){const joined="("+args.map(x=>{return source$$module$third_party$javascript$highlightjs$src$lib$regex(x)}).join("|")+")";return joined} function countMatchGroups$$module$third_party$javascript$highlightjs$src$lib$regex(re){return(new RegExp(re.toString()+"|")).exec("").length-1}function startsWith$$module$third_party$javascript$highlightjs$src$lib$regex(re,lexeme){const match=re&&re.exec(lexeme);return match&&match.index===0} function join$$module$third_party$javascript$highlightjs$src$lib$regex(regexps,separator="|"){const backreferenceRe=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;let numCaptures=0;let ret="";for(let i=0;i0)ret=ret+separator;ret=ret+"(";for(;re.length>0;){const match=backreferenceRe.exec(re);if(match==null){ret=ret+re;break}ret=ret+re.substring(0, match.index);re=re.substring(match.index+match[0].length);if(match[0][0]==="\\"&&match[1])ret=ret+("\\"+String(Number(match[1])+offset));else{ret=ret+match[0];if(match[0]==="(")numCaptures++}}ret=ret+")"}return ret}var module$third_party$javascript$highlightjs$src$lib$regex={};module$third_party$javascript$highlightjs$src$lib$regex.anyNumberOfTimes=anyNumberOfTimes$$module$third_party$javascript$highlightjs$src$lib$regex;module$third_party$javascript$highlightjs$src$lib$regex.concat=concat$$module$third_party$javascript$highlightjs$src$lib$regex; module$third_party$javascript$highlightjs$src$lib$regex.countMatchGroups=countMatchGroups$$module$third_party$javascript$highlightjs$src$lib$regex;module$third_party$javascript$highlightjs$src$lib$regex.either=either$$module$third_party$javascript$highlightjs$src$lib$regex;module$third_party$javascript$highlightjs$src$lib$regex.escape=escape$$module$third_party$javascript$highlightjs$src$lib$regex;module$third_party$javascript$highlightjs$src$lib$regex.join=join$$module$third_party$javascript$highlightjs$src$lib$regex; module$third_party$javascript$highlightjs$src$lib$regex.lookahead=lookahead$$module$third_party$javascript$highlightjs$src$lib$regex;module$third_party$javascript$highlightjs$src$lib$regex.optional=optional$$module$third_party$javascript$highlightjs$src$lib$regex;module$third_party$javascript$highlightjs$src$lib$regex.source=source$$module$third_party$javascript$highlightjs$src$lib$regex;module$third_party$javascript$highlightjs$src$lib$regex.startsWith=startsWith$$module$third_party$javascript$highlightjs$src$lib$regex;var $jscompDefaultExport$$module$third_party$javascript$highlightjs$src$languages$c=function(hljs){const C_LINE_COMMENT_MODE=hljs.COMMENT("//","$",{contains:[{begin:/\\\n/}]});const DECLTYPE_AUTO_RE="decltype\\(auto\\)";const NAMESPACE_RE="[a-zA-Z_]\\w*::";const TEMPLATE_ARGUMENT_RE="<[^<>]+>";const FUNCTION_TYPE_RE="("+DECLTYPE_AUTO_RE+"|"+optional$$module$third_party$javascript$highlightjs$src$lib$regex(NAMESPACE_RE)+"[a-zA-Z_]\\w*"+optional$$module$third_party$javascript$highlightjs$src$lib$regex(TEMPLATE_ARGUMENT_RE)+ ")";const CPP_PRIMITIVE_TYPES={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"};const CHARACTER_ESCAPES="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)";const STRINGS={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[hljs.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+CHARACTER_ESCAPES+"|.)",end:"'",illegal:"."},hljs.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]};const NUMBERS={className:"number",variants:[{begin:"\\b(0b[01']+)"}, {begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0};const PREPROCESSOR={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line "+"pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},hljs.inherit(STRINGS,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/, end:/$/,illegal:"\\n"},C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE]};const TITLE_MODE={className:"title",begin:optional$$module$third_party$javascript$highlightjs$src$lib$regex(NAMESPACE_RE)+hljs.IDENT_RE,relevance:0};const FUNCTION_TITLE=optional$$module$third_party$javascript$highlightjs$src$lib$regex(NAMESPACE_RE)+hljs.IDENT_RE+"\\s*\\(";const CPP_KEYWORDS={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof "+"dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace "+ "unsigned long volatile static protected bool template mutable if public friend "+"do goto auto void enum else break extern using asm case typeid wchar_t "+"short reinterpret_cast|10 default double register explicit signed typename try this "+"switch continue inline delete alignas alignof constexpr consteval constinit decltype "+"concept co_await co_return co_yield requires "+"noexcept static_assert thread_local restrict final override "+"atomic_bool atomic_char atomic_schar "+"atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong "+ "atomic_ullong new throw return "+"and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream "+"auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set "+"unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos "+"asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp "+ "fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper "+"isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow "+"printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp "+"strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan "+"vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"}; const EXPRESSION_CONTAINS=[PREPROCESSOR,CPP_PRIMITIVE_TYPES,C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE,NUMBERS,STRINGS];const EXPRESSION_CONTEXT={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:CPP_KEYWORDS,contains:EXPRESSION_CONTAINS.concat([{begin:/\(/,end:/\)/,keywords:CPP_KEYWORDS,contains:EXPRESSION_CONTAINS.concat(["self"]),relevance:0}]),relevance:0};const FUNCTION_DECLARATION={className:"function",begin:"("+FUNCTION_TYPE_RE+ "[\\*&\\s]+)+"+FUNCTION_TITLE,returnBegin:true,end:/[{;=]/,excludeEnd:true,keywords:CPP_KEYWORDS,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:DECLTYPE_AUTO_RE,keywords:CPP_KEYWORDS,relevance:0},{begin:FUNCTION_TITLE,returnBegin:true,contains:[TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:CPP_KEYWORDS,relevance:0,contains:[C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE,STRINGS,NUMBERS,CPP_PRIMITIVE_TYPES,{begin:/\(/,end:/\)/,keywords:CPP_KEYWORDS,relevance:0,contains:["self", C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE,STRINGS,NUMBERS,CPP_PRIMITIVE_TYPES]}]},CPP_PRIMITIVE_TYPES,C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE,PREPROCESSOR]};return{name:"C",aliases:["c","h"],keywords:CPP_KEYWORDS,disableAutodetect:true,illegal:"",keywords:CPP_KEYWORDS,contains:["self",CPP_PRIMITIVE_TYPES]},{begin:hljs.IDENT_RE+"::",keywords:CPP_KEYWORDS},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},hljs.TITLE_MODE]}]),exports:{preprocessor:PREPROCESSOR,strings:STRINGS,keywords:CPP_KEYWORDS}}};var module$third_party$javascript$highlightjs$src$languages$c={};module$third_party$javascript$highlightjs$src$languages$c.default=$jscompDefaultExport$$module$third_party$javascript$highlightjs$src$languages$c;globalThis.hljs_c=$jscompDefaultExport$$module$third_party$javascript$highlightjs$src$languages$c;var module$third_party$javascript$highlightjs$export_shims$export_c={};