\/, )]|int_least64_t[^Pattern.new( match: \\/\\w\\/, )]|uint_least8_t[^Pattern.new( match: \\/\\w\\/, )]|uint_fast16_t[^Pattern.new( match: \\/\\w\\/, )]|uint_fast32_t[^Pattern.new( match: \\/\\w\\/, )]|uint_fast64_t[^Pattern.new( match: \\/\\w\\/, )]|int_least8_t[^Pattern.new( match: \\/\\w\\/, )]|int_fast16_t[^Pattern.new( match: \\/\\w\\/, )]|int_fast32_t[^Pattern.new( match: \\/\\w\\/, )]|int_fast64_t[^Pattern.new( match: \\/\\w\\/, )]|uint_fast8_t[^Pattern.new( match: \\/\\w\\/, )]|suseconds_t[^Pattern.new( match: \\/\\w\\/, )]|int_fast8_t[^Pattern.new( match: \\/\\w\\/, )]|useconds_t[^Pattern.new( match: \\/\\w\\/, )]|ulonglong1[^Pattern.new( match: \\/\\w\\/, )]|ulonglong2[^Pattern.new( match: \\/\\w\\/, )]|ulonglong3[^Pattern.new( match: \\/\\w\\/, )]|ulonglong4[^Pattern.new( match: \\/\\w\\/, )]|blksize_t[^Pattern.new( match: \\/\\w\\/, )]|in_addr_t[^Pattern.new( match: \\/\\w\\/, )]|in_port_t[^Pattern.new( match: \\/\\w\\/, )]|uintptr_t[^Pattern.new( match: \\/\\w\\/, )]|uintmax_t[^Pattern.new( match: \\/\\w\\/, )]|uintmax_t[^Pattern.new( match: \\/\\w\\/, )]|uintmax_t[^Pattern.new( match: \\/\\w\\/, )]|longlong1[^Pattern.new( match: \\/\\w\\/, )]|longlong2[^Pattern.new( match: \\/\\w\\/, )]|longlong3[^Pattern.new( match: \\/\\w\\/, )]|longlong4[^Pattern.new( match: \\/\\w\\/, )]|unsigned[^Pattern.new( match: \\/\\w\\/, )]|u_quad_t[^Pattern.new( match: \\/\\w\\/, )]|blkcnt_t[^Pattern.new( match: \\/\\w\\/, )]|uint16_t[^Pattern.new( match: \\/\\w\\/, )]|uint32_t[^Pattern.new( match: \\/\\w\\/, )]|uint64_t[^Pattern.new( match: \\/\\w\\/, )]|intptr_t[^Pattern.new( match: \\/\\w\\/, )]|intmax_t[^Pattern.new( match: \\/\\w\\/, )]|intmax_t[^Pattern.new( match: \\/\\w\\/, )]|wchar_t[^Pattern.new( match: \\/\\w\\/, )]|u_short[^Pattern.new( match: \\/\\w\\/, )]|qaddr_t[^Pattern.new( match: \\/\\w\\/, )]|caddr_t[^Pattern.new( match: \\/\\w\\/, )]|daddr_t[^Pattern.new( match: \\/\\w\\/, )]|fixpt_t[^Pattern.new( match: \\/\\w\\/, )]|nlink_t[^Pattern.new( match: \\/\\w\\/, )]|segsz_t[^Pattern.new( match: \\/\\w\\/, )]|swblk_t[^Pattern.new( match: \\/\\w\\/, )]|clock_t[^Pattern.new( match: \\/\\w\\/, )]|ssize_t[^Pattern.new( match: \\/\\w\\/, )]|int16_t[^Pattern.new( match: \\/\\w\\/, )]|int32_t[^Pattern.new( match: \\/\\w\\/, )]|int64_t[^Pattern.new( match: \\/\\w\\/, )]|uint8_t[^Pattern.new( match: \\/\\w\\/, )]|ushort1[^Pattern.new( match: \\/\\w\\/, )]|ushort2[^Pattern.new( match: \\/\\w\\/, )]|ushort3[^Pattern.new( match: \\/\\w\\/, )]|ushort4[^Pattern.new( match: \\/\\w\\/, )]|double1[^Pattern.new( match: \\/\\w\\/, )]|double2[^Pattern.new( match: \\/\\w\\/, )]|double3[^Pattern.new( match: \\/\\w\\/, )]|double4[^Pattern.new( match: \\/\\w\\/, )]|signed[^Pattern.new( match: \\/\\w\\/, )]|double[^Pattern.new( match: \\/\\w\\/, )]|u_char[^Pattern.new( match: \\/\\w\\/, )]|u_long[^Pattern.new( match: \\/\\w\\/, )]|ushort[^Pattern.new( match: \\/\\w\\/, )]|quad_t[^Pattern.new( match: \\/\\w\\/, )]|mode_t[^Pattern.new( match: \\/\\w\\/, )]|size_t[^Pattern.new( match: \\/\\w\\/, )]|time_t[^Pattern.new( match: \\/\\w\\/, )]|int8_t[^Pattern.new( match: \\/\\w\\/, )]|uchar1[^Pattern.new( match: \\/\\w\\/, )]|uchar2[^Pattern.new( match: \\/\\w\\/, )]|uchar3[^Pattern.new( match: \\/\\w\\/, )]|uchar4[^Pattern.new( match: \\/\\w\\/, )]|short1[^Pattern.new( match: \\/\\w\\/, )]|short2[^Pattern.new( match: \\/\\w\\/, )]|short3[^Pattern.new( match: \\/\\w\\/, )]|short4[^Pattern.new( match: \\/\\w\\/, )]|ulong4[^Pattern.new( match: \\/\\w\\/, )]|ulong1[^Pattern.new( match: \\/\\w\\/, )]|ulong2[^Pattern.new( match: \\/\\w\\/, )]|ulong3[^Pattern.new( match: \\/\\w\\/, )]|ulong4[^Pattern.new( match: \\/\\w\\/, )]|float1[^Pattern.new( match: \\/\\w\\/, )]|float2[^Pattern.new( match: \\/\\w\\/, )]|float3[^Pattern.new( match: \\/\\w\\/, )]|float4[^Pattern.new( match: \\/\\w\\/, )]|short[^Pattern.new( match: \\/\\w\\/, )]|float[^Pattern.new( match: \\/\\w\\/, )]|u_int[^Pattern.new( match: \\/\\w\\/, )]|div_t[^Pattern.new( match: \\/\\w\\/, )]|dev_t[^Pattern.new( match: \\/\\w\\/, )]|gid_t[^Pattern.new( match: \\/\\w\\/, )]|ino_t[^Pattern.new( match: \\/\\w\\/, )]|key_t[^Pattern.new( match: \\/\\w\\/, )]|pid_t[^Pattern.new( match: \\/\\w\\/, )]|off_t[^Pattern.new( match: \\/\\w\\/, )]|uid_t[^Pattern.new( match: \\/\\w\\/, )]|char1[^Pattern.new( match: \\/\\w\\/, )]|char2[^Pattern.new( match: \\/\\w\\/, )]|char3[^Pattern.new( match: \\/\\w\\/, )]|char4[^Pattern.new( match: \\/\\w\\/, )]|uint1[^Pattern.new( match: \\/\\w\\/, )]|uint2[^Pattern.new( match: \\/\\w\\/, )]|uint3[^Pattern.new( match: \\/\\w\\/, )]|uint4[^Pattern.new( match: \\/\\w\\/, )]|long1[^Pattern.new( match: \\/\\w\\/, )]|long2[^Pattern.new( match: \\/\\w\\/, )]|long3[^Pattern.new( match: \\/\\w\\/, )]|auto[^Pattern.new( match: \\/\\w\\/, )]|void[^Pattern.new( match: \\/\\w\\/, )]|char[^Pattern.new( match: \\/\\w\\/, )]|long[^Pattern.new( match: \\/\\w\\/, )]|bool[^Pattern.new( match: \\/\\w\\/, )]|uint[^Pattern.new( match: \\/\\w\\/, )]|id_t[^Pattern.new( match: \\/\\w\\/, )]|id_t[^Pattern.new( match: \\/\\w\\/, )]|int1[^Pattern.new( match: \\/\\w\\/, )]|int2[^Pattern.new( match: \\/\\w\\/, )]|int3[^Pattern.new( match: \\/\\w\\/, )]|int4[^Pattern.new( match: \\/\\w\\/, )]|dim3[^Pattern.new( match: \\/\\w\\/, )]|int[^Pattern.new( match: \\/\\w\\/, )])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())`,captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"variable.language.this.cuda-cpp"},4:{name:"variable.other.object.access.cuda-cpp"},5:{name:"punctuation.separator.dot-access.cuda-cpp"},6:{name:"punctuation.separator.pointer-access.cuda-cpp"},7:{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.property.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"}}},{match:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.access.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"}}},{include:"#member_access"},{include:"#method_access"}]},8:{name:"variable.other.property.cuda-cpp"}}},memory_operators:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(delete)(?:(?:\\s)+)?(\\[\\])|(delete))|(new))(?!\\w))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.operator.wordlike.cuda-cpp"},4:{name:"keyword.operator.delete.array.cuda-cpp"},5:{name:"keyword.operator.delete.array.bracket.cuda-cpp"},6:{name:"keyword.operator.delete.cuda-cpp"},7:{name:"keyword.operator.new.cuda-cpp"}}},method_access:{begin:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\()",end:"\\)",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.access.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"},9:{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.property.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"}}},{match:"(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.language.this.cuda-cpp"},6:{name:"variable.other.object.access.cuda-cpp"},7:{name:"punctuation.separator.dot-access.cuda-cpp"},8:{name:"punctuation.separator.pointer-access.cuda-cpp"}}},{include:"#member_access"},{include:"#method_access"}]},10:{name:"entity.name.function.member.cuda-cpp"},11:{name:"punctuation.section.arguments.begin.bracket.round.function.member.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.cuda-cpp"}},patterns:[{include:"#evaluation_context"}]},misc_keywords:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.other.$3.cuda-cpp"}}},ms_attributes:{begin:"__declspec\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.attribute.begin.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.attribute.end.cuda-cpp"}},name:"support.other.attribute.cuda-cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"}]},{match:"(using)(?:\\s)+((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<8>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.namespace.cuda-cpp"},1:{name:"keyword.other.namespace.definition.cuda-cpp storage.type.namespace.definition.cuda-cpp"}},endCaptures:{},name:"meta.block.namespace.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.namespace.cuda-cpp"}},name:"meta.head.namespace.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#attributes_context"},{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.namespace.cuda-cpp"}},name:"meta.body.namespace.cuda-cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.namespace.cuda-cpp",patterns:[{include:"$self"}]}]},noexcept_operator:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.noexcept.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.noexcept.cuda-cpp"}},contentName:"meta.arguments.operator.noexcept",patterns:[{include:"#evaluation_context"}]},number_literal:{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<55>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:new)|(?:\\->\\*)|(?:<<=)|(?:>>=)|(?:<=>)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:\\-\\-)|(?:<<)|(?:>>)|(?:<=)|(?:>=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|(?:\\/=)|(?:%=)|(?:&=)|(?:\\^=)|(?:\\|=)|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=|,))|((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|("")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()`,end:"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.function.definition.special.operator-overload.cuda-cpp"},1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},20:{patterns:[{include:"#inline_comment"}]},21:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},22:{name:"comment.block.cuda-cpp"},23:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},24:{patterns:[{include:"#inline_comment"}]},25:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},26:{name:"comment.block.cuda-cpp"},27:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},28:{patterns:[{include:"#inline_comment"}]},29:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},30:{name:"comment.block.cuda-cpp"},31:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},32:{patterns:[{include:"#inline_comment"}]},33:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},34:{name:"comment.block.cuda-cpp"},35:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},36:{name:"storage.type.modifier.calling-convention.cuda-cpp"},37:{patterns:[{include:"#inline_comment"}]},38:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},39:{name:"comment.block.cuda-cpp"},40:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},41:{patterns:[{include:"#inline_comment"}]},42:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},43:{name:"comment.block.cuda-cpp"},44:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},45:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.operator.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"entity.name.operator.type.reference.cuda-cpp"}]},59:{patterns:[{include:"#inline_comment"}]},60:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},61:{name:"comment.block.cuda-cpp"},62:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},63:{patterns:[{include:"#inline_comment"}]},64:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},65:{name:"comment.block.cuda-cpp"},66:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},67:{patterns:[{include:"#inline_comment"}]},68:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},69:{name:"comment.block.cuda-cpp"},70:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},71:{name:"entity.name.operator.type.array.cuda-cpp"},72:{name:"entity.name.operator.custom-literal.cuda-cpp"},73:{patterns:[{include:"#inline_comment"}]},74:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},75:{name:"comment.block.cuda-cpp"},76:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},77:{name:"entity.name.operator.custom-literal.cuda-cpp"},78:{patterns:[{include:"#inline_comment"}]},79:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},80:{name:"comment.block.cuda-cpp"},81:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},endCaptures:{},name:"meta.function.definition.special.operator-overload.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cuda-cpp"}},name:"meta.head.function.definition.special.operator-overload.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{begin:"\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.operator-overload.cuda-cpp"}},contentName:"meta.function.definition.parameters.special.operator-overload",patterns:[{include:"#function_parameter_context"},{include:"#evaluation_context"}]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cuda-cpp"}},name:"meta.body.function.definition.special.operator-overload.cuda-cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.operator-overload.cuda-cpp",patterns:[{include:"$self"}]}]},operators:{patterns:[{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.cuda-cpp"}},contentName:"meta.arguments.operator.sizeof",patterns:[{include:"#evaluation_context"}]},{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.alignof.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.alignof.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.alignof.cuda-cpp"}},contentName:"meta.arguments.operator.alignof",patterns:[{include:"#evaluation_context"}]},{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.alignas.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.alignas.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.alignas.cuda-cpp"}},contentName:"meta.arguments.operator.alignas",patterns:[{include:"#evaluation_context"}]},{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.typeid.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.typeid.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.typeid.cuda-cpp"}},contentName:"meta.arguments.operator.typeid",patterns:[{include:"#evaluation_context"}]},{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.noexcept.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.noexcept.cuda-cpp"}},contentName:"meta.arguments.operator.noexcept",patterns:[{include:"#evaluation_context"}]},{begin:"(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.variadic.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cuda-cpp"}},contentName:"meta.arguments.operator.sizeof.variadic",patterns:[{include:"#evaluation_context"}]},{match:"--",name:"keyword.operator.decrement.cuda-cpp"},{match:"\\+\\+",name:"keyword.operator.increment.cuda-cpp"},{match:"%=|\\+=|-=|\\*=|(?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cuda-cpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.cuda-cpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.cuda-cpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.cuda-cpp"},{match:"&|\\||\\^|~",name:"keyword.operator.cuda-cpp"},{include:"#assignment_operator"},{match:"%|\\*|\\/|-|\\+",name:"keyword.operator.cuda-cpp"},{include:"#ternary_operator"}]},over_qualified_types:{patterns:[{match:"(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.struct.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.struct.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.enum.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.enum.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.union.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.union.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.class.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.class.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}}]},parameter:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",end:"(?:(?=\\))|(,))",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},endCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},name:"meta.parameter.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#function_pointer_parameter"},{include:"#decltype"},{include:"#vararg_ellipses"},{match:"((?:((?:(?:__constant__)|(?:__restrict__)|(?:__managed__)|(?:__shared__)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",captures:{1:{patterns:[{include:"#storage_types"}]},2:{name:"storage.modifier.specifier.parameter.cuda-cpp"},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{name:"storage.type.primitive.cuda-cpp storage.type.built-in.primitive.cuda-cpp"},12:{name:"storage.type.cuda-cpp storage.type.built-in.cuda-cpp"},13:{name:"support.type.posix-reserved.pthread.cuda-cpp support.type.built-in.posix-reserved.pthread.cuda-cpp"},14:{name:"support.type.posix-reserved.cuda-cpp support.type.built-in.posix-reserved.cuda-cpp"},15:{name:"entity.name.type.parameter.cuda-cpp"},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#storage_types"},{include:"#scope_resolution_parameter_inner_generated"},{match:"(?:(?:struct)|(?:class)|(?:union)|(?:enum))",name:"storage.type.$0.cuda-cpp"},{begin:"(?<==)",end:"(?:(?=\\))|(,))",beginCaptures:{},endCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},patterns:[{include:"#evaluation_context"}]},{match:"\\=",name:"keyword.operator.assignment.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.parameter.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#attributes_context"},{begin:"\\[",end:"\\]",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.square.array.type.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.end.bracket.square.array.type.cuda-cpp"}},name:"meta.bracket.square.array.cuda-cpp",patterns:[{include:"#evaluation_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",captures:{0:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{patterns:[{include:"#inline_comment"}]},6:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},7:{name:"comment.block.cuda-cpp"},8:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},parameter_class:{match:"(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.class.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.class.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},parameter_enum:{match:"(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.enum.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.enum.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},parameter_or_maybe_value:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",end:"(?:(?=\\))|(,))",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},endCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},name:"meta.parameter.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#function_pointer_parameter"},{include:"#memory_operators"},{include:"#builtin_storage_type_initilizer"},{include:"#curly_initializer"},{include:"#decltype"},{include:"#vararg_ellipses"},{match:"((?:((?:(?:__constant__)|(?:__restrict__)|(?:__managed__)|(?:__shared__)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",captures:{1:{patterns:[{include:"#storage_types"}]},2:{name:"storage.modifier.specifier.parameter.cuda-cpp"},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{name:"storage.type.primitive.cuda-cpp storage.type.built-in.primitive.cuda-cpp"},12:{name:"storage.type.cuda-cpp storage.type.built-in.cuda-cpp"},13:{name:"support.type.posix-reserved.pthread.cuda-cpp support.type.built-in.posix-reserved.pthread.cuda-cpp"},14:{name:"support.type.posix-reserved.cuda-cpp support.type.built-in.posix-reserved.cuda-cpp"},15:{name:"entity.name.type.parameter.cuda-cpp"},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#storage_types"},{include:"#function_call"},{include:"#scope_resolution_parameter_inner_generated"},{match:"(?:(?:struct)|(?:class)|(?:union)|(?:enum))",name:"storage.type.$0.cuda-cpp"},{begin:"(?<==)",end:"(?:(?=\\))|(,))",beginCaptures:{},endCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},patterns:[{include:"#evaluation_context"}]},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"variable.parameter.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#attributes_context"},{begin:"\\[",end:"\\]",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.square.array.type.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.end.bracket.square.array.type.cuda-cpp"}},name:"meta.bracket.square.array.cuda-cpp",patterns:[{include:"#evaluation_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",captures:{0:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{patterns:[{include:"#inline_comment"}]},6:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},7:{name:"comment.block.cuda-cpp"},8:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{include:"#evaluation_context"}]},parameter_struct:{match:"(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.struct.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.struct.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},parameter_union:{match:"(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",captures:{1:{name:"storage.type.union.parameter.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.union.parameter.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"variable.other.object.declare.cuda-cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},parentheses:{begin:"\\(",end:"\\)",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.cuda-cpp"}},name:"meta.parens.cuda-cpp",patterns:[{include:"#over_qualified_types"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",end:"(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma(?:\\s)+mark)(?:\\s)+(.*)",captures:{1:{name:"keyword.control.directive.pragma.pragma-mark.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"punctuation.definition.directive.cuda-cpp"},5:{name:"entity.name.tag.pragma-mark.cuda-cpp"}},name:"meta.preprocessor.pragma.cuda-cpp"},predefined_macros:{patterns:[{match:"\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b",captures:{1:{name:"entity.name.other.preprocessor.macro.predefined.$1.cuda-cpp"}}},{match:"\\b__([A-Z_]+)__\\b",name:"entity.name.other.preprocessor.macro.predefined.probably.$1.cuda-cpp"}]},preprocessor_conditional_context:{patterns:[{include:"#preprocessor_conditional_defined"},{include:"#comments"},{include:"#language_constants"},{include:"#string_context"},{include:"#d9bc4796b0b_preprocessor_number_literal"},{include:"#operators"},{include:"#predefined_macros"},{include:"#macro_name"},{include:"#line_continuation_character"}]},preprocessor_conditional_defined:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",end:"^(?!\\s*+#\\s*(?:else|endif))",beginCaptures:{0:{name:"keyword.control.directive.conditional.$6.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"punctuation.definition.directive.cuda-cpp"},6:{}},endCaptures:{},patterns:[{begin:"\\G(?<=ifndef|ifdef|if)",end:"(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"punctuation.definition.directive.cuda-cpp"}},name:"keyword.control.directive.$4.cuda-cpp"},preprocessor_context:{patterns:[{include:"#pragma_mark"},{include:"#pragma"},{include:"#include"},{include:"#line"},{include:"#diagnostic"},{include:"#undef"},{include:"#preprocessor_conditional_range"},{include:"#single_line_macro"},{include:"#macro"},{include:"#preprocessor_conditional_standalone"},{include:"#macro_argument"}]},qualified_type:{match:`\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<11>?)+>)?(?![\\w<:.])`,captures:{0:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},1:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},6:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}},name:"meta.qualified_type.cuda-cpp"},qualifiers_and_specifiers_post_parameters:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"storage.modifier.specifier.functional.post-parameters.$3.cuda-cpp"},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},scope_resolution:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.call.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"}}},scope_resolution_function_definition:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.definition.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"}}},scope_resolution_function_definition_operator_overload:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_operator_overload_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.definition.operator-overload.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"}}},scope_resolution_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"}}},scope_resolution_namespace_alias:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_alias_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.alias.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"}}},scope_resolution_namespace_block:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_block_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.block.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"}}},scope_resolution_namespace_using:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_using_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.using.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"}}},scope_resolution_parameter:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_parameter_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.parameter.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"}}},scope_resolution_template_call:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_call_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.template.call.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"}}},scope_resolution_template_definition:{match:`(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+`,captures:{0:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"},2:{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_definition_inner_generated:{match:`((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)`,captures:{1:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.template.definition.cuda-cpp"},6:{name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"}}},semicolon:{match:";",name:"punctuation.terminator.statement.cuda-cpp"},simple_type:{match:`(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?`,captures:{1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{},13:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},14:{patterns:[{include:"#inline_comment"}]},15:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},16:{patterns:[{include:"#inline_comment"}]},17:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},single_line_macro:{match:"^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))#define.*(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},sizeof_operator:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.cuda-cpp"}},contentName:"meta.arguments.operator.sizeof",patterns:[{include:"#evaluation_context"}]},sizeof_variadic_operator:{begin:"(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.variadic.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cuda-cpp"}},contentName:"meta.arguments.operator.sizeof.variadic",patterns:[{include:"#evaluation_context"}]},square_brackets:{name:"meta.bracket.square.access",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{1:{name:"variable.other.object"},2:{name:"punctuation.definition.begin.bracket.square"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square"}},patterns:[{include:"#evaluation_context"}]},standard_declares:{patterns:[{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.struct.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.struct.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.union.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.union.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.enum.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.enum.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.class.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.class.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}}]},static_assert:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"keyword.other.static_assert.cuda-cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{name:"punctuation.section.arguments.begin.bracket.round.static_assert.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.static_assert.cuda-cpp"}},patterns:[{begin:'(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\")?)',end:"(?=\\))",beginCaptures:{1:{name:"punctuation.separator.delimiter.comma.cuda-cpp"}},endCaptures:{},name:"meta.static_assert.message.cuda-cpp",patterns:[{include:"#string_context"}]},{include:"#evaluation_context"}]},std_space:{match:"(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))",captures:{0:{patterns:[{include:"#inline_comment"}]},1:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},storage_specifiers:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"storage.modifier.specifier.$3.cuda-cpp"}}},storage_types:{patterns:[{include:"#storage_specifiers"},{include:"#inline_builtin_storage_type"},{include:"#decltype"},{include:"#typename"}]},string_context:{patterns:[{begin:'((?:u|u8|U|L)?)"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cuda-cpp"},1:{name:"meta.encoding.cuda-cpp"}},endCaptures:{0:{name:"punctuation.definition.string.end.cuda-cpp"}},name:"string.quoted.double.cuda-cpp",patterns:[{match:"(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",name:"constant.character.escape.cuda-cpp"},{match:`\\\\['"?\\\\abfnrtv]`,name:"constant.character.escape.cuda-cpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.cuda-cpp"},{match:"(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",captures:{1:{name:"constant.character.escape.cuda-cpp"},2:{name:"invalid.illegal.unknown-escape.cuda-cpp"}}},{include:"#string_escapes_context_c"}]},{begin:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.struct.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.struct.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.struct.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.struct.cuda-cpp"}},name:"meta.head.struct.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.struct.cuda-cpp"}},name:"meta.body.struct.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cuda-cpp",patterns:[{include:"$self"}]}]},struct_declare:{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.struct.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.struct.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},switch_conditional_parentheses:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.conditional.switch.cuda-cpp"}},name:"meta.conditional.switch.cuda-cpp",patterns:[{include:"#evaluation_context"},{include:"#c_conditional_context"}]},switch_statement:{begin:"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.switch.cuda-cpp"},1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},5:{name:"keyword.control.switch.cuda-cpp"}},endCaptures:{},name:"meta.block.switch.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.switch.cuda-cpp"}},name:"meta.head.switch.cuda-cpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.switch.cuda-cpp"}},name:"meta.body.switch.cuda-cpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"},{include:"#block_innards"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.switch.cuda-cpp",patterns:[{include:"$self"}]}]},template_argument_defaulted:{match:"(?<=<|,)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?([=])",captures:{1:{name:"storage.type.template.cuda-cpp"},2:{name:"entity.name.type.template.cuda-cpp"},3:{name:"keyword.operator.assignment.cuda-cpp"}}},template_call_context:{patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{include:"#storage_types"},{include:"#language_constants"},{include:"#scope_resolution_template_call_inner_generated"},{include:"#operators"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma_in_template_argument"},{include:"#qualified_type"}]},template_call_innards:{match:`((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<1>?)+>)(?:\\s)*+`,captures:{0:{patterns:[{include:"#template_call_range"}]}},name:"meta.template.call.cuda-cpp"},template_call_range:{begin:"<",end:">",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},template_definition:{begin:"(?",beginCaptures:{1:{name:"storage.type.template.cuda-cpp"},2:{name:"punctuation.section.angle-brackets.start.template.definition.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.definition.cuda-cpp"}},name:"meta.template.definition.cuda-cpp",patterns:[{begin:"(?<=\\w)(?:(?:\\s)+)?<",end:">",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},patterns:[{include:"#template_call_context"}]},{include:"#template_definition_context"}]},template_definition_argument:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\.\\.\\.)(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))(?:(?:\\s)+)?(?:(,)|(?=>|$))",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"storage.type.template.argument.$3.cuda-cpp"},4:{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"storage.type.template.argument.$0.cuda-cpp"}]},5:{name:"entity.name.type.template.cuda-cpp"},6:{name:"storage.type.template.cuda-cpp"},7:{name:"punctuation.vararg-ellipses.template.definition.cuda-cpp"},8:{name:"entity.name.type.template.cuda-cpp"},9:{name:"punctuation.separator.delimiter.comma.template.argument.cuda-cpp"}}},template_definition_context:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"},{include:"#template_definition_argument"},{include:"#template_argument_defaulted"},{include:"#template_call_innards"},{include:"#evaluation_context"}]},template_isolated_definition:{match:"(?(?:(?:\\s)+)?$)",captures:{1:{name:"storage.type.template.cuda-cpp"},2:{name:"punctuation.section.angle-brackets.start.template.definition.cuda-cpp"},3:{name:"meta.template.definition.cuda-cpp",patterns:[{include:"#template_definition_context"}]},4:{name:"punctuation.section.angle-brackets.end.template.definition.cuda-cpp"}}},ternary_operator:{begin:"\\?",end:":",beginCaptures:{0:{name:"keyword.operator.ternary.cuda-cpp"}},endCaptures:{0:{name:"keyword.operator.ternary.cuda-cpp"}},patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#number_literal"},{include:"#method_access"},{include:"#member_access"},{include:"#predefined_macros"},{include:"#operators"},{include:"#memory_operators"},{include:"#wordlike_operators"},{include:"#type_casting_operators"},{include:"#control_flow_keywords"},{include:"#exception_keywords"},{include:"#the_this_keyword"},{include:"#language_constants"},{include:"#builtin_storage_type_initilizer"},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"#functional_specifiers_pre_parameters"},{include:"#storage_types"},{include:"#lambdas"},{include:"#attributes_context"},{include:"#parentheses"},{include:"#function_call"},{include:"#scope_resolution_inner_generated"},{include:"#square_brackets"},{include:"#semicolon"},{include:"#comma"}],applyEndPatternLast:!0},the_this_keyword:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"variable.language.this.cuda-cpp"}}},type_alias:{match:`(using)(?:(?:\\s)+)?(?!namespace)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))(?:(?:\\s)+)?(\\=)(?:(?:\\s)+)?((?:typename)?)(?:(?:\\s)+)?((?:(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))|(.*(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)?(?:(?:\\s)+)?(?:(;)|\\n)`,captures:{1:{name:"keyword.other.using.directive.cuda-cpp"},2:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},3:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},14:{name:"keyword.operator.assignment.cuda-cpp"},15:{name:"keyword.other.typename.cuda-cpp"},16:{patterns:[{include:"#storage_specifiers"}]},17:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},18:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},19:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},20:{patterns:[{include:"#inline_comment"}]},21:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},22:{patterns:[{include:"#inline_comment"}]},23:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},24:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},30:{name:"meta.declaration.type.alias.value.unknown.cuda-cpp",patterns:[{include:"#evaluation_context"}]},31:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},32:{patterns:[{include:"#inline_comment"}]},33:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},34:{patterns:[{include:"#inline_comment"}]},35:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},36:{patterns:[{include:"#inline_comment"}]},37:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},38:{name:"punctuation.definition.begin.bracket.square.cuda-cpp"},39:{patterns:[{include:"#evaluation_context"}]},40:{name:"punctuation.definition.end.bracket.square.cuda-cpp"},41:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.declaration.type.alias.cuda-cpp"},type_casting_operators:{match:"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},3:{name:"keyword.operator.wordlike.cuda-cpp keyword.operator.cast.$3.cuda-cpp"}}},typedef_class:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.class.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.class.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.class.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.class.cuda-cpp"}},name:"meta.head.class.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.class.cuda-cpp"}},name:"meta.body.class.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cuda-cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},12:{name:"comment.block.cuda-cpp"},13:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},14:{name:"entity.name.type.alias.cuda-cpp"}}},{match:","}]}]}]},typedef_function_pointer:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()`,end:"(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{1:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},5:{name:"comment.block.cuda-cpp"},6:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},20:{patterns:[{include:"#inline_comment"}]},21:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},22:{name:"comment.block.cuda-cpp"},23:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},24:{patterns:[{include:"#inline_comment"}]},25:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},26:{name:"comment.block.cuda-cpp"},27:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},28:{patterns:[{include:"#inline_comment"}]},29:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},30:{name:"comment.block.cuda-cpp"},31:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},32:{name:"punctuation.section.parens.begin.bracket.round.function.pointer.cuda-cpp"},33:{name:"punctuation.definition.function.pointer.dereference.cuda-cpp"},34:{name:"entity.name.type.alias.cuda-cpp entity.name.type.pointer.function.cuda-cpp"},35:{name:"punctuation.definition.begin.bracket.square.cuda-cpp"},36:{patterns:[{include:"#evaluation_context"}]},37:{name:"punctuation.definition.end.bracket.square.cuda-cpp"},38:{name:"punctuation.section.parens.end.bracket.round.function.pointer.cuda-cpp"},39:{name:"punctuation.section.parameters.begin.bracket.round.function.pointer.cuda-cpp"}},endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},patterns:[{include:"#function_parameter_context"}]}]},typedef_struct:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.struct.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.struct.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.struct.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.struct.cuda-cpp"}},name:"meta.head.struct.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.struct.cuda-cpp"}},name:"meta.body.struct.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cuda-cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},12:{name:"comment.block.cuda-cpp"},13:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},14:{name:"entity.name.type.alias.cuda-cpp"}}},{match:","}]}]}]},typedef_union:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.union.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.union.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.union.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.union.cuda-cpp"}},name:"meta.head.union.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.union.cuda-cpp"}},name:"meta.body.union.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cuda-cpp",patterns:[{match:"(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},8:{name:"comment.block.cuda-cpp"},9:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},12:{name:"comment.block.cuda-cpp"},13:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},14:{name:"entity.name.type.alias.cuda-cpp"}}},{match:","}]}]}]},typeid_operator:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",end:"\\)",beginCaptures:{1:{name:"keyword.operator.functionlike.cuda-cpp keyword.operator.typeid.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"punctuation.section.arguments.begin.bracket.round.operator.typeid.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.operator.typeid.cuda-cpp"}},contentName:"meta.arguments.operator.typeid",patterns:[{include:"#evaluation_context"}]},typename:{match:`(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<17>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<17>?)+>)?(?![\\w<:.]))`,captures:{1:{name:"storage.modifier.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},6:{name:"meta.qualified_type.cuda-cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"},{match:"(?",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cuda-cpp"}},endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cuda-cpp"}},name:"meta.template.call.cuda-cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cuda-cpp"}]},7:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"},{match:"(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},17:{}}},undef:{match:"(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?undef\\b)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"punctuation.definition.directive.cuda-cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},7:{name:"entity.name.function.preprocessor.cuda-cpp"}},name:"meta.preprocessor.undef.cuda-cpp"},union_block:{begin:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",end:"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{0:{name:"meta.head.union.cuda-cpp"},1:{name:"storage.type.$1.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},11:{patterns:[{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",captures:{1:{name:"storage.type.modifier.final.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",captures:{1:{name:"entity.name.type.union.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},4:{name:"comment.block.cuda-cpp"},5:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},6:{name:"storage.type.modifier.final.cuda-cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},9:{name:"comment.block.cuda-cpp"},10:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}},{match:"DLLEXPORT",name:"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},14:{name:"comment.block.cuda-cpp"},15:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},16:{patterns:[{include:"#inline_comment"}]},17:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},18:{name:"comment.block.cuda-cpp"},19:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]},20:{name:"punctuation.separator.colon.inheritance.cuda-cpp"}},endCaptures:{1:{name:"punctuation.terminator.statement.cuda-cpp"},2:{name:"punctuation.terminator.statement.cuda-cpp"}},name:"meta.block.union.cuda-cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.union.cuda-cpp"}},name:"meta.head.union.cuda-cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.union.cuda-cpp"}},name:"meta.body.union.cuda-cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cuda-cpp",patterns:[{include:"$self"}]}]},union_declare:{match:"((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",captures:{1:{name:"storage.type.union.declare.cuda-cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},4:{name:"entity.name.type.union.cuda-cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cuda-cpp"},{match:"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},3:{name:"comment.block.cuda-cpp"},4:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}},name:"invalid.illegal.reference-type.cuda-cpp"},{match:"\\&",name:"storage.modifier.reference.cuda-cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]},12:{name:"variable.other.object.declare.cuda-cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{match:"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",captures:{1:{name:"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},2:{name:"comment.block.cuda-cpp"},3:{patterns:[{match:"\\*\\/",name:"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{match:"\\*",name:"comment.block.cuda-cpp"}]}}}]}}},using_name:{match:"(using)(?:\\s)+(?!namespace\\b)",captures:{1:{name:"keyword.other.using.directive.cuda-cpp"}}},using_namespace:{begin:`(?]*+|"(?:[^"]*|\\\\")")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,beginCaptures:{1:{name:"meta.definition.variable.js.jsx entity.name.function.js.jsx"},2:{name:"keyword.operator.definiteassignment.js.jsx"}},end:"(?=$|^|[;,=}]|((?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,beginCaptures:{1:{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx"}},end:"(?=$|^|[;,=}]|((?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"meta.definition.property.js.jsx entity.name.function.js.jsx"},2:{name:"keyword.operator.optional.js.jsx"},3:{name:"keyword.operator.definiteassignment.js.jsx"}}},{name:"meta.definition.property.js.jsx variable.object.property.js.jsx",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.js.jsx",match:"\\?"},{name:"keyword.operator.definiteassignment.js.jsx",match:"\\!"}]},"variable-initializer":{patterns:[{begin:"(?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.js.jsx"}},end:"(?=$|^|[,);}\\]]|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"keyword.operator.new.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.js.jsx",begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"storage.type.property.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.js.jsx",begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?)",captures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"variable.parameter.js.jsx"}}},{name:"meta.arrow.js.jsx",begin:`(?x) (?: (? is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) ) )`,beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.js.jsx",begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.js.jsx",begin:"(?:(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.js.jsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:`(?x)(?=(\\b(?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{0:{name:"meta.object-literal.key.js.jsx"},1:{name:"entity.name.function.js.jsx"}}},{name:"meta.object.member.js.jsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{0:{name:"meta.object-literal.key.js.jsx"}}},{name:"meta.object.member.js.jsx",begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js.jsx"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{1:{name:"variable.other.readwrite.js.jsx"}}},{name:"meta.object.member.js.jsx",match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},patterns:[{include:"#expression"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{name:"meta.function-call.js.jsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{name:"meta.function-call.js.jsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.js.jsx",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.js.jsx punctuation.accessor.optional.js.jsx",match:"\\?\\."},{name:"meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.js.jsx",match:"(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.js.jsx",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.js.jsx",match:"===|!==|==|!="},{name:"keyword.operator.relational.js.jsx",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{1:{name:"keyword.operator.logical.js.jsx"},2:{name:"keyword.operator.assignment.compound.js.jsx"},3:{name:"keyword.operator.arithmetic.js.jsx"}}},{name:"keyword.operator.logical.js.jsx",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.js.jsx",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.js.jsx",match:"\\="},{name:"keyword.operator.decrement.js.jsx",match:"--"},{name:"keyword.operator.increment.js.jsx",match:"\\+\\+"},{name:"keyword.operator.arithmetic.js.jsx",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}}}]},"typeof-operator":{begin:"(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"array-literal":{name:"meta.array.literal.js.jsx",begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.js.jsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js.jsx"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.js.jsx",match:"\\b(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) | (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`,captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"support.variable.property.js.jsx"},4:{name:"support.constant.js.jsx"}}},{match:"(?) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) ))`,captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"entity.name.function.js.jsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.constant.property.js.jsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.property.js.jsx"}}},{name:"variable.other.constant.js.jsx",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.js.jsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:`(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?: (\\#?[[:upper:]][_$[:digit:][:upper:]]*) | (\\#?[_$[:alpha:]][_$[:alnum:]]*) )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`,captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.constant.object.property.js.jsx"},4:{name:"variable.other.object.property.js.jsx"}}},{match:`(?x)(?: ([[:upper:]][_$[:digit:][:upper:]]*) | ([_$[:alpha:]][_$[:alnum:]]*) )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`,captures:{1:{name:"variable.other.constant.object.js.jsx"},2:{name:"variable.other.object.js.jsx"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.js.jsx",begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.js.jsx",begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.js.jsx",begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.js.jsx",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-parameters":{name:"meta.type.parameters.js.jsx",begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#comment"},{name:"storage.modifier.js.jsx",match:"(?)"}]},"type-arguments":{name:"meta.type.parameters.js.jsx",begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?) )) )) )) | (:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`,captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{name:"meta.type.constructor.js.jsx",begin:"(?) )) ) ) )`,end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.js.jsx",begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.js.jsx"}},end:"(?)(?:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.js.jsx",begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?=\\S)"},{name:"keyword.operator.expression.keyof.js.jsx",match:"(?)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},contentName:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.js.jsx"},2:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx"}},end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},contentName:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"entity.name.type.module.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"}}},{name:"entity.name.type.js.jsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.js.jsx",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.js.jsx",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.js.jsx",begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"invalid.illegal.newline.js.jsx"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.js.jsx",begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"invalid.illegal.newline.js.jsx"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.js.jsx",match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},template:{patterns:[{include:"#template-call"},{contentName:"string.template.js.jsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"},2:{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},end:"`",endCaptures:{0:{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tagged-template.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{name:"meta.template.expression.js.jsx",begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.js.jsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{contentName:"string.template.js.jsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"},2:{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},end:"`",endCaptures:{0:{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.js.jsx",begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.js.jsx"},regex:{patterns:[{name:"string.regexp.js.jsx",begin:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.js.jsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js.jsx"},2:{name:"keyword.other.js.jsx"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.js.jsx",begin:"((?",captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.js.jsx",begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}},patterns:[{include:"#docblock"}]},{name:"comment.block.js.jsx",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.js.jsx"},2:{name:"storage.type.internaldeclaration.js.jsx"},3:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.js.jsx"}}},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.js.jsx"},2:{name:"comment.line.double-slash.js.jsx"},3:{name:"punctuation.definition.comment.js.jsx"},4:{name:"storage.type.internaldeclaration.js.jsx"},5:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"(?=$)",contentName:"comment.line.double-slash.js.jsx"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.js.jsx"},2:{name:"comment.line.double-slash.js.jsx"},3:{name:"punctuation.definition.comment.js.jsx"},4:{name:"storage.type.internaldeclaration.js.jsx"},5:{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"(?=^)",contentName:"comment.line.double-slash.js.jsx"},directives:{name:"comment.line.triple-slash.directive.js.jsx",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.js.jsx"}},end:"(?=$)",patterns:[{name:"meta.tag.js.jsx",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.js.jsx"},2:{name:"entity.name.tag.directive.js.jsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.js.jsx"}},patterns:[{name:"entity.other.attribute-name.directive.js.jsx",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.js.jsx",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:`(?x) ((@)(?:access|api)) \\s+ (private|protected|public) \\b`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}}},{match:`(?x) ((@)author) \\s+ ( [^@\\s<>*/] (?:[^@<>*/]|\\*[^/])* ) (?: \\s* (<) ([^>\\s]+) (>) )?`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:`(?x) ((@)borrows) \\s+ ((?:[^@\\s*/]|\\*[^/])+) # \\s+ (as) \\s+ # as ((?:[^@\\s*/]|\\*[^/])+) # `,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{0:{name:"source.embedded.js.jsx"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}}},{match:`(?x) ((@)see) \\s+ (?: # URL ( (?=https?://) (?:[^\\s*]|\\*[^/])+ ) | # JSDoc namepath ( (?! # Avoid matching bare URIs (also acceptable as links) https?:// | # Avoid matching {@inline tags}; we match those below (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag} {@(?:link|linkcode|linkplain|tutorial)\\b ) # Matched namepath (?:[^@\\s*/]|\\*[^/])+ ) )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}}},{match:`(?x) ((@)template) \\s+ # One or more valid identifiers ( [A-Za-z_$] # First character: non-numeric word character [\\w$.\\[\\]]* # Rest of identifier (?: # Possible list of additional identifiers \\s* , \\s* [A-Za-z_$] [\\w$.\\[\\]]* )* )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:`(?x) ( (@) (?:arg|argument|const|constant|member|namespace|param|var) ) \\s+ ( [A-Za-z_$] [\\w$.\\[\\]]* )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:`(?x) (\\[)\\s* [\\w$]+ (?: (?:\\[\\])? # Foo[ ].bar properties within an array \\. # Foo.Bar namespaced parameter [\\w$]+ )* (?: \\s* (=) # [foo=bar] Default parameter value \\s* ( # The inner regexes are to stop the match early at */ and to not stop at escaped quotes (?> "(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | # [foo="bar"] Double-quoted '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else )* ) )? \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.js.jsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:`(?x) ( (@) (?:define|enum|exception|export|extends|lends|implements|modifies |namespace|private|protected|returns?|satisfies|suppress|this|throws|type |yields?) ) \\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:`(?x) ( (@) (?:alias|augments|callback|constructs|emits|event|fires|exports? |extends|external|function|func|host|lends|listens|interface|memberof!? |method|module|mixes|mixin|name|requires|see|this|typedef|uses) ) \\s+ ( (?: [^{}@\\s*] | \\*[^/] )+ )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},"jsx-tag-without-attributes":{name:"meta.tag.without-attributes.js.jsx",begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",end:"()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},endCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},contentName:"meta.jsx.children.js.jsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-in-expression":{begin:`(?x) (?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s* (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))`,end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag":{name:"meta.tag.js.jsx",begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(/>)|(?:())",endCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"},2:{name:"punctuation.definition.tag.begin.js.jsx"},3:{name:"entity.name.tag.namespace.js.jsx"},4:{name:"punctuation.separator.namespace.js.jsx"},5:{name:"entity.name.tag.js.jsx"},6:{name:"support.class.component.js.jsx"},7:{name:"punctuation.definition.tag.end.js.jsx"}},patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"}},end:"(?=)",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attribute-name":{match:`(?x) \\s* (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))? ([_$[:alpha:]][-_$[:alnum:]]*) (?=\\s|=|/?>|/\\*|//)`,captures:{1:{name:"entity.other.attribute-name.namespace.js.jsx"},2:{name:"punctuation.separator.namespace.js.jsx"},3:{name:"entity.other.attribute-name.js.jsx"}}},"jsx-tag-attribute-assignment":{name:"keyword.operator.assignment.js.jsx",match:`=(?=\\s*(?:'|"|{|/\\*|//|\\n))`},"jsx-string-double-quoted":{name:"string.quoted.double.js.jsx",begin:'"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},endCaptures:{0:{name:"punctuation.definition.string.end.js.jsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{name:"string.quoted.single.js.jsx",begin:"'",end:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.js.jsx"}},endCaptures:{0:{name:"punctuation.definition.string.end.js.jsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-tag-attributes-illegal":{name:"invalid.illegal.attribute.js.jsx",match:"\\S+"}}};var Djt={name:"markdown_latex_combined",scopeName:"text.tex.markdown_latex_combined",patterns:[{include:"text.tex.latex"},{include:"#frontMatter"},{include:"#block"}],repository:{$self:{},$base:{},block:{patterns:[{include:"#separator"},{include:"#heading"},{include:"#blockquote"},{include:"#lists"},{include:"#fenced_code_block"},{include:"#raw_block"},{include:"#link-def"},{include:"#html"},{include:"#paragraph"}]},blockquote:{begin:"(^|\\G)[ ]{0,3}(>) ?",captures:{2:{name:"punctuation.definition.quote.begin.markdown"}},name:"markup.quote.markdown",patterns:[{include:"#block"}],while:"(^|\\G)\\s*(>) ?"},fenced_code_block_css:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.css",patterns:[{include:"source.css"}]}]},fenced_code_block_basic:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.html",patterns:[{include:"text.html.basic"}]}]},fenced_code_block_ini:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.ini",patterns:[{include:"source.ini"}]}]},fenced_code_block_java:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.java",patterns:[{include:"source.java"}]}]},fenced_code_block_lua:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.lua",patterns:[{include:"source.lua"}]}]},fenced_code_block_makefile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.makefile",patterns:[{include:"source.makefile"}]}]},fenced_code_block_perl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.perl",patterns:[{include:"source.perl"}]}]},fenced_code_block_r:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.r",patterns:[{include:"source.r"}]}]},fenced_code_block_ruby:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.ruby",patterns:[{include:"source.ruby"}]}]},fenced_code_block_php:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.php",patterns:[{include:"text.html.basic"},{include:"source.php"}]}]},fenced_code_block_sql:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.sql",patterns:[{include:"source.sql"}]}]},fenced_code_block_vs_net:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.vs_net",patterns:[{include:"source.asp.vb.net"}]}]},fenced_code_block_xml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.xml",patterns:[{include:"text.xml"}]}]},fenced_code_block_xsl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.xsl",patterns:[{include:"text.xml.xsl"}]}]},fenced_code_block_yaml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.yaml",patterns:[{include:"source.yaml"}]}]},fenced_code_block_dosbatch:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dosbatch",patterns:[{include:"source.batchfile"}]}]},fenced_code_block_clojure:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.clojure",patterns:[{include:"source.clojure"}]}]},fenced_code_block_coffee:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.coffee",patterns:[{include:"source.coffee"}]}]},fenced_code_block_c:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.c",patterns:[{include:"source.c"}]}]},fenced_code_block_cpp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.cpp source.cpp",patterns:[{include:"source.cpp"}]}]},fenced_code_block_diff:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.diff",patterns:[{include:"source.diff"}]}]},fenced_code_block_dockerfile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dockerfile",patterns:[{include:"source.dockerfile"}]}]},fenced_code_block_git_commit:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.git_commit",patterns:[{include:"text.git-commit"}]}]},fenced_code_block_git_rebase:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.git_rebase",patterns:[{include:"text.git-rebase"}]}]},fenced_code_block_go:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.go",patterns:[{include:"source.go"}]}]},fenced_code_block_groovy:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.groovy",patterns:[{include:"source.groovy"}]}]},fenced_code_block_pug:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.pug",patterns:[{include:"text.pug"}]}]},fenced_code_block_js:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.javascript",patterns:[{include:"source.js"}]}]},fenced_code_block_js_regexp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.js_regexp",patterns:[{include:"source.js.regexp"}]}]},fenced_code_block_json:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.json",patterns:[{include:"source.json"}]}]},fenced_code_block_jsonc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.jsonc",patterns:[{include:"source.json.comments"}]}]},fenced_code_block_less:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.less",patterns:[{include:"source.css.less"}]}]},fenced_code_block_objc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.objc",patterns:[{include:"source.objc"}]}]},fenced_code_block_swift:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.swift",patterns:[{include:"source.swift"}]}]},fenced_code_block_scss:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.scss",patterns:[{include:"source.css.scss"}]}]},fenced_code_block_perl6:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.perl6",patterns:[{include:"source.perl.6"}]}]},fenced_code_block_powershell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.powershell",patterns:[{include:"source.powershell"}]}]},fenced_code_block_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.python",patterns:[{include:"source.python"}]}]},fenced_code_block_julia:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.julia",patterns:[{include:"source.julia"}]}]},fenced_code_block_regexp_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.regexp_python",patterns:[{include:"source.regexp.python"}]}]},fenced_code_block_rust:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.rust",patterns:[{include:"source.rust"}]}]},fenced_code_block_scala:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.scala",patterns:[{include:"source.scala"}]}]},fenced_code_block_shell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.shellscript",patterns:[{include:"source.shell"}]}]},fenced_code_block_ts:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.typescript",patterns:[{include:"source.ts"}]}]},fenced_code_block_tsx:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.typescriptreact",patterns:[{include:"source.tsx"}]}]},fenced_code_block_csharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.csharp",patterns:[{include:"source.cs"}]}]},fenced_code_block_fsharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.fsharp",patterns:[{include:"source.fsharp"}]}]},fenced_code_block_dart:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dart",patterns:[{include:"source.dart"}]}]},fenced_code_block_handlebars:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.handlebars",patterns:[{include:"text.html.handlebars"}]}]},fenced_code_block_markdown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.markdown",patterns:[{include:"text.html.markdown"}]}]},fenced_code_block_log:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.log",patterns:[{include:"text.log"}]}]},fenced_code_block_erlang:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.erlang",patterns:[{include:"source.erlang"}]}]},fenced_code_block_elixir:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.elixir",patterns:[{include:"source.elixir"}]}]},fenced_code_block_latex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.latex",patterns:[{include:"text.tex.latex"}]}]},fenced_code_block_bibtex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`~]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language.markdown"},5:{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{3:{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)",while:"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.bibtex",patterns:[{include:"text.bibtex"}]}]},fenced_code_block:{patterns:[{include:"#fenced_code_block_css"},{include:"#fenced_code_block_basic"},{include:"#fenced_code_block_ini"},{include:"#fenced_code_block_java"},{include:"#fenced_code_block_lua"},{include:"#fenced_code_block_makefile"},{include:"#fenced_code_block_perl"},{include:"#fenced_code_block_r"},{include:"#fenced_code_block_ruby"},{include:"#fenced_code_block_php"},{include:"#fenced_code_block_sql"},{include:"#fenced_code_block_vs_net"},{include:"#fenced_code_block_xml"},{include:"#fenced_code_block_xsl"},{include:"#fenced_code_block_yaml"},{include:"#fenced_code_block_dosbatch"},{include:"#fenced_code_block_clojure"},{include:"#fenced_code_block_coffee"},{include:"#fenced_code_block_c"},{include:"#fenced_code_block_cpp"},{include:"#fenced_code_block_diff"},{include:"#fenced_code_block_dockerfile"},{include:"#fenced_code_block_git_commit"},{include:"#fenced_code_block_git_rebase"},{include:"#fenced_code_block_go"},{include:"#fenced_code_block_groovy"},{include:"#fenced_code_block_pug"},{include:"#fenced_code_block_js"},{include:"#fenced_code_block_js_regexp"},{include:"#fenced_code_block_json"},{include:"#fenced_code_block_jsonc"},{include:"#fenced_code_block_less"},{include:"#fenced_code_block_objc"},{include:"#fenced_code_block_swift"},{include:"#fenced_code_block_scss"},{include:"#fenced_code_block_perl6"},{include:"#fenced_code_block_powershell"},{include:"#fenced_code_block_python"},{include:"#fenced_code_block_julia"},{include:"#fenced_code_block_regexp_python"},{include:"#fenced_code_block_rust"},{include:"#fenced_code_block_scala"},{include:"#fenced_code_block_shell"},{include:"#fenced_code_block_ts"},{include:"#fenced_code_block_tsx"},{include:"#fenced_code_block_csharp"},{include:"#fenced_code_block_fsharp"},{include:"#fenced_code_block_dart"},{include:"#fenced_code_block_handlebars"},{include:"#fenced_code_block_markdown"},{include:"#fenced_code_block_log"},{include:"#fenced_code_block_erlang"},{include:"#fenced_code_block_elixir"},{include:"#fenced_code_block_latex"},{include:"#fenced_code_block_bibtex"},{include:"#fenced_code_block_unknown"}]},fenced_code_block_unknown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`~]*)?$)",beginCaptures:{3:{name:"punctuation.definition.markdown"},4:{name:"fenced_code.block.language"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown"},heading:{match:"(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",captures:{1:{patterns:[{match:"(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.6.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.5.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.4.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.3.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.2.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}},{match:"(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.1.markdown",captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}}}]}},name:"markup.heading.markdown",patterns:[{include:"#inline"}]},"heading-setext":{patterns:[{match:"^(={3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.1.markdown"},{match:"^(-{3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.2.markdown"}]},html:{patterns:[{begin:"(^|\\G)\\s*()",name:"comment.block.html"},{begin:"(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?))",end:"(?i)(.*)(())",endCaptures:{1:{patterns:[{include:"text.html.derivative"}]},2:{name:"meta.tag.structure.$4.end.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"entity.name.tag.html"},5:{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(\\s*|$)",patterns:[{include:"text.html.derivative"}],while:"(?i)^(?!.*)"}]},{begin:"(?i)(^|\\G)\\s*(?=))",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"},{begin:"(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|)\\s*$)",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"}]},"link-def":{captures:{1:{name:"punctuation.definition.constant.markdown"},2:{name:"constant.other.reference.link.markdown"},3:{name:"punctuation.definition.constant.markdown"},4:{name:"punctuation.separator.key-value.markdown"},5:{name:"punctuation.definition.link.markdown"},6:{name:"markup.underline.link.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"string.other.link.description.title.markdown"},10:{name:"punctuation.definition.string.begin.markdown"},11:{name:"punctuation.definition.string.end.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"}},match:`(?x) \\s* # Leading whitespace (\\[)([^]]+?)(\\])(:) # Reference name [ \\t]* # Optional whitespace (?:(<)([^\\>]+?)(>)|(\\S+?)) # The url [ \\t]* # Optional whitespace (?: ((\\().+?(\\))) # Match title in parens\u2026 | ((").+?(")) # or in double quotes\u2026 | ((').+?(')) # or in single quotes. )? # Title is optional \\s* # Optional whitespace $ `,name:"meta.link.reference.def.markdown"},list_paragraph:{begin:"(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"},lists:{patterns:[{begin:"(^|\\G)([ ]{0,3})([*+-])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.unnumbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"},{begin:"(^|\\G)([ ]{0,3})([0-9]+\\.)([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.numbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"}]},paragraph:{begin:"(^|\\G)[ ]{0,3}(?=\\S)",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))"},raw_block:{begin:"(^|\\G)([ ]{4}|\\t)",name:"markup.raw.block.markdown",while:"(^|\\G)([ ]{4}|\\t)"},separator:{match:"(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",name:"meta.separator.markdown"},frontMatter:{begin:"\\A-{3}\\s*$",contentName:"meta.embedded.block.frontmatter",patterns:[{include:"source.yaml"}],end:"(^|\\G)-{3}|\\.{3}\\s*$"},inline:{patterns:[{include:"text.tex.latex"},{include:"#ampersand"},{include:"#bracket"},{include:"#bold"},{include:"#italic"},{include:"#raw"},{include:"#strikethrough"},{include:"#escape"},{include:"#image-inline"},{include:"#image-ref"},{include:"#link-email"},{include:"#link-inet"},{include:"#link-inline"},{include:"#link-ref"},{include:"#link-ref-literal"},{include:"#link-ref-shortcut"}]},ampersand:{match:"&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",name:"meta.other.valid-ampersand.markdown"},bold:{begin:`(?x) (?(\\*\\*(?=\\w)|(?]*+> # HTML tags | (?\`+)([^\`]|(?!(?(?!\`))\`)*+\\k # Raw | \\\\[\\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes | \\[ ( (? # Named group [^\\[\\]\\\\] # Match most chars | \\\\. # Escaped chars | \\[ \\g*+ \\] # Nested brackets )*+ \\] ( ( # Reference Link [ ]? # Optional space \\[[^\\]]*+\\] # Ref name ) | ( # Inline Link \\( # Opening paren [ \\t]*+ # Optional whitespace ? # URL [ \\t]*+ # Optional whitespace ( # Optional Title (?['"]) (.*?) \\k<title> )? \\) ) ) ) | (?!(?<=\\S)\\k<open>). # Everything besides # style closer )++ (?<=\\S)(?=__\\b|\\*\\*)\\k<open> # Close ) `,captures:{1:{name:"punctuation.definition.bold.markdown"}},end:"(?<=\\S)(\\1)",name:"markup.bold.markdown",patterns:[{applyEndPatternLast:!0,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},bracket:{match:"<(?![a-zA-Z/?\\$!])",name:"meta.other.valid-bracket.markdown"},escape:{match:"\\\\[-`*_#+.!(){}\\[\\]\\\\>]",name:"constant.character.escape.markdown"},"image-inline":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},6:{name:"punctuation.definition.link.markdown"},7:{name:"markup.underline.link.image.markdown"},8:{name:"punctuation.definition.link.markdown"},9:{name:"string.other.link.description.title.markdown"},10:{name:"punctuation.definition.string.markdown"},11:{name:"punctuation.definition.string.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.markdown"},14:{name:"punctuation.definition.string.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.markdown"},17:{name:"punctuation.definition.string.markdown"},18:{name:"punctuation.definition.metadata.markdown"}},match:`(?x) (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text. (\\() # Opening paren for url (<?)(\\S+?)(>?) # The url [ \\t]* # Optional whitespace (?: ((\\().+?(\\))) # Match title in parens\u2026 | ((").+?(")) # or in double quotes\u2026 | ((').+?(')) # or in single quotes. )? # Title is optional \\s* # Optional whitespace (\\)) `,name:"meta.image.inline.markdown"},"image-ref":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.constant.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.markdown"}},match:"(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",name:"meta.image.reference.markdown"},italic:{begin:`(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) # Open (?= ( <[^>]*+> # HTML tags | (?<raw>\`+)([^\`]|(?!(?<!\`)\\k<raw>(?!\`))\`)*+\\k<raw> # Raw | \\\\[\\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes | \\[ ( (?<square> # Named group [^\\[\\]\\\\] # Match most chars | \\\\. # Escaped chars | \\[ \\g<square>*+ \\] # Nested brackets )*+ \\] ( ( # Reference Link [ ]? # Optional space \\[[^\\]]*+\\] # Ref name ) | ( # Inline Link \\( # Opening paren [ \\t]*+ # Optional whtiespace <?(.*?)>? # URL [ \\t]*+ # Optional whtiespace ( # Optional Title (?<title>['"]) (.*?) \\k<title> )? \\) ) ) ) | \\k<open>\\k<open> # Must be bold closer | (?!(?<=\\S)\\k<open>). # Everything besides # style closer )++ (?<=\\S)(?=_\\b|\\*)\\k<open> # Close ) `,captures:{1:{name:"punctuation.definition.italic.markdown"}},end:"(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",name:"markup.italic.markdown",patterns:[{applyEndPatternLast:!0,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},"link-email":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},4:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",name:"meta.link.email.lt-gt.markdown"},"link-inet":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},3:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:https?|ftp)://.*?)(>)",name:"meta.link.inet.markdown"},"link-inline":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"punctuation.definition.link.markdown"},10:{name:"markup.underline.link.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"},18:{name:"string.other.link.description.title.markdown"},19:{name:"punctuation.definition.string.begin.markdown"},20:{name:"punctuation.definition.string.end.markdown"},21:{name:"punctuation.definition.metadata.markdown"}},match:`(?x) (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text. (\\() # Opening paren for url # The url [ \\t]* ( (<)([^<>\\n]*)(>) | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*) ) [ \\t]* # The title (?: ((\\()[^()]*(\\))) # Match title in parens\u2026 | ((")[^"]*(")) # or in double quotes\u2026 | ((')[^']*(')) # or in single quotes. )? # Title is optional \\s* # Optional whitespace (\\)) `,name:"meta.link.inline.markdown"},"link-ref":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",name:"meta.link.reference.markdown"},"link-ref-literal":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",name:"meta.link.reference.literal.markdown"},"link-ref-shortcut":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},3:{name:"punctuation.definition.link.title.end.markdown"}},match:"(?<![\\]\\\\])(\\[)(\\S+?)(\\])",name:"meta.link.reference.markdown"},raw:{captures:{1:{name:"punctuation.definition.raw.markdown"},3:{name:"punctuation.definition.raw.markdown"}},match:"(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)",name:"markup.inline.raw.string.markdown"},strikethrough:{captures:{1:{name:"punctuation.definition.strikethrough.markdown"},2:{patterns:[{applyEndPatternLast:!0,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"}]},3:{name:"punctuation.definition.strikethrough.markdown"}},match:"(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)",name:"markup.strikethrough.markdown"}}};var Pjt={name:"markdown-math",scopeName:"text.html.markdown.math",patterns:[{include:"#math"}],repository:{$self:{},$base:{},math:{patterns:[{name:"comment.line.math.tex",match:"((?<!\\\\)%)(.+)$",captures:{1:{name:"punctuation.definition.comment.math.tex"}}},{name:"line.separator.math.tex",match:"(\\\\\\\\)$",captures:{1:{name:"punctuation.line.separator.math.tex"}}},{name:"meta.function.math.tex",begin:"((\\\\)([a-zA-Z_]+))\\s*(\\{)",beginCaptures:{1:{name:"storage.type.function.math.tex"},2:{name:"punctuation.definition.function.math.tex"},3:{name:"entity.name.function.math.tex"},4:{name:"punctuation.definition.arguments.begin.math.tex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.math.tex"}},patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)([a-zA-Z_]+)\\b",name:"constant.character.math.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(?!begin\\*\\{|verb)([A-Za-z]+)",name:"constant.other.general.math.tex"},{match:"(?<!\\\\)\\{",name:"punctuation.math.begin.bracket.curly"},{match:"(?<!\\\\)\\}",name:"punctuation.math.end.bracket.curly"},{match:"\\(",name:"punctuation.math.begin.bracket.round"},{match:"\\)",name:"punctuation.math.end.bracket.round"},{match:"(([0-9]*[\\.][0-9]+)|[0-9]+)",name:"constant.numeric.math.tex"},{match:"[\\+\\*/_\\^-]",name:"punctuation.math.operator.latex"}]}}};var Njt={scopeName:"source.rst",name:"restructuredtext",patterns:[{include:"#body"}],repository:{$self:{},$base:{},body:{patterns:[{include:"#title"},{include:"#inline-markup"},{include:"#anchor"},{include:"#line-block"},{include:"#replace-include"},{include:"#footnote"},{include:"#substitution"},{include:"#blocks"},{include:"#table"},{include:"#simple-table"},{include:"#options-list"}]},title:{match:"^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$",name:"markup.heading"},"inline-markup":{patterns:[{include:"#escaped"},{include:"#ignore"},{include:"#ref"},{include:"#literal"},{include:"#monospaced"},{include:"#citation"},{include:"#bold"},{include:"#italic"},{include:"#list"},{include:"#macro"},{include:"#reference"},{include:"#footnote-ref"}]},ignore:{patterns:[{match:"'[`*]+'"},{match:"<[`*]+>"},{match:"{[`*]+}"},{match:"\\([`*]+\\)"},{match:"\\[[`*]+\\]"},{match:'"[`*]+"'}]},table:{begin:"^\\s*\\+[=+-]+\\+\\s*$",end:"^(?![+|])",beginCaptures:{0:{name:"keyword.control.table"}},patterns:[{match:"[=+|-]",name:"keyword.control.table"}]},"simple-table":{match:"^[=\\s]+$",name:"keyword.control.table"},ref:{begin:"(:ref:)`",end:"`|^\\s*$",name:"entity.name.tag",beginCaptures:{1:{name:"keyword.control"}},patterns:[{match:"<.*?>",name:"markup.underline.link"}]},reference:{match:"[\\w-]*[a-zA-Z\\d-]__?\\b",name:"entity.name.tag"},macro:{match:"\\|[^\\|]+\\|",name:"entity.name.tag"},literal:{match:"(:\\S+:)(`.*?`\\\\?)",captures:{1:{name:"keyword.control"},2:{name:"entity.name.tag"}}},monospaced:{begin:"(?<=[\\s\"'(\\[{<]|^)``[^\\s`]",end:"``|^\\s*$",name:"string.interpolated"},citation:{begin:"(?<=[\\s\"'(\\[{<]|^)`[^\\s`]",end:"`_{,2}|^\\s*$",name:"entity.name.tag",applyEndPatternLast:!1},bold:{begin:`(?<=[\\s"'(\\[{<]|^)\\*{2}[^\\s*]`,end:"\\*{2}|^\\s*$",name:"markup.bold"},italic:{begin:`(?<=[\\s"'(\\[{<]|^)\\*[^\\s*]`,end:"\\*|^\\s*$",name:"markup.italic"},escaped:{match:"\\\\.",name:"constant.character.escape"},list:{match:"^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+",name:"keyword.control"},"line-block":{match:"^\\|\\s+",name:"keyword.control"},"raw-html":{begin:"^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{name:"variable.parameter.html"}},patterns:[{include:"#block-param"},{include:"text.html.derivative"}]},anchor:{match:"^\\.{2}\\s+(_[^:]+:)\\s*",name:"entity.name.tag.anchor"},"replace-include":{match:"^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)",captures:{1:{name:"keyword.control"},2:{name:"entity.name.tag"},3:{name:"keyword.control"}}},footnote:{match:"^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+",name:"entity.name.tag"},"footnote-ref":{match:"\\[(?:[\\w\\.-]+|[#*])\\]_",name:"entity.name.tag"},substitution:{match:"^\\.{2}\\s*\\|([^|]+)\\|",name:"entity.name.tag"},"options-list":{match:"^((?:-\\w|--[\\w-]+|/\\w+)(?:,? ?[\\w-]+)*)(?: |\\t|$)",name:"variable.parameter"},blocks:{patterns:[{include:"#domains"},{include:"#doctest"},{include:"#code-block-cpp"},{include:"#code-block-py"},{include:"#code-block-console"},{include:"#code-block-javascript"},{include:"#code-block-yaml"},{include:"#code-block-cmake"},{include:"#code-block-kconfig"},{include:"#code-block-ruby"},{include:"#code-block-dts"},{include:"#code-block"},{include:"#doctest-block"},{include:"#raw-html"},{include:"#block"},{include:"#literal-block"},{include:"#block-comment"}]},"block-comment":{begin:"^(\\s*)\\.{2}",while:"^\\1(?=\\s)|^\\s*$",name:"comment.block"},"literal-block":{begin:"^(\\s*)(.*)(::)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{patterns:[{include:"#inline-markup"}]},3:{name:"keyword.control"}}},block:{begin:"^(\\s*)(\\.{2}\\s+\\S+::)(.*)",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{name:"variable"}},patterns:[{include:"#block-param"},{include:"#body"}]},"block-param":{patterns:[{match:"(:param\\s+(.+?):)(?:\\s|$)",captures:{1:{name:"keyword.control"},2:{name:"variable.parameter"}}},{match:"(:.+?:)(?:$|\\s+(.*))",captures:{1:{name:"keyword.control"},2:{patterns:[{match:"\\b(0x[a-fA-F\\d]+|\\d+)\\b",name:"constant.numeric"},{include:"#inline-markup"}]}}}]},domains:{patterns:[{include:"#domain-cpp"},{include:"#domain-py"},{include:"#domain-auto"},{include:"#domain-js"}]},"domain-cpp":{begin:"^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{name:"entity.name.tag"},4:{patterns:[{include:"source.cpp"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-py":{begin:"^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-auto":{begin:"^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control.py"},3:{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-js":{begin:"^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)",end:"^(?!\\1[ \\t]|$)",beginCaptures:{2:{name:"keyword.control"},3:{patterns:[{include:"source.js"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},doctest:{begin:"^(>>>)\\s*(.*)",end:"^\\s*$",beginCaptures:{1:{name:"keyword.control"},2:{patterns:[{include:"source.python"}]}}},"code-block-cpp":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.cpp"}},patterns:[{include:"#block-param"},{include:"source.cpp"}]},"code-block-console":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.console"}},patterns:[{include:"#block-param"},{include:"source.shell"}]},"code-block-py":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.py"}},patterns:[{include:"#block-param"},{include:"source.python"}]},"code-block-javascript":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.js"}},patterns:[{include:"#block-param"},{include:"source.js"}]},"code-block-yaml":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.yaml"}},patterns:[{include:"#block-param"},{include:"source.yaml"}]},"code-block-cmake":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.cmake"}},patterns:[{include:"#block-param"},{include:"source.cmake"}]},"code-block-kconfig":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.kconfig"}},patterns:[{include:"#block-param"},{include:"source.kconfig"}]},"code-block-ruby":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.ruby"}},patterns:[{include:"#block-param"},{include:"source.ruby"}]},"code-block-dts":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.dts"}},patterns:[{include:"#block-param"},{include:"source.dts"}]},"code-block":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"}},patterns:[{include:"#block-param"}]},"doctest-block":{begin:"^(\\s*)(\\.{2}\\s+doctest::)\\s*$",while:"^\\1(?=\\s)|^\\s*$",beginCaptures:{2:{name:"keyword.control"}},patterns:[{include:"#block-param"},{include:"source.python"}]}}};var Ljt={name:"search-result",scopeName:"text.searchResult",patterns:[{begin:"^(# Query): ",end:` `,name:"meta.header.search keyword.operator.word.search",beginCaptures:{1:{name:"entity.other.attribute-name"}},patterns:[{match:"(\\\\n)|(\\\\\\\\)",name:"entity.other.attribute-value string.unquoted constant.character.escape"},{match:"\\\\.|\\\\$",name:"entity.other.attribute-value string.unquoted invalid.illegal"},{match:`[^\\\\\\ ]+`,name:"entity.other.attribute-value string.unquoted"}]},{begin:"^(# Flags): ",end:` `,name:"meta.header.search keyword.operator.word.search",beginCaptures:{1:{name:"entity.other.attribute-name"}},patterns:[{match:"(RegExp|CaseSensitive|IgnoreExcludeSettings|WordMatch)",name:"entity.other.attribute-value string.unquoted keyword.other"},{match:"."}]},{begin:"^(# ContextLines): ",end:` `,name:"meta.header.search keyword.operator.word.search",beginCaptures:{1:{name:"entity.other.attribute-name"}},patterns:[{match:"\\d",name:"entity.other.attribute-value string.unquoted constant.numeric.integer"},{match:".",name:"invalid.illegal"}]},{match:"^(# (?:Including|Excluding)): (.*)$",name:"meta.header.search keyword.operator.word.search",captures:{1:{name:"entity.other.attribute-name"},2:{name:"entity.other.attribute-value string.unquoted"}}},{include:"#bat"},{include:"#c"},{include:"#clj"},{include:"#coffee"},{include:"#cpp"},{include:"#cs"},{include:"#cshtml"},{include:"#css"},{include:"#dart"},{include:"#diff"},{include:"#dockerfile"},{include:"#fs"},{include:"#go"},{include:"#groovy"},{include:"#h"},{include:"#handlebars"},{include:"#hlsl"},{include:"#hpp"},{include:"#html"},{include:"#ini"},{include:"#java"},{include:"#jl"},{include:"#js"},{include:"#json"},{include:"#jsx"},{include:"#less"},{include:"#log"},{include:"#lua"},{include:"#m"},{include:"#makefile"},{include:"#md"},{include:"#mm"},{include:"#p6"},{include:"#perl"},{include:"#php"},{include:"#ps1"},{include:"#pug"},{include:"#py"},{include:"#r"},{include:"#rb"},{include:"#rs"},{include:"#scala"},{include:"#scss"},{include:"#sh"},{include:"#sql"},{include:"#swift"},{include:"#ts"},{include:"#tsx"},{include:"#vb"},{include:"#xml"},{include:"#yaml"},{match:"^(?!\\s)(.*?)([^\\\\\\/\\n]*)(:)$",name:"meta.resultBlock.search string meta.path.search",captures:{1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}}},{match:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+)( ))(.*))",name:"meta.resultBlock.search meta.resultLine.search",captures:{1:{name:"constant.numeric.integer meta.resultLinePrefix.search meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"constant.numeric.integer meta.resultLinePrefix.search meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}}},{match:"\u27EA [0-9]+ characters skipped \u27EB",name:"meta.resultBlock.search comment meta.resultLine.elision"}],repository:{$self:{},$base:{},bat:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.bat)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.batchfile"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.batchfile"}]}]},c:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.c)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.c"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.c"}]}]},clj:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.clj)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.clojure"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.clojure"}]}]},coffee:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.coffee)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.coffee"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.coffee"}]}]},cpp:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.(?:cpp|c\\+\\+|cc|cxx|hxx|h\\+\\+|hh))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.cpp"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.cpp"}]}]},cs:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.cs)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.cs"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.cs"}]}]},cshtml:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.cshtml)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.html.cshtml"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.html.cshtml"}]}]},css:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.css)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.css"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.css"}]}]},dart:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.dart)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.dart"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.dart"}]}]},diff:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.diff)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.diff"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.diff"}]}]},dockerfile:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*(?:dockerfile|Dockerfile|containerfile|Containerfile))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.dockerfile"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.dockerfile"}]}]},fs:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.fs)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.fsharp"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.fsharp"}]}]},go:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.go)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.go"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.go"}]}]},groovy:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.groovy)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.groovy"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.groovy"}]}]},h:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.h)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.objc"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.objc"}]}]},handlebars:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.(?:handlebars|hbs))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.html.handlebars"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.html.handlebars"}]}]},hlsl:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.hlsl)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.hlsl"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.hlsl"}]}]},hpp:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.hpp)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.objcpp"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.objcpp"}]}]},html:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.html)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.html.basic"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.html.basic"}]}]},ini:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.ini)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.ini"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.ini"}]}]},java:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.java)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.java"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.java"}]}]},jl:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.jl)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.julia"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.julia"}]}]},js:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.js)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.js"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.js"}]}]},json:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.json)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.json.comments"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.json.comments"}]}]},jsx:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.jsx)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.js.jsx"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.js.jsx"}]}]},less:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.less)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.css.less"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.css.less"}]}]},log:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.log)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.log"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.log"}]}]},lua:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.lua)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.lua"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.lua"}]}]},m:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.m)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.objc"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.objc"}]}]},makefile:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*(?:makefile|Makefile)(?:\\..*)?)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.makefile"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.makefile"}]}]},md:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.md)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.html.markdown"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.html.markdown"}]}]},mm:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.mm)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.objcpp"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.objcpp"}]}]},p6:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.p6)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.perl.6"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.perl.6"}]}]},perl:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.(?:perl|pl|pm))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.perl"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.perl"}]}]},php:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.php)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.php"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.php"}]}]},ps1:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.ps1)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.powershell"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.powershell"}]}]},pug:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.pug)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.pug"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.pug"}]}]},py:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.py)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.python"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.python"}]}]},r:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.r)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.r"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.r"}]}]},rb:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.rb)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.ruby"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.ruby"}]}]},rs:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.rs)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.rust"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.rust"}]}]},scala:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.scala)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.scala"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.scala"}]}]},scss:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.scss)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.css.scss"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.css.scss"}]}]},sh:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.sh)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.shell"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.shell"}]}]},sql:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.sql)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.sql"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.sql"}]}]},swift:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.swift)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.swift"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.swift"}]}]},ts:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.ts)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.ts"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.ts"}]}]},tsx:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.tsx)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.tsx"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.tsx"}]}]},vb:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.vb)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.asp.vb.net"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.asp.vb.net"}]}]},xml:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.xml)(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"text.xml"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"text.xml"}]}]},yaml:{name:"meta.resultBlock.search",begin:"^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.(?:ya?ml))(:)$",end:"^(?!\\s)",beginCaptures:{0:{name:"string meta.path.search"},1:{name:"meta.path.dirname.search"},2:{name:"meta.path.basename.search"},3:{name:"punctuation.separator"}},patterns:[{name:"meta.resultLine.search meta.resultLine.multiLine.search",begin:"^ (?:\\s*)((\\d+) )",while:"^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.contextLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"}},whileCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"},4:{name:"meta.resultLinePrefix.contextLinePrefix.search"},5:{name:"meta.resultLinePrefix.lineNumber.search"}},patterns:[{include:"source.yaml"}]},{begin:"^ (?:\\s*)((\\d+)(:))",while:"(?=not)possible",name:"meta.resultLine.search meta.resultLine.singleLine.search",beginCaptures:{0:{name:"constant.numeric.integer meta.resultLinePrefix.search"},1:{name:"meta.resultLinePrefix.matchLinePrefix.search"},2:{name:"meta.resultLinePrefix.lineNumber.search"},3:{name:"punctuation.separator"}},patterns:[{include:"source.yaml"}]}]}}};var Mjt={name:"typescriptreact",scopeName:"source.tsx",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{$self:{},$base:{},shebang:{name:"comment.line.shebang.tsx",match:"\\A(#!).*(?=$)",captures:{1:{name:"punctuation.definition.comment.tsx"}}},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{name:"keyword.control.trycatch.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{1:{name:"keyword.control.loop.tsx"},2:{name:"entity.name.label.tsx"}}},{name:"keyword.control.loop.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.tsx"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#expression"}]},{name:"keyword.control.switch.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#if-statement"},{name:"keyword.control.conditional.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.with.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.other.debugger.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)",captures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}}}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},decorator:{name:"meta.decorator.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.tsx"}},end:"(?=\\s)",patterns:[{include:"#expression"}]},"var-expr":{patterns:[{name:"meta.var.expr.tsx",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{name:"meta.var.expr.tsx",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-variable":{patterns:[{name:"meta.var-single-variable.expr.tsx",begin:`(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,beginCaptures:{1:{name:"meta.definition.variable.tsx entity.name.function.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-const":{patterns:[{name:"meta.var-single-variable.expr.tsx",begin:`(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"destructuring-variable":{patterns:[{name:"meta.object-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-const":{patterns:[{name:"meta.object-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.tsx"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"variable.object.property.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"destructuring-variable-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"}}},"destructuring-variable-rest-const":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}}},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element-const"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"parameter-name":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{1:{name:"storage.modifier.tsx"}}},{match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)",captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}}}]},"destructuring-parameter":{patterns:[{name:"meta.parameter.object-binding-pattern.tsx",begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},{name:"meta.paramter.array-binding-pattern.tsx",begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))`,end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"destructuring-parameter-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"variable.parameter.tsx"}}},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"field-declaration":{name:"meta.field.declaration.tsx",begin:`(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))`,beginCaptures:{1:{name:"storage.modifier.tsx"}},end:`(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})`,patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{match:`(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"meta.definition.property.tsx entity.name.function.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"keyword.operator.definiteassignment.tsx"}}},{name:"meta.definition.property.tsx variable.object.property.tsx",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.tsx",match:"\\?"},{name:"keyword.operator.definiteassignment.tsx",match:"\\!"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]},"function-declaration":{name:"meta.function.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.async.tsx"},4:{name:"storage.type.function.tsx"},5:{name:"keyword.generator.asterisk.tsx"},6:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))|(?<=\\})",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{name:"meta.function.expression.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.function.tsx"},3:{name:"keyword.generator.asterisk.tsx"},4:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;)|(?<=\\})",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{name:"meta.definition.function.tsx entity.name.function.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{name:"keyword.generator.asterisk.tsx",match:"\\*"}]},"method-declaration":{patterns:[{name:"meta.method.declaration.tsx",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.tsx",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"keyword.operator.new.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.tsx",begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.property.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.tsx",begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:`(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])`,beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"method-declaration-name":{begin:`(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])`,end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"meta.definition.method.tsx entity.name.function.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.tsx",match:"\\?"}]},"arrow-function":{patterns:[{name:"meta.arrow.tsx",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",captures:{1:{name:"storage.modifier.async.tsx"},2:{name:"variable.parameter.tsx"}}},{name:"meta.arrow.tsx",begin:`(?x) (?: (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync) )? ((?<![})!\\]])\\s* (?= # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) ) )`,beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.tsx",begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"meta.brace.square.tsx"},3:{name:"variable.parameter.tsx"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.optional.tsx"}},patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{name:"meta.indexer.mappedtype.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"meta.brace.square.tsx"},4:{name:"entity.name.type.tsx"},5:{name:"keyword.operator.expression.in.tsx"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.type.modifier.tsx"},3:{name:"keyword.operator.optional.tsx"}},patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+",captures:{1:{name:"keyword.control.as.tsx"}}},{include:"#type"}]},"function-parameters":{name:"meta.parameters.tsx",begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.tsx"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.tsx"}},patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.tsx",match:","}]},"class-declaration":{name:"meta.class.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.class.tsx"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-expression":{name:"meta.class.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.type.class.tsx"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{0:{name:"entity.name.type.class.tsx"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"interface-declaration":{name:"meta.interface.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.interface.tsx"}},end:"(?<=\\})",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{0:{name:"entity.name.type.interface.tsx"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-or-interface-heritage":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}}},{match:"([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"entity.other.inherited-class.tsx"}}},{include:"#expressionPunctuations"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"access-modifier":{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"property-accessor":{name:"storage.type.property.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"async-modifier":{name:"storage.modifier.async.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"enum-declaration":{name:"meta.enum.declaration.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.enum.tsx"},5:{name:"entity.name.type.enum.tsx"}},end:"(?<=\\})",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{0:{name:"variable.other.enummember.tsx"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"namespace-declaration":{name:"meta.namespace.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.namespace.tsx"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#comment"},{include:"#string"},{name:"entity.name.type.module.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"type-alias-declaration":{name:"meta.type.declaration.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.type.tsx"},4:{name:"entity.name.type.alias.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"},2:{name:"keyword.control.intrinsic.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type"}]}]},"import-equals-declaration":{patterns:[{name:"meta.import-equals.external.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"},7:{name:"keyword.control.require.tsx"},8:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.import-equals.internal.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"}},end:"(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}}},{name:"variable.other.readwrite.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]}]},"import-declaration":{name:"meta.import.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"}},end:"(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:`(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*["'])`,end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.tsx"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"export-declaration":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.as.tsx"},3:{name:"storage.type.namespace.tsx"},4:{name:"entity.name.type.module.tsx"}}},{name:"meta.export.default.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"},3:{name:"keyword.operator.assignment.tsx"},4:{name:"keyword.control.default.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{name:"meta.export.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#import-export-declaration"}]}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{name:"keyword.control.from.tsx",match:"\\bfrom\\b"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.assert.tsx"},2:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#string"},{name:"meta.object-literal.key.tsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)"},{name:"punctuation.separator.key-value.tsx",match:":"}]},"import-export-block":{name:"meta.block.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))",captures:{1:{name:"keyword.control.type.tsx"},2:{name:"keyword.control.default.tsx"},3:{name:"constant.language.import-export-all.tsx"},4:{name:"variable.other.readwrite.tsx"},5:{name:"keyword.control.as.tsx"},6:{name:"keyword.control.default.tsx"},7:{name:"variable.other.readwrite.alias.tsx"}}},{include:"#punctuation-comma"},{name:"constant.language.import-export-all.tsx",match:"\\*"},{name:"keyword.control.default.tsx",match:"\\b(default)\\b"},{match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"keyword.control.type.tsx"},2:{name:"variable.other.readwrite.alias.tsx"}}}]},"switch-statement":{name:"switch-statement.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{name:"switch-expression.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{name:"switch-block.expr.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"(?=\\})",patterns:[{name:"case-clause.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.tsx"}},end:"(?=:)",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"},2:{name:"meta.block.tsx punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"meta.block.tsx punctuation.definition.block.tsx"}},contentName:"meta.block.tsx",patterns:[{include:"#statements"}]},{match:"(:)",captures:{0:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"}}},{include:"#statements"}]}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.tsx"}},end:"(?<=\\))",patterns:[{include:"#comment"},{name:"keyword.control.loop.tsx",match:"await"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"if-statement":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{name:"string.regexp.tsx",begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"decl-block":{name:"meta.block.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#statements"}]},"after-operator-block-as-object-literal":{name:"meta.objectliteral.tsx",begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:`(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$)))`,end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{name:"meta.method.declaration.tsx",begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#function-body"}]},{name:"meta.object.member.tsx",match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"constant.numeric.decimal.tsx"}}},{name:"meta.object.member.tsx",match:`(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"entity.name.function.tsx"}}},{name:"meta.object.member.tsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{0:{name:"meta.object-literal.key.tsx"}}},{name:"meta.object.member.tsx",begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{1:{name:"variable.other.readwrite.tsx"}}},{name:"meta.object.member.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}}},{name:"meta.object.member.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",patterns:[{include:"#type"}]},{name:"meta.object.member.tsx",begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",patterns:[{include:"#expression"}]},{name:"meta.object.member.tsx",begin:":",beginCaptures:{0:{name:"meta.object-literal.key.tsx punctuation.separator.key-value.tsx"}},end:"(?=,|\\})",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.tsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#expression"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{name:"meta.function-call.tsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{name:"meta.function-call.tsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tsx",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.tsx punctuation.accessor.optional.tsx",match:"\\?\\."},{name:"meta.function-call.tsx keyword.operator.definiteassignment.tsx",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.tsx",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))"}]},"new-expr":{name:"new.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#expression"}]},"instanceof-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{1:{name:"storage.modifier.tsx"}}},{match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s* # function assignment | (=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )) | # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) => (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) | (:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) )))`,captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)",captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{include:"#type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.tsx",match:","},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},cast:{patterns:[{include:"#jsx"}]},"expression-operators":{patterns:[{name:"keyword.control.flow.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.tsx"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.tsx"}},patterns:[{include:"#comment"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?",captures:{1:{name:"keyword.control.flow.tsx"},2:{name:"keyword.generator.asterisk.tsx"}}},{name:"keyword.operator.expression.delete.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.in.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.of.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.instanceof.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.new.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#typeof-operator"},{name:"keyword.operator.expression.void.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))",captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}}},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{name:"keyword.operator.spread.tsx",match:"\\.\\.\\."},{name:"keyword.operator.assignment.compound.tsx",match:"\\*=|(?<!\\()/=|%=|\\+=|\\-="},{name:"keyword.operator.assignment.compound.bitwise.tsx",match:"\\&=|\\^=|<<=|>>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.tsx",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.tsx",match:"===|!==|==|!="},{name:"keyword.operator.relational.tsx",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{1:{name:"keyword.operator.logical.tsx"},2:{name:"keyword.operator.assignment.compound.tsx"},3:{name:"keyword.operator.arithmetic.tsx"}}},{name:"keyword.operator.logical.tsx",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.tsx",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.tsx",match:"\\="},{name:"keyword.operator.decrement.tsx",match:"--"},{name:"keyword.operator.increment.tsx",match:"\\+\\+"},{name:"keyword.operator.arithmetic.tsx",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}}}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.tsx"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"array-literal":{name:"meta.array.literal.tsx",begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.tsx",match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",captures:{1:{name:"storage.type.numeric.bigint.tsx"}}},{name:"constant.numeric.binary.tsx",match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",captures:{1:{name:"storage.type.numeric.bigint.tsx"}}},{name:"constant.numeric.octal.tsx",match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",captures:{1:{name:"storage.type.numeric.bigint.tsx"}}},{match:`(?x) (?<!\\$)(?: (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3 (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3 (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3 (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3 (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1 (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1. (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1 (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1 )(?!\\$)`,captures:{0:{name:"constant.numeric.decimal.tsx"},1:{name:"meta.delimiter.decimal.period.tsx"},2:{name:"storage.type.numeric.bigint.tsx"},3:{name:"meta.delimiter.decimal.period.tsx"},4:{name:"storage.type.numeric.bigint.tsx"},5:{name:"meta.delimiter.decimal.period.tsx"},6:{name:"storage.type.numeric.bigint.tsx"},7:{name:"storage.type.numeric.bigint.tsx"},8:{name:"meta.delimiter.decimal.period.tsx"},9:{name:"storage.type.numeric.bigint.tsx"},10:{name:"meta.delimiter.decimal.period.tsx"},11:{name:"storage.type.numeric.bigint.tsx"},12:{name:"meta.delimiter.decimal.period.tsx"},13:{name:"storage.type.numeric.bigint.tsx"},14:{name:"storage.type.numeric.bigint.tsx"}}}]},"boolean-literal":{patterns:[{name:"constant.language.boolean.true.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.boolean.false.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"null-literal":{name:"constant.language.null.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"this-literal":{name:"variable.language.this.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)"},"super-literal":{name:"variable.language.super.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)"},"undefined-literal":{name:"constant.language.undefined.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"numericConstant-literal":{patterns:[{name:"constant.language.nan.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.infinity.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"support-objects":{patterns:[{name:"variable.language.arguments.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)"},{name:"support.class.promise.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)",captures:{1:{name:"keyword.control.import.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.importmeta.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)",captures:{1:{name:"keyword.operator.new.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.target.tsx"}}},{match:`(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?: (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\()) | (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))`,captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"support.variable.property.tsx"},4:{name:"support.constant.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)",captures:{1:{name:"support.type.object.module.tsx"},2:{name:"support.type.object.module.tsx"},3:{name:"punctuation.accessor.tsx"},4:{name:"punctuation.accessor.optional.tsx"},5:{name:"support.type.object.module.tsx"}}}]},identifiers:{patterns:[{include:"#object-identifiers"},{match:`(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( ((async\\s+)?( (function\\s*[(<*]) | (function\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\s*=>) )) | ((async\\s*)?( ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) | # sure shot arrow functions even if => is on new line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)* ( ([)]\\s*:) | # (): ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param: ) ) | ( [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends ) | # arrow function possible to detect only with => on same line ( (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\"\\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\"([^\\"\\\\]|\\\\.)*\\")|(\\\`([^\\\`\\\\]|\\\\.)*\\\`))*)?\\) # parameters (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type \\s*=> # arrow operator ) )) ))`,captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"entity.name.function.tsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.property.tsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.property.tsx"}}},{name:"variable.other.constant.tsx",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:`(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?: (\\#?[[:upper:]][_$[:digit:][:upper:]]*) | (\\#?[_$[:alpha:]][_$[:alnum:]]*) )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`,captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.object.property.tsx"},4:{name:"variable.other.object.property.tsx"}}},{match:`(?x)(?: ([[:upper:]][_$[:digit:][:upper:]]*) | ([_$[:alpha:]][_$[:alnum:]]*) )(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)`,captures:{1:{name:"variable.other.constant.object.tsx"},2:{name:"variable.other.object.tsx"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.tsx",begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.tsx",begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.tsx",begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.tsx",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",patterns:[{include:"#return-type-core"}]},{name:"meta.return.type.tsx",begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"arrow-return-type":{name:"meta.return.type.arrow.tsx",begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.tsx meta.return.type.arrow.tsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-parameters":{name:"meta.type.parameters.tsx",begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#comment"},{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"},{name:"keyword.operator.assignment.tsx",match:"(=)(?!>)"}]},"type-arguments":{name:"meta.type.parameters.tsx",begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{0:{name:"keyword.operator.type.tsx"}}},{include:"#type"},{include:"#punctuation-comma"}]},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",captures:{1:{name:"storage.modifier.tsx"}}},{include:"#type-name"}]},"type-primitive":{name:"support.type.primitive.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-builtin-literals":{name:"support.type.builtin.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-tuple":{name:"meta.type.tuple.tsx",begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},patterns:[{name:"keyword.operator.rest.tsx",match:"\\.\\.\\."},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)",captures:{1:{name:"entity.name.label.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"punctuation.separator.label.tsx"}}},{include:"#type"},{include:"#punctuation-comma"}]},"type-object":{name:"meta.object.type.tsx",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-conditional":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.tsx"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-paren-or-function-parameters":{name:"meta.type.paren.cover.tsx",begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{match:`(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) )) )) | (:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) | (:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))`,captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)",captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}}},{include:"#type-annotation"},{name:"punctuation.separator.parameter.tsx",match:","},{include:"#type"}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.tsx storage.modifier.tsx"},2:{name:"meta.type.constructor.tsx keyword.control.new.tsx"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{name:"meta.type.constructor.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.control.new.tsx"}},end:"(?<=\\))",patterns:[{include:"#function-parameters"}]},{name:"meta.type.function.tsx",begin:`(?x)( (?= [(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ) ) )`,end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.tsx",begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.tsx",begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?=\\S)"},{name:"keyword.operator.expression.keyof.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.ternary.tsx",match:"(\\?|\\:)"},{name:"keyword.operator.expression.import.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()"}]},"type-infer":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.tsx",captures:{1:{name:"keyword.operator.expression.infer.tsx"},2:{name:"entity.name.type.tsx"},3:{name:"keyword.operator.expression.extends.tsx"}}}]},"type-predicate-operator":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"},4:{name:"keyword.operator.expression.is.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"}}},{name:"keyword.operator.type.asserts.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.is.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"type-name":{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},contentName:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.tsx"},2:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},contentName:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}}},{name:"entity.name.type.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.tsx",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.tsx",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.tsx",begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.tsx",begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.tsx",match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},template:{patterns:[{include:"#template-call"},{contentName:"string.template.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tagged-template.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{name:"meta.template.expression.tsx",begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.tsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{contentName:"string.template.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.tsx",begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.tsx"},regex:{patterns:[{name:"string.regexp.tsx",begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.tsx",begin:"((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]}]},regexp:{patterns:[{name:"keyword.control.anchor.regexp",match:"\\\\[bB]|\\^|\\$"},{match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>",captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"punctuation.definition.group.assertion.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"},5:{name:"meta.assertion.look-behind.regexp"},6:{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"meta.group.regexp",begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.tsx",begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}},patterns:[{include:"#docblock"}]},{name:"comment.block.tsx",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"},2:{name:"storage.type.internaldeclaration.tsx"},3:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}}},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"(?=$)",contentName:"comment.line.double-slash.tsx"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"(?=^)",contentName:"comment.line.double-slash.tsx"},directives:{name:"comment.line.triple-slash.directive.tsx",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"}},end:"(?=$)",patterns:[{name:"meta.tag.tsx",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.tsx"},2:{name:"entity.name.tag.directive.tsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.tsx"}},patterns:[{name:"entity.other.attribute-name.directive.tsx",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.tsx",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:`(?x) ((@)(?:access|api)) \\s+ (private|protected|public) \\b`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}}},{match:`(?x) ((@)author) \\s+ ( [^@\\s<>*/] (?:[^@<>*/]|\\*[^/])* ) (?: \\s* (<) ([^>\\s]+) (>) )?`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:`(?x) ((@)borrows) \\s+ ((?:[^@\\s*/]|\\*[^/])+) # <that namepath> \\s+ (as) \\s+ # as ((?:[^@\\s*/]|\\*[^/])+) # <this namepath>`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"(</)caption(>)|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{0:{name:"source.embedded.tsx"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}}},{match:`(?x) ((@)see) \\s+ (?: # URL ( (?=https?://) (?:[^\\s*]|\\*[^/])+ ) | # JSDoc namepath ( (?! # Avoid matching bare URIs (also acceptable as links) https?:// | # Avoid matching {@inline tags}; we match those below (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag} {@(?:link|linkcode|linkplain|tutorial)\\b ) # Matched namepath (?:[^@\\s*/]|\\*[^/])+ ) )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}}},{match:`(?x) ((@)template) \\s+ # One or more valid identifiers ( [A-Za-z_$] # First character: non-numeric word character [\\w$.\\[\\]]* # Rest of identifier (?: # Possible list of additional identifiers \\s* , \\s* [A-Za-z_$] [\\w$.\\[\\]]* )* )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:`(?x) ( (@) (?:arg|argument|const|constant|member|namespace|param|var) ) \\s+ ( [A-Za-z_$] [\\w$.\\[\\]]* )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:`(?x) (\\[)\\s* [\\w$]+ (?: (?:\\[\\])? # Foo[ ].bar properties within an array \\. # Foo.Bar namespaced parameter [\\w$]+ )* (?: \\s* (=) # [foo=bar] Default parameter value \\s* ( # The inner regexes are to stop the match early at */ and to not stop at escaped quotes (?> "(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | # [foo="bar"] Double-quoted '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else )* ) )? \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.tsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:`(?x) ( (@) (?:define|enum|exception|export|extends|lends|implements|modifies |namespace|private|protected|returns?|satisfies|suppress|this|throws|type |yields?) ) \\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:`(?x) ( (@) (?:alias|augments|callback|constructs|emits|event|fires|exports? |extends|external|function|func|host|lends|listens|interface|memberof!? |method|module|mixes|mixin|name|requires|see|this|typedef|uses) ) \\s+ ( (?: [^{}@\\s*] | \\*[^/] )+ )`,captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",patterns:[{include:"#jsx-tag-without-attributes"}]},"jsx-tag-without-attributes":{name:"meta.tag.without-attributes.tsx",begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",end:"(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},endCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-in-expression":{begin:`(?x) (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s* (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))`,end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",patterns:[{include:"#jsx-tag"}]},"jsx-tag":{name:"meta.tag.tsx",begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",endCaptures:{1:{name:"punctuation.definition.tag.end.tsx"},2:{name:"punctuation.definition.tag.begin.tsx"},3:{name:"entity.name.tag.namespace.tsx"},4:{name:"punctuation.separator.namespace.tsx"},5:{name:"entity.name.tag.tsx"},6:{name:"support.class.component.tsx"},7:{name:"punctuation.definition.tag.end.tsx"}},patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.tsx"}},end:"(?=</)",contentName:"meta.jsx.children.tsx",patterns:[{include:"#jsx-children"}]}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-evaluated-code":{contentName:"meta.embedded.expression.tsx",begin:"\\{",end:"\\}",beginCaptures:{0:{name:"punctuation.section.embedded.begin.tsx"}},endCaptures:{0:{name:"punctuation.section.embedded.end.tsx"}},patterns:[{include:"#expression"}]},"jsx-entities":{patterns:[{name:"constant.character.entity.tsx",match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",captures:{1:{name:"punctuation.definition.entity.tsx"},3:{name:"punctuation.definition.entity.tsx"}}}]},"jsx-tag-attributes":{name:"meta.tag.attributes.tsx",begin:"\\s+",end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attribute-name":{match:`(?x) \\s* (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))? ([_$[:alpha:]][-_$[:alnum:]]*) (?=\\s|=|/?>|/\\*|//)`,captures:{1:{name:"entity.other.attribute-name.namespace.tsx"},2:{name:"punctuation.separator.namespace.tsx"},3:{name:"entity.other.attribute-name.tsx"}}},"jsx-tag-attribute-assignment":{name:"keyword.operator.assignment.tsx",match:`=(?=\\s*(?:'|"|{|/\\*|//|\\n))`},"jsx-string-double-quoted":{name:"string.quoted.double.tsx",begin:'"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{name:"string.quoted.single.tsx",begin:"'",end:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-tag-attributes-illegal":{name:"invalid.illegal.attribute.tsx",match:"\\S+"}}};var Fjt=Object.freeze({colors:{"actionBar.toggledBackground":"#383a49","activityBarBadge.background":"#007ACC","checkbox.border":"#6B6B6B","editor.background":"#1E1E1E","editor.foreground":"#D4D4D4","editor.inactiveSelectionBackground":"#3A3D41","editor.selectionHighlightBackground":"#ADD6FF26","editorIndentGuide.activeBackground":"#707070","editorIndentGuide.background":"#404040","input.placeholderForeground":"#A6A6A6","list.activeSelectionIconForeground":"#FFF","list.dropBackground":"#383B3D","menu.background":"#252526","menu.border":"#454545","menu.foreground":"#CCCCCC","menu.separatorBackground":"#454545","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#ccc3","sideBarTitle.foreground":"#BBBBBB","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#ccc3","terminal.inactiveSelectionBackground":"#3A3D41","widget.border":"#303031"},displayName:"Dark Plus",name:"dark-plus",semanticHighlighting:!0,semanticTokenColors:{customLiteral:"#DCDCAA",newOperator:"#C586C0",numberLiteral:"#b5cea8",stringLiteral:"#ce9178"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569cd6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{scope:"variable.language",settings:{foreground:"#569cd6"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#DCDCAA"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:["keyword.control","source.cpp keyword.operator.new","keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#9CDCFE"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#4FC1FF"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"entity.name.label",settings:{foreground:"#C8C8C8"}}],type:"dark"});var Qjt=Object.freeze({colors:{"actionBar.toggledBackground":"#dddddd","activityBarBadge.background":"#007ACC","checkbox.border":"#919191","editor.background":"#FFFFFF","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#E5EBF1","editor.selectionHighlightBackground":"#ADD6FF80","editorIndentGuide.activeBackground":"#939393","editorIndentGuide.background":"#D3D3D3","editorSuggestWidget.background":"#F3F3F3","input.placeholderForeground":"#767676","list.activeSelectionIconForeground":"#FFF","list.focusAndSelectionOutline":"#90C2F9","list.hoverBackground":"#E8E8E8","menu.border":"#D4D4D4","notebook.cellBorderColor":"#E8E8E8","notebook.selectedCellBackground":"#c8ddf150","ports.iconRunningProcessForeground":"#369432","searchEditor.textInputBorder":"#CECECE","settings.numberInputBorder":"#CECECE","settings.textInputBorder":"#CECECE","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#61616130","sideBarTitle.foreground":"#6F6F6F","statusBarItem.errorBackground":"#c72e0f","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#61616130","terminal.inactiveSelectionBackground":"#E5EBF1","widget.border":"#d4d4d4"},displayName:"Light Plus",name:"light-plus",semanticHighlighting:!0,semanticTokenColors:{customLiteral:"#795E26",newOperator:"#AF00DB",numberLiteral:"#098658",stringLiteral:"#a31515"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#000000ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000ff"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811f3f"}},{scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#e50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#cd3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#000080"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#800000"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#a31515"}},{scope:"markup.changed",settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451a5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000ff"}},{scope:"meta.preprocessor.string",settings:{foreground:"#a31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451a5"}},{scope:"storage",settings:{foreground:"#0000ff"}},{scope:"storage.type",settings:{foreground:"#0000ff"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000ff"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#a31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000ff"}},{scope:"string.regexp",settings:{foreground:"#811f3f"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000ff"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#e50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451a5"}},{scope:"keyword",settings:{foreground:"#0000ff"}},{scope:"keyword.control",settings:{foreground:"#0000ff"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000ff"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451a5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0000ff"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#795E26"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#267f99"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#267f99"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#AF00DB"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#0070C1"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#d16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811f3f"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#0000ff"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}}],type:"light"});var Ojt=Object.freeze({colors:{"activityBar.background":"#272822","activityBar.foreground":"#f8f8f2","badge.background":"#75715E","badge.foreground":"#f8f8f2","button.background":"#75715E","debugToolBar.background":"#1e1f1c","diffEditor.insertedTextBackground":"#4b661680","diffEditor.removedTextBackground":"#90274A70","dropdown.background":"#414339","dropdown.listBackground":"#1e1f1c","editor.background":"#272822","editor.foreground":"#f8f8f2","editor.lineHighlightBackground":"#3e3d32","editor.selectionBackground":"#878b9180","editor.selectionHighlightBackground":"#575b6180","editor.wordHighlightBackground":"#4a4a7680","editor.wordHighlightStrongBackground":"#6a6a9680","editorCursor.foreground":"#f8f8f0","editorGroup.border":"#34352f","editorGroup.dropBackground":"#41433980","editorGroupHeader.tabsBackground":"#1e1f1c","editorHoverWidget.background":"#414339","editorHoverWidget.border":"#75715E","editorIndentGuide.activeBackground":"#767771","editorIndentGuide.background":"#464741","editorLineNumber.activeForeground":"#c2c2bf","editorLineNumber.foreground":"#90908a","editorSuggestWidget.background":"#272822","editorSuggestWidget.border":"#75715E","editorWhitespace.foreground":"#464741","editorWidget.background":"#1e1f1c",focusBorder:"#99947c","input.background":"#414339","inputOption.activeBorder":"#75715E","inputValidation.errorBackground":"#90274A","inputValidation.errorBorder":"#f92672","inputValidation.infoBackground":"#546190","inputValidation.infoBorder":"#819aff","inputValidation.warningBackground":"#848528","inputValidation.warningBorder":"#e2e22e","list.activeSelectionBackground":"#75715E","list.dropBackground":"#414339","list.highlightForeground":"#f8f8f2","list.hoverBackground":"#3e3d32","list.inactiveSelectionBackground":"#414339","menu.background":"#1e1f1c","menu.foreground":"#cccccc","minimap.selectionHighlight":"#878b9180","panel.border":"#414339","panelTitle.activeBorder":"#75715E","panelTitle.activeForeground":"#f8f8f2","panelTitle.inactiveForeground":"#75715E","peekView.border":"#75715E","peekViewEditor.background":"#272822","peekViewEditor.matchHighlightBackground":"#75715E","peekViewResult.background":"#1e1f1c","peekViewResult.matchHighlightBackground":"#75715E","peekViewResult.selectionBackground":"#414339","peekViewTitle.background":"#1e1f1c","pickerGroup.foreground":"#75715E","ports.iconRunningProcessForeground":"#ccccc7","progressBar.background":"#75715E","quickInputList.focusBackground":"#414339","selection.background":"#878b9180","settings.focusedRowBackground":"#4143395A","sideBar.background":"#1e1f1c","sideBarSectionHeader.background":"#272822","statusBar.background":"#414339","statusBar.debuggingBackground":"#75715E","statusBar.noFolderBackground":"#414339","statusBarItem.remoteBackground":"#AC6218","tab.border":"#1e1f1c","tab.inactiveBackground":"#34352f","tab.inactiveForeground":"#ccccc7","tab.lastPinnedBorder":"#414339","terminal.ansiBlack":"#333333","terminal.ansiBlue":"#6A7EC8","terminal.ansiBrightBlack":"#666666","terminal.ansiBrightBlue":"#819aff","terminal.ansiBrightCyan":"#66D9EF","terminal.ansiBrightGreen":"#A6E22E","terminal.ansiBrightMagenta":"#AE81FF","terminal.ansiBrightRed":"#f92672","terminal.ansiBrightWhite":"#f8f8f2","terminal.ansiBrightYellow":"#e2e22e","terminal.ansiCyan":"#56ADBC","terminal.ansiGreen":"#86B42B","terminal.ansiMagenta":"#8C6BC8","terminal.ansiRed":"#C4265E","terminal.ansiWhite":"#e3e3dd","terminal.ansiYellow":"#B3B42B","titleBar.activeBackground":"#1e1f1c","widget.shadow":"#00000098"},displayName:"Monokai",name:"monokai",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#F8F8F2"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#F8F8F2"}},{scope:"comment",settings:{foreground:"#88846f"}},{scope:"string",settings:{foreground:"#E6DB74"}},{scope:["punctuation.definition.template-expression","punctuation.section.embedded"],settings:{foreground:"#F92672"}},{scope:["meta.template.expression"],settings:{foreground:"#F8F8F2"}},{scope:"constant.numeric",settings:{foreground:"#AE81FF"}},{scope:"constant.language",settings:{foreground:"#AE81FF"}},{scope:"constant.character, constant.other",settings:{foreground:"#AE81FF"}},{scope:"variable",settings:{fontStyle:"",foreground:"#F8F8F2"}},{scope:"keyword",settings:{foreground:"#F92672"}},{scope:"storage",settings:{fontStyle:"",foreground:"#F92672"}},{scope:"storage.type",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{scope:"entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution",settings:{fontStyle:"underline",foreground:"#A6E22E"}},{scope:"entity.other.inherited-class",settings:{fontStyle:"italic underline",foreground:"#A6E22E"}},{scope:"entity.name.function",settings:{fontStyle:"",foreground:"#A6E22E"}},{scope:"variable.parameter",settings:{fontStyle:"italic",foreground:"#FD971F"}},{scope:"entity.name.tag",settings:{fontStyle:"",foreground:"#F92672"}},{scope:"entity.other.attribute-name",settings:{fontStyle:"",foreground:"#A6E22E"}},{scope:"support.function",settings:{fontStyle:"",foreground:"#66D9EF"}},{scope:"support.constant",settings:{fontStyle:"",foreground:"#66D9EF"}},{scope:"support.type, support.class",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{scope:"support.other.variable",settings:{fontStyle:""}},{scope:"invalid",settings:{fontStyle:"",foreground:"#F44747"}},{scope:"invalid.deprecated",settings:{foreground:"#F44747"}},{scope:"meta.structure.dictionary.json string.quoted.double.json",settings:{foreground:"#CFCFC2"}},{scope:"meta.diff, meta.diff.header",settings:{foreground:"#75715E"}},{scope:"markup.deleted",settings:{foreground:"#F92672"}},{scope:"markup.inserted",settings:{foreground:"#A6E22E"}},{scope:"markup.changed",settings:{foreground:"#E6DB74"}},{scope:"constant.numeric.line-number.find-in-files - match",settings:{foreground:"#AE81FFA0"}},{scope:"entity.name.filename.find-in-files",settings:{foreground:"#E6DB74"}},{scope:"markup.quote",settings:{foreground:"#F92672"}},{scope:"markup.list",settings:{foreground:"#E6DB74"}},{scope:"markup.bold, markup.italic",settings:{foreground:"#66D9EF"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#FD971F"}},{scope:"markup.heading",settings:{foreground:"#A6E22E"}},{scope:"markup.heading.setext",settings:{fontStyle:"bold",foreground:"#A6E22E"}},{scope:"markup.heading.markdown",settings:{fontStyle:"bold"}},{scope:"markup.quote.markdown",settings:{fontStyle:"italic",foreground:"#75715E"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#AE81FF"}},{scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{foreground:"#E6DB74"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.list.unnumbered.markdown, markup.list.numbered.markdown",settings:{foreground:"#f8f8f2"}},{scope:["punctuation.definition.list.begin.markdown"],settings:{foreground:"#A6E22E"}},{scope:"token.info-token",settings:{foreground:"#6796e6"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}},{scope:"variable.language",settings:{foreground:"#FD971F"}}],type:"dark"});var Ujt=Object.freeze({colors:{"activityBar.background":"#003847","badge.background":"#047aa6","button.background":"#2AA19899","debugExceptionWidget.background":"#00212B","debugExceptionWidget.border":"#AB395B","debugToolBar.background":"#00212B","dropdown.background":"#00212B","dropdown.border":"#2AA19899","editor.background":"#002B36","editor.foreground":"#839496","editor.lineHighlightBackground":"#073642","editor.selectionBackground":"#274642","editor.selectionHighlightBackground":"#005A6FAA","editor.wordHighlightBackground":"#004454AA","editor.wordHighlightStrongBackground":"#005A6FAA","editorBracketHighlight.foreground1":"#cdcdcdff","editorBracketHighlight.foreground2":"#b58900ff","editorBracketHighlight.foreground3":"#d33682ff","editorCursor.foreground":"#D30102","editorGroup.border":"#00212B","editorGroup.dropBackground":"#2AA19844","editorGroupHeader.tabsBackground":"#004052","editorHoverWidget.background":"#004052","editorIndentGuide.activeBackground":"#C3E1E180","editorIndentGuide.background":"#93A1A180","editorLineNumber.activeForeground":"#949494","editorMarkerNavigationError.background":"#AB395B","editorMarkerNavigationWarning.background":"#5B7E7A","editorWhitespace.foreground":"#93A1A180","editorWidget.background":"#00212B",errorForeground:"#ffeaea",focusBorder:"#2AA19899","input.background":"#003847","input.foreground":"#93A1A1","input.placeholderForeground":"#93A1A1AA","inputOption.activeBorder":"#2AA19899","inputValidation.errorBackground":"#571b26","inputValidation.errorBorder":"#a92049","inputValidation.infoBackground":"#052730","inputValidation.infoBorder":"#363b5f","inputValidation.warningBackground":"#5d5938","inputValidation.warningBorder":"#9d8a5e","list.activeSelectionBackground":"#005A6F","list.dropBackground":"#00445488","list.highlightForeground":"#1ebcc5","list.hoverBackground":"#004454AA","list.inactiveSelectionBackground":"#00445488","minimap.selectionHighlight":"#274642","panel.border":"#2b2b4a","peekView.border":"#2b2b4a","peekViewEditor.background":"#10192c","peekViewEditor.matchHighlightBackground":"#7744AA40","peekViewResult.background":"#00212B","peekViewTitle.background":"#00212B","pickerGroup.border":"#2AA19899","pickerGroup.foreground":"#2AA19899","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#047aa6","quickInputList.focusBackground":"#005A6F","selection.background":"#2AA19899","sideBar.background":"#00212B","sideBarTitle.foreground":"#93A1A1","statusBar.background":"#00212B","statusBar.debuggingBackground":"#00212B","statusBar.foreground":"#93A1A1","statusBar.noFolderBackground":"#00212B","statusBarItem.prominentBackground":"#003847","statusBarItem.prominentHoverBackground":"#003847","statusBarItem.remoteBackground":"#2AA19899","tab.activeBackground":"#002B37","tab.activeForeground":"#d6dbdb","tab.border":"#003847","tab.inactiveBackground":"#004052","tab.inactiveForeground":"#93A1A1","tab.lastPinnedBorder":"#2AA19844","terminal.ansiBlack":"#073642","terminal.ansiBlue":"#268bd2","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightWhite":"#fdf6e3","terminal.ansiBrightYellow":"#657b83","terminal.ansiCyan":"#2aa198","terminal.ansiGreen":"#859900","terminal.ansiMagenta":"#d33682","terminal.ansiRed":"#dc322f","terminal.ansiWhite":"#eee8d5","terminal.ansiYellow":"#b58900","titleBar.activeBackground":"#002C39"},displayName:"Solarized Dark",name:"solarized-dark",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#839496"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#839496"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#586E75"}},{scope:"string",settings:{foreground:"#2AA198"}},{scope:"string.regexp",settings:{foreground:"#DC322F"}},{scope:"constant.numeric",settings:{foreground:"#D33682"}},{scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{scope:"keyword",settings:{foreground:"#859900"}},{scope:"storage",settings:{fontStyle:"bold",foreground:"#93A1A1"}},{scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"entity.name.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{scope:"variable.parameter",settings:{}},{scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.tag",settings:{foreground:"#586E75"}},{scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{scope:"support.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{scope:["support.constant","support.variable"],settings:{}},{scope:["support.type","support.class"],settings:{foreground:"#859900"}},{scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{scope:"support.other.variable",settings:{}},{scope:"invalid",settings:{foreground:"#DC322F"}},{scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"markup.inserted",settings:{foreground:"#859900"}},{scope:"markup.quote",settings:{foreground:"#859900"}},{scope:"markup.list",settings:{foreground:"#B58900"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],type:"dark"});var qjt=Object.freeze({colors:{"activityBar.background":"#DDD6C1","activityBar.foreground":"#584c27","activityBarBadge.background":"#B58900","badge.background":"#B58900AA","button.background":"#AC9D57","debugExceptionWidget.background":"#DDD6C1","debugExceptionWidget.border":"#AB395B","debugToolBar.background":"#DDD6C1","dropdown.background":"#EEE8D5","dropdown.border":"#D3AF86","editor.background":"#FDF6E3","editor.foreground":"#657B83","editor.lineHighlightBackground":"#EEE8D5","editor.selectionBackground":"#EEE8D5","editorCursor.foreground":"#657B83","editorGroup.border":"#DDD6C1","editorGroup.dropBackground":"#DDD6C1AA","editorGroupHeader.tabsBackground":"#D9D2C2","editorHoverWidget.background":"#CCC4B0","editorIndentGuide.activeBackground":"#081E2580","editorIndentGuide.background":"#586E7580","editorLineNumber.activeForeground":"#567983","editorWhitespace.foreground":"#586E7580","editorWidget.background":"#EEE8D5","extensionButton.prominentBackground":"#b58900","extensionButton.prominentHoverBackground":"#584c27aa",focusBorder:"#b49471","input.background":"#DDD6C1","input.foreground":"#586E75","input.placeholderForeground":"#586E75AA","inputOption.activeBorder":"#D3AF86","list.activeSelectionBackground":"#DFCA88","list.activeSelectionForeground":"#6C6C6C","list.highlightForeground":"#B58900","list.hoverBackground":"#DFCA8844","list.inactiveSelectionBackground":"#D1CBB8","minimap.selectionHighlight":"#EEE8D5","notebook.cellEditorBackground":"#F7F0E0","panel.border":"#DDD6C1","peekView.border":"#B58900","peekViewEditor.background":"#FFFBF2","peekViewEditor.matchHighlightBackground":"#7744AA40","peekViewResult.background":"#EEE8D5","peekViewTitle.background":"#EEE8D5","pickerGroup.border":"#2AA19899","pickerGroup.foreground":"#2AA19899","ports.iconRunningProcessForeground":"#2AA19899","progressBar.background":"#B58900","quickInputList.focusBackground":"#DFCA8866","selection.background":"#878b9180","sideBar.background":"#EEE8D5","sideBarTitle.foreground":"#586E75","statusBar.background":"#EEE8D5","statusBar.debuggingBackground":"#EEE8D5","statusBar.foreground":"#586E75","statusBar.noFolderBackground":"#EEE8D5","statusBarItem.prominentBackground":"#DDD6C1","statusBarItem.prominentHoverBackground":"#DDD6C199","statusBarItem.remoteBackground":"#AC9D57","tab.activeBackground":"#FDF6E3","tab.activeModifiedBorder":"#cb4b16","tab.border":"#DDD6C1","tab.inactiveBackground":"#D3CBB7","tab.inactiveForeground":"#586E75","tab.lastPinnedBorder":"#FDF6E3","terminal.ansiBlack":"#073642","terminal.ansiBlue":"#268bd2","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightWhite":"#fdf6e3","terminal.ansiBrightYellow":"#657b83","terminal.ansiCyan":"#2aa198","terminal.ansiGreen":"#859900","terminal.ansiMagenta":"#d33682","terminal.ansiRed":"#dc322f","terminal.ansiWhite":"#eee8d5","terminal.ansiYellow":"#b58900","terminal.background":"#FDF6E3","titleBar.activeBackground":"#EEE8D5","walkThrough.embeddedEditorBackground":"#00000014"},displayName:"Solarized Light",name:"solarized-light",semanticHighlighting:!0,tokenColors:[{settings:{foreground:"#657B83"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#657B83"}},{scope:"comment",settings:{fontStyle:"italic",foreground:"#93A1A1"}},{scope:"string",settings:{foreground:"#2AA198"}},{scope:"string.regexp",settings:{foreground:"#DC322F"}},{scope:"constant.numeric",settings:{foreground:"#D33682"}},{scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{scope:"keyword",settings:{foreground:"#859900"}},{scope:"storage",settings:{fontStyle:"bold",foreground:"#586E75"}},{scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"entity.name.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{scope:"variable.parameter",settings:{}},{scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{scope:"punctuation.definition.tag",settings:{foreground:"#93A1A1"}},{scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{scope:"support.function",settings:{foreground:"#268BD2"}},{scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{scope:["support.constant","support.variable"],settings:{}},{scope:["support.type","support.class"],settings:{foreground:"#859900"}},{scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{scope:"support.other.variable",settings:{}},{scope:"invalid",settings:{foreground:"#DC322F"}},{scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{scope:"markup.inserted",settings:{foreground:"#859900"}},{scope:"markup.quote",settings:{foreground:"#859900"}},{scope:"markup.list",settings:{foreground:"#B58900"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],type:"light"});var $jt={type:"dark",colors:{"activityBar.background":"#051336","badge.background":"#0063a5","button.background":"#2b3c5d","debugExceptionWidget.background":"#051336","debugExceptionWidget.border":"#ab395b","debugToolBar.background":"#051336","diffEditor.insertedTextBackground":"#31958a55","diffEditor.removedTextBackground":"#892f4688","dropdown.background":"#181f2f","editor.background":"#000c18","editor.findMatchHighlightBackground":"#eeeeee44","editor.foreground":"#6688cc","editor.lineHighlightBackground":"#082050","editor.selectionBackground":"#770811","editorCursor.foreground":"#ddbb88","editorGroup.border":"#2b2b4a","editorGroup.dropBackground":"#25375daa","editorGroupHeader.tabsBackground":"#1c1c2a","editorHoverWidget.background":"#000c38","editorHoverWidget.border":"#004c18","editorIndentGuide.activeBackground":"#204972","editorIndentGuide.background":"#002952","editorLineNumber.activeForeground":"#80a2c2","editorLineNumber.foreground":"#406385","editorLink.activeForeground":"#0063a5","editorMarkerNavigation.background":"#060621","editorMarkerNavigationError.background":"#ab395b","editorMarkerNavigationWarning.background":"#5b7e7a","editorWhitespace.foreground":"#103050","editorWidget.background":"#262641","extensionButton.prominentBackground":"#5f8b3b","extensionButton.prominentHoverBackground":"#5f8b3bbb",focusBorder:"#596f99","input.background":"#181f2f","inputOption.activeBorder":"#1d4a87","inputValidation.errorBackground":"#a22d44","inputValidation.errorBorder":"#ab395b","inputValidation.infoBackground":"#051336","inputValidation.infoBorder":"#384078","inputValidation.warningBackground":"#5b7e7a","inputValidation.warningBorder":"#5b7e7a","list.activeSelectionBackground":"#08286b","list.dropBackground":"#041d52","list.highlightForeground":"#0063a5","list.hoverBackground":"#061940","list.inactiveSelectionBackground":"#152037","minimap.selectionHighlight":"#750000","panel.border":"#2b2b4a","peekView.border":"#2b2b4a","peekViewEditor.background":"#10192c","peekViewEditor.matchHighlightBackground":"#eeeeee33","peekViewResult.background":"#060621","peekViewResult.matchHighlightBackground":"#eeeeee44","peekViewTitle.background":"#10192c","pickerGroup.border":"#596f99","pickerGroup.foreground":"#596f99","ports.iconRunningProcessForeground":"#80a2c2","progressBar.background":"#0063a5","quickInputList.focusBackground":"#08286b","scrollbar.shadow":"#515e91aa","scrollbarSlider.activeBackground":"#3b3f5188","scrollbarSlider.background":"#1f2230aa","scrollbarSlider.hoverBackground":"#3b3f5188","sideBar.background":"#060621","sideBarSectionHeader.background":"#10192c","statusBar.background":"#10192c","statusBar.debuggingBackground":"#10192c","statusBar.noFolderBackground":"#10192c","statusBarItem.prominentBackground":"#0063a5","statusBarItem.prominentHoverBackground":"#0063a5dd","statusBarItem.remoteBackground":"#0063a5","tab.border":"#2b2b4a","tab.inactiveBackground":"#10192c","tab.lastPinnedBorder":"#2b3c5d","terminal.ansiBlack":"#111111","terminal.ansiBlue":"#bbdaff","terminal.ansiBrightBlack":"#333333","terminal.ansiBrightBlue":"#80baff","terminal.ansiBrightCyan":"#78ffff","terminal.ansiBrightGreen":"#b8f171","terminal.ansiBrightMagenta":"#d778ff","terminal.ansiBrightRed":"#ff7882","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffe580","terminal.ansiCyan":"#99ffff","terminal.ansiGreen":"#d1f1a9","terminal.ansiMagenta":"#ebbbff","terminal.ansiRed":"#ff9da4","terminal.ansiWhite":"#cccccc","terminal.ansiYellow":"#ffeead","titleBar.activeBackground":"#10192c"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#6688CC"}},{scope:"comment",settings:{foreground:"#384887"}},{scope:"string",settings:{foreground:"#22AA44"}},{scope:"constant.numeric",settings:{foreground:"#F280D0"}},{scope:"constant.language",settings:{foreground:"#F280D0"}},{scope:["constant.character","constant.other"],settings:{foreground:"#F280D0"}},{scope:"variable",settings:{fontStyle:""}},{scope:"keyword",settings:{foreground:"#225588"}},{scope:"storage",settings:{foreground:"#225588",fontStyle:""}},{scope:"storage.type",settings:{foreground:"#9966B8",fontStyle:"italic"}},{scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{foreground:"#FFEEBB",fontStyle:"underline"}},{scope:"entity.other.inherited-class",settings:{foreground:"#DDBB88",fontStyle:"italic underline"}},{scope:"entity.name.function",settings:{foreground:"#DDBB88",fontStyle:""}},{scope:"variable.parameter",settings:{foreground:"#2277FF",fontStyle:"italic"}},{scope:"entity.name.tag",settings:{foreground:"#225588",fontStyle:""}},{scope:"entity.other.attribute-name",settings:{foreground:"#DDBB88",fontStyle:""}},{scope:"support.function",settings:{foreground:"#9966B8",fontStyle:""}},{scope:"support.constant",settings:{foreground:"#9966B8",fontStyle:""}},{scope:["support.type","support.class"],settings:{foreground:"#9966B8",fontStyle:"italic"}},{scope:"support.other.variable",settings:{fontStyle:""}},{scope:"invalid",settings:{foreground:"#A22D44",fontStyle:""}},{scope:"invalid.deprecated",settings:{foreground:"#A22D44"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#E0EDDD",fontStyle:"italic"}},{scope:"markup.deleted",settings:{foreground:"#DC322F",fontStyle:""}},{scope:"markup.changed",settings:{foreground:"#CB4B16",fontStyle:""}},{scope:"markup.inserted",settings:{foreground:"#219186"}},{scope:"markup.quote",settings:{foreground:"#22AA44"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#22AA44"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#9966B8",fontStyle:""}},{scope:["markup.heading","markup.heading.setext"],settings:{foreground:"#6688CC",fontStyle:"bold"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};var Zet={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"actionBar.toggledBackground":"#383a49","editor.background":"#000000","editor.foreground":"#ffffff","editor.selectionBackground":"#ffffff","editorIndentGuide.activeBackground1":"#ffffff","editorIndentGuide.background1":"#ffffff","editorWhitespace.foreground":"#7c7c7c","ports.iconRunningProcessForeground":"#ffffff","selection.background":"#008000","sideBarTitle.foreground":"#ffffff","statusBarItem.remoteBackground":"#00000000"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#FFFFFF"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#7CA668"}},{scope:"constant.language",settings:{foreground:"#569CD6"}},{scope:["constant.numeric","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#B5CEA8"}},{scope:"constant.regexp",settings:{foreground:"#B46695"}},{scope:"constant.character",settings:{foreground:"#569CD6"}},{scope:"entity.name.tag",settings:{foreground:"#569CD6"}},{scope:"entity.name.tag.css",settings:{foreground:"#D7BA7D"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9CDCFE"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#D7BA7D"}},{scope:"invalid",settings:{foreground:"#F44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#6796E6",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#B5CEA8"}},{scope:"markup.deleted",settings:{foreground:"#CE9178"}},{scope:"markup.changed",settings:{foreground:"#569CD6"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#808080"}},{scope:"meta.preprocessor",settings:{foreground:"#569CD6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#CE9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#B5CEA8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9CDCFE"}},{scope:"storage",settings:{foreground:"#569CD6"}},{scope:"storage.type",settings:{foreground:"#569CD6"}},{scope:"storage.modifier",settings:{foreground:"#569CD6"}},{scope:"string",settings:{foreground:"#CE9178"}},{scope:"string.tag",settings:{foreground:"#CE9178"}},{scope:"string.value",settings:{foreground:"#CE9178"}},{scope:"string.regexp",settings:{foreground:"#D16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569CD6"}},{scope:["meta.template.expression"],settings:{foreground:"#FFFFFF"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#D4D4D4"}},{scope:"keyword",settings:{foreground:"#569CD6"}},{scope:"keyword.control",settings:{foreground:"#569CD6"}},{scope:"keyword.operator",settings:{foreground:"#D4D4D4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.logical.python"],settings:{foreground:"#569CD6"}},{scope:"keyword.other.unit",settings:{foreground:"#B5CEA8"}},{scope:"support.function.git-rebase",settings:{foreground:"#D4D4D4"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#B5CEA8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#D4D4D4"}},{scope:"variable.language.this",settings:{foreground:"#569CD6"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member"],settings:{foreground:"#DCDCAA"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.name.scope-resolution","entity.name.class","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator"],settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable"],settings:{foreground:"#9CDCFE"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:"meta.resultLinePrefix.contextLinePrefix.search",settings:{foreground:"#CBEDCB"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#008000"}},{scope:"token.error-token",settings:{foreground:"#FF0000"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};var Vet={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"actionBar.toggledBackground":"#383a49","activityBar.activeBorder":"#0078d4","activityBar.background":"#181818","activityBar.border":"#2b2b2b","activityBar.foreground":"#d7d7d7","activityBar.inactiveForeground":"#868686","activityBarBadge.background":"#0078d4","activityBarBadge.foreground":"#ffffff","badge.background":"#616161","badge.foreground":"#f8f8f8","button.background":"#0078d4","button.border":"#ffffff12","button.foreground":"#ffffff","button.hoverBackground":"#026ec1","button.secondaryBackground":"#313131","button.secondaryForeground":"#cccccc","button.secondaryHoverBackground":"#3c3c3c","chat.slashCommandBackground":"#34414b","chat.slashCommandForeground":"#40a6ff","checkbox.background":"#313131","checkbox.border":"#3c3c3c","debugToolBar.background":"#181818",descriptionForeground:"#9d9d9d","dropdown.background":"#313131","dropdown.border":"#3c3c3c","dropdown.foreground":"#cccccc","dropdown.listBackground":"#1f1f1f","editor.background":"#1f1f1f","editor.findMatchBackground":"#9e6a03","editor.foreground":"#cccccc","editor.inactiveSelectionBackground":"#3a3d41","editor.selectionHighlightBackground":"#add6ff26","editorGroup.border":"#ffffff17","editorGroupHeader.tabsBackground":"#181818","editorGroupHeader.tabsBorder":"#2b2b2b","editorGutter.addedBackground":"#2ea043","editorGutter.deletedBackground":"#f85149","editorGutter.modifiedBackground":"#0078d4","editorIndentGuide.activeBackground1":"#707070","editorIndentGuide.background1":"#404040","editorLineNumber.activeForeground":"#cccccc","editorLineNumber.foreground":"#6e7681","editorOverviewRuler.border":"#010409","editorWidget.background":"#202020",errorForeground:"#f85149",focusBorder:"#0078d4",foreground:"#cccccc","icon.foreground":"#cccccc","input.background":"#313131","input.border":"#3c3c3c","input.foreground":"#cccccc","input.placeholderForeground":"#818181","inputOption.activeBackground":"#2489db82","inputOption.activeBorder":"#2488db","keybindingLabel.foreground":"#cccccc","list.activeSelectionIconForeground":"#ffffff","list.dropBackground":"#383b3d","menu.background":"#1f1f1f","menu.border":"#454545","menu.foreground":"#cccccc","menu.separatorBackground":"#454545","notificationCenterHeader.background":"#1f1f1f","notificationCenterHeader.foreground":"#cccccc","notifications.background":"#1f1f1f","notifications.border":"#2b2b2b","notifications.foreground":"#cccccc","panel.background":"#181818","panel.border":"#2b2b2b","panelInput.border":"#2b2b2b","panelTitle.activeBorder":"#0078d4","panelTitle.activeForeground":"#cccccc","panelTitle.inactiveForeground":"#9d9d9d","peekViewEditor.background":"#1f1f1f","peekViewEditor.matchHighlightBackground":"#bb800966","peekViewResult.background":"#1f1f1f","peekViewResult.matchHighlightBackground":"#bb800966","pickerGroup.border":"#3c3c3c","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#0078d4","quickInput.background":"#222222","quickInput.foreground":"#cccccc","settings.dropdownBackground":"#313131","settings.dropdownBorder":"#3c3c3c","settings.headerForeground":"#ffffff","settings.modifiedItemIndicator":"#bb800966","sideBar.background":"#181818","sideBar.border":"#2b2b2b","sideBar.foreground":"#cccccc","sideBarSectionHeader.background":"#181818","sideBarSectionHeader.border":"#2b2b2b","sideBarSectionHeader.foreground":"#cccccc","sideBarTitle.foreground":"#cccccc","statusBar.background":"#181818","statusBar.border":"#2b2b2b","statusBar.debuggingBackground":"#0078d4","statusBar.debuggingForeground":"#ffffff","statusBar.focusBorder":"#0078d4","statusBar.foreground":"#cccccc","statusBar.noFolderBackground":"#1f1f1f","statusBarItem.focusBorder":"#0078d4","statusBarItem.prominentBackground":"#6e768166","statusBarItem.remoteBackground":"#0078d4","statusBarItem.remoteForeground":"#ffffff","tab.activeBackground":"#1f1f1f","tab.activeBorder":"#1f1f1f","tab.activeBorderTop":"#0078d4","tab.activeForeground":"#ffffff","tab.border":"#2b2b2b","tab.hoverBackground":"#1f1f1f","tab.inactiveBackground":"#181818","tab.inactiveForeground":"#9d9d9d","tab.lastPinnedBorder":"#cccccc33","tab.unfocusedActiveBorder":"#1f1f1f","tab.unfocusedActiveBorderTop":"#2b2b2b","tab.unfocusedHoverBackground":"#1f1f1f","terminal.foreground":"#cccccc","terminal.inactiveSelectionBackground":"#3a3d41","terminal.tab.activeBorder":"#0078d4","textBlockQuote.background":"#2b2b2b","textBlockQuote.border":"#616161","textCodeBlock.background":"#2b2b2b","textLink.activeForeground":"#4daafc","textLink.foreground":"#4daafc","textPreformat.background":"#3c3c3c","textPreformat.foreground":"#d0d0d0","textSeparator.foreground":"#21262d","titleBar.activeBackground":"#181818","titleBar.activeForeground":"#cccccc","titleBar.border":"#2b2b2b","titleBar.inactiveBackground":"#1f1f1f","titleBar.inactiveForeground":"#9d9d9d","welcomePage.progress.foreground":"#0078d4","welcomePage.tileBackground":"#2b2b2b","widget.border":"#313131"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569CD6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#B5CEA8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569CD6"}},{scope:"entity.name.tag.css",settings:{foreground:"#D7BA7D"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9CDCFE"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#D7BA7D"}},{scope:"invalid",settings:{foreground:"#F44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#569CD6",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#569CD6",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#B5CEA8"}},{scope:"markup.deleted",settings:{foreground:"#CE9178"}},{scope:"markup.changed",settings:{foreground:"#569CD6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796E6"}},{scope:"markup.inline.raw",settings:{foreground:"#CE9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569CD6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#CE9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#B5CEA8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9CDCFE"}},{scope:"meta.diff.header",settings:{foreground:"#569CD6"}},{scope:"storage",settings:{foreground:"#569CD6"}},{scope:"storage.type",settings:{foreground:"#569CD6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569CD6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#CE9178"}},{scope:"string.tag",settings:{foreground:"#CE9178"}},{scope:"string.value",settings:{foreground:"#CE9178"}},{scope:"string.regexp",settings:{foreground:"#D16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569CD6"}},{scope:["meta.template.expression"],settings:{foreground:"#D4D4D4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9CDCFE"}},{scope:"keyword",settings:{foreground:"#569CD6"}},{scope:"keyword.control",settings:{foreground:"#569CD6"}},{scope:"keyword.operator",settings:{foreground:"#D4D4D4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569CD6"}},{scope:"keyword.other.unit",settings:{foreground:"#B5CEA8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569CD6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9CDCFE"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#B5CEA8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#D4D4D4"}},{scope:"variable.language",settings:{foreground:"#569CD6"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#DCDCAA"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{scope:["keyword.control","source.cpp keyword.operator.new","keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#C586C0"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#9CDCFE"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#4FC1FF"}},{scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#D16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#D7BA7D"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#569CD6"}},{scope:"constant.character.escape",settings:{foreground:"#D7BA7D"}},{scope:"entity.name.label",settings:{foreground:"#C8C8C8"}},{scope:"ref.matchtext",settings:{foreground:"#FFFFFF"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};var zjt={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"activityBar.background":"#221a0f","activityBar.foreground":"#d3af86","badge.background":"#7f5d38","button.background":"#6e583b","dropdown.background":"#51412c","editor.background":"#221a0f","editor.foreground":"#d3af86","editor.lineHighlightBackground":"#5e452b","editor.selectionBackground":"#84613daa","editorCursor.foreground":"#d3af86","editorGroupHeader.tabsBackground":"#131510","editorHoverWidget.background":"#221a14","editorLineNumber.activeForeground":"#adadad","editorWhitespace.foreground":"#a57a4c","editorWidget.background":"#131510",focusBorder:"#a57a4c","input.background":"#51412c","inputOption.activeBorder":"#a57a4c","inputValidation.errorBackground":"#5f0d0d","inputValidation.errorBorder":"#9d2f23","inputValidation.infoBackground":"#2b2a42","inputValidation.infoBorder":"#1b60a5","inputValidation.warningBackground":"#51412c","list.activeSelectionBackground":"#7c5021","list.highlightForeground":"#e3b583","list.hoverBackground":"#7c502166","list.inactiveSelectionBackground":"#645342","menu.background":"#362712","menu.foreground":"#cccccc","minimap.selectionHighlight":"#84613daa","peekView.border":"#5e452b","peekViewEditor.background":"#221a14","peekViewEditor.matchHighlightBackground":"#84613daa","peekViewResult.background":"#362712","peekViewTitle.background":"#362712","pickerGroup.border":"#e3b583","pickerGroup.foreground":"#e3b583","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#7f5d38","quickInputList.focusBackground":"#7c5021aa","selection.background":"#84613daa","sideBar.background":"#362712","statusBar.background":"#423523","statusBar.debuggingBackground":"#423523","statusBar.noFolderBackground":"#423523","statusBarItem.remoteBackground":"#6e583b","tab.inactiveBackground":"#131510","tab.lastPinnedBorder":"#51412c","titleBar.activeBackground":"#423523"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D3AF86"}},{scope:"variable.parameter.function",settings:{foreground:"#D3AF86"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"#A57A4C"}},{scope:["punctuation.definition.string","punctuation.definition.variable","punctuation.definition.string","punctuation.definition.parameters","punctuation.definition.string","punctuation.definition.array"],settings:{foreground:"#D3AF86"}},{scope:"none",settings:{foreground:"#D3AF86"}},{scope:"keyword.operator",settings:{foreground:"#D3AF86"}},{scope:["keyword","keyword.control","keyword.operator.new.cpp","keyword.operator.delete.cpp","keyword.other.using","keyword.other.directive.using","keyword.other.operator"],settings:{foreground:"#98676A"}},{scope:"variable",settings:{foreground:"#DC3958"}},{scope:["entity.name.function","meta.require","support.function.any-method"],settings:{foreground:"#8AB1B0"}},{scope:["support.class","entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{foreground:"#F06431"}},{scope:"keyword.other.special-method",settings:{foreground:"#8AB1B0"}},{scope:"storage",settings:{foreground:"#98676A"}},{scope:"support.function",settings:{foreground:"#7E602C"}},{scope:["string","constant.other.symbol","entity.other.inherited-class"],settings:{foreground:"#889B4A"}},{scope:"constant.numeric",settings:{foreground:"#F79A32"}},{scope:"none",settings:{foreground:"#F79A32"}},{scope:"none",settings:{foreground:"#F79A32"}},{scope:"constant",settings:{foreground:"#F79A32"}},{scope:"entity.name.tag",settings:{foreground:"#DC3958"}},{scope:"entity.other.attribute-name",settings:{foreground:"#F79A32"}},{scope:["entity.other.attribute-name.id","punctuation.definition.entity"],settings:{foreground:"#8AB1B0"}},{scope:"meta.selector",settings:{foreground:"#98676A"}},{scope:"none",settings:{foreground:"#F79A32"}},{scope:["markup.heading","markup.heading.setext","punctuation.definition.heading","entity.name.section"],settings:{foreground:"#8AB1B0",fontStyle:"bold"}},{scope:"keyword.other.unit",settings:{foreground:"#F79A32"}},{scope:["markup.bold","punctuation.definition.bold"],settings:{foreground:"#F06431",fontStyle:"bold"}},{scope:["markup.italic","punctuation.definition.italic"],settings:{foreground:"#98676A",fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#889B4A"}},{scope:"string.other.link",settings:{foreground:"#DC3958"}},{scope:"meta.link",settings:{foreground:"#F79A32"}},{scope:"markup.list",settings:{foreground:"#DC3958"}},{scope:"markup.quote",settings:{foreground:"#F79A32"}},{scope:"meta.separator",settings:{foreground:"#D3AF86"}},{scope:"markup.inserted",settings:{foreground:"#889B4A"}},{scope:"markup.deleted",settings:{foreground:"#DC3958"}},{scope:"markup.changed",settings:{foreground:"#98676A"}},{scope:"constant.other.color",settings:{foreground:"#7E602C"}},{scope:"string.regexp",settings:{foreground:"#7E602C"}},{scope:"constant.character.escape",settings:{foreground:"#7E602C"}},{scope:["punctuation.section.embedded","variable.interpolation"],settings:{foreground:"#088649"}},{scope:"invalid",settings:{foreground:"#DC3958"}},{scope:"ref.matchtext",settings:{foreground:"#FFFFFF"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};var Yet={$schema:"vscode://schemas/color-theme",type:"light",colors:{"actionBar.toggledBackground":"#dddddd"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","variable.legacy.builtin.python"],settings:{foreground:"#292929"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#062F4A"}},{scope:"comment",settings:{foreground:"#515151"}},{scope:"constant.language",settings:{foreground:"#0F4A85"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#096D48"}},{scope:"constant.regexp",settings:{foreground:"#811F3F"}},{scope:"entity.name.tag",settings:{foreground:"#0F4A85"}},{scope:"entity.name.selector",settings:{foreground:"#0F4A85"}},{scope:"entity.other.attribute-name",settings:{foreground:"#264F78"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#0F4A85"}},{scope:"invalid",settings:{foreground:"#B5200D"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#000080",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#0F4A85",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#096D48"}},{scope:"markup.deleted",settings:{foreground:"#5A5A5A"}},{scope:"markup.changed",settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451A5"}},{scope:"markup.inline.raw",settings:{foreground:"#0F4A85"}},{scope:"punctuation.definition.tag",settings:{foreground:"#0F4A85"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0F4A85"}},{scope:"meta.preprocessor.string",settings:{foreground:"#B5200D"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#096D48"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451A5"}},{scope:"storage",settings:{foreground:"#0F4A85"}},{scope:"storage.type",settings:{foreground:"#0F4A85"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0F4A85"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#0F4A85"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0F4A85"}},{scope:"string.regexp",settings:{foreground:"#811F3F"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0F4A85"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#264F78"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451A5"}},{scope:"keyword",settings:{foreground:"#0F4A85"}},{scope:"keyword.control",settings:{foreground:"#0F4A85"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0F4A85"}},{scope:"keyword.other.unit",settings:{foreground:"#096D48"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#0F4A85"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451A5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#096D48"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0F4A85"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#5E2CBC"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#185E73"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#185E73"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#B5200D"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#02715D"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#D16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811F3F"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:"constant.character",settings:{foreground:"#0F4A85"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}},{scope:"ref.matchtext",settings:{foreground:"#000000"}}]};var Ket={$schema:"vscode://schemas/color-theme",type:"light",colors:{"actionBar.toggledBackground":"#dddddd","activityBar.activeBorder":"#005fb8","activityBar.background":"#f8f8f8","activityBar.border":"#e5e5e5","activityBar.foreground":"#1f1f1f","activityBar.inactiveForeground":"#616161","activityBarBadge.background":"#005fb8","activityBarBadge.foreground":"#ffffff","badge.background":"#cccccc","badge.foreground":"#3b3b3b","button.background":"#005fb8","button.border":"#0000001a","button.foreground":"#ffffff","button.hoverBackground":"#0258a8","button.secondaryBackground":"#e5e5e5","button.secondaryForeground":"#3b3b3b","button.secondaryHoverBackground":"#cccccc","chat.slashCommandBackground":"#d2ecff","chat.slashCommandForeground":"#306ca2","checkbox.background":"#f8f8f8","checkbox.border":"#cecece",descriptionForeground:"#3b3b3b","dropdown.background":"#ffffff","dropdown.border":"#cecece","dropdown.foreground":"#3b3b3b","dropdown.listBackground":"#ffffff","editor.background":"#ffffff","editor.foreground":"#3b3b3b","editor.inactiveSelectionBackground":"#e5ebf1","editor.selectionHighlightBackground":"#add6ff80","editorGroup.border":"#e5e5e5","editorGroupHeader.tabsBackground":"#f8f8f8","editorGroupHeader.tabsBorder":"#e5e5e5","editorGutter.addedBackground":"#2ea043","editorGutter.deletedBackground":"#f85149","editorGutter.modifiedBackground":"#005fb8","editorIndentGuide.activeBackground1":"#939393","editorIndentGuide.background1":"#d3d3d3","editorLineNumber.activeForeground":"#171184","editorLineNumber.foreground":"#6e7681","editorOverviewRuler.border":"#e5e5e5","editorSuggestWidget.background":"#f8f8f8","editorWidget.background":"#f8f8f8",errorForeground:"#f85149",focusBorder:"#005fb8",foreground:"#3b3b3b","icon.foreground":"#3b3b3b","input.background":"#ffffff","input.border":"#cecece","input.foreground":"#3b3b3b","input.placeholderForeground":"#868686","inputOption.activeBackground":"#bed6ed","inputOption.activeBorder":"#005fb8","inputOption.activeForeground":"#000000","keybindingLabel.foreground":"#3b3b3b","list.activeSelectionBackground":"#e8e8e8","list.activeSelectionForeground":"#000000","list.activeSelectionIconForeground":"#000000","list.focusAndSelectionOutline":"#005fb8","list.hoverBackground":"#f2f2f2","menu.border":"#cecece","notebook.cellBorderColor":"#e5e5e5","notebook.selectedCellBackground":"#c8ddf150","notificationCenterHeader.background":"#ffffff","notificationCenterHeader.foreground":"#3b3b3b","notifications.background":"#ffffff","notifications.border":"#e5e5e5","notifications.foreground":"#3b3b3b","panel.background":"#f8f8f8","panel.border":"#e5e5e5","panelInput.border":"#e5e5e5","panelTitle.activeBorder":"#005fb8","panelTitle.activeForeground":"#3b3b3b","panelTitle.inactiveForeground":"#3b3b3b","peekViewEditor.matchHighlightBackground":"#bb800966","peekViewResult.background":"#ffffff","peekViewResult.matchHighlightBackground":"#bb800966","pickerGroup.border":"#e5e5e5","pickerGroup.foreground":"#8b949e","ports.iconRunningProcessForeground":"#369432","progressBar.background":"#005fb8","quickInput.background":"#f8f8f8","quickInput.foreground":"#3b3b3b","searchEditor.textInputBorder":"#cecece","settings.dropdownBackground":"#ffffff","settings.dropdownBorder":"#cecece","settings.headerForeground":"#1f1f1f","settings.modifiedItemIndicator":"#bb800966","settings.numberInputBorder":"#cecece","settings.textInputBorder":"#cecece","sideBar.background":"#f8f8f8","sideBar.border":"#e5e5e5","sideBar.foreground":"#3b3b3b","sideBarSectionHeader.background":"#f8f8f8","sideBarSectionHeader.border":"#e5e5e5","sideBarSectionHeader.foreground":"#3b3b3b","sideBarTitle.foreground":"#3b3b3b","statusBar.background":"#f8f8f8","statusBar.border":"#e5e5e5","statusBar.debuggingBackground":"#fd716c","statusBar.debuggingForeground":"#000000","statusBar.focusBorder":"#005fb8","statusBar.foreground":"#3b3b3b","statusBar.noFolderBackground":"#f8f8f8","statusBarItem.errorBackground":"#c72e0f","statusBarItem.focusBorder":"#005fb8","statusBarItem.prominentBackground":"#6e768166","statusBarItem.remoteBackground":"#005fb8","statusBarItem.remoteForeground":"#ffffff","tab.activeBackground":"#ffffff","tab.activeBorder":"#f8f8f8","tab.activeBorderTop":"#005fb8","tab.activeForeground":"#3b3b3b","tab.border":"#e5e5e5","tab.hoverBackground":"#ffffff","tab.inactiveBackground":"#f8f8f8","tab.inactiveForeground":"#868686","tab.lastPinnedBorder":"#d4d4d4","tab.unfocusedActiveBorder":"#f8f8f8","tab.unfocusedActiveBorderTop":"#e5e5e5","tab.unfocusedHoverBackground":"#f8f8f8","terminal.foreground":"#3b3b3b","terminal.inactiveSelectionBackground":"#e5ebf1","terminal.tab.activeBorder":"#005fb8","terminalCursor.foreground":"#005fb8","textBlockQuote.background":"#f8f8f8","textBlockQuote.border":"#e5e5e5","textCodeBlock.background":"#f8f8f8","textLink.activeForeground":"#005fb8","textLink.foreground":"#005fb8","textPreformat.background":"#0000001f","textPreformat.foreground":"#3b3b3b","textSeparator.foreground":"#21262d","titleBar.activeBackground":"#f8f8f8","titleBar.activeForeground":"#1e1e1e","titleBar.border":"#e5e5e5","titleBar.inactiveBackground":"#f8f8f8","titleBar.inactiveForeground":"#8b949e","welcomePage.tileBackground":"#f3f3f3","widget.border":"#e5e5e5"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#000000"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000FF"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811F3F"}},{scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#E50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#CD3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#000080",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#800000",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#A31515"}},{scope:"markup.changed",settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451A5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000FF"}},{scope:"meta.preprocessor.string",settings:{foreground:"#A31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451A5"}},{scope:"storage",settings:{foreground:"#0000FF"}},{scope:"storage.type",settings:{foreground:"#0000FF"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000FF"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#A31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000FF"}},{scope:"string.regexp",settings:{foreground:"#811F3F"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000FF"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#E50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451A5"}},{scope:"keyword",settings:{foreground:"#0000FF"}},{scope:"keyword.control",settings:{foreground:"#0000FF"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000FF"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451A5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0000FF"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#795E26"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#267F99"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#267F99"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#AF00DB"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#0070C1"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#D16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811F3F"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#0000FF"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}},{scope:"ref.matchtext",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}}]};var jjt={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"activityBar.background":"#353535","activityBar.foreground":"#ffffff","activityBarBadge.background":"#3655b5","button.background":"#565656","dropdown.background":"#525252","editor.background":"#1e1e1e","editor.foreground":"#c5c8c6","editor.lineHighlightBackground":"#303030","editor.selectionBackground":"#676b7180","editor.selectionHighlightBackground":"#575b6180","editor.wordHighlightBackground":"#4747a180","editor.wordHighlightStrongBackground":"#6767ce80","editorCursor.foreground":"#c07020","editorGroupHeader.tabsBackground":"#282828","editorIndentGuide.activeBackground":"#707057","editorIndentGuide.background":"#505037","editorLineNumber.activeForeground":"#949494","editorWhitespace.foreground":"#505037",focusBorder:"#3655b5","inputOption.activeBorder":"#3655b5","list.activeSelectionBackground":"#707070","list.highlightForeground":"#e58520","list.hoverBackground":"#444444","list.inactiveSelectionBackground":"#4e4e4e","menu.background":"#272727","menu.foreground":"#cccccc","minimap.selectionHighlight":"#676b7180","panelTitle.activeForeground":"#ffffff","peekView.border":"#3655b5","pickerGroup.foreground":"#b0b0b0","ports.iconRunningProcessForeground":"#cccccc","quickInputList.focusBackground":"#707070","sideBar.background":"#272727","sideBarSectionHeader.background":"#505050","statusBar.background":"#505050","statusBar.debuggingBackground":"#505050","statusBar.noFolderBackground":"#505050","statusBarItem.remoteBackground":"#3655b5","tab.border":"#303030","tab.inactiveBackground":"#404040","tab.inactiveForeground":"#d8d8d8","tab.lastPinnedBorder":"#505050","terminal.ansiBlack":"#1e1e1e","terminal.ansiBlue":"#6a7ec8","terminal.ansiBrightBlack":"#666666","terminal.ansiBrightBlue":"#819aff","terminal.ansiBrightCyan":"#66d9ef","terminal.ansiBrightGreen":"#a6e22e","terminal.ansiBrightMagenta":"#ae81ff","terminal.ansiBrightRed":"#f92672","terminal.ansiBrightWhite":"#f8f8f2","terminal.ansiBrightYellow":"#e2e22e","terminal.ansiCyan":"#56adbc","terminal.ansiGreen":"#86b42b","terminal.ansiMagenta":"#8c6bc8","terminal.ansiRed":"#c4265e","terminal.ansiWhite":"#e3e3dd","terminal.ansiYellow":"#b3b42b","terminal.inactiveSelectionBackground":"#676b7140","titleBar.activeBackground":"#505050"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","variable.legacy.builtin.python"],settings:{foreground:"#C5C8C6"}},{scope:"comment",settings:{foreground:"#9A9B99",fontStyle:""}},{scope:"string",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"string source",settings:{foreground:"#D08442",fontStyle:""}},{scope:"constant.numeric",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"constant.language",settings:{foreground:"#408080",fontStyle:""}},{scope:"constant.character, constant.other",settings:{foreground:"#8080FF",fontStyle:""}},{scope:"keyword",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"support",settings:{foreground:"#C7444A",fontStyle:""}},{scope:"storage",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"entity.name.class, entity.name.type, entity.name.namespace, entity.name.scope-resolution",settings:{foreground:"#9B0000",fontStyle:""}},{scope:"entity.other.inherited-class",settings:{foreground:"#C7444A",fontStyle:""}},{scope:"entity.name.function",settings:{foreground:"#CE6700",fontStyle:""}},{scope:"variable.parameter",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"entity.name.tag",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"entity.other.attribute-name",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"support.function",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"keyword",settings:{foreground:"#676867",fontStyle:""}},{scope:"variable.other, variable.js, punctuation.separator.variable",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"punctuation.section.embedded -(source string source punctuation.section.embedded), meta.brace.erb.html",settings:{foreground:"#008200",fontStyle:""}},{scope:"invalid",settings:{foreground:"#FF0B00",fontStyle:""}},{scope:"variable.other.php, variable.other.normal",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"meta.function-call.object",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"variable.other.property",settings:{foreground:"#9872A2",fontStyle:""}},{scope:["keyword.control","keyword.operator.new.cpp","keyword.operator.delete.cpp","keyword.other.using","keyword.other.directive.using","keyword.other.operator"],settings:{foreground:"#9872A2",fontStyle:""}},{scope:"meta.tag",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"entity.name.tag",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"meta.doctype, meta.tag.sgml-declaration.doctype, meta.tag.sgml.doctype",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"meta.tag.inline source, text.html.php.source",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"meta.tag.other, entity.name.tag.style, entity.name.tag.script, meta.tag.block.script, source.js.embedded punctuation.definition.tag.html, source.css.embedded punctuation.definition.tag.html",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"entity.other.attribute-name, meta.tag punctuation.definition.string",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"meta.tag string -source -punctuation, text source text meta.tag string -punctuation",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"punctuation.section.embedded -(source string source punctuation.section.embedded), meta.brace.erb.html",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"meta.toc-list.id",settings:{foreground:"#9AA83A"}},{scope:"string.quoted.double.html, punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.end.html source, string.quoted.double.html source",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"punctuation.definition.tag.html, punctuation.definition.tag.begin, punctuation.definition.tag.end",settings:{foreground:"#6089B4",fontStyle:""}},{scope:"meta.selector.css entity.other.attribute-name.id",settings:{foreground:"#9872A2",fontStyle:""}},{scope:"support.type.property-name.css",settings:{foreground:"#676867",fontStyle:""}},{scope:"meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css",settings:{foreground:"#C7444A",fontStyle:""}},{scope:"variable.language.js",settings:{foreground:"#CC555A"}},{scope:["punctuation.definition.template-expression","punctuation.section.embedded.coffee"],settings:{foreground:"#D08442"}},{scope:["meta.template.expression"],settings:{foreground:"#C5C8C6"}},{scope:"meta.function-call.object.php",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"punctuation.definition.string.end.php, punctuation.definition.string.begin.php",settings:{foreground:"#9AA83A"}},{scope:"source.php.embedded.line.html",settings:{foreground:"#676867"}},{scope:"punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php",settings:{foreground:"#D08442",fontStyle:""}},{scope:"constant.other.symbol.ruby",settings:{foreground:"#9AA83A",fontStyle:""}},{scope:"variable.language.ruby",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"keyword.other.special-method.ruby",settings:{foreground:"#D9B700",fontStyle:""}},{scope:["punctuation.section.embedded.begin.ruby","punctuation.section.embedded.end.ruby"],settings:{foreground:"#D08442"}},{scope:"keyword.other.DML.sql",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"meta.diff, meta.diff.header",settings:{foreground:"#E0EDDD",fontStyle:"italic"}},{scope:"markup.deleted",settings:{foreground:"#DC322F",fontStyle:""}},{scope:"markup.changed",settings:{foreground:"#CB4B16",fontStyle:""}},{scope:"markup.inserted",settings:{foreground:"#219186"}},{scope:"markup.quote",settings:{foreground:"#9872A2"}},{scope:"markup.list",settings:{foreground:"#9AA83A"}},{scope:"markup.bold, markup.italic",settings:{foreground:"#6089B4"}},{scope:"markup.inline.raw",settings:{foreground:"#FF0080",fontStyle:""}},{scope:"markup.heading",settings:{foreground:"#D0B344"}},{scope:"markup.heading.setext",settings:{foreground:"#D0B344",fontStyle:""}},{scope:"markup.heading.markdown",settings:{fontStyle:"bold"}},{scope:"markup.quote.markdown",settings:{fontStyle:"italic"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#AE81FF"}},{scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.list.unnumbered.markdown, markup.list.numbered.markdown",settings:{}},{scope:["punctuation.definition.list.begin.markdown"],settings:{}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}},{scope:"variable.language",settings:{foreground:"#C7444A"}}]};var Gjt={$schema:"vscode://schemas/color-theme",type:"light",colors:{"activityBar.background":"#ededf5","activityBar.foreground":"#705697","activityBarBadge.background":"#705697","badge.background":"#705697aa","button.background":"#705697","dropdown.background":"#f5f5f5","editor.background":"#f5f5f5","editor.findMatchBackground":"#bf9cac","editor.findMatchHighlightBackground":"#edc9d899","editor.lineHighlightBackground":"#e4f6d4","editor.selectionBackground":"#c9d0d9","editorCursor.foreground":"#54494b","editorGroup.dropBackground":"#c9d0d988","editorIndentGuide.activeBackground":"#777777b0","editorIndentGuide.background":"#aaaaaa60","editorLineNumber.activeForeground":"#9769dc","editorLineNumber.foreground":"#6d705b","editorWhitespace.foreground":"#aaaaaa",errorForeground:"#f1897f",focusBorder:"#9769dc","inputOption.activeBorder":"#adafb7","inputValidation.errorBackground":"#ffeaea","inputValidation.errorBorder":"#f1897f","inputValidation.infoBackground":"#f2fcff","inputValidation.infoBorder":"#4ec1e5","inputValidation.warningBackground":"#fffee2","inputValidation.warningBorder":"#ffe055","list.activeSelectionBackground":"#c4d9b1","list.activeSelectionForeground":"#6c6c6c","list.highlightForeground":"#9769dc","list.hoverBackground":"#e0e0e0","list.inactiveSelectionBackground":"#d3dbcd","minimap.selectionHighlight":"#c9d0d9","panel.background":"#f5f5f5","peekView.border":"#705697","peekViewEditor.background":"#f2f8fc","peekViewEditor.matchHighlightBackground":"#c2dfe3","peekViewResult.background":"#f2f8fc","peekViewResult.matchHighlightBackground":"#93c6d6","peekViewTitle.background":"#f2f8fc","pickerGroup.border":"#749351","pickerGroup.foreground":"#a6b39b","ports.iconRunningProcessForeground":"#749351","progressBar.background":"#705697","quickInputList.focusBackground":"#cadeb9","selection.background":"#c9d0d9","sideBar.background":"#f2f2f2","sideBarSectionHeader.background":"#ede8ef","statusBar.background":"#705697","statusBar.debuggingBackground":"#705697","statusBar.noFolderBackground":"#705697","statusBarItem.remoteBackground":"#4e3c69","tab.lastPinnedBorder":"#c9d0d9","titleBar.activeBackground":"#c4b7d7","walkThrough.embeddedEditorBackground":"#00000014","welcomePage.tileBackground":"#f0f0f7"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#333333"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"#AAAAAA",fontStyle:"italic"}},{scope:"comment.block.preprocessor",settings:{foreground:"#AAAAAA",fontStyle:""}},{scope:["comment.documentation","comment.block.documentation","comment.block.documentation punctuation.definition.comment "],settings:{foreground:"#448C27"}},{scope:"invalid",settings:{foreground:"#CD3131"}},{scope:"invalid.illegal",settings:{foreground:"#660000"}},{scope:"keyword.operator",settings:{foreground:"#777777"}},{scope:["keyword","storage"],settings:{foreground:"#4B69C6"}},{scope:["storage.type","support.type"],settings:{foreground:"#7A3E9D"}},{scope:["constant.language","support.constant","variable.language"],settings:{foreground:"#9C5D27"}},{scope:["variable","support.variable"],settings:{foreground:"#7A3E9D"}},{scope:["entity.name.function","support.function"],settings:{foreground:"#AA3731",fontStyle:"bold"}},{scope:["entity.name.type","entity.name.namespace","entity.name.scope-resolution","entity.other.inherited-class","support.class"],settings:{foreground:"#7A3E9D",fontStyle:"bold"}},{scope:"entity.name.exception",settings:{foreground:"#660000"}},{scope:"entity.name.section",settings:{fontStyle:"bold"}},{scope:["constant.numeric","constant.character","constant"],settings:{foreground:"#9C5D27"}},{scope:"string",settings:{foreground:"#448C27"}},{scope:"constant.character.escape",settings:{foreground:"#777777"}},{scope:"string.regexp",settings:{foreground:"#4B69C6"}},{scope:"constant.other.symbol",settings:{foreground:"#9C5D27"}},{scope:"punctuation",settings:{foreground:"#777777"}},{scope:["meta.tag.sgml.doctype","meta.tag.sgml.doctype string","meta.tag.sgml.doctype entity.name.tag","meta.tag.sgml punctuation.definition.tag.html"],settings:{foreground:"#AAAAAA"}},{scope:["meta.tag","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html"],settings:{foreground:"#91B3E0"}},{scope:"entity.name.tag",settings:{foreground:"#4B69C6"}},{scope:["meta.tag entity.other.attribute-name","entity.other.attribute-name.html"],settings:{foreground:"#8190A0",fontStyle:"italic"}},{scope:["constant.character.entity","punctuation.definition.entity"],settings:{foreground:"#9C5D27"}},{scope:["meta.selector","meta.selector entity","meta.selector entity punctuation","entity.name.tag.css"],settings:{foreground:"#7A3E9D"}},{scope:["meta.property-name","support.type.property-name"],settings:{foreground:"#9C5D27"}},{scope:["meta.property-value","meta.property-value constant.other","support.constant.property-value"],settings:{foreground:"#448C27"}},{scope:"keyword.other.important",settings:{fontStyle:"bold"}},{scope:"markup.changed",settings:{foreground:"#000000"}},{scope:"markup.deleted",settings:{foreground:"#000000"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.error",settings:{foreground:"#660000"}},{scope:"markup.inserted",settings:{foreground:"#000000"}},{scope:"meta.link",settings:{foreground:"#4B69C6"}},{scope:["markup.output","markup.raw"],settings:{foreground:"#777777"}},{scope:"markup.prompt",settings:{foreground:"#777777"}},{scope:"markup.heading",settings:{foreground:"#AA3731"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.traceback",settings:{foreground:"#660000"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.quote",settings:{foreground:"#7A3E9D"}},{scope:"markup.list",settings:{foreground:"#4B69C6"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#448C27"}},{scope:"markup.inline.raw",settings:{foreground:"#9C5D27",fontStyle:""}},{scope:["meta.diff.range","meta.diff.index","meta.separator"],settings:{foreground:"#434343"}},{scope:["meta.diff.header.from-file","punctuation.definition.from-file.diff"],settings:{foreground:"#4B69C6"}},{scope:["meta.diff.header.to-file","punctuation.definition.to-file.diff"],settings:{foreground:"#4B69C6"}},{scope:"markup.deleted.diff",settings:{foreground:"#C73D20"}},{scope:"markup.changed.diff",settings:{foreground:"#9C5D27"}},{scope:"markup.inserted.diff",settings:{foreground:"#448C27"}},{scope:["punctuation.definition.tag.js","punctuation.definition.tag.begin.js","punctuation.definition.tag.end.js"],settings:{foreground:"#91B3E0"}},{scope:"meta.jsx.children.js",settings:{foreground:"#333333"}},{scope:"ref.matchtext",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}}]};var Hjt={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"activityBar.background":"#580000","badge.background":"#cc3333","button.background":"#883333","debugToolBar.background":"#660000","dropdown.background":"#580000","editor.background":"#390000","editor.foreground":"#f8f8f8","editor.hoverHighlightBackground":"#ff000044","editor.lineHighlightBackground":"#ff000033","editor.selectionBackground":"#750000","editor.selectionHighlightBackground":"#f5500039","editorCursor.foreground":"#970000","editorGroup.border":"#ff666633","editorGroupHeader.tabsBackground":"#330000","editorHoverWidget.background":"#300000","editorLineNumber.activeForeground":"#ffbbbb88","editorLineNumber.foreground":"#ff777788","editorLink.activeForeground":"#ffd0aa","editorSuggestWidget.background":"#300000","editorSuggestWidget.border":"#220000","editorWhitespace.foreground":"#c10000","editorWidget.background":"#300000",errorForeground:"#ffeaea","extensionButton.prominentBackground":"#cc3333","extensionButton.prominentHoverBackground":"#cc333388",focusBorder:"#ff6666aa","input.background":"#580000","inputOption.activeBorder":"#cc0000","inputValidation.infoBackground":"#550000","inputValidation.infoBorder":"#db7e58","list.activeSelectionBackground":"#880000","list.dropBackground":"#662222","list.highlightForeground":"#ff4444","list.hoverBackground":"#800000","list.inactiveSelectionBackground":"#770000","minimap.selectionHighlight":"#750000","peekView.border":"#ff000044","peekViewEditor.background":"#300000","peekViewResult.background":"#400000","peekViewTitle.background":"#550000","pickerGroup.border":"#ff000033","pickerGroup.foreground":"#cc9999","ports.iconRunningProcessForeground":"#db7e58","progressBar.background":"#cc3333","quickInputList.focusBackground":"#660000","selection.background":"#ff777788","sideBar.background":"#330000","statusBar.background":"#700000","statusBar.noFolderBackground":"#700000","statusBarItem.remoteBackground":"#cc3333","tab.activeBackground":"#490000","tab.inactiveBackground":"#300a0a","tab.lastPinnedBorder":"#ff000044","titleBar.activeBackground":"#770000","titleBar.inactiveBackground":"#772222"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#F8F8F8"}},{scope:"comment",settings:{foreground:"#E7C0C0",fontStyle:"italic"}},{scope:"constant",settings:{foreground:"#994646",fontStyle:""}},{scope:"keyword",settings:{foreground:"#F12727",fontStyle:""}},{scope:"entity",settings:{foreground:"#FEC758",fontStyle:""}},{scope:"storage",settings:{foreground:"#FF6262",fontStyle:"bold"}},{scope:"string",settings:{foreground:"#CD8D8D",fontStyle:""}},{scope:"support",settings:{foreground:"#9DF39F",fontStyle:""}},{scope:"variable",settings:{foreground:"#FB9A4B",fontStyle:"italic"}},{scope:"invalid",settings:{foreground:"#FFFFFF"}},{scope:"entity.other.inherited-class",settings:{foreground:"#AA5507",fontStyle:"underline"}},{scope:"constant.character",settings:{foreground:"#EC0D1E"}},{scope:["string constant","constant.character.escape"],settings:{foreground:"#FFE862",fontStyle:""}},{scope:"string.regexp",settings:{foreground:"#FFB454"}},{scope:"string variable",settings:{foreground:"#EDEF7D"}},{scope:"support.function",settings:{foreground:"#FFB454",fontStyle:""}},{scope:["support.constant","support.variable"],settings:{foreground:"#EB939A",fontStyle:""}},{scope:["declaration.sgml.html declaration.doctype","declaration.sgml.html declaration.doctype entity","declaration.sgml.html declaration.doctype string","declaration.xml-processing","declaration.xml-processing entity","declaration.xml-processing string"],settings:{foreground:"#73817D",fontStyle:""}},{scope:["declaration.tag","declaration.tag entity","meta.tag","meta.tag entity"],settings:{foreground:"#EC0D1E",fontStyle:""}},{scope:"meta.selector.css entity.name.tag",settings:{foreground:"#AA5507",fontStyle:""}},{scope:"meta.selector.css entity.other.attribute-name.id",settings:{foreground:"#FEC758"}},{scope:"meta.selector.css entity.other.attribute-name.class",settings:{foreground:"#41A83E",fontStyle:""}},{scope:"support.type.property-name.css",settings:{foreground:"#96DD3B",fontStyle:""}},{scope:["meta.property-group support.constant.property-value.css","meta.property-value support.constant.property-value.css"],settings:{foreground:"#FFE862",fontStyle:"italic"}},{scope:["meta.property-value support.constant.named-color.css","meta.property-value constant"],settings:{foreground:"#FFE862",fontStyle:""}},{scope:"meta.preprocessor.at-rule keyword.control.at-rule",settings:{foreground:"#FD6209"}},{scope:"meta.constructor.argument.css",settings:{foreground:"#EC9799",fontStyle:""}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#F8F8F8",fontStyle:"italic"}},{scope:"markup.deleted",settings:{foreground:"#EC9799"}},{scope:"markup.changed",settings:{foreground:"#F8F8F8"}},{scope:"markup.inserted",settings:{foreground:"#41A83E"}},{scope:"markup.quote",settings:{foreground:"#F12727"}},{scope:"markup.list",settings:{foreground:"#FF6262"}},{scope:["markup.bold","markup.italic"],settings:{foreground:"#FB9A4B"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#CD8D8D",fontStyle:""}},{scope:["markup.heading","markup.heading.setext","punctuation.definition.heading","entity.name.section"],settings:{foreground:"#FEC758",fontStyle:"bold"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded",".format.placeholder"],settings:{foreground:"#EC0D1E"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};var Wjt={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"activityBar.background":"#001733","badge.background":"#bbdaffcc","badge.foreground":"#001733","debugToolBar.background":"#001c40","dropdown.background":"#001733","editor.background":"#002451","editor.foreground":"#ffffff","editor.lineHighlightBackground":"#00346e","editor.selectionBackground":"#003f8e","editorCursor.foreground":"#ffffff","editorGroup.border":"#404f7d","editorGroup.dropBackground":"#25375daa","editorGroupHeader.tabsBackground":"#001733","editorHoverWidget.background":"#001c40","editorHoverWidget.border":"#ffffff44","editorLineNumber.activeForeground":"#949494","editorWhitespace.foreground":"#404f7d","editorWidget.background":"#001c40",errorForeground:"#a92049",focusBorder:"#bbdaff","input.background":"#001733","list.activeSelectionBackground":"#ffffff60","list.highlightForeground":"#bbdaff","list.hoverBackground":"#ffffff30","list.inactiveSelectionBackground":"#ffffff40","minimap.selectionHighlight":"#003f8e","peekViewResult.background":"#001c40","pickerGroup.foreground":"#bbdaff","ports.iconRunningProcessForeground":"#bbdaff","progressBar.background":"#bbdaffcc","quickInputList.focusBackground":"#ffffff60","sideBar.background":"#001c40","statusBar.background":"#001126","statusBar.debuggingBackground":"#001126","statusBar.noFolderBackground":"#001126","statusBarItem.remoteBackground":"#0e639c","tab.inactiveBackground":"#001c40","tab.lastPinnedBorder":"#007acc80","terminal.ansiBlack":"#111111","terminal.ansiBlue":"#bbdaff","terminal.ansiBrightBlack":"#333333","terminal.ansiBrightBlue":"#80baff","terminal.ansiBrightCyan":"#78ffff","terminal.ansiBrightGreen":"#b8f171","terminal.ansiBrightMagenta":"#d778ff","terminal.ansiBrightRed":"#ff7882","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffe580","terminal.ansiCyan":"#99ffff","terminal.ansiGreen":"#d1f1a9","terminal.ansiMagenta":"#ebbbff","terminal.ansiRed":"#ff9da4","terminal.ansiWhite":"#cccccc","terminal.ansiYellow":"#ffeead","titleBar.activeBackground":"#001126"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","meta.jsx.children","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#FFFFFF"}},{scope:"comment",settings:{foreground:"#7285B7"}},{scope:"keyword.operator.class, keyword.operator, constant.other, source.php.embedded.line",settings:{foreground:"#FFFFFF",fontStyle:""}},{scope:"variable, support.other.variable, string.other.link, string.regexp, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag, markup.deleted.git_gutter",settings:{foreground:"#FF9DA4"}},{scope:"constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit",settings:{foreground:"#FFC58F",fontStyle:""}},{scope:"entity.name.class, entity.name.type, entity.name.namespace, entity.name.scope-resolution, support.type, support.class",settings:{foreground:"#FFEEAD",fontStyle:""}},{scope:"string, constant.other.symbol, entity.other.inherited-class, markup.heading, markup.inserted.git_gutter",settings:{foreground:"#D1F1A9",fontStyle:""}},{scope:"keyword.operator, constant.other.color",settings:{foreground:"#99FFFF"}},{scope:"entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level, markup.changed.git_gutter",settings:{foreground:"#BBDAFF",fontStyle:""}},{scope:"keyword, storage, storage.type, entity.name.tag.css",settings:{foreground:"#EBBBFF",fontStyle:""}},{scope:"invalid",settings:{foreground:"#A92049",fontStyle:""}},{scope:"meta.separator",settings:{foreground:"#FFFFFF"}},{scope:"invalid.deprecated",settings:{foreground:"#CD9731",fontStyle:""}},{scope:"markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file",settings:{foreground:"#FFFFFF"}},{scope:"markup.inserted.diff, meta.diff.header.to-file",settings:{foreground:"#718C00"}},{scope:"markup.deleted.diff, meta.diff.header.from-file",settings:{foreground:"#C82829"}},{scope:"meta.diff.header.from-file, meta.diff.header.to-file",settings:{foreground:"#4271AE"}},{scope:"meta.diff.range",settings:{foreground:"#3E999F",fontStyle:"italic"}},{scope:"markup.quote",settings:{foreground:"#FFC58F"}},{scope:"markup.list",settings:{foreground:"#BBDAFF"}},{scope:"markup.bold, markup.italic",settings:{foreground:"#FFC58F"}},{scope:"markup.bold",settings:{fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#FF9DA4",fontStyle:""}},{scope:"markup.heading",settings:{fontStyle:"bold"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};var Zjt={$schema:"vscode://schemas/color-theme",type:"dark",colors:{"actionBar.toggledBackground":"#383a49","activityBarBadge.background":"#007acc","checkbox.border":"#6b6b6b","editor.background":"#1e1e1e","editor.foreground":"#d4d4d4","editor.inactiveSelectionBackground":"#3a3d41","editor.selectionHighlightBackground":"#add6ff26","editorIndentGuide.activeBackground1":"#707070","editorIndentGuide.background1":"#404040","input.placeholderForeground":"#a6a6a6","list.activeSelectionIconForeground":"#ffffff","list.dropBackground":"#383b3d","menu.background":"#252526","menu.border":"#454545","menu.foreground":"#cccccc","menu.separatorBackground":"#454545","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#00000000","sideBarSectionHeader.border":"#cccccc33","sideBarTitle.foreground":"#bbbbbb","statusBarItem.remoteBackground":"#16825d","statusBarItem.remoteForeground":"#ffffff","tab.lastPinnedBorder":"#cccccc33","terminal.inactiveSelectionBackground":"#3a3d41","widget.border":"#303031"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569CD6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#B5CEA8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569CD6"}},{scope:"entity.name.tag.css",settings:{foreground:"#D7BA7D"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9CDCFE"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#D7BA7D"}},{scope:"invalid",settings:{foreground:"#F44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#569CD6",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#569CD6",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#B5CEA8"}},{scope:"markup.deleted",settings:{foreground:"#CE9178"}},{scope:"markup.changed",settings:{foreground:"#569CD6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796E6"}},{scope:"markup.inline.raw",settings:{foreground:"#CE9178"}},{scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569CD6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#CE9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#B5CEA8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9CDCFE"}},{scope:"meta.diff.header",settings:{foreground:"#569CD6"}},{scope:"storage",settings:{foreground:"#569CD6"}},{scope:"storage.type",settings:{foreground:"#569CD6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569CD6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#CE9178"}},{scope:"string.tag",settings:{foreground:"#CE9178"}},{scope:"string.value",settings:{foreground:"#CE9178"}},{scope:"string.regexp",settings:{foreground:"#D16969"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569CD6"}},{scope:["meta.template.expression"],settings:{foreground:"#D4D4D4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9CDCFE"}},{scope:"keyword",settings:{foreground:"#569CD6"}},{scope:"keyword.control",settings:{foreground:"#569CD6"}},{scope:"keyword.operator",settings:{foreground:"#D4D4D4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569CD6"}},{scope:"keyword.other.unit",settings:{foreground:"#B5CEA8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569CD6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9CDCFE"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#B5CEA8"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#D4D4D4"}},{scope:"variable.language",settings:{foreground:"#569CD6"}},{scope:"ref.matchtext",settings:{foreground:"#FFFFFF"}},{scope:"token.info-token",settings:{foreground:"#6796E6"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#F44747"}},{scope:"token.debug-token",settings:{foreground:"#B267E6"}}]};var Vjt={$schema:"vscode://schemas/color-theme",type:"light",colors:{"actionBar.toggledBackground":"#dddddd","activityBarBadge.background":"#007acc","checkbox.border":"#919191","editor.background":"#ffffff","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#e5ebf1","editor.selectionHighlightBackground":"#add6ff80","editorIndentGuide.activeBackground1":"#939393","editorIndentGuide.background1":"#d3d3d3","editorSuggestWidget.background":"#f3f3f3","input.placeholderForeground":"#767676","list.activeSelectionIconForeground":"#ffffff","list.focusAndSelectionOutline":"#90c2f9","list.hoverBackground":"#e8e8e8","menu.border":"#d4d4d4","notebook.cellBorderColor":"#e8e8e8","notebook.selectedCellBackground":"#c8ddf150","ports.iconRunningProcessForeground":"#369432","searchEditor.textInputBorder":"#cecece","settings.numberInputBorder":"#cecece","settings.textInputBorder":"#cecece","sideBarSectionHeader.background":"#00000000","sideBarSectionHeader.border":"#61616130","sideBarTitle.foreground":"#6f6f6f","statusBarItem.errorBackground":"#c72e0f","statusBarItem.remoteBackground":"#16825d","statusBarItem.remoteForeground":"#ffffff","tab.lastPinnedBorder":"#61616130","terminal.inactiveSelectionBackground":"#e5ebf1","widget.border":"#d4d4d4"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],settings:{foreground:"#000000"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000FF"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811F3F"}},{scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#E50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#CD3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#000080",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#800000",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#A31515"}},{scope:"markup.changed",settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451A5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000FF"}},{scope:"meta.preprocessor.string",settings:{foreground:"#A31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451A5"}},{scope:"storage",settings:{foreground:"#0000FF"}},{scope:"storage.type",settings:{foreground:"#0000FF"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000FF"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#A31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000FF"}},{scope:"string.regexp",settings:{foreground:"#811F3F"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000FF"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#E50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451A5"}},{scope:"keyword",settings:{foreground:"#0000FF"}},{scope:"keyword.control",settings:{foreground:"#0000FF"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000FF"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451A5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0000FF"}},{scope:"ref.matchtext",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}}]};var Jet=class t{constructor(e,n){this.languageId=e;this.highlighter=n}static async create(e=rP.window.activeTextEditor?.document.languageId){if(!e)return new t(void 0,void 0);let n=await Akr({langs:Object.values(Sjt),loadWasm:Tjt});if(!Sjt[e]){let r=jia[e];r&&await n.loadLanguage(r)}return new t(e,n)}createSnippet(e){return!this.highlighter||!this.languageId||!this.languageSupported()?`<pre>${e}</pre>`:this.highlighter.codeToHtml(e,{lang:this.languageId,theme:qia()})}languageSupported(){return this.languageId?!!this.highlighter?.getLoadedLanguages().includes(this.languageId):!1}};function qia(){let t=rP.workspace.getConfiguration("workbench");if(t){let e=t.get("colorTheme");if(e&&zia(e))return Yjt[e];let n=rP.window.activeColorTheme;return $ia[n.kind]}else return Yjt["Default Dark Modern"]}var $ia={[rP.ColorThemeKind.Dark]:Vet,[rP.ColorThemeKind.Light]:Ket,[rP.ColorThemeKind.HighContrast]:Zet,[rP.ColorThemeKind.HighContrastLight]:Yet},Yjt={Abyss:$jt,"Dark High Contrast":Zet,"Light High Constrast":Yet,"Default Dark Modern":Vet,"Kimbie Dark":zjt,"Default Light Modern":Ket,"Monokai Dimmed":jjt,"Quiet Light":Gjt,Red:Hjt,"Tomorrow Night Blue":Wjt,"Visual Studio Dark":Zjt,"Visual Studio Light":Vjt,"Default Dark+":Fjt,"Default Light+":Qjt,Monokai:Ojt,"Solarized Dark":Ujt,"Solarized Light":qjt};function zia(t){return t in Yjt}var jia={"cuda-cpp":Bjt,javascriptreact:Rjt,markdown_latex_combined:Djt,"markdown-math":Pjt,restructuredtext:Njt,"search-result":Ljt,typescriptreact:Mjt};function p2r(){let t="",e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let n=0;n<32;n++)t+=e.charAt(Math.floor(Math.random()*e.length));return t}function m2r(t,e,n="s"){return`${t} ${e}${t!==1?n:""}`}var Wde=class{constructor(e,n,r,o,a){this.webviewPanel=e;this.suggestionsPanelManager=r;this.config=o;this.contextService=a;this._disposables=[];this.#e=[];this.#t=[];this.#r=0;this._isDisposed=!1;this.#i=new hC.CancellationTokenSource;this._onDidDispose=new hC.EventEmitter;this.onDidDispose=this._onDidDispose.event;this.render=yIr(10,()=>this.renderSolutions());e.onDidDispose(()=>this._dispose(),null,this._disposables),e.webview.html=this._getWebviewContent(),this.#o=n.uri,this.#n=Jet.create(n.languageId),hC.workspace.onDidChangeConfiguration(s=>{if(s.affectsConfiguration("workbench.colorTheme"))return this.render()}),e.webview.onDidReceiveMessage(async s=>{if(await this.handleCustomMessage(s)!==!0)switch(s.command){case"focusSolution":this._focusedSolution=this.#e[s.solutionIndex];return;case"webviewReady":this.postMessage({command:"updateConfig",config:{renderingMode:this.config.renderingMode,shuffleSolutions:this.config.shuffleSolutions}});return}},void 0),e.onDidChangeViewState(s=>{s.webviewPanel?.visible&&(this.suggestionsPanelManager.activeWebviewPanel=this)})}#e;#t;#r;#n;#o;#i;get cancellationToken(){return this.#i.token}async handleCustomMessage(e){return Promise.resolve(!1)}_buildExtensionUri(...e){let n=hC.Uri.joinPath(this.contextService.extensionUri,...e);return this.webviewPanel.webview.asWebviewUri(n)}_getWebviewContent(){let e=p2r(),n=this._buildExtensionUri("dist",this.config.webviewScriptName);return` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="Content-Security-Policy" content="default-src 'none'; font-src ${this.webviewPanel.webview.cspSource}; style-src 'unsafe-inline' ${this.webviewPanel.webview.cspSource}; script-src 'nonce-${e}';" /> <title>${this.config.panelTitle}

${this.config.panelTitle}

`}onWorkDone({percentage:e}){this.#r=e,this.render()}onItem(e){this.config.renderingMode==="batch"?this.#t.push(e):(this.#e.push(e),this.render())}clearSolutions(){this.#i.cancel(),this.#i=new hC.CancellationTokenSource,this.#e=[],this.#t=[],this._focusedSolution=void 0,this.#r=0,this.render()}onFinished(){this.#r=100,this.#t.length>0&&(this.#e.push(...this.#t),this.config.shuffleSolutions&&(this.#e=this.#e.sort(()=>Math.random()-.5)),this.#t=[]),this.render()}async acceptSolution(e,n=!0){if(this._isDisposed===!1&&e?.range){let r=new hC.WorkspaceEdit;r.replace(this.#o,e.range,e.insertText),await hC.workspace.applyEdit(r),this.#i.cancel(),n&&await hC.commands.executeCommand("workbench.action.closeActiveEditor"),await e.postInsertionCallback()}}items(){return this.#e}async acceptFocusedSolution(){let e=this._focusedSolution;if(e)return this.acceptSolution(e)}async renderSolutions(){let e=await this.#n,n=this.#e.map(o=>{let s=o.copilotAnnotations?.ip_code_citations?.[0]?.details.citations,c;if(s&&s.length>0){let u=new Set(s.map(m=>m.license));u.has("NOASSERTION")&&(u.delete("NOASSERTION"),u.add("unknown"));let d=Array.from(u).sort(),p=d.length===1?d[0]:`[${d.join(", ")}]`;c={message:`Similar code with ${m2r(d.length,"license type")} ${p} detected.`,url:s[0].url}}let l={htmlSnippet:e.createSnippet(o.insertText.trim()),citation:c};return this.renderSolutionContent(o,l)}),r=this.createSolutionsMessage(n,this.#r);await this.postMessage(r)}postMessage(e){if(this._isDisposed===!1)return this.webviewPanel.webview.postMessage(e)}_dispose(){for(this._isDisposed=!0,this._onDidDispose.fire(),this.suggestionsPanelManager.decrementPanelCount();this._disposables.length;){let e=this._disposables.pop();e&&e.dispose()}this._onDidDispose.dispose()}};Wde=S([b(4,ut)],Wde);var Xet={panelTitle:"GitHub Copilot Suggestions",webviewId:"GitHub Copilot Suggestions",webviewScriptName:"suggestionsPanelWebview.js",contextVariable:tJe,commands:{accept:q0r,navigatePrevious:$0r,navigateNext:z0r},renderingMode:"streaming",shuffleSolutions:!1};var Zde=class extends Wde{constructor(e,n,r,o){super(e,n,r,Xet,o)}renderSolutionContent(e,n){return n}createSolutionsMessage(e,n){return{command:"solutionsUpdated",solutions:e,percentage:n}}async handleCustomMessage(e){switch(e.command){case"acceptSolution":{let n=this.items()[e.solutionIndex];return await this.acceptSolution(n,!0),Promise.resolve(!0)}default:return Promise.resolve(!1)}}};Zde=S([b(3,ut)],Zde);var Vde=class extends Sue{constructor(e,n){super(Xet,e,n)}createListDocument(e,n,r){return this._instantiationService.createInstance(Nde,e,n,r,10)}createSuggestionsPanel(e,n,r){return this._instantiationService.createInstance(Zde,e,n,r)}};Vde=S([b(0,j),b(1,ut)],Vde);function A2r(t){let e=t.get(j),n=e.createInstance(Vde),r=new it;function o(a){return rqt(t,a,async()=>{await oRe.commands.executeCommand("editor.action.inlineSuggest.hide"),await e.invokeFunction(Gia,n)})}return r.add(o(U0r)),r.add(o(YKe)),r.add(n.registerCommands()),r}function Gia(t,e){let n=oRe.window.activeTextEditor;if(!n)return;let r=xZ(n.document);if(!r)return;let{line:o,character:a}=n.selection.active;return e.renderPanel(n.document,{line:o,character:a},r),oRe.commands.executeCommand("setContext",tJe,!0)}Je();var kF=me("ICompletionsExtensionStatus"),ett=class{constructor(e="Normal",n,r=!1,o){this.kind=e;this.message=n;this.busy=r;this.command=o}};var iU=require("vscode"),Kjt=class{async readFileString(e){return typeof e!="string"&&(e=e.uri),new TextDecoder().decode(await iU.workspace.fs.readFile(iU.Uri.parse(e,!0)))}async stat(e){return typeof e!="string"&&(e=e.uri),await iU.workspace.fs.stat(iU.Uri.parse(e,!0))}async readDirectory(e){return typeof e!="string"&&(e=e.uri),await iU.workspace.fs.readDirectory(iU.Uri.parse(e,!0))}},f2r=new Kjt;var Ek=require("vscode");Be();Je();var Jjt=class{constructor(){this.observers=new Set}subscribe(e){return this.observers.add(e),()=>this.observers.delete(e)}next(e){for(let n of this.observers)n.next(e)}error(e){for(let n of this.observers)n.error?.(e)}complete(){for(let e of this.observers)e.complete?.()}},ttt=class extends Jjt{subscribe(e){let n=super.subscribe(e);return this._value!==void 0&&e.next(this._value),n}next(e){this._value=e,super.next(e)}};var Kde=me("ICompletionsAsyncManagerService"),Yde=class{constructor(e,n){this.featuresService=e;this.logTarget=n;this.#e=new el("AsyncCompletionManager");this.requests=new wg(100);this.mostRecentRequestId=""}#e;clear(){this.requests.clear()}shouldWaitForAsyncCompletions(e,n){for(let[r,o]of this.requests)if(Xjt(e,n,o))return!0;return!1}updateCompletion(e,n){let r=this.requests.get(e);r!==void 0&&(r.partialCompletionText=n,r.subject.next(r))}queueCompletionRequest(e,n,r,o,a){this.#e.debug(this.logTarget,`[${e}] Queueing async completion request:`,n.substring(n.lastIndexOf(` `)+1));let s=new ttt;return this.requests.set(e,{state:2,cancellationTokenSource:o,headerRequestId:e,prefix:n,prompt:r,subject:s}),a.then(c=>{if(this.requests.delete(e),c.type!=="success"){this.#e.debug(this.logTarget,`[${e}] Request failed with`,c.reason),s.error(c.reason);return}let l={cancellationTokenSource:o,headerRequestId:e,prefix:n,prompt:r,subject:s,choice:c.value[0],result:c,state:0,allChoicesPromise:c.value[1]};this.requests.set(e,l),s.next(l),s.complete()}).catch(c=>{this.#e.error(this.logTarget,`[${e}] Request errored with`,c),this.requests.delete(e),s.error(c)})}getFirstMatchingRequestWithTimeout(e,n,r,o,a){let s=this.featuresService.asyncCompletionsTimeout(a);return s<0?(this.#e.debug(this.logTarget,`[${e}] Waiting for completions without timeout`),this.getFirstMatchingRequest(e,n,r,o)):(this.#e.debug(this.logTarget,`[${e}] Waiting for completions with timeout of ${s}ms`),Promise.race([this.getFirstMatchingRequest(e,n,r,o),new Promise(c=>setTimeout(()=>c(null),s))]).then(c=>{if(c===null){this.#e.debug(this.logTarget,`[${e}] Timed out waiting for completion`);return}return c}))}async getFirstMatchingRequest(e,n,r,o){o||(this.mostRecentRequestId=e);let a=!1,s=new Rue,c=new Map,l=d=>()=>{let p=c.get(d);p!==void 0&&(p(),c.delete(d),!a&&c.size===0&&(a=!0,this.#e.debug(this.logTarget,`[${e}] No matching completions found`),s.resolve(void 0)))},u=d=>{if(Xjt(n,r,d)){if(d.state===0){let p=n.substring(d.prefix.length),{completionText:m}=d.choice;if(!m.startsWith(p)||m.length<=p.length){l(d.headerRequestId)();return}m=m.substring(p.length),d.choice.telemetryData.measurements.foundOffset=p.length,this.#e.debug(this.logTarget,`[${e}] Found completion at offset ${p.length}: ${JSON.stringify(m)}`),s.resolve([{...d.choice,completionText:m},d.allChoicesPromise]),a=!0}}else this.cancelRequest(e,d),l(d.headerRequestId)()};for(let[d,p]of this.requests)Xjt(n,r,p)?c.set(d,p.subject.subscribe({next:u,error:l(d),complete:l(d)})):this.cancelRequest(e,p);return s.promise.finally(()=>{for(let d of c.values())d()})}cancelRequest(e,n){e===this.mostRecentRequestId&&n.state!==0&&(this.#e.debug(this.logTarget,`[${e}] Cancelling request: ${n.headerRequestId}`),n.cancellationTokenSource.cancel(),this.requests.delete(n.headerRequestId))}};Yde=S([b(0,La),b(1,Ir)],Yde);function Xjt(t,e,n){if(n.prompt.suffix!==e.suffix||!t.startsWith(n.prefix))return!1;let r=t.substring(n.prefix.length);return n.state===0?n.choice.completionText.startsWith(r)&&n.choice.completionText.trimEnd().length>r.length:n.partialCompletionText===void 0?!0:n.partialCompletionText.startsWith(r)}Je();var sRe=class{constructor(e){this.maxSize=e;this.root=new aRe;this.leafNodes=new Set}set(e,n){let{node:r,remainingKey:o}=this.findClosestNode(e);if(o.length>0){for(let[a,s]of r.children)if(a.startsWith(o)){let c=a.slice(0,o.length),l=new aRe;r.removeChild(a),r.addChild(c,l),l.addChild(a.slice(c.length),s),r=l,o=o.slice(c.length);break}if(o.length>0){let a=new aRe;r.addChild(o,a),r=a}}r.value=n,this.leafNodes.add(r),this.leafNodes.size>this.maxSize&&this.evictLeastRecentlyUsed()}findAll(e){return this.findClosestNode(e).stack.map(({node:n,remainingKey:r})=>n.value!==void 0?{remainingKey:r,value:n.value}:void 0).filter(n=>n!==void 0)}delete(e){let{node:n,remainingKey:r}=this.findClosestNode(e);r.length>0||this.deleteNode(n)}findClosestNode(e){let n=!0,r=this.root,o=[{node:r,remainingKey:e}];for(;e.length>0&&n;){n=!1;for(let[a,s]of r.children)if(e.startsWith(a)){e=e.slice(a.length),o.unshift({node:s,remainingKey:e}),r=s,n=!0;break}}return{node:r,remainingKey:e,stack:o}}deleteNode(e){if(e.value=void 0,this.leafNodes.delete(e),e.parent===void 0||e.childCount>1)return;let{node:n,edge:r}=e.parent;if(e.childCount===1){let[a,s]=Array.from(e.children)[0];e.removeChild(a),n.removeChild(r),n.addChild(r+a,s);return}if(n.removeChild(r),n.parent===void 0)return;let o=n.parent;if(n.value===void 0&&n.childCount===1){let[a,s]=Array.from(n.children)[0],c=o.edge+a;n.removeChild(a),o.node.removeChild(o.edge),o.node.addChild(c,s)}}evictLeastRecentlyUsed(){let e=this.findLeastRecentlyUsed();e&&this.deleteNode(e)}findLeastRecentlyUsed(){let e;for(let n of this.leafNodes)(e===void 0||n.touchedo.content.filter(a=>a.suffix===n&&a.choice.completionText.startsWith(r)&&a.choice.completionText.length>r.length).map(a=>({...a.choice,completionText:a.choice.completionText.slice(r.length),telemetryData:a.choice.telemetryData.extendedBy({},{foundOffset:r.length})})))}append(e,n,r){let o=this.cache.findAll(e);if(o.length>0&&o[0].remainingKey===""){let a=o[0].value.content;this.cache.set(e,{content:[...a,{suffix:n,choice:r}]})}else this.cache.set(e,{content:[{suffix:n,choice:r}]})}clear(){this.cache=new sRe(100)}};var g2r=new el("modelPicker"),Hia=[{label:"",kind:Ek.QuickPickItemKind.Separator,modelId:"separator",type:"separator",alwaysShow:!0},{modelId:"learn-more",label:"Learn more $(link-external)",description:"",alwaysShow:!0,type:"learn-more"}],Jde=class{constructor(e,n,r,o,a){this._instantiationService=e;this._asyncCompletionManager=n;this._modelManager=r;this._logTarget=o;this._completionsCache=a;this.MODELS_INFO_URL="https://aka.ms/CopilotCompletionsModelPickerLearnMore";this._updateModelPickerContext(),this._modelManager.onDidChangeModels(()=>this._updateModelPickerContext())}get models(){return this._modelManager.getGenericCompletionModels()}hasMultipleModels(){return this.models.length>1}getDefaultModelId(){return this._modelManager.getDefaultModelId()}_updateModelPickerContext(){Ek.commands.executeCommand("setContext",K0r,this.hasMultipleModels())}async setUserSelectedCompletionModel(e){return Ek.workspace.getConfiguration(nb).update(Er.UserSelectedCompletionModel,e??"",!0)}async handleModelSelection(e){let n=e.activeItems[0];if(n!==void 0){if(e.hide(),n.type==="learn-more"){await Ek.env.openExternal(Ek.Uri.parse(this.MODELS_INFO_URL)),this._instantiationService.invokeFunction(hi,"modelPicker.learnMoreClicked");return}await this.selectModel(n)}}async selectModel(e){this._instantiationService.invokeFunction(PTe)!==e.modelId&&(this._completionsCache.clear(),this._asyncCompletionManager.clear());let r=e.modelId===this.getDefaultModelId()?null:e.modelId;await this.setUserSelectedCompletionModel(r),r===null?g2r.info(this._logTarget,"User selected default model; setting null"):g2r.info(this._logTarget,`Selected model: ${e.modelId}`),this._instantiationService.invokeFunction(hi,"modelPicker.modelSelected",us.createAndMarkAsIssued({engineName:r??"default"}))}modelsForModelPicker(){let e=this._instantiationService.invokeFunction(PTe),n=this.models.map(r=>({modelId:r.modelId,label:`${r.label}${r.preview?" (Preview)":""}`,description:`(${r.modelId})`,alwaysShow:r.modelId===this.getDefaultModelId(),type:"model"}));return[e,n]}showModelPicker(){let[e,n]=this.modelsForModelPicker(),r=Ek.window.createQuickPick();r.title="Change Completions Model",r.items=[...n,...Hia],r.onDidAccept(()=>this.handleModelSelection(r));let o=e??this.getDefaultModelId(),a=r.items.find(s=>s.modelId===o);return a&&(r.activeItems=[a]),r.show(),r}};Jde=S([b(0,j),b(1,Kde),b(2,P6),b(3,Ir),b(4,iP)],Jde);var Py=require("vscode");Be();var Xde=class extends iJe{constructor(n,r,o){super();this.extensionStatusService=r;this.instantiationService=o;this.showingMessage=!1;this.disposables=[];this.item=Py.languages.createLanguageStatusItem(n,"*"),this.disposables.push(this.item),this.updateStatusBarIndicator(),this.disposables.push(Py.window.onDidChangeActiveTextEditor(()=>{this.updateStatusBarIndicator()})),this.disposables.push(Py.workspace.onDidCloseTextDocument(()=>{this.updateStatusBarIndicator()})),this.disposables.push(Py.workspace.onDidOpenTextDocument(()=>{this.updateStatusBarIndicator()})),this.disposables.push(Py.workspace.onDidChangeConfiguration(a=>{a.affectsConfiguration(nb)&&this.updateStatusBarIndicator()}))}didChange(n){this.extensionStatusService.kind=n.kind,this.extensionStatusService.message=n.message,this.extensionStatusService.command=n.command,this.updateStatusBarIndicator()}checkEnabledForLanguage(){return this.instantiationService.invokeFunction(S6)??!0}updateStatusBarIndicator(){if(this.isDisposed())return;Py.commands.executeCommand("setContext","github.copilot.completions.quotaExceeded",this.extensionStatusService.command?.command===$qt);let n=this.checkEnabledForLanguage();switch(Py.commands.executeCommand("setContext","github.copilot.completions.enabled",n),this.item.command={command:KKe,title:"View Details"},this.extensionStatusService.kind){case"Error":this.item.severity=Py.LanguageStatusSeverity.Error,this.item.text="$(copilot-warning) Completions",this.item.detail="Error";break;case"Warning":this.item.severity=Py.LanguageStatusSeverity.Warning,this.item.text="$(copilot-warning) Completions",this.item.detail="Temporary issues";break;case"Inactive":this.item.severity=Py.LanguageStatusSeverity.Information,this.item.text="$(copilot-blocked) Completions",this.item.detail="Inactive";break;case"Normal":this.item.severity=Py.LanguageStatusSeverity.Information,vue()?n?(this.item.text="$(copilot) Completions",this.item.detail=""):(this.item.text="$(copilot-not-connected) Completions",this.item.detail="Disabled"):(this.item.text="$(copilot-not-connected) Completions",this.item.detail="VS Code inline suggestions disabled"),this.item.command.title="Open Menu";break}this.item.accessibilityInformation={label:"Inline Suggestions"},this.extensionStatusService.command&&(this.item.command=this.extensionStatusService.command,this.item.detail=this.extensionStatusService.message)}dispose(){for(let n of this.disposables)n.dispose();this.disposables=[]}isDisposed(){return this.disposables.length===0}};Xde=S([b(1,kF),b(2,j)],Xde);var yu=require("vscode");Of();Be();var epe=class{constructor(e,n,r){this.instantiationService=e;this.extensionStatusService=n;this.modelManagerService=r}showStatusMenu(){let e=yu.window.createQuickPick();e.placeholder=yu.l10n.t("Select an option"),e.title=yu.l10n.t("Configure Inline Suggestions"),e.items=this.collectQuickPickItems();let n=yu.Disposable.from(e.onDidAccept(()=>this.handleItemSelection(e)),e.onDidHide(()=>{n.dispose(),e.dispose()}));return e.show(),e}async handleItemSelection(e){let n=e.selectedItems[0];if(n!==void 0)if("command"in n){let r=n;await yu.commands.executeCommand(r.command,...r.commandArgs),e.hide()}else throw new Error("Unexpected Copilot quick picker selection")}collectQuickPickItems(){return[this.newStatusItem(),this.newSeparator(),...this.collectLanguageSpecificItems(),this.newKeyboardItem(),this.newSettingsItem(),...this.collectDiagnosticsItems(),this.newOpenLogsItem(),this.newSeparator(),this.newDocsItem()]}collectLanguageSpecificItems(){let e=[];if(!this.hasActiveStatus())return e;let n=yu.window.activeTextEditor;return!$J&&n&&e.push(this.newPanelItem()),!$J&&this.hasMultipleModels()&&e.push(this.newChangeModelItem()),n&&e.push(...this.newEnableLanguageItem()),e.length&&e.push(this.newSeparator()),e}hasActiveStatus(){return["Normal"].includes(this.extensionStatusService.kind)}hasMultipleModels(){return this.modelManagerService.getGenericCompletionModels().length>1}isCompletionEnabled(){return vue()&&this.instantiationService.invokeFunction(S6)}newEnableLanguageItem(){let e=this.isCompletionEnabled();return e?[this.newCommandItem(yu.l10n.t("Disable Inline Suggestions"),XKe)]:e===!1?[this.newCommandItem(yu.l10n.t("Enable Inline Suggestions"),JKe)]:[]}newStatusItem(){let e,n="$(copilot)";switch(this.extensionStatusService.kind){case"Normal":e=yu.l10n.t("Ready"),vue()===!1?e+=` (${yu.l10n.t("VS Code inline suggestions disabled")})`:this.instantiationService.invokeFunction(S6)===!1&&(e+=` (${yu.l10n.t("Disabled")})`);break;case"Inactive":e=this.extensionStatusService.message||yu.l10n.t("Copilot is currently inactive"),n="$(copilot-blocked)";break;default:e=this.extensionStatusService.message||yu.l10n.t("Copilot has encountered an error"),n="$(copilot-not-connected)";break}return this.newCommandItem(`${n} ${yu.l10n.t("Status")}: ${e}`,ETe)}newOpenLogsItem(){return this.newCommandItem(yu.l10n.t("Open Logs..."),ETe)}collectDiagnosticsItems(){return $J?[]:[this.newCommandItem(yu.l10n.t("Show Diagnostics..."),Y0r)]}newKeyboardItem(){return this.newCommandItem(yu.l10n.t("$(keyboard) Edit Keyboard Shortcuts..."),"workbench.action.openGlobalKeybindings",["copilot"])}newSettingsItem(){return this.newCommandItem(yu.l10n.t("$(settings-gear) Edit Settings..."),"workbench.action.openSettings",["GitHub Copilot"])}newPanelItem(){return this.newCommandItem(yu.l10n.t("Open Completions Panel..."),YKe)}newChangeModelItem(){return this.newCommandItem(yu.l10n.t("Change Completions Model..."),nJe)}newDocsItem(){return this.newCommandItem(yu.l10n.t("$(remote-explorer-documentation) View Copilot Documentation..."),eJe)}newCommandItem(e,n,r){return new eGt(e,n,r||[])}newSeparator(){return{label:"",kind:yu.QuickPickItemKind.Separator}}};epe=S([b(0,j),b(1,kF),b(2,P6)],epe);var eGt=class{constructor(e,n,r){this.label=e;this.command=n;this.commandArgs=r}};var q2r=require("path"),gV=require("vscode");Xa();Ue();Cp();Be();dn();Ue();es();var tGt=class extends fe{constructor(n,r,o,a,s,c,l){super();this._gitExtensionService=n;this._notebookService=r;this._workspaceService=o;this._providerId=a;this._doc=s;this._debugRecorder=c;this._requestBookmark=l;this._isFromCache=!1;this._hasNextEdit=!1;this._wasPreviouslyRejected=!1;this._status="new";this._startTime=Date.now(),this._doc&&(this.editCollectingInfo={originalDoc:this._doc.value.get(),originalSelection:this._doc.selection.get(),originalSelectionLine:this._doc.primarySelectionLine.get(),edits:[]},this._store.add(kA(this,{value:this._doc.value},u=>{let d=new Date;u.value.changes.forEach(p=>{this.editCollectingInfo?.edits.push({time:d,edit:p})})})))}build(n){let r,o,a,s,c,l=!1,u,d,p;if(this._request){let f=this._request.getActiveDocument();r=this._request.documents.length,o=this._request.documents.reduce((h,y)=>h+y.recentEdits.edits.length,0),a=f.recentEdits.edits.length,s=f.languageId,c=f.documentAfterEditsLines.length,l=f.id.toUri().scheme===Rt.vscodeNotebookCell||this._notebookService?.hasSupportedNotebooks(f.id.toUri())||!1,u=this._workspaceService===void 0?void 0:Jo(f.id.toUri(),this._workspaceService.notebookDocuments)?.notebookType;let g=this._gitExtensionService?.getExtensionApi();if(g){let h=g.getRepository(Qn.parse(f.id.uri));if(h){let _=h.state.HEAD?.upstream?.remote,w=h.state.remotes.find(x=>x.name===_);w?.fetchUrl&&(d=w.pushUrl||w.fetchUrl)}let y=new Set,v=[...new Set(this._request.documents.map(_=>g.getRepository(Qn.parse(_.id.uri))).filter(Boolean))];for(let _ of v){let w=_?.state.HEAD?.upstream?.remote,x=_?.state.remotes.find(E=>E.name===w);x?.fetchUrl&&y.add(x.fetchUrl),x?.pushUrl&&y.add(x.pushUrl)}p=[...y]}}let m;if(n&&this.editCollectingInfo!==void 0){let f=this.editCollectingInfo.originalDoc.value,g;if(this._debugRecorder&&this._requestBookmark){let h=this._debugRecorder.getRecentLog(),y=JSON.stringify(h)?.length||0;g={entries:y>200*1024?void 0:h,entriesSize:y,requestTime:this._requestBookmark.timeMs}}m={text:f.length>200*1024?void 0:f,textLength:f.length,selection:this.editCollectingInfo.originalSelection.map(h=>({start:h.start,endExclusive:h.endExclusive})),edits:this.editCollectingInfo.edits.map(h=>h.edit.replacements.map(y=>({time:h.time.toISOString(),start:y.replaceRange.start,endExclusive:y.replaceRange.endExclusive,newText:y.newText}))).flat(),tags:[],recording:g}}let A=this._statelessNextEditTelemetry?.fetchStartedAt===void 0?void 0:this._statelessNextEditTelemetry.fetchStartedAt-this._startTime;return{providerId:this._providerId,headerRequestId:this._headerRequestId,nextEditProviderDuration:this._duration,isFromCache:this._isFromCache,reusedRequest:this._reusedRequest,subsequentEditOrder:this._subsequentEditOrder,documentsCount:r,editsCount:o,activeDocumentEditsCount:a,activeDocumentLanguageId:s,activeDocumentOriginalLineCount:c,fetchStartedAfterMs:A,hasNextEdit:this._hasNextEdit,wasPreviouslyRejected:this._wasPreviouslyRejected,isNotebook:l,notebookType:u,status:this._status,nextEditProviderError:this._nextEditProviderError,alternativeAction:m,...this._statelessNextEditTelemetry,activeDocumentRepository:d,repositoryUrls:p,nesConfigs:this._nesConfigs}}get originalSelectionLine(){return this.editCollectingInfo?.originalSelectionLine}setNESConfigs(n){return this._nesConfigs=n,this}setHeaderRequestId(n){return this._headerRequestId=n,this}setIsFromCache(){return this._isFromCache=!0,this}setReusedRequest(n){return this._reusedRequest=n,this}setSubsequentEditOrder(n){return this._subsequentEditOrder=n,this}setRequest(n){return this._request=n,this}setStatelessNextEditTelemetry(n){return this._statelessNextEditTelemetry=n,this}setHasNextEdit(n){return this._hasNextEdit=n,this}setWasPreviouslyRejected(){return this._wasPreviouslyRejected=!0,this}markEndTime(){return this._duration=Date.now()-this._startTime,this}setStatus(n){return this._status=n,this}setNextEditProviderError(n){return this._nextEditProviderError=n,this}},cRe=class{constructor(){this._droppedReasons=[]}build(){let e=this._droppedReasons.length>0?JSON.stringify(this._droppedReasons):void 0;return{diagnosticType:this._type,diagnosticDroppedReasons:e,diagnosticAlternativeImportsCount:this._diagnosticRunTelemetry?.alternativeImportsCount,diagnosticHasExistingSameFileImport:this._diagnosticRunTelemetry?.hasExistingSameFileImport,diagnosticIsLocalImport:this._diagnosticRunTelemetry?.isLocalImport,diagnosticDistanceToUnknownDiagnostic:this._diagnosticRunTelemetry?.distanceToUnknownDiagnostic,diagnosticDistanceToAlternativeDiagnostic:this._diagnosticRunTelemetry?.distanceToAlternativeDiagnostic,diagnosticHasAlternativeDiagnosticForSameRange:this._diagnosticRunTelemetry?.hasAlternativeDiagnosticForSameRange}}populate(e){this._droppedReasons.forEach(n=>e.addDroppedReason(n)),this._type&&e.setType(this._type),this._diagnosticRunTelemetry&&e.setDiagnosticRunTelemetry(this._diagnosticRunTelemetry)}setType(e){return this._type=e,this}addDroppedReason(e){return this._droppedReasons.push(e),this}setDiagnosticRunTelemetry(e){return this._diagnosticRunTelemetry=e,this}},tpe=class t extends fe{constructor(n,r,o,a,s,c,l){super();this.doc=s;this._isSent=!1;this._isShown=!1;this._acceptance="notAccepted";this._disposalReason=void 0;this._supersededByOpportunityId=void 0;this._userTypingDisagreed=void 0;this._notebookCellMarkerCount=0;this._notebookCellMarkerIndex=-1;this._isNESForAnotherDoc=!1;this._hadLlmNES=!1;this._hadDiagnosticsNES=!1;this._configIsDiagnosticsNESEnabled=!1;this._isNaturalLanguageDominated=!1;let u=t.providerIdToReqN.get(a)||0;this._requestN=++u,t.providerIdToReqN.set(a,u),this._nesBuilder=this._register(new tGt(n,r,o,a,s,c,l)),this._diagnosticsBuilder=new cRe}static{this.providerIdToReqN=new Map}get isSent(){return this._isSent}markAsSent(){this._isSent=!0}build(n){let r=this._nesBuilder.build(n),o=this._diagnosticsBuilder.build();return{...r,...o,opportunityId:this._opportunityId||"",requestN:this._requestN,isShown:this._isShown,acceptance:this._acceptance,disposalReason:this._disposalReason,supersededByOpportunityId:this._supersededByOpportunityId,pickedNES:this._nesTypePicked,hadLlmNES:this._hadLlmNES,isMultilineEdit:this._isMultilineEdit,isEolDifferent:this._isEolDifferent,isActiveDocument:this._isActiveDocument,isNextEditorVisible:this._isNextEditorVisible,isNextEditorRangeVisible:this._isNextEditorRangeVisible,isNESForAnotherDoc:this._isNESForAnotherDoc,notebookId:this._notebookId,notebookCellLines:this._notebookCellLines,notebookCellMarkerCount:this._notebookCellMarkerCount,notebookCellMarkerIndex:this._notebookCellMarkerIndex,hadDiagnosticsNES:this._hadDiagnosticsNES,configIsDiagnosticsNESEnabled:this._configIsDiagnosticsNESEnabled,isNaturalLanguageDominated:this._isNaturalLanguageDominated,postProcessingOutcome:this._postProcessingOutcome,userTypingDisagreed:this._userTypingDisagreed}}get nesBuilder(){return this._nesBuilder}get diagnosticsBuilder(){return this._diagnosticsBuilder}setOpportunityId(n){return this._opportunityId=n,this}setAsShown(){return this._isShown=!0,this}setAcceptance(n){return this._acceptance=n,this}setDisposalReason(n){return this._disposalReason=n,this}setSupersededBy(n){return this._supersededByOpportunityId=n,this}setUserTypingDisagreed(n){return this._userTypingDisagreed=n,this}setPickedNESType(n){return this._nesTypePicked=n,this}setIsActiveDocument(n){return this._isActiveDocument=n,this}setNotebookCellMarkerCount(n){return this._notebookCellMarkerCount=n,this}setIsMultilineEdit(n){return this._isMultilineEdit=n,this}setIsEolDifferent(n){return this._isEolDifferent=n,this}setIsNextEditorVisible(n){return this._isNextEditorVisible=n,this}setIsNextEditorRangeVisible(n){return this._isNextEditorRangeVisible=n,this}setNotebookId(n){return this._notebookId=n,this}setNotebookCellLines(n){return this._notebookCellLines=n,this}setNotebookCellMarkerIndex(n){return this._notebookCellMarkerIndex=n,this}setIsNESForOtherEditor(n){return this._isNESForAnotherDoc=n,this}setHadLlmNES(n){return this._hadLlmNES=n,this}setHadDiagnosticsNES(n){return this._hadDiagnosticsNES=n,this}setStatus(n){return this._nesBuilder.setStatus(n),this}setConfigIsDiagnosticsNESEnabled(n){return this._configIsDiagnosticsNESEnabled=n,this}setIsNaturalLanguageDominated(n){return this._isNaturalLanguageDominated=n,this}setPostProcessingOutcome(n){let r=n.displayLocation?{label:n.displayLocation.label,range:n.displayLocation.range.toString()}:void 0;return this._postProcessingOutcome=JSON.stringify({suggestedEdit:n.edit.toString(),isInlineCompletion:n.isInlineCompletion,displayLocation:r}),this}},nGt=class{constructor(e,n,r){this._onIdle=n;this._onUserJump=r;this._store=new it;this._disposalTracker=new ZJ(this._store);this._selectionSnapshots=new Map;this._lastEditTime=0;let a=this._store.add(new RO(()=>{this._onIdle(5e3)},5e3));this._idleScheduler=a;let s=!0;this._store.add(fo(l=>{if(e.onDidOpenDocumentChange.read(l),s){s=!1;return}this._lastEditTime=Date.now(),a.schedule()}));let c=!0;this._store.add(fX({owner:this,changeTracker:{createChangeSummary:()=>({removed:[]}),handleChange:(l,u)=>(l.didChange(e.openDocuments)&&(u.removed=l.change.removed),!0)}},(l,u)=>{if(this._store.isDisposed)return;let d=e.openDocuments.read(l);for(let p of d)p.primarySelectionLine.read(l);if(c){c=!1;for(let p of d)this._selectionSnapshots.set(p.id.uri,p.primarySelectionLine.get());return}for(let p of u.removed)this._selectionSnapshots.delete(p.id.uri);if(!(Date.now()-this._lastEditTime<200))for(let p of d){let m=p.id.uri,A=p.primarySelectionLine.get();if(this._selectionSnapshots.get(m)!==A){this._selectionSnapshots.set(m,A),this._onUserJump(m,A);return}}}))}get isDisposed(){return this._store.isDisposed}scheduleIdleTimer(){this._idleScheduler?.schedule()}acquire(){this._disposalTracker.acquire()}release(){this._disposalTracker.release()}forceDispose(){this._store.dispose()}},oP=class{constructor(e,n){this._workspace=e;this._telemetryService=n;this._map=new Map}scheduleSendingEnhancedTelemetry(e,n){let r=this._map.get(e);r&&(r.builder!==n&&r.builder.dispose(),this._removeEntry(e,r));let o=setTimeout(()=>{this._enterIdleDetection(e,n)},2*60*1e3);this._map.set(e,{builder:n,timeout:o})}_enterIdleDetection(e,n){let r=this._workspace;if(!r){this._buildAndSendEnhancedTelemetry(e,n,{reason:"idle",details:{idleTimeoutMs:0}});return}this._idleDetector?this._idleDetector.acquire():this._idleDetector=new nGt(r,c=>this._sendAllPendingInIdlePhase({reason:"idle",details:{idleTimeoutMs:c}}),(c,l)=>this._sendAllPendingInIdlePhaseWithJump(c,l)),this._idleDetector.scheduleIdleTimer();let o=3e4,a=setTimeout(()=>{this._sendForEntry(e,{reason:"hard_cap",details:{hardCapTimeoutMs:o}})},o),s=this._map.get(e);s&&(s.hardCapTimeout=a)}_releaseIdleDetector(){this._idleDetector?.release(),this._idleDetector?.isDisposed&&(this._idleDetector=void 0)}_sendAllPendingInIdlePhase(e){let n=[];for(let[r,o]of this._map)o.hardCapTimeout!==void 0&&n.push(r);for(let r of n)this._sendForEntry(r,e)}_sendAllPendingInIdlePhaseWithJump(e,n){let r=[];for(let[o,a]of this._map)a.hardCapTimeout!==void 0&&r.push([o,a.builder]);for(let[o,a]of r){let s=a.doc?.id.uri,c=a.nesBuilder.originalSelectionLine,l=s!==void 0&&c!==void 0?{file:s,line:c}:void 0;this._sendForEntry(o,{reason:"user_jump",details:{from:l,to:{file:e,line:n}}})}}_sendForEntry(e,n){let r=this._map.get(e);if(!r)return;r.hardCapTimeout!==void 0&&(clearTimeout(r.hardCapTimeout),this._releaseIdleDetector()),this._map.delete(e);let o;try{o=r.builder.build(!0)}finally{r.builder.dispose()}this._doSendEnhancedTelemetry(o,n)}_removeEntry(e,n){clearTimeout(n.timeout),n.hardCapTimeout!==void 0&&(clearTimeout(n.hardCapTimeout),this._releaseIdleDetector()),this._map.delete(e)}_buildAndSendEnhancedTelemetry(e,n,r){let o;this._map.delete(e);try{o=n.build(!0)}finally{n.dispose()}this._doSendEnhancedTelemetry(o,r)}sendTelemetry(e,n){if(e){let o=this._map.get(e);o&&this._removeEntry(e,o)}let r=n.build(!0);n.isSent||(this._doSendTelemetry(r),n.markAsSent()),this._doSendEnhancedTelemetry(r,void 0)}sendTelemetryForBuilder(e){if(e.isSent)return;let n=e.build(!1);this._doSendTelemetry(n),e.markAsSent()}async _doSendTelemetry(e){let{opportunityId:n,headerRequestId:r,requestN:o,providerId:a,modelName:s,hadStatelessNextEditProviderCall:c,statelessNextEditProviderDuration:l,nextEditProviderDuration:u,isFromCache:d,reusedRequest:p,subsequentEditOrder:m,activeDocumentLanguageId:A,activeDocumentOriginalLineCount:f,nLinesOfCurrentFileInPrompt:g,wasPreviouslyRejected:h,isShown:y,isNotebook:v,notebookType:_,isNESForAnotherDoc:w,isActiveDocument:x,isEolDifferent:E,isMultilineEdit:I,isNextEditorRangeVisible:k,isNextEditorVisible:T,acceptance:D,disposalReason:M,logProbThreshold:q,documentsCount:$,editsCount:L,activeDocumentEditsCount:F,promptLineCount:te,promptCharCount:oe,hadLowLogProbSuggestion:Y,nEditsSuggested:ge,lineDistanceToMostRecentEdit:re,isCursorAtEndOfLine:J,isInlineSuggestion:Ae,debounceTime:G,artificialDelay:U,hasNextEdit:ie,notebookCellMarkerCount:xe,notebookCellMarkerIndex:ze,notebookId:Me,notebookCellLines:ce,nextEditLogprob:se,supersededByOpportunityId:ue,noNextEditReasonKind:V,noNextEditReasonMessage:W,fetchStartedAfterMs:X,response:ve,configIsDiagnosticsNESEnabled:he,isNaturalLanguageDominated:ye,diagnosticType:_e,diagnosticDroppedReasons:we,diagnosticHasExistingSameFileImport:Le,diagnosticIsLocalImport:Ke,diagnosticAlternativeImportsCount:Xe,diagnosticDistanceToUnknownDiagnostic:Tt,diagnosticDistanceToAlternativeDiagnostic:Kt,diagnosticHasAlternativeDiagnosticForSameRange:fn,hadDiagnosticsNES:nn,hadLlmNES:bn,pickedNES:jn,xtabAggressivenessLevel:Ie,xtabUserHappinessScore:ot,userAggressivenessSetting:Bt,modelConfig:Ht}=e,Pe,et,ct,wt;if(ve!==void 0){let{response:$t,ttft:an,fetchResult:ae,fetchTime:Ce}=await ve;$t.type==="success"&&(Pe=$t.usage),et=an,ct=ae,wt=Ce}this._sendTelemetryToBoth({opportunityId:n,headerRequestId:r,providerId:a,modelName:s,activeDocumentLanguageId:A,mergeConflictExpanded:e.mergeConflictExpanded,acceptance:D,disposalReason:M,supersededByOpportunityId:ue,noNextEditReasonKind:V,noNextEditReasonMessage:W,fetchResult:ct,nextEditProviderError:e.nextEditProviderError,reusedRequest:p,diagnosticType:_e,diagnosticDroppedReasons:we,pickedNES:jn,notebookType:_,notebookId:Me,notebookCellLines:ce,nextCursorLineError:e.nextCursorPrediction?.nextCursorLineError,xtabAggressivenessLevel:Ie,userAggressivenessSetting:Bt,modelConfig:Ht},{requestN:o,hadStatelessNextEditProviderCall:this._boolToNum(c),statelessNextEditProviderDuration:l,nextEditProviderDuration:u,isFromCache:this._boolToNum(d),subsequentEditOrder:m,activeDocumentOriginalLineCount:f,activeDocumentNLinesInPrompt:g,wasPreviouslyRejected:this._boolToNum(h),isShown:this._boolToNum(y),isNotebook:this._boolToNum(v),isNESForAnotherDoc:this._boolToNum(w),isActiveDocument:this._boolToNum(x),isEolDifferent:this._boolToNum(E),isMultilineEdit:this._boolToNum(I),isNextEditorRangeVisible:this._boolToNum(k),isNextEditorVisible:this._boolToNum(T),hasNotebookCellMarker:xe>0?1:0,notebookCellMarkerCount:xe,notebookCellMarkerIndex:ze,logProbThreshold:q,documentsCount:$,editsCount:L,activeDocumentEditsCount:F,promptLineCount:te,promptCharCount:oe,hadLowLogProbSuggestion:this._boolToNum(Y),nEditsSuggested:ge,lineDistanceToMostRecentEdit:re,isCursorAtEndOfLine:this._boolToNum(J),isInlineSuggestion:this._boolToNum(Ae),debounceTime:G,artificialDelay:U,fetchStartedAfterMs:X,ttft:et,fetchTime:wt,promptTokens:Pe?.prompt_tokens,responseTokens:Pe?.completion_tokens,cachedTokens:Pe?.prompt_tokens_details?.cached_tokens,acceptedPredictionTokens:Pe?.completion_tokens_details?.accepted_prediction_tokens,rejectedPredictionTokens:Pe?.completion_tokens_details?.rejected_prediction_tokens,hasNextEdit:this._boolToNum(ie),userTypingDisagreed:this._boolToNum(e.userTypingDisagreed),nextEditLogprob:se,hadDiagnosticsNES:this._boolToNum(nn),hadLlmNES:this._boolToNum(bn),configIsDiagnosticsNESEnabled:this._boolToNum(he),isNaturalLanguageDominated:this._boolToNum(ye),diagnosticHasExistingSameFileImport:this._boolToNum(Le),diagnosticIsLocalImport:this._boolToNum(Ke),diagnosticAlternativeImportsCount:Xe,diagnosticDistanceToUnknownDiagnostic:Tt,diagnosticDistanceToAlternativeDiagnostic:Kt,diagnosticHasAlternativeDiagnosticForSameRange:this._boolToNum(fn),nextCursorLineDistance:e.nextCursorPrediction?.nextCursorLineDistance,xtabUserHappinessScore:ot,nDiffsInPrompt:e.nDiffsInPrompt,diffTokensInPrompt:e.diffTokensInPrompt})}_sendTelemetryToBoth(e,n){this._telemetryService.sendMSFTTelemetryEvent("provideInlineEdit",e,n),this._telemetryService.sendGHTelemetryEvent("copilot-nes/provideInlineEdit",e,n)}async _doSendEnhancedTelemetry(e,n){let{opportunityId:r,headerRequestId:o,providerId:a,activeDocumentLanguageId:s,status:c,modelName:l,prompt:u,response:d,alternativeAction:p,postProcessingOutcome:m,activeDocumentRepository:A,repositoryUrls:f,cursorJumpModelName:g,cursorJumpPrompt:h,cursorJumpResponse:y,lintErrors:v,terminalOutput:_,similarFilesContext:w,modelConfig:x,isFromCache:E}=e,I=d===void 0?d:await d,k=await w?.catch(()=>{});this._telemetryService.sendEnhancedGHTelemetryEvent("copilot-nes/provideInlineEdit",Zv({opportunityId:r,headerRequestId:o,providerId:a,activeDocumentLanguageId:s,suggestionStatus:c,modelName:l,prompt:u,modelResponse:I===void 0||I.response.type!=="success"?void 0:I.response.value,alternativeAction:p?JSON.stringify({...p,enhancedTelemetrySendingReason:n}):void 0,enhancedTelemetrySendingReason:!p&&n?JSON.stringify(n):void 0,postProcessingOutcome:m,activeDocumentRepository:A,repositories:JSON.stringify(f),cursorJumpModelName:g,cursorJumpPrompt:h,cursorJumpResponse:y,lintErrors:v,terminalOutput:_,similarFilesContext:k,modelConfig:x}),{isFromCache:this._boolToNum(E)})}_boolToNum(e){return e===void 0?void 0:e?1:0}dispose(){for(let e of this._map.values())clearTimeout(e.timeout),e.hardCapTimeout!==void 0&&clearTimeout(e.hardCapTimeout),e.builder.dispose();this._map.clear(),this._idleDetector&&(this._idleDetector.forceDispose(),this._idleDetector=void 0)}};oP=S([b(1,Ee)],oP);Ue();var aP=class extends fe{constructor(n){super();this._requestLogger=n;this._requests=[];this._liveRequestIds=new Set}addLive(n){this._liveRequestIds.add(n.requestId),this._requestLogger.addEntry({type:"MarkdownContentRequest",debugName:n.getDebugName(),icon:()=>n.getIcon(),startTimeMs:n.time,markdownContent:()=>n.toLogDocument(),onDidChange:n.onDidChange,isVisible:()=>n.includeInLogTree}),this._pushRequest(n)}add(n){this._liveRequestIds.has(n.requestId)||n.includeInLogTree&&(this._requestLogger.addEntry({type:"MarkdownContentRequest",debugName:n.getDebugName(),icon:n.getIcon(),startTimeMs:n.time,markdownContent:n.toLogDocument()}),this._pushRequest(n))}_pushRequest(n){if(this._requests.push(n),this._requests.length>100){let r=this._requests.shift();r&&this._liveRequestIds.delete(r.requestId)}}getRequestById(n){return this._requests.find(r=>r.requestId===n)}};aP=S([b(0,Fr)],aP);sr();var rtt=class extends YI{getDebugName(){return`Ghost | ${dr(this.filePath)} (v${this.version})`}};var lRe=require("vscode");Ue();Be();var npe={EOL:` `};function h2r(t,e){let n={};return e!==void 0&&(e.properties.headerRequestId&&(n["Header Request ID"]=e.properties.headerRequestId),e.properties.choiceIndex&&(n["Choice Index"]=e.properties.choiceIndex),e.properties.opportunityId&&(n["Opportunity ID"]=e.properties.opportunityId),e.properties.clientCompletionId&&(n["Client Completion ID"]=e.properties.clientCompletionId),e.properties.engineName&&(n["Model ID"]=e.properties.engineName)),{sections:[{name:"Copilot Extension",items:{Version:rb.getVersion(),Editor:Via(t),...n}}]}}function b2r(t){return t.sections.map(Zia).join(npe.EOL+npe.EOL)+npe.EOL}function Zia(t){return`## ${t.name}`+npe.EOL+npe.EOL+Object.keys(t.items).filter(e=>e!=="name").map(e=>`- ${e}: ${t.items[e]??"N/A"}`).join(npe.EOL)}function Via(t){let e=t.get(I6).getEditorInfo();return`${e.name} ${e.version}`}var rGt={command:G0r,title:"Send Copilot Completion Feedback",tooltip:"Send feedback about the last shown Copilot completion item"},rpe=class extends fe{constructor(n){super();this.instantiationService=n;this._register(lRe.commands.registerCommand(rGt.command,async()=>{let r=this.lastShownCopilotCompletionItem?.command?.arguments?.[0],o;r&&typeof r=="object"&&"telemetry"in r&&r.telemetry instanceof us&&(o=r.telemetry),this.instantiationService.invokeFunction(hi,"ghostText.sentFeedback",o),await this.instantiationService.invokeFunction(Yia,this.lastShownCopilotCompletionItem,o)}))}trackItem(n){this.lastShownCopilotCompletionItem=n}};rpe=S([b(0,j)],rpe);async function Yia(t,e,n){let r=Kia(t,e,n);await lRe.commands.executeCommand("workbench.action.openIssueReporter",{extensionId:"github.copilot",uri:lRe.Uri.parse("https://github.com/microsoft/vscode"),data:r})}function Kia(t,e,n){let r=h2r(t,n),o=b2r(r);return typeof e?.insertText!="string"?"":`## Copilot Completion Feedback ### Describe the issue, feedback, or steps to reproduce it: ### Completion text: \`\`\` ${e.insertText} \`\`\`
Diagnostics ${o}
`}var cP=require("vscode");Xa();Be();function itt(t,e){return JSON.stringify({id:st(),engine:t,...e})}Je();var Jia=new el("ghostText"),oU=me("ICompletionsLastGhostText"),ott=class{constructor(){this.#r=[];this.linesAccepted=0}#e;#t;#r;get position(){return this.#e}get shownCompletions(){return this.#r||[]}get uri(){return this.#t}resetState(){this.#t=void 0,this.#e=void 0,this.#r=[],this.resetPartialAcceptanceState()}setState({uri:e},n){this.#t=e,this.#e=n,this.#r=[]}resetPartialAcceptanceState(){this.partiallyAcceptedLength=0,this.totalLength=void 0,this.linesLeft=void 0,this.linesAccepted=0}};function Xia(t){let e=[];return t.shownCompletions.forEach(n=>{if(n.displayText&&n.telemetry){let r,o;t.partiallyAcceptedLength?(r=n.displayText.substring(t.partiallyAcceptedLength-1),o=n.telemetry.extendedBy({compType:"partial"},{compCharLen:r.length})):(r=n.displayText,o=n.telemetry);let a={completionText:r,completionTelemetryData:o,offset:n.offset};e.push(a)}}),e}function eoa(t,e){let n=t.get(oU);if(!n.position||!n.uri)return;let r=Xia(n);r.length>0&&bIr(t,"ghostText",e??r[0].offset,n.uri,r),n.resetState(),n.resetPartialAcceptanceState()}function y2r(t,e,n,r){let o=t.get(oU);return o.position&&o.uri&&!(o.position.line===n.line&&o.position.character===n.character&&o.uri.toString()===e.uri.toString())&&r!==2&&eoa(t,e.offsetAt(o.position)),o.setState(e,n),o.index}function v2r(t,e){let n=t.get(Ir),r=t.get(oU);if(r.index=e.index,!r.shownCompletions.find(o=>o.index===e.index)&&(e.uri===r.uri&&r.position?.line===e.position.line&&r.position?.character===e.position.character&&r.shownCompletions.push(e),e.displayText)){let o=e.resultType!==0;Jia.debug(n,`[${e.telemetry.properties.headerRequestId}] shown choiceIndex: ${e.telemetry.properties.choiceIndex}, fromCache ${o}`),e.telemetry.measurements.compCharLen=e.displayText.length,wEr(t,e)}}function toa(t,e,n){let r=t.get(oU);r.linesLeft===void 0&&(r.linesAccepted=GZ(e.insertText.substring(0,n)),r.linesLeft=GZ(e.displayText));let o=GZ(e.displayText);r.linesLeft>o&&(r.linesAccepted+=r.linesLeft-o,r.lastLineAcceptedLength=r.partiallyAcceptedLength,r.linesLeft=o),r.partiallyAcceptedLength=(r.lastLineAcceptedLength||0)+n}function _2r(t,e){let n=t.get(oU),r;return n.partiallyAcceptedLength?r={compType:"full",acceptedLength:(n.partiallyAcceptedLength||0)+e.displayText.length,acceptedLines:n.linesAccepted+(n.linesLeft??0)}:r={compType:"full",acceptedLength:e.displayText.length,acceptedLines:GZ(e.displayText)},n.resetState(),CBe(t,y7t,e.displayText,e.offset,e.uri,e.telemetry,r,e.copilotAnnotations)}function C2r(t,e,n){let r=t.get(oU);toa(t,e,n);let o={compType:"partial",acceptedLength:r.partiallyAcceptedLength||0,acceptedLines:r.linesAccepted};return CBe(t,y7t,e.displayText,e.offset,e.uri,e.telemetry,o,e.copilotAnnotations)}var Att=O(p2());Be();function w2r(t,e,n){function r(a,s,c){let l=new RegExp(`^(${s})+`,"g");return a.split(` `).map(u=>{let d=u.replace(l,""),p=u.length-d.length;return c(p)+d}).join(` `)}let o;if(t.tabSize===void 0||typeof t.tabSize=="string"?o=4:o=t.tabSize,t.insertSpaces===!1){let a=s=>r(s," ",c=>" ".repeat(Math.floor(c/o))+" ".repeat(c%o));e.displayText=a(e.displayText),e.completionText=a(e.completionText)}else if(t.insertSpaces===!0){let a=s=>r(s," ",c=>" ".repeat(c*o));if(e.displayText=a(e.displayText),e.completionText=a(e.completionText),n){let s=c=>{if(c==="")return c;let l=c.split(` `)[0],u=l.length-l.trimStart().length,d=u%o;if(d!==0&&u>0){let p=" ".repeat(d);return r(c,p,m=>" ".repeat((Math.floor(m/o)+1)*o))}else return c};e.displayText=s(e.displayText),e.completionText=s(e.completionText)}}return e}function x2r(t,e,n,r,o,a){let s=n.lineAt(r),c=t.map(l=>{let u=wd.range(wd.position(r.line,0),wd.position(r.line,r.character+l.suffixCoverage)),d="";if(o&&(l.completion=w2r(o,l.completion,s.isEmptyOrWhitespace)),s.isEmptyOrWhitespace&&(l.completion.displayNeedsWsOffset||l.completion.completionText.startsWith(s.text)))d=l.completion.completionText;else{let m=wd.range(u.start,r);d=n.getText(m)+l.completion.displayText}return{uuid:st(),insertText:d,range:u,uri:n.uri,index:l.completion.completionIndex,telemetry:l.telemetry,displayText:l.completion.displayText,position:r,offset:n.offsetAt(r),resultType:e,copilotAnnotations:l.copilotAnnotations,clientCompletionId:l.clientCompletionId}});if(e===2&&a!==void 0){let l=c.find(u=>u.index===a);if(l){let u=c.filter(d=>d.index!==a);c=[l,...u]}}return c}Be();function iGt(t){let e=noa(t),n=roa(t);if(!(e&&!n))return e&&n}function E2r(t,e){let n=e.lineNumber-1,o=(t.lines[n]??"").substring(e.column-1);return iGt(o)}function noa(t){return t.trim().length!==0}function roa(t){let e=t.trim();return/^\s*[)>}\]"'`]*\s*[:{;,]?\s*$/.test(e)}var I2r=O(require("events"));Je();var att="CompletionRequested",stt=me("ICompletionsNotifierService"),ipe=class{constructor(e,n){this.completionsPromiseQueue=e;this.completionsTelemetryService=n}#e=new I2r.default;notifyRequest(e,n,r,o,a){return this.#e.emit(att,{completionId:n,completionState:e,telemetryData:r,cancellationToken:o,options:a})}onRequest(e){let n=oue(this.completionsTelemetryService,this.completionsPromiseQueue,e,`event.${att}`);return this.#e.on(att,n),mC.Disposable.create(()=>this.#e.off(att,n))}};ipe=S([b(0,lT),b(1,DA)],ipe);Xa();dn();yr();var ioa;(e=>{function t(n){return!!n&&typeof n=="object"&&"id"in n&&"time"in n}e.is=t})(ioa||={});function ctt(t){return[t.start,t.endExclusive]}function ltt(t){return t.replacements.map(e=>[e.replaceRange.start,e.replaceRange.endExclusive,e.newText])}function oGt(t){return Cn.create(t.map(e=>jo.replace(new dt(e[0],e[1]),e[2])))}var mV=class{constructor(e,n){this.v=e;this.telemetryBuilder=n}},AV=class t{constructor(e,n,r,o,a,s,c,l,u,d,p,m,A){this.headerRequestId=e;this.opportunityId=n;this.documentBeforeEdits=r;this.documents=o;this.activeDocumentIdx=a;this.xtabEditHistory=s;this.firstEdit=c;this.expandedEditWindowNLines=l;this.isSpeculative=u;this.logContext=d;this.recordingBookmark=p;this.recording=m;this.providerRequestStartDateTime=A;this.seqid=String(++t.ID);this.cancellationTokenSource=new Oi;this.liveDependentants=0;this.fetchIssued=!1;this.intermediateUserEdit=Cn.empty;this._result=new no;nd(o.length>0),nd(a>=0&&an.id===e)!==void 0}getActiveDocument(){return this.documents[this.activeDocumentIdx]}serialize(){return{id:this.headerRequestId,documents:this.documents.map(e=>e.serialize()),activeDocumentIdx:this.activeDocumentIdx,recording:this.recording}}toString(){return this.toMarkdown()}toMarkdown(){return`### StatelessNextEditRequest ${this.documents.map((n,r)=>` * [${r+1}/${this.documents.length}] ${r===this.activeDocumentIdx?"(active document) ":""}`+n.toMarkdown()).join(` `)}`}},fV=class{constructor(e,n,r,o,a,s,c,l=void 0){this.id=e;this.workspaceRoot=n;this.languageId=r;this.documentLinesBeforeEdit=o;this.recentEdit=a;this.documentBeforeEdits=s;this.recentEdits=c;this.lastSelectionInAfterEdit=l;this.documentAfterEdits=new hl(this.recentEdits.apply(this.documentBeforeEdits.value));this.documentAfterEditsLines=this.documentAfterEdits.getLines()}serialize(){return{id:this.id.uri,workspaceRoot:this.workspaceRoot?.toString(),languageId:this.languageId,documentLinesBeforeEdit:this.documentLinesBeforeEdit,recentEdit:this.recentEdit.serialize(),documentBeforeEdits:this.documentBeforeEdits.value,recentEdits:this.recentEdits.serialize(),lastSelectionInAfterEdit:this.lastSelectionInAfterEdit===void 0?void 0:ctt(this.lastSelectionInAfterEdit)}}toString(){return this.toMarkdown()}toMarkdown(){let e=[];return e.push(`StatelessNextEditDocument: **${this.id.uri}** `),e.push("```patch"),e.push(this.recentEdit.humanReadablePatch(this.documentLinesBeforeEdit)),e.push("```"),e.push(""),e.join(` `)}};var Gr;(u=>{class t{}class e extends t{constructor(){super(...arguments);this.kind="activeDocumentHasNoEdits"}toString(){return this.kind}}u.ActiveDocumentHasNoEdits=e;class n extends t{constructor(m,A,f,g){super();this.documentBeforeEdits=m;this.window=A;this.nextCursorPosition=f;this.nextCursorDocumentId=g;this.kind="noSuggestions"}toString(){return this.kind}}u.NoSuggestions=n;class r extends t{constructor(m){super();this.message=m;this.kind="gotCancelled"}toString(){return`${this.kind}:${this.message}`}}u.GotCancelled=r;class o extends t{constructor(m){super();this.error=m;this.kind="fetchFailure"}toString(){return`${this.kind}:${this.error.message}`}}u.FetchFailure=o;class a extends t{constructor(m){super();this.message=m;this.kind="filteredOut"}toString(){return`${this.kind}:${this.message}`}}u.FilteredOut=a;class s extends t{constructor(m){super();this.message=m;this.kind="promptTooLarge"}toString(){return`${this.kind}:${this.message}`}}u.PromptTooLarge=s;class c extends t{constructor(m){super();this.error=m;this.kind="uncategorized"}toString(){return`${this.kind}:${this.error.message}`}}u.Uncategorized=c;class l extends t{constructor(m){super();this.error=m;this.kind="unexpected"}toString(){return`${this.kind}:${this.error.message}`}}u.Unexpected=l})(Gr||={});var aU=class t{constructor(e,n){this.nextEdit=e;this.telemetry=n}static noEdit(e,n){let r=vt.error(e),o=n.build(r);return new t(r,o)}static streaming(e){let n=vt.ok(void 0),r=e.build(n);return new t(n,r)}},ope=class{constructor(e){this._nextCursorPrediction={nextCursorLineError:void 0,nextCursorLineDistance:void 0,isCrossFile:void 0};this.startTime=Date.now(),this.requestUuid=e}build(e){let r=Date.now()-this.startTime,o=this._prompt?JSON.stringify(this._prompt.map(({role:d,content:p})=>({role:d,content:p}))):void 0,a=this._prompt?DZe(this._prompt):void 0,s=a?.split(` `).length,c=a?.length,l=e.isOk()?void 0:e.err.kind,u;return e.isError()&&(e.err instanceof Gr.ActiveDocumentHasNoEdits||e.err instanceof Gr.NoSuggestions||(e.err instanceof Gr.GotCancelled||e.err instanceof Gr.FilteredOut||e.err instanceof Gr.PromptTooLarge?u=e.err.message:e.err instanceof Gr.FetchFailure||e.err instanceof Gr.Uncategorized||e.err instanceof Gr.Unexpected?u=e.err.error.stack?e.err.error.stack:e.err.error.message:ai(e.err))),{hadStatelessNextEditProviderCall:!0,noNextEditReasonKind:l,noNextEditReasonMessage:u,statelessNextEditProviderDuration:r,logProbThreshold:this._logProbThreshold,mergeConflictExpanded:this._mergeConflictExpanded,nLinesOfCurrentFileInPrompt:this._nLinesOfCurrentFileInPrompt,modelName:this._modelName,prompt:o,promptLineCount:s,promptCharCount:c,isCursorAtEndOfLine:this._isCursorAtLineEnd,isInlineSuggestion:this._isInlineSuggestion,debounceTime:this._debounceTime,artificialDelay:this._artificialDelay,fetchStartedAt:this._fetchStartedAt,hadLowLogProbSuggestion:this._hadLowLogProbSuggestion,response:this._response,nEditsSuggested:this._nEditsSuggested,nextEditLogprob:this._nextEditLogProb,nextCursorPrediction:this._nextCursorPrediction,lineDistanceToMostRecentEdit:this._lineDistanceToMostRecentEdit,xtabAggressivenessLevel:this._xtabAggressivenessLevel,xtabUserHappinessScore:this._xtabUserHappinessScore,userAggressivenessSetting:this._userAggressivenessSetting,editIntent:this._editIntent,editIntentParseError:this._editIntentParseError,cursorJumpModelName:this._cursorJumpModelName,cursorJumpPrompt:this._cursorJumpPrompt?JSON.stringify(this._cursorJumpPrompt.map(({role:d,content:p})=>({role:d,content:p}))):void 0,cursorJumpResponse:this._cursorJumpResponse,nDiffsInPrompt:this._nDiffsInPrompt,diffTokensInPrompt:this._diffTokensInPrompt,lintErrors:this._lintErrors,terminalOutput:this._terminalOutput,similarFilesContext:this._similarFilesContext,modelConfig:this._modelConfig}}setLogProbThreshold(e){return this._logProbThreshold=e,this}setMergeConflictExpanded(e){return this._mergeConflictExpanded=e,this}setHadLowLogProbSuggestion(e){return this._hadLowLogProbSuggestion=e,this}setNLinesOfCurrentFileInPrompt(e){return this._nLinesOfCurrentFileInPrompt=e,this}setModelName(e){return this._modelName=e,this}setPrompt(e){return this._prompt=e,this}setIsCursorAtLineEnd(e){return this._isCursorAtLineEnd=e,this}setIsInlineSuggestion(e){return this._isInlineSuggestion=e,this}setDebounceTime(e){return this._debounceTime=e,this}setArtificialDelay(e){return this._artificialDelay=e,this}setFetchStartedAt(){return this._fetchStartedAt=Date.now(),this}get fetchStartedAt(){return this._fetchStartedAt}setResponse(e){return this._response=e.then(({response:n,ttft:r})=>{let o=Date.now()-this._fetchStartedAt,a=n.type;return{ttft:r,response:n,fetchTime:o,fetchResult:a}}),this}setCursorJumpModelName(e){return this._cursorJumpModelName=e,this}setCursorJumpPrompt(e){return this._cursorJumpPrompt=e,this}setCursorJumpResponse(e){return this._cursorJumpResponse=e,this}setNextEditLogProb(e){return this._nextEditLogProb=e,this}setNEditsSuggested(e){return this._nEditsSuggested=e,this}setLineDistanceToMostRecentEdit(e){return this._lineDistanceToMostRecentEdit=e,this}setNextCursorLineError(e){return this._nextCursorPrediction.nextCursorLineError=e,this}setNextCursorLineDistance(e){return this._nextCursorPrediction.nextCursorLineDistance=e,this}setNextCursorIsCrossFile(e){return this._nextCursorPrediction.isCrossFile=e,this}setXtabAggressivenessLevel(e){return this._xtabAggressivenessLevel=e,this}setXtabUserHappinessScore(e){return this._xtabUserHappinessScore=e,this}setUserAggressivenessSetting(e){return this._userAggressivenessSetting=e,this}setEditIntent(e){return this._editIntent=e,this}setEditIntentParseError(e){return this._editIntentParseError=e,this}setNDiffsInPrompt(e){return this._nDiffsInPrompt=e,this}setDiffTokensInPrompt(e){return this._diffTokensInPrompt=e,this}setLintErrors(e){return this._lintErrors=e,this}setTerminalOutput(e){return this._terminalOutput=e,this}setSimilarFilesContext(e){return this._similarFilesContext=e,this}setModelConfig(e){return this._modelConfig=e,this}};Xa();Be();Je();Ot();var ooa=["UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_SIGNATURE_FAILURE"],k2r="Your proxy connection requires a trusted certificate. Please make sure the proxy certificate and any issuers are configured correctly and trusted by your operating system.",S2r="https://gh.io/copilot-network-errors",utt=me("ICompletionsUserErrorNotifierService"),ape=class{constructor(e,n,r){this._logTarget=e;this._notificationSender=n;this._env=r;this.notifiedErrorCodes=[]}notifyUser(e){if(!(e instanceof Error))return;let n=e;n.code&&ooa.includes(n.code)&&!this.didNotifyBefore(n.code)&&(this.notifiedErrorCodes.push(n.code),this.displayCertificateErrorNotification(n))}async displayCertificateErrorNotification(e){new el("certificates").error(this._logTarget,`${k2r} Please visit ${S2r} to learn more. Original cause:`,e);let n={title:"Learn more"};return this._notificationSender.showWarningMessage(k2r,n).then(r=>{if(r?.title===n.title)return this._env.openExternal(K.parse(S2r))})}didNotifyBefore(e){return this.notifiedErrorCodes.indexOf(e)!==-1}};ape=S([b(0,Ir),b(1,due),b(2,Zt)],ape);function spe(t,e,n){t.append(e.prefix,e.prompt.suffix,n)}var sP=new el("ghostText"),cpe=class{constructor(e,n,r,o,a,s,c,l,u){this.instantiationService=e;this.fetcherService=n;this.featuresService=r;this.runtimeMode=o;this.logTarget=a;this.completionsCacheService=s;this.userErrorNotifier=c;this.configurationService=l;this.expService=u}async getCompletionsFromNetwork(e,n,r,o,a){return this.genericGetCompletionsFromNetwork(e,n,r,o,a,"completions",async(s,c,l)=>{let d=await l[Symbol.asyncIterator]().next();if(d.done)return sP.debug(this.logTarget,"All choices redacted"),{type:"empty",reason:"all choices redacted",telemetryData:Hp(n)};if(r?.isCancellationRequested)return sP.debug(this.logTarget,"Cancelled after awaiting redactedChoices iterator"),{type:"canceled",reason:"after awaiting redactedChoices iterator",telemetryData:fF(n)};let p=d.value;if(p===void 0)return sP.debug(this.logTarget,"Got undefined choice from redactedChoices iterator"),{type:"empty",reason:"got undefined choice from redactedChoices iterator",telemetryData:Hp(n)};this.instantiationService.invokeFunction(T2r,"performance",p,s,c),sP.debug(this.logTarget,`Awaited first result, id: ${p.choiceIndex}`);let m=aGt(p);m&&(spe(this.completionsCacheService,e,m),sP.debug(this.logTarget,`GhostText first completion (index ${m?.choiceIndex}): ${JSON.stringify(m?.completionText)}`));let A=(async()=>{let f=m!==void 0?[m]:[];for await(let g of l){if(g===void 0)continue;sP.debug(this.logTarget,`GhostText later completion (index ${g?.choiceIndex}): ${JSON.stringify(g.completionText)}`);let h=aGt(g,f);h&&(f.push(h),spe(this.completionsCacheService,e,h))}})();return this.runtimeMode.isRunningInTest()&&await A,m?{type:"success",value:[dtt(m,{forceSingleLine:!1}),A],telemetryData:Hp(n),telemetryBlob:n,resultType:0}:{type:"empty",reason:"got undefined processedFirstChoice",telemetryData:Hp(n)}})}async getAllCompletionsFromNetwork(e,n,r,o,a){return this.genericGetCompletionsFromNetwork(e,n,r,o,a,"all completions",async(s,c,l)=>{let u=[];for await(let d of l){if(r?.isCancellationRequested)return sP.debug(this.logTarget,"Cancelled after awaiting choices iterator"),{type:"canceled",reason:"after awaiting choices iterator",telemetryData:fF(n)};let p=aGt(d,u);p&&u.push(p)}if(u.length>0){for(let d of u)spe(this.completionsCacheService,e,d);this.instantiationService.invokeFunction(T2r,"cyclingPerformance",u[0],s,c)}return{type:"success",value:[u,Promise.resolve()],telemetryData:Hp(n),telemetryBlob:n,resultType:3}})}async genericGetCompletionsFromNetwork(e,n,r,o,a,s,c){let l=new ope(e.ourRequestId),u=await this._genericGetCompletionsFromNetwork(e,n,r,o,l,s,c),d;switch(u.type){case"success":d=vt.ok(void 0);break;case"canceled":d=vt.error(new Gr.GotCancelled(u.reason));break;case"empty":d=vt.error(new Gr.NoSuggestions(new hl(""),void 0));break;case"failed":d=vt.error(new Gr.Uncategorized(jr.fromUnknown(u.reason)));break;case"abortedBeforeIssued":case"promptOnly":d=vt.error(new Gr.GotCancelled(u.reason));break;default:ai(u)}return a.setStatelessNextEditTelemetry(l.build(d)),u}async _genericGetCompletionsFromNetwork(e,n,r,o,a,s,c){sP.debug(this.logTarget,`Getting ${s} from network`),n=n.extendedBy(),a.setModelName(e.engineModelId);let l=e.isCycling?3:1,u=RTe(this.runtimeMode,l),d={language:e.languageId,next_indent:e.indentation.next??0,trim_by_indentation:d0r(e.blockMode),prompt_tokens:e.prompt.prefixTokens??0,suffix_tokens:e.prompt.suffixTokens??0},p={n:l,temperature:u,code_annotations:!1},m=this.featuresService.modelAlwaysTerminatesSingleline(n),A=e.blockMode==="moremultiline"&&xk.isSupported(e.languageId)&&!m;!e.multiline&&!A?p.stop=[` `]:e.stop&&(p.stop=e.stop),e.maxTokens!==void 0&&(p.max_tokens=e.maxTokens);let f=Date.now(),g={endpoint:"completions",uiKind:"ghostText",temperature:JSON.stringify(u),n:JSON.stringify(l),stop:JSON.stringify(p.stop)??"unset",logit_bias:JSON.stringify(null)};Object.assign(n.properties,g);try{let h={prompt:e.prompt,languageId:e.languageId,repoInfo:e.repoInfo,ourRequestId:e.ourRequestId,engineModelId:e.engineModelId,count:l,uiKind:"ghostText",postOptions:p,headers:e.headers,extra:d},y=this.configurationService.getExperimentBasedConfig(H.TeamInternal.GhostTextUseCompletionsFetchService,this.expService)?await this.fetcherService.fetchAndStreamCompletions2(h,n,o,r):await this.fetcherService.fetchAndStreamCompletions(h,n,o,r);return y.type==="failed"?{type:"failed",reason:y.reason,telemetryData:Hp(n)}:y.type==="canceled"?(sP.debug(this.logTarget,"Cancelled after awaiting fetchCompletions"),{type:"canceled",reason:y.reason,telemetryData:fF(n)}):c(f,y.getProcessingTime(),y.choices)}catch(h){if(rF(h))return{type:"canceled",reason:"network request aborted",telemetryData:fF(n,{cancelledNetworkRequest:!0})};if(this.instantiationService.invokeFunction(y=>sP.exception(y,h,"Error on ghost text request")),this.userErrorNotifier.notifyUser(h),this.runtimeMode.shouldFailForDebugPurposes())throw h;return{type:"failed",reason:"non-abort error on ghost text request",telemetryData:Hp(n)}}}};cpe=S([b(0,j),b(1,Mue),b(2,La),b(3,xy),b(4,Ir),b(5,iP),b(6,utt),b(7,be),b(8,Fe)],cpe);function aGt(t,e){if(e||(e=[]),t.completionText=t.completionText.trimEnd(),!!t.completionText&&e.findIndex(n=>n.completionText.trim()===t.completionText.trim())===-1)return t}function dtt(t,e){let n={...t};if(e.forceSingleLine){let{completionText:r}=n,o=r.match(/^\r?\n/);o?n.completionText=o[0]+r.split(` `)[1]:n.completionText=r.split(` `)[0]}return n}function T2r(t,e,n,r,o){let a=Date.now()-r,s=a-o,c=n.telemetryData.extendedBy({},{completionCharLen:n.completionText.length,requestTimeMs:a,processingTimeMs:o,deltaMs:s,meanLogProb:n.meanLogProb||NaN,meanAlternativeLogProb:n.meanAlternativeLogProb||NaN});c.extendWithRequestId(n.requestId),hi(t,`ghostText.${e}`,c)}Je();var uRe=me("ICompletionsCurrentGhostText"),ptt=class{constructor(){this.choices=[]}get clientCompletionId(){return this.choices[0]?.clientCompletionId}setGhostText(e,n,r,o){o!==2&&(this.prefix=e,this.suffix=n,this.choices=r)}getCompletionsForUserTyping(e,n){let r=this.getRemainingPrefix(e,n);if(r!==void 0&&B2r(this.choices[0].completionText,r))return aoa(this.choices,r)}hasAcceptedCurrentCompletion(e,n){let r=this.getRemainingPrefix(e,n);if(r===void 0)return!1;let o=r===this.choices?.[0].completionText,a=this.choices?.[0].finishReason;return o&&a==="stop"}getRemainingPrefix(e,n){if(!(this.prefix===void 0||this.suffix===void 0||this.choices.length===0)&&this.suffix===n&&e.startsWith(this.prefix))return e.substring(this.prefix.length)}};function aoa(t,e){return t.filter(n=>B2r(n.completionText,e)).map(n=>({...n,completionText:n.completionText.substring(e.length)}))}function B2r(t,e){return t.startsWith(e)&&t.length>e.length}Be();var SF={" ":1,"!":2,'"':3,"#":4,$:5,"%":6,"&":7,"'":8,"(":9,")":10,"*":11,"+":12,",":13,"-":14,".":15,"/":16,0:17,1:18,2:19,3:20,4:21,5:22,6:23,7:24,8:25,9:26,":":27,";":28,"<":29,"=":30,">":31,"?":32,"@":33,A:34,B:35,C:36,D:37,E:38,F:39,G:40,H:41,I:42,J:43,K:44,L:45,M:46,N:47,O:48,P:49,Q:50,R:51,S:52,T:53,U:54,V:55,W:56,X:57,Y:58,Z:59,"[":60,"\\":61,"]":62,"^":63,_:64,"`":65,a:66,b:67,c:68,d:69,e:70,f:71,g:72,h:73,i:74,j:75,k:76,l:77,m:78,n:79,o:80,p:81,q:82,r:83,s:84,t:85,u:86,v:87,w:88,x:89,y:90,z:91,"{":92,"|":93,"}":94,"~":95};function R2r(t){let e;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>427.50000000000006?t[9]>13.500000000000002?t[121]>1e-35?e=-.3793786744885956:t[149]>1e-35?e=-.34717430705356905:e=-.26126834451035963:e=-.2431318366096852:t[5]>888.5000000000001?e=-.20600463586387135:e=-.2568037008471491:t[308]>1e-35?e=-.2363064824497454:t[8]>370.50000000000006?e=-.37470755210284723:e=-.321978453730494:t[3]>24.500000000000004?t[23]>1e-35?t[131]>1e-35?e=-.26259136509758885:e=-.3096719634039438:t[4]>30.500000000000004?t[9]>18.500000000000004?e=-.34254903852890883:t[2]>98.50000000000001?e=-.41585250791146294:e=-.3673574858887241:t[9]>6.500000000000001?e=-.31688079287876225:t[31]>1e-35?e=-.29110977864003823:t[308]>1e-35?e=-.3201411739040839:e=-.36874023066055506:t[8]>691.5000000000001?t[82]>1e-35?e=-.41318393149040566:t[133]>1e-35?e=-.3741272613525161:t[32]>1e-35?e=-.4112378041027121:t[227]>1e-35?e=-.37726615155719356:t[10]>3.5000000000000004?e=-.3164502293560397:e=-.2930071546509045:t[9]>13.500000000000002?e=-.277366858539218:t[308]>1e-35?t[4]>10.500000000000002?e=-.30975610686807187:t[4]>1.5000000000000002?e=-.2549142136728043:e=-.3271325650785176:t[127]>1e-35?t[0]>1937.5000000000002?e=-.2533046188098832:e=-.325520883579:e=-.331628896481776;let n;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>546.5000000000001?t[9]>13.500000000000002?n=.031231253521808708:n=.05380836288014532:t[5]>423.00000000000006?t[8]>114.50000000000001?n=.06751619128429062:n=.09625089153176467:n=.027268163053989804:t[308]>1e-35?n=.060174483556283756:n=-.049062854038919135:t[3]>24.500000000000004?t[23]>1e-35?t[4]>63.50000000000001?n=-.03969241799174589:n=.01086816842550381:t[31]>1e-35?n=-.003284694817583201:t[9]>6.500000000000001?t[4]>30.500000000000004?n=-.04224490699947552:n=-.011834162944360616:t[308]>1e-35?t[32]>1e-35?n=-.13448447971850278:n=-.019569456707046823:t[19]>1e-35?t[9]>1.5000000000000002?n=-.07256260662659254:t[4]>60.50000000000001?n=-.08227503453609311:n=-.020596416747563847:n=-.07396549241564149:t[8]>691.5000000000001?t[82]>1e-35?n=-.10046536995362734:t[133]>1e-35?n=-.06407649822752297:t[225]>1e-35?n=.08035785003303324:t[92]>1e-35?n=.018901360933204676:t[20]>1e-35?n=.05252546973665552:t[8]>2592.5000000000005?n=-.040543705016462955:n=-.011236043818320725:t[9]>17.500000000000004?n=.025560632674895334:t[308]>1e-35?t[0]>1847.5000000000002?n=.03527165701669741:n=-.0071847350825815035:t[127]>1e-35?n=.024373016379595405:t[9]>2.5000000000000004?n=-.0035090719709448288:n=-.03514829488063766;let r;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>546.5000000000001?r=.03848674861536988:t[5]>423.00000000000006?t[8]>114.50000000000001?t[9]>56.50000000000001?r=-.003764520033319488:r=.06570817919969299:t[4]>61.50000000000001?r=.028346156293069538:r=.0908154644362606:r=.02445594243234816:t[308]>1e-35?t[8]>65.50000000000001?r=.0019305229020073053:r=.09279357295883772:r=-.04458984161917124:t[3]>24.500000000000004?t[23]>1e-35?r=.0027405390271277013:t[4]>29.500000000000004?t[52]>1e-35?r=.044727478132905285:t[115]>1e-35?r=.10245804828855934:t[9]>17.500000000000004?r=-.03353173647469207:t[2]>98.50000000000001?r=-.10048106638102179:r=-.05484231104348874:t[31]>1e-35?r=.016807537467116516:t[9]>6.500000000000001?r=-.012113620535295137:t[4]>8.500000000000002?t[308]>1e-35?r=-.01882594250504289:r=-.05585658862796076:r=.04279591277938338:t[8]>691.5000000000001?t[82]>1e-35?r=-.09262278043707878:t[133]>1e-35?r=-.058454257768893625:t[32]>1e-35?r=-.09769348447126434:t[25]>1e-35?r=-.0725430043727677:t[122]>1e-35?r=-.10047841601578077:r=-.00580671054458958:t[9]>13.500000000000002?r=.021399199032818294:t[308]>1e-35?t[4]>10.500000000000002?r=-.0076376731757173515:r=.03394923033036848:t[127]>1e-35?r=.02070489091204209:r=-.02290162726126496;let o;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>892.5000000000001?t[9]>21.500000000000004?o=.010230295672324606:o=.038540509248742805:t[8]>125.50000000000001?t[1]>49.50000000000001?o=.03086356292895467:o=.057128750867458604:t[5]>888.5000000000001?o=.07861602941396924:o=.030523262699070908:t[308]>1e-35?o=.048236117667577356:t[8]>370.50000000000006?o=-.05642125069212264:o=-.007232836777168195:t[3]>24.500000000000004?t[23]>1e-35?t[131]>1e-35?o=.03640661467213915:o=-.005889820723907028:t[31]>1e-35?o=-.0009007166998276938:t[9]>6.500000000000001?o=-.022590340093882378:t[308]>1e-35?t[32]>1e-35?o=-.1215445089091064:o=-.01435612266219722:t[19]>1e-35?t[9]>1.5000000000000002?o=-.061555513040777825:t[4]>60.50000000000001?o=-.07053475504569347:o=-.013733369453963092:o=-.06302097189114152:t[227]>1e-35?o=-.05820440333190048:t[8]>683.5000000000001?t[82]>1e-35?o=-.08466979526809346:t[10]>24.500000000000004?o=-.017092159721119944:t[92]>1e-35?o=.03592901452463749:o=-.00359310519524756:t[5]>1809.5000000000002?t[243]>1e-35?o=-.03963116207386097:t[118]>1e-35?o=-.09483996283536394:t[217]>1e-35?o=-.03394542089519989:t[242]>1e-35?o=-.07985899422287938:o=.019706602160656964:t[9]>12.500000000000002?o=.014072998937735146:o=-.021156294523894684;let a;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>892.5000000000001?t[9]>21.500000000000004?a=.009197756540516563:a=.03458896869535166:t[5]>5082.500000000001?a=.08265545468131008:t[131]>1e-35?a=.0740738432473315:a=.045159136632942756:t[8]>319.50000000000006?a=-.04653401534465376:t[7]>3.5000000000000004?t[0]>1230.5000000000002?t[0]>2579.5000000000005?a=-.011400839766681709:a=.11149800187510031:a=-.08683250977599462:a=.08355310136724753:t[4]>23.500000000000004?t[23]>1e-35?t[131]>1e-35?a=.040389083779932555:a=-.009887614274108602:t[52]>1e-35?a=.03705353499757327:t[9]>6.500000000000001?a=-.025401260429257562:t[2]>98.50000000000001?a=-.09237673187534504:a=-.04298556869281803:t[222]>1e-35?a=-.045221965895986184:t[8]>691.5000000000001?t[133]>1e-35?a=-.05435318330148897:t[128]>1e-35?a=-.08672907303184191:t[227]>1e-35?a=-.05568304584186561:t[122]>1e-35?a=-.09623059693538563:t[225]>1e-35?a=.07558331642202279:t[82]>1e-35?a=-.07360566227233566:a=-.005646164647395919:t[242]>1e-35?a=-.08203758341228108:t[9]>13.500000000000002?a=.018726123829696042:t[308]>1e-35?t[4]>10.500000000000002?a=-.011153942154062704:a=.03132858912391067:t[127]>1e-35?a=.021455228822345174:t[23]>1e-35?a=.01959966745346997:a=-.021764790177579325;let s;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>284.50000000000006?t[121]>1e-35?t[18]>1e-35?s=.07547602514276922:s=-.08529678832140396:s=.030314822344598043:t[5]>888.5000000000001?t[4]>61.50000000000001?s=.011143589009415464:s=.0654700456802118:s=.021794712646632755:t[308]>1e-35?s=.04231872551095028:s=-.034381999950549455:t[4]>23.500000000000004?t[23]>1e-35?t[4]>63.50000000000001?s=-.03678981254332261:s=.010518160384496255:t[8]>825.5000000000001?s=-.04506534842082387:t[9]>38.50000000000001?s=.01004983052203438:s=-.030580958620701027:t[39]>1e-35?s=-.12802435021505382:t[8]>691.5000000000001?t[23]>1e-35?t[203]>1e-35?t[4]>6.500000000000001?s=.030426957004611704:s=-.0726407693060581:s=.017395521646964375:t[4]>7.500000000000001?t[0]>93.50000000000001?t[9]>7.500000000000001?s=-.008024349629981291:t[31]>1e-35?s=.01296539930850471:t[308]>1e-35?s=-.012855016509024084:s=-.04564527976851505:s=-.15681420504058596:t[10]>4.500000000000001?t[243]>1e-35?s=-.1012064426380198:s=-.0062808850924854194:s=.030706323726162416:t[9]>13.500000000000002?s=.017081636133736405:t[308]>1e-35?t[4]>10.500000000000002?s=-.009306613091760644:t[4]>1.5000000000000002?s=.03655523200850989:s=-.02671654212893341:t[127]>1e-35?s=.019261510468604387:s=-.017627818570628936;let c;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>892.5000000000001?t[308]>1e-35?c=.036100405995889276:c=.011709313297015793:t[0]>119.50000000000001?t[8]>125.50000000000001?c=.03622542297472574:c=.05595579157301536:c=-.02234751038146796:t[8]>319.50000000000006?c=-.040132029478400735:t[7]>3.5000000000000004?t[0]>1230.5000000000002?t[0]>2579.5000000000005?c=-.009306153573847916:c=.10058509567064988:c=-.0785668890966017:t[9]>28.500000000000004?c=-.04781977604130416:c=.09753292614937459:t[4]>23.500000000000004?t[131]>1e-35?c=.02372493254975127:t[148]>1e-35?c=.028103095989516644:t[4]>58.50000000000001?t[10]>1e-35?c=-.05000852203469597:c=.02922366846119705:t[23]>1e-35?c=-.0026335076988151292:c=-.03073993752935585:t[222]>1e-35?c=-.03867374428185713:t[32]>1e-35?c=-.07220729365053084:t[39]>1e-35?c=-.11624524614351733:t[8]>691.5000000000001?t[133]>1e-35?c=-.04836360271198036:t[8]>4968.500000000001?c=-.10873681915578029:t[149]>1e-35?c=-.11847484033769298:t[122]>1e-35?c=-.08916172460307559:t[82]>1e-35?c=-.06774726602152634:c=-.0033469147714351327:t[126]>1e-35?c=-.09474445392080015:t[8]>131.50000000000003?t[118]>1e-35?c=-.09002547031023511:c=.015475385187009489:t[25]>1e-35?c=-.08175501232759151:c=-.000429679055394914;let l;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>546.5000000000001?l=.021942996005324917:l=.042349138084484074:t[308]>1e-35?l=.036507270845732874:l=-.028981850556764995:t[3]>24.500000000000004?t[23]>1e-35?l=.00210930790963475:t[31]>1e-35?l=.006825358293027163:t[9]>6.500000000000001?l=-.013772084269062394:t[308]>1e-35?l=-.008307929099892574:t[19]>1e-35?l=-.027706313312904487:l=-.04891108984170914:t[134]>1e-35?l=-.0605730733844732:t[25]>1e-35?l=-.05347926493253117:t[227]>1e-35?l=-.049415829249003666:t[32]>1e-35?l=-.06807799662179595:t[308]>1e-35?t[4]>10.500000000000002?t[2]>13.500000000000002?l=-.00016302718260794637:l=-.10247095758122947:t[210]>1e-35?l=-.022149002072787024:t[95]>1e-35?l=.15222631630626304:l=.027393884520465712:t[9]>7.500000000000001?t[225]>1e-35?l=.13483346577752245:t[3]>9.500000000000002?t[243]>1e-35?l=-.045352728133789516:t[8]>683.5000000000001?l=.00474372227519902:l=.02635476098707525:t[92]>1e-35?l=.05659380819933452:t[105]>1e-35?l=.07431443210341222:t[186]>1e-35?l=.0915821133384904:l=-.016414750130401053:t[127]>1e-35?l=.011824693641866162:t[23]>1e-35?l=.0228468674288774:t[284]>1e-35?l=.06606936863302432:l=-.02872463273902358;let u;t[13]>1e-35?t[3]>1.5000000000000002?t[8]>125.50000000000001?t[288]>1e-35?u=-.019844363904157558:t[1]>50.50000000000001?t[131]>1e-35?u=.044961338592245194:u=.003659599513761676:t[121]>1e-35?u=-.04057103630479994:u=.03158560697078578:t[0]>421.50000000000006?t[4]>61.50000000000001?u=-.0003708603406529278:u=.05331312264472391:u=.0006575958601218936:t[8]>319.50000000000006?u=-.034654694051901545:t[7]>3.5000000000000004?t[0]>1230.5000000000002?t[0]>2579.5000000000005?u=-.0076053515916517005:u=.09116695486305336:u=-.07137458699162028:u=.06633130654035282:t[4]>29.500000000000004?t[23]>1e-35?t[4]>63.50000000000001?u=-.0308520802187302:u=.013156423968295541:t[115]>1e-35?u=.11581171687488252:t[52]>1e-35?t[10]>22.500000000000004?u=.12264179915175587:u=-.021905727233873535:t[8]>799.5000000000001?u=-.04181869575935412:u=-.023695901673350575:t[222]>1e-35?u=-.034612899265371776:t[8]>691.5000000000001?t[9]>98.50000000000001?u=-.06892116536821917:t[149]>1e-35?u=-.11194586444154514:t[133]>1e-35?u=-.04269583234000504:t[128]>1e-35?u=-.0644631966969502:t[8]>4968.500000000001?u=-.09650726096330133:u=-.004219129180139438:t[126]>1e-35?u=-.08038306745347751:t[5]>1809.5000000000002?u=.009265335288169993:t[9]>2.5000000000000004?u=.006447645462117438:u=-.021047132609551503;let d;t[13]>1e-35?t[3]>1.5000000000000002?t[9]>21.500000000000004?t[121]>1e-35?d=-.08436540015142402:t[8]>1861.5000000000002?d=-.01621425699342421:d=.01878613821895428:d=.031052879158242532:t[8]>319.50000000000006?d=-.031536619360997865:t[7]>3.5000000000000004?d=-.004510586962343298:d=.0596524941011746:t[4]>18.500000000000004?t[23]>1e-35?d=.004757490541310808:t[9]>6.500000000000001?d=-.008842393772207996:t[31]>1e-35?d=.0010536183837006993:t[308]>1e-35?d=-.008145882815435419:t[2]>98.50000000000001?d=-.08404937622173021:t[276]>1e-35?d=.0020072791321856663:t[19]>1e-35?d=-.023031820639490178:d=-.04553314326377875:t[8]>2134.5000000000005?d=-.02244583113572251:t[134]>1e-35?d=-.05592137394753121:t[308]>1e-35?t[49]>1e-35?d=.09989109704064947:t[4]>10.500000000000002?t[2]>13.500000000000002?d=-.00447733056482096:d=-.10191061664873849:d=.021765308380331864:t[9]>7.500000000000001?t[118]>1e-35?d=-.07570059131536411:t[243]>1e-35?d=-.040983393346598646:t[3]>9.500000000000002?d=.014763759061483812:t[92]>1e-35?d=.05136368898963024:d=-.008162398981149495:t[127]>1e-35?d=.013999119696708346:t[23]>1e-35?t[20]>1e-35?d=.14138985500120907:d=.008668274102844162:t[284]>1e-35?d=.06356484011042893:d=-.024781304572706303;let p;t[13]>1e-35?t[3]>8.500000000000002?t[8]>892.5000000000001?t[0]>384.50000000000006?p=.014387526569215037:t[8]>2266.5000000000005?p=-.1397298649743087:p=.007953931014097788:t[0]>119.50000000000001?t[4]>61.50000000000001?p=.0029819092211896296:t[218]>1e-35?p=.08450459375645737:p=.031646488019280654:p=-.03544960151460596:t[9]>9.500000000000002?p=-.026002317735915183:t[7]>1.5000000000000002?p=.005074258810794793:p=.0745247650477651:t[4]>29.500000000000004?t[131]>1e-35?p=.023269218675640847:t[148]>1e-35?p=.03812942399144545:t[115]>1e-35?p=.10512283476967227:p=-.02607307479736138:t[227]>1e-35?p=-.036576708299046294:t[101]>1e-35?p=.027948683650881864:t[149]>1e-35?p=-.08195628451594297:t[50]>1e-35?p=-.16997544922278504:t[8]>691.5000000000001?t[9]>101.50000000000001?p=-.06860333850762075:t[225]>1e-35?p=.06066641950951723:t[10]>22.500000000000004?t[1]>29.500000000000004?t[127]>1e-35?p=.028599705845427533:p=-.010746719511640914:t[0]>4877.500000000001?p=-.07251187886096228:p=-.021299712241446785:t[118]>1e-35?p=-.11902023760964736:p=15874469526809387e-21:t[8]>267.50000000000006?p=.01317292185402293:t[148]>1e-35?t[9]>20.500000000000004?p=.09614842415142123:p=.006049073167176467:t[189]>1e-35?p=.05562696451900713:p=-.006257541923837303;let m;t[13]>1e-35?t[9]>14.500000000000002?t[2]>11.500000000000002?t[1]>71.50000000000001?t[8]>1252.5000000000002?m=-.10069846585436666:m=-.010577995535809317:t[146]>1e-35?m=-.008877238274428668:t[280]>1e-35?m=.10076055897012692:t[6]>70.50000000000001?m=-.020603523042565547:t[7]>1.5000000000000002?m=.02819095420813202:m=-.1223354167911277:m=-.025073583348334844:t[8]>416.50000000000006?m=.01718560189149466:t[230]>1e-35?m=.12281803224342265:m=.03281276971308565:t[4]>14.500000000000002?t[23]>1e-35?t[21]>1e-35?m=-.13070568109867683:t[4]>63.50000000000001?m=-.027221825262496814:m=.01530862490082352:t[9]>6.500000000000001?t[5]>4320.500000000001?t[2]>31.500000000000004?m=-.00605574271293711:m=.04739407327741249:m=-.012537528620315956:t[31]>1e-35?t[20]>1e-35?m=.1252215087035768:m=.003905888677601057:t[52]>1e-35?m=.045466299731038815:t[2]>100.50000000000001?m=-.07815624550168065:t[308]>1e-35?m=-.007715815250508057:t[276]>1e-35?t[9]>1.5000000000000002?m=-.03538265083203445:t[18]>1e-35?m=.1591211669800727:m=.015151475408241136:t[8]>557.5000000000001?m=-.04225569725456342:m=-.022455546324243267:t[308]>1e-35?m=.01325441736085826:t[197]>1e-35?m=.03752194600682512:t[225]>1e-35?m=.06583712394533976:m=-.005205289866839043;let A;t[13]>1e-35?t[9]>21.500000000000004?t[2]>12.500000000000002?A=.010264022580774884:A=-.02335958814489217:t[8]>416.50000000000006?t[3]>4.500000000000001?t[295]>1e-35?A=-.0936747137352166:t[0]>384.50000000000006?A=.019846244507320695:A=-.0751102554077272:A=-.026885329334203723:t[0]>966.5000000000001?t[10]>48.50000000000001?A=.11654906890054273:A=.0346250587613322:t[4]>39.50000000000001?A=-.08568002378645614:t[9]>16.500000000000004?A=-.12010535752923689:A=.021321923389033808:t[4]>14.500000000000002?t[23]>1e-35?t[21]>1e-35?A=-.12056431231412057:t[131]>1e-35?A=.03652965550568472:A=.002563006128791669:t[9]>6.500000000000001?t[30]>1e-35?A=-.10141481732178981:A=-.003936457893178248:t[31]>1e-35?A=.008215898756249477:t[52]>1e-35?t[0]>4188.500000000001?A=.12972828769588213:A=-.003137412232297087:t[2]>100.50000000000001?A=-.0730872929087944:t[308]>1e-35?A=-.006958622747243333:t[35]>1e-35?t[0]>3707.5000000000005?A=.07934620723812878:A=-.018598568353702116:A=-.030635505446410763:t[128]>1e-35?A=-.06962290453843294:t[84]>1e-35?A=-.15290337844960322:t[308]>1e-35?t[8]>2543.5000000000005?A=-.034938657503885584:A=.016339322898966915:t[197]>1e-35?A=.03358907965870046:t[18]>1e-35?A=-.01754013791515288:A=-.0004944586067698557;let f;t[13]>1e-35?t[308]>1e-35?t[210]>1e-35?f=.005888790687820524:f=.0429676533834978:t[2]>7.500000000000001?t[0]>119.50000000000001?t[6]>79.50000000000001?f=-.0224319889201976:t[212]>1e-35?f=.06249587051783863:t[8]>963.5000000000001?t[8]>1156.5000000000002?f=.010357273289123324:f=-.029749145161304082:t[218]>1e-35?f=.06449336340743606:f=.018047654539345502:f=-.07350502390293116:f=-.019594829995832414:t[4]>39.50000000000001?f=-.019338083179859314:t[39]>1e-35?f=-.10427066919173111:t[222]>1e-35?t[0]>612.5000000000001?f=-.019197415255018464:f=-.0836562507048181:t[149]>1e-35?f=-.07679624472577429:t[32]>1e-35?f=-.05097506748590604:t[191]>1e-35?f=.04670476485250936:t[30]>1e-35?f=-.05313073892148652:t[8]>691.5000000000001?t[23]>1e-35?t[203]>1e-35?t[4]>8.500000000000002?f=.03930363008271334:f=-.06029171685615689:f=.016203086182431294:t[4]>7.500000000000001?f=-.013824248237085224:t[10]>4.500000000000001?t[94]>1e-35?f=-.09817668643367765:t[10]>40.50000000000001?f=-.023558078753593125:f=.0065113494780482326:t[8]>809.5000000000001?t[297]>1e-35?f=-.1352063548573715:f=.058203900441270634:f=-.035243959159285736:t[10]>59.50000000000001?t[1]>43.50000000000001?f=-.012552876807800442:f=.05991247777734298:f=.0035893102109330177;let g;t[13]>1e-35?t[9]>21.500000000000004?t[145]>1e-35?g=.03507251990078782:t[2]>14.500000000000002?g=.004905698363309292:t[8]>2421.5000000000005?g=-.10306119951984316:g=-.018951037816654928:t[8]>416.50000000000006?t[3]>4.500000000000001?t[295]>1e-35?g=-.08503171085833393:g=.015130974593044409:g=-.024425267075198206:g=.02624054905103126:t[4]>19.500000000000004?t[131]>1e-35?g=.02100191580704534:t[32]>1e-35?t[8]>2302.5000000000005?g=.09908783187786288:g=-.06920877329925636:t[8]>241.50000000000003?g=-.016756131804203496:t[9]>33.50000000000001?g=.04903179955263626:t[217]>1e-35?g=-.047416847619291644:g=-.0017200891991431119:t[39]>1e-35?g=-.10389927604977028:t[134]>1e-35?g=-.050480365434872866:t[178]>1e-35?g=-.05167855791556937:t[8]>2134.5000000000005?g=-.01663197335585307:t[242]>1e-35?g=-.05361323756615453:t[118]>1e-35?g=-.05299780866211368:t[10]>24.500000000000004?t[10]>55.50000000000001?t[8]>764.5000000000001?g=-.0016544848369620534:g=.04494144460483587:g=-.009283616456736156:t[121]>1e-35?t[0]>4463.500000000001?g=.051166688553608355:g=-.06623908820705383:t[84]>1e-35?g=-.12990936092409747:t[306]>1e-35?g=-.07020596855118943:t[49]>1e-35?g=.06272964802556856:t[192]>1e-35?g=.06540204627162581:g=.008277910531592885;let h;t[13]>1e-35?t[308]>1e-35?t[210]>1e-35?h=.003325460510319164:h=.037153108286272905:t[2]>12.500000000000002?t[1]>124.50000000000001?h=-.09880713344892134:t[7]>60.50000000000001?t[10]>71.50000000000001?h=.0697359767152808:t[230]>1e-35?h=.06513506845651572:h=-.02826625276613455:t[5]>246.50000000000003?t[8]>95.50000000000001?h=.013616385013146277:h=.04171540100223404:h=-.04360396575094823:t[212]>1e-35?h=.025945477945627522:h=-.019793208261535442:t[4]>39.50000000000001?t[25]>1e-35?h=-.07856453318384411:h=-.014803893522351739:t[39]>1e-35?h=-.09185452630751932:t[149]>1e-35?h=-.07122426086157027:t[134]>1e-35?h=-.04231052091434186:t[227]>1e-35?h=-.029815824273994197:t[50]>1e-35?h=-.15736496271211153:t[222]>1e-35?h=-.02360285356956629:t[128]>1e-35?h=-.03922080193836443:t[136]>1e-35?h=-.07219685327698587:t[10]>24.500000000000004?t[1]>8.500000000000002?h=-.0029736170756835783:h=-.06482902102259112:t[84]>1e-35?h=-.11340924635708383:t[94]>1e-35?h=-.03635703457792193:t[118]>1e-35?h=-.058181913914186034:t[126]>1e-35?h=-.062030576241517366:t[116]>1e-35?h=-.045086301850604006:t[25]>1e-35?h=-.031665223656767286:t[203]>1e-35?h=-.009444685731407691:h=.0112265153772187;let y;t[13]>1e-35?t[1]>64.50000000000001?t[9]>14.500000000000002?t[9]>54.50000000000001?y=.022717227245241684:y=-.049700413274686266:y=.007175776918589741:t[5]>50.50000000000001?t[8]>61.50000000000001?t[21]>1e-35?y=-.07927556792063156:t[3]>8.500000000000002?t[4]>23.500000000000004?t[281]>1e-35?y=-.12263724050601095:y=.0070743478891288035:t[288]>1e-35?y=-.050439138582109:y=.0255701593657891:y=-.005812703740580558:t[6]>49.50000000000001?y=-.008542694147899113:y=.035147383686665:y=-.0960461939274094:t[32]>1e-35?y=-.04555453745517765:t[222]>1e-35?t[0]>612.5000000000001?y=-.01800870272656664:y=-.07817304234604389:t[30]>1e-35?y=-.05227061750368981:t[25]>1e-35?t[0]>4449.500000000001?t[217]>1e-35?y=.08778416018479411:y=-.026563982720830256:y=-.05296139548112329:t[50]>1e-35?y=-.14926464875852247:t[8]>779.5000000000001?t[133]>1e-35?y=-.036572140520852024:t[183]>1e-35?y=-.10766853736801459:y=-.003966794968701808:t[217]>1e-35?t[5]>5237.500000000001?y=.09513215942486053:y=-.03641865277445567:t[10]>59.50000000000001?y=.03177172388687933:t[39]>1e-35?y=-.10234241303898953:t[243]>1e-35?y=-.02966738115984321:t[190]>1e-35?y=-.04312785336449181:t[118]>1e-35?y=-.05808521194081524:y=.006720381600740378;let v;t[308]>1e-35?t[5]>423.00000000000006?t[133]>1e-35?v=-.046284053681928526:t[210]>1e-35?v=49778070699847876e-21:t[13]>1e-35?v=.03328070054739309:t[128]>1e-35?v=-.054790214922938896:t[126]>1e-35?v=-.08524792218532945:v=.014414055975542446:t[1]>38.50000000000001?v=-.07287851335872973:v=.005263371501687163:t[9]>7.500000000000001?t[21]>1e-35?t[10]>4.500000000000001?v=-.12459748864088374:v=-.004626323021331593:t[298]>1e-35?t[4]>64.50000000000001?v=.13044981041138526:t[9]>71.50000000000001?v=-.056068402282406865:t[9]>12.500000000000002?v=.038957722962512764:v=-.04598815982492169:t[8]>691.5000000000001?t[126]>1e-35?v=-.0852126122372075:t[225]>1e-35?v=.10082066771689505:t[1]>161.50000000000003?v=-.11609832500613824:t[3]>8.500000000000002?t[8]>1685.5000000000002?v=-.010835400874777133:v=.004607419973807752:v=-.016989075258564062:v=.009205417251698097:t[23]>1e-35?t[20]>1e-35?v=.10184317139657878:t[0]>5724.500000000001?v=-.1163666496650542:t[1]>106.50000000000001?v=.1303850608190687:t[129]>1e-35?v=.10745031509534769:v=.006166901738036226:t[31]>1e-35?v=.010177092833155127:t[13]>1e-35?t[0]>213.50000000000003?v=.005004582564506611:v=-.10481581731668346:t[19]>1e-35?v=-.009850706427306281:v=-.02608226348051303;let _;t[13]>1e-35?t[1]>64.50000000000001?t[2]>4.500000000000001?_=-.0024117174588695603:_=-.058339700513831916:t[212]>1e-35?t[0]>2215.5000000000005?t[8]>847.5000000000001?t[10]>21.500000000000004?t[1]>39.50000000000001?_=.04575380761203418:_=-.10025595041353463:t[15]>1e-35?_=.17705790384964004:_=.0073813837628615014:_=.07676373681392407:_=-.027167992693885996:t[3]>11.500000000000002?t[280]>1e-35?_=.07078572910026419:t[4]>23.500000000000004?_=.005513918674164821:_=.0206586476926392:t[0]>5269.500000000001?_=.07706773525822633:_=-.010233826953776122:t[148]>1e-35?t[8]>1622.5000000000002?_=-.03204783603215824:_=.027405418223981973:t[4]>14.500000000000002?t[131]>1e-35?t[9]>1.5000000000000002?t[0]>5026.500000000001?_=-.0930246911392012:_=.011173087289703683:t[3]>24.500000000000004?_=.03281421918878597:_=.12449335091369843:t[204]>1e-35?_=.06634531187326123:_=-.011522999669353388:t[92]>1e-35?t[10]>42.50000000000001?_=-.041196758517013515:t[4]>7.500000000000001?_=-2942718111029724e-20:t[4]>6.500000000000001?_=.11953909558532852:_=.03188615019450534:t[122]>1e-35?_=-.0616037324662157:t[101]>1e-35?_=.027230889593349412:t[8]>4968.500000000001?_=-.1113986516540856:t[3]>2.5000000000000004?_=-.002045140426885727:t[129]>1e-35?_=.12641163374304432:_=.014909826232873194;let w;t[308]>1e-35?t[0]>7277.500000000001?w=-.09337446795435:t[5]>423.00000000000006?t[133]>1e-35?w=-.040884836258675006:t[210]>1e-35?w=-.0003719413278428804:t[13]>1e-35?w=.030287610160818174:w=.011174130013595384:t[1]>38.50000000000001?w=-.0662442170185784:w=.004332185707008564:t[9]>7.500000000000001?t[145]>1e-35?t[285]>1e-35?w=-.08092286307197555:w=.029866363328584986:t[21]>1e-35?t[10]>4.500000000000001?w=-.1155211149523894:w=-.0032903546638958538:t[149]>1e-35?w=-.03632198993199768:t[3]>9.500000000000002?t[8]>999.5000000000001?w=-.003507023626534306:t[128]>1e-35?t[4]>13.500000000000002?t[0]>3459.5000000000005?w=-.025416927789760076:w=.02777568919793122:w=-.10310351509769732:w=.013549608903688785:t[186]>1e-35?w=.08513865847420551:w=-.009306721292510369:t[31]>1e-35?w=.009780833952582307:t[23]>1e-35?w=.011143773934157629:t[210]>1e-35?w=.025354797285173356:t[17]>1e-35?t[10]>3.5000000000000004?w=-.04846287537743046:w=-.014647271080376757:t[2]>5.500000000000001?t[7]>57.50000000000001?w=-.034224938681445764:t[8]>1641.5000000000002?w=-.027298372075800673:t[191]>1e-35?t[10]>18.500000000000004?w=-.027950103994861836:w=.14575930827829034:w=-.007124740389354946:t[10]>22.500000000000004?w=.013173304107866726:w=-.11119620042551365;let x;t[131]>1e-35?x=.01892225243240137:t[308]>1e-35?t[5]>691.5000000000001?t[133]>1e-35?x=-.037118314390013646:t[1]>51.50000000000001?t[5]>3749.5000000000005?t[8]>58.50000000000001?x=-.022305242912035072:x=.024792895826340516:x=.013666137278072166:t[88]>1e-35?t[10]>27.500000000000004?x=.2080083584805785:x=.04247197078083379:t[10]>40.50000000000001?t[18]>1e-35?t[1]>27.500000000000004?x=.060783227455868206:x=-.056904865557409035:x=-.03278952553107572:t[192]>1e-35?x=.13117402617043625:x=.01647119888257836:x=-.01825870445636398:t[9]>6.500000000000001?t[298]>1e-35?x=.026536210945939682:t[8]>691.5000000000001?t[126]>1e-35?x=-.07927319604548912:t[10]>3.5000000000000004?t[21]>1e-35?x=-.11083976837572328:t[146]>1e-35?x=-.03359294484446772:x=-.0042815953591236475:t[190]>1e-35?x=-.09264239592903775:t[10]>1e-35?x=.022282638485105657:x=-.0205994057928458:t[5]>4918.500000000001?x=.03430715695199153:t[243]>1e-35?t[2]>57.50000000000001?x=.08935072241972036:x=-.03781647876237494:x=.0062655753179671515:t[31]>1e-35?x=.008603500300349887:t[230]>1e-35?x=.03350056932774173:t[23]>1e-35?t[241]>1e-35?x=.10277555508503314:x=.0017901817172993888:t[2]>98.50000000000001?x=-.05920081229672715:x=-.015722173275739208;let E;t[13]>1e-35?t[118]>1e-35?E=.07957905150112207:t[1]>125.50000000000001?E=-.0662620579858685:t[145]>1e-35?E=.029682040828779843:t[19]>1e-35?t[6]>15.500000000000002?E=-.0009597832580977798:E=-.081474760755753:t[212]>1e-35?E=.03637001492325179:E=.006912305498963309:t[32]>1e-35?E=-.03919900630910754:t[134]>1e-35?E=-.036225295529777886:t[4]>4.500000000000001?t[5]>384.50000000000006?t[204]>1e-35?E=.06671440854602108:t[136]>1e-35?E=-.07577364230133474:t[148]>1e-35?t[4]>7.500000000000001?E=.026430947016830915:E=-.04075501264495112:t[9]>93.50000000000001?E=-.04353169430417609:t[50]>1e-35?E=-.1411224537622882:t[17]>1e-35?t[49]>1e-35?E=.068392679163672:t[10]>1.5000000000000002?E=-.0209659792007492:E=-.0004393235559249831:t[133]>1e-35?t[9]>64.50000000000001?E=.07254524592323175:E=-.0319087835282534:E=.00037444813327793425:E=-.025138768151370408:t[243]>1e-35?E=-.050010891710502096:t[94]>1e-35?E=-.0817513550778599:t[122]>1e-35?E=-.061038875809822285:t[19]>1e-35?t[8]>1085.5000000000002?E=-.008408408775061623:t[2]>5.500000000000001?t[218]>1e-35?E=.1454877641381946:E=.053787998331240316:t[9]>33.50000000000001?E=.08602629796680285:E=-.03895127455803038:E=.008830878042315722;let I;t[131]>1e-35?I=.01687979707990516:t[8]>2915.5000000000005?t[297]>1e-35?I=.07473600489975568:t[0]>93.50000000000001?I=-.021596848506011502:I=-.13840802327735696:t[230]>1e-35?t[4]>6.500000000000001?t[0]>4977.500000000001?I=.10264284346448256:I=.031042487183181262:I=-.016653982936827776:t[4]>60.50000000000001?t[10]>75.50000000000001?I=.04226403420647408:t[10]>1e-35?t[0]>4733.500000000001?I=.006271403149804702:I=-.030013637555715046:t[0]>4449.500000000001?I=-.06556876058654929:I=.06437994816903034:t[32]>1e-35?I=-.043814577251655815:t[308]>1e-35?t[0]>7277.500000000001?I=-.09349726304052086:t[210]>1e-35?I=-.0035960132209098003:t[5]>691.5000000000001?t[133]>1e-35?I=-.029188394315052574:I=.017219308333820193:I=-.017378928852189585:t[9]>6.500000000000001?t[0]>2653.5000000000005?t[149]>1e-35?I=-.04428555753857688:I=.0001456106867817353:t[5]>213.50000000000003?I=.01740292726636365:I=-.011361718115556464:t[7]>4.500000000000001?t[0]>316.50000000000006?t[19]>1e-35?t[10]>54.50000000000001?I=.03410288911259329:t[121]>1e-35?I=-.06056527462120627:t[8]>2592.5000000000005?I=.12166808844363577:t[191]>1e-35?I=.11669879218998758:I=-.001664858391716235:I=-.01262927450503166:I=-.04506589951879664:t[227]>1e-35?I=-.08548904959752329:I=.02156080776537726;let k;t[306]>1e-35?t[149]>1e-35?k=-.1389218965136736:k=-.032218642644416894:t[13]>1e-35?k=.006465035217331847:t[50]>1e-35?k=-.1381687930130022:t[179]>1e-35?k=-.13112784985951215:t[148]>1e-35?t[8]>1726.5000000000002?k=-.03262719498763048:k=.023342916702125613:t[191]>1e-35?k=.030005484947580197:t[4]>4.500000000000001?t[204]>1e-35?k=.047767773119269434:t[136]>1e-35?t[0]>1937.5000000000002?k=-.09989343595668776:k=.06533942033334243:t[15]>1e-35?t[9]>86.50000000000001?k=-.10577989354150097:t[8]>668.5000000000001?t[126]>1e-35?k=-.09165257825246746:t[9]>32.50000000000001?k=.02484870392366004:k=-.008499493096971395:t[8]>24.500000000000004?k=.02459679192828244:k=-.010527978013140512:t[25]>1e-35?t[217]>1e-35?k=.0015644546318714849:k=-.06579524865022705:k=-.0060233890975120614:t[122]>1e-35?t[1]>36.50000000000001?k=.03331853632960164:k=-.09482264761126993:t[19]>1e-35?t[8]>1430.5000000000002?k=-.019091477207111116:k=.037878468575478504:t[94]>1e-35?k=-.08013082284576584:t[4]>2.5000000000000004?t[186]>1e-35?k=.16919658785098224:t[243]>1e-35?k=-.06580584936754524:k=.01567555159935563:t[129]>1e-35?k=.06721746994993226:t[10]>32.50000000000001?k=-.046394462507797975:k=-.006436180519584767;let T;t[131]>1e-35?T=.015039096856208693:t[8]>779.5000000000001?t[145]>1e-35?T=.019122095523977856:t[298]>1e-35?T=.023828936462317443:t[1]>23.500000000000004?t[5]>384.50000000000006?t[7]>59.50000000000001?T=-.026094309429557913:t[204]>1e-35?T=.09163404305658318:t[1]>27.500000000000004?t[149]>1e-35?t[6]>34.50000000000001?T=.012643810980689466:T=-.07884161741497837:T=-.0025267379810891104:t[2]>43.50000000000001?t[0]>2860.5000000000005?T=.04493082949897325:T=.18046359750455776:t[7]>18.500000000000004?T=-.018667348656891496:T=.02584325784698236:T=-.045696524897545915:t[0]>3321.5000000000005?t[201]>1e-35?T=.04749240016989375:T=-.0333334578246718:t[5]>3276.5000000000005?T=.11330554740098908:t[7]>94.50000000000001?T=.1296600395033268:T=-.003576436308940934:t[15]>1e-35?t[183]>1e-35?T=-.13787130789142835:t[0]>1847.5000000000002?T=.017915229729920556:t[10]>23.500000000000004?t[10]>31.500000000000004?t[6]>7.500000000000001?T=.028856848462727104:T=-.11197632885851168:T=.08169801342016791:t[1]>22.500000000000004?T=-.021052888644970163:T=.019048604298876753:t[7]>4.500000000000001?T=-.002603328695276418:t[7]>1.5000000000000002?t[2]>5.500000000000001?T=.03432638833359197:T=-.0036767863082454973:t[1]>48.50000000000001?T=.03087375270128195:t[2]>3.5000000000000004?T=-.04219917149740248:T=.018818493993207935;let D;t[306]>1e-35?D=-.04076858123502297:t[13]>1e-35?t[1]>67.50000000000001?t[9]>14.500000000000002?t[9]>53.50000000000001?t[8]>1971.5000000000002?D=-.09091897542577475:D=.04042943082645558:t[218]>1e-35?D=.056254985867151:D=-.053848117950183044:D=.003881630017086845:t[5]>5152.500000000001?t[8]>857.5000000000001?t[6]>28.500000000000004?D=.021581808008986944:D=-.05639286496176611:D=.052838875036198954:t[5]>50.50000000000001?t[5]>4082.5000000000005?t[17]>1e-35?D=.023061479860228728:t[145]>1e-35?t[9]>10.500000000000002?D=.023885302967553288:D=.1617794086125622:t[212]>1e-35?D=.04504545345658806:t[3]>17.500000000000004?t[4]>45.50000000000001?D=-.03948072448245435:t[1]>47.50000000000001?t[9]>18.500000000000004?D=.01894935813286188:D=-.06449356357429188:D=.012297239104320094:t[1]>26.500000000000004?t[8]>33.50000000000001?D=-.034718828212885515:D=.0898976288814321:t[1]>17.500000000000004?D=-.15440137451988326:D=-.03864183216821465:D=.009988507307006308:D=-.08540311947043305:t[50]>1e-35?D=-.13323659732101975:t[134]>1e-35?D=-.031820386486894385:t[32]>1e-35?t[8]>2302.5000000000005?D=.08082476177379844:D=-.041665761903645876:t[179]>1e-35?D=-.12405023987936657:t[39]>1e-35?D=-.06247416524997478:t[138]>1e-35?D=-.10724031753676487:D=-.0005423122305122404;let M;t[308]>1e-35?M=.006160742906729798:t[190]>1e-35?t[0]>2461.5000000000005?t[10]>22.500000000000004?M=.023223358334607133:M=-.04383410185346742:M=-.08542395045055405:t[297]>1e-35?t[8]>51.50000000000001?t[1]>13.500000000000002?M=.023406489302867494:M=-.085521220804058:M=-.02921899554854833:t[298]>1e-35?t[9]>12.500000000000002?M=.028120059780969632:M=-.04211009474298743:t[294]>1e-35?M=-.05040415676618239:t[86]>1e-35?t[1]>36.50000000000001?M=-.0993035220737934:M=-.0005384930611060366:t[230]>1e-35?t[4]>6.500000000000001?M=.029770210551187937:M=-.016272917551655715:t[4]>60.50000000000001?t[280]>1e-35?M=.06421359317599738:M=-.01963732469244167:t[218]>1e-35?t[3]>3.5000000000000004?M=.024368404612215164:M=-.04045232374803373:t[131]>1e-35?M=.017372701982485795:t[120]>1e-35?M=.08812710275150198:t[18]>1e-35?t[90]>1e-35?M=.18451364351180236:t[7]>33.50000000000001?M=-.03850813130183531:t[195]>1e-35?M=.06966114053446336:t[3]>16.500000000000004?M=-.0012869181693341211:t[0]>4242.500000000001?M=-.054625548611291035:M=-.014431095117473881:t[5]>4558.500000000001?t[8]>1.5000000000000002?M=.006302103427145562:M=.13967622319898698:t[121]>1e-35?M=-.038798585213145644:t[5]>4544.500000000001?M=-.08050498033009466:M=-.002986974112681435;let q;t[0]>384.50000000000006?t[2]>101.50000000000001?t[1]>16.500000000000004?q=-.03461119351456781:q=.05659026566680352:t[306]>1e-35?t[2]>14.500000000000002?t[149]>1e-35?q=-.12404435523286539:q=-.0034376913880382956:q=-.09821622245095822:t[131]>1e-35?t[9]>1.5000000000000002?q=.0037507103585310234:q=.03610387965829944:t[8]>999.5000000000001?t[9]>137.50000000000003?q=-.11985021663179699:t[0]>1847.5000000000002?t[126]>1e-35?q=-.04832024079663151:t[37]>1e-35?q=-.037103393468366934:q=-.004248086592531705:t[8]>3084.0000000000005?t[9]>43.50000000000001?q=.032539071163832034:t[5]>1643.5000000000002?q=.036408625378035665:t[0]>1500.5000000000002?q=-.1346358322854993:q=-.027586559522081014:t[3]>1e-35?t[190]>1e-35?q=-.1133991164577881:t[9]>52.50000000000001?q=-.024478640359723122:q=.03673777861098756:q=-.1037451237591819:t[230]>1e-35?t[9]>48.50000000000001?t[10]>20.500000000000004?q=.002583438691776944:q=.10773520810108106:t[9]>12.500000000000002?t[1]>16.500000000000004?q=-.02141222346712401:q=.06392462314316179:t[4]>12.500000000000002?q=.08700122294434816:t[8]>267.50000000000006?q=.056923170082743224:q=-.07716309825583327:t[32]>1e-35?q=-.03961343943752142:q=.002674914122888783:t[1]>42.50000000000001?q=-.05217539654421676:t[145]>1e-35?q=.09553630282946368:q=-.009424791262477729;let $;t[183]>1e-35?$=-.05753337139158443:t[308]>1e-35?$=.00562436671450989:t[9]>7.500000000000001?t[21]>1e-35?t[10]>8.500000000000002?$=-.10477869875380448:$=-.0070301869937306055:t[3]>9.500000000000002?t[8]>1765.5000000000002?t[0]>4571.500000000001?$=-.12526505173232894:t[10]>1e-35?t[9]>71.50000000000001?$=-.04442302951713574:$=.00012409888451734224:$=-.092199119633697:t[225]>1e-35?$=.13773072450201831:t[0]>2882.5000000000005?$=.0028540012229920533:t[298]>1e-35?$=.07134486044361629:$=.014297412329837425:t[145]>1e-35?$=.05608385321902638:t[92]>1e-35?$=.038298413603926135:t[107]>1e-35?t[2]>6.500000000000001?$=-.0039957800609801315:$=.0776927564241081:t[203]>1e-35?$=-.05502900859432093:t[105]>1e-35?$=.06062892720841595:$=-.009574839629252128:t[31]>1e-35?$=.009488858841144216:t[23]>1e-35?t[20]>1e-35?$=.08818126313644752:t[8]>161.50000000000003?$=.014353968957885408:$=-.022240738532827903:t[210]>1e-35?$=.024648862719806694:t[2]>5.500000000000001?t[4]>4.500000000000001?t[17]>1e-35?t[10]>16.500000000000004?$=-.043902062079383485:$=-.014741559220396223:$=-.00934935734853194:t[6]>32.50000000000001?$=.1514593126307404:$=.010771222510801532:t[10]>22.500000000000004?$=.01412495209334078:$=-.08576940379502533;let L;t[0]>384.50000000000006?t[84]>1e-35?L=-.06647690967306838:t[2]>101.50000000000001?L=-.024451334501552457:t[306]>1e-35?L=-.034517188927733505:t[131]>1e-35?t[9]>1.5000000000000002?L=.0031858381443673127:L=.032574927024450646:t[204]>1e-35?t[1]>62.50000000000001?L=-.08601340441214533:t[1]>29.500000000000004?L=.10487598629539963:t[8]>597.5000000000001?L=-.0786529133673238:L=.08689436600511559:t[8]>779.5000000000001?t[10]>2.5000000000000004?t[9]>100.50000000000001?L=-.04883600353740688:t[126]>1e-35?L=-.03794042763348827:L=-.003358871967539988:t[210]>1e-35?L=.054991356498447566:t[6]>19.500000000000004?L=-.007418396981635549:L=.018032606049498613:t[18]>1e-35?t[7]>35.50000000000001?t[2]>44.50000000000001?L=-.02143003429501711:L=-.09016000554055564:t[1]>19.500000000000004?t[1]>42.50000000000001?t[8]>17.500000000000004?L=-.006636355416244082:L=-.06483095743431454:t[4]>21.500000000000004?L=-.028975965946833545:L=.022012264796522657:L=-.06653648243193663:t[5]>4593.500000000001?L=.01753551428088607:t[217]>1e-35?L=-.028864824937700297:t[94]>1e-35?L=-.04885192273020658:t[279]>1e-35?L=.08105715462329498:t[121]>1e-35?L=-.04576676034750651:L=.004795141324949362:t[1]>42.50000000000001?L=-.047446619702809195:t[145]>1e-35?L=.08400495571952321:L=-.00854528836489364;let F;t[294]>1e-35?F=-.042529778074638265:t[266]>1e-35?F=-.1180276669679798:t[134]>1e-35?F=-.026818144353279623:t[183]>1e-35?F=-.05120747503479363:t[227]>1e-35?t[8]>1641.5000000000002?F=-.07265906898294434:t[4]>12.500000000000002?t[17]>1e-35?F=-.027516137530797014:t[0]>4331.500000000001?t[1]>64.50000000000001?F=-.03049646619610203:t[1]>50.50000000000001?F=.20634590755061122:F=.06956378103625731:t[0]>3770.5000000000005?F=-.07946414366134913:t[19]>1e-35?F=.17083312065604694:t[2]>21.500000000000004?F=-.02327981978127724:F=.129717297518715:t[145]>1e-35?F=.006891245076133524:F=-.0789123467863741:t[3]>99.50000000000001?F=-.02022281202803071:t[302]>1e-35?t[10]>47.50000000000001?F=.06447639919732716:F=-.05457561977645972:t[306]>1e-35?F=-.029995903305383882:t[191]>1e-35?F=.030596508110850414:t[242]>1e-35?F=-.024085578702020216:t[8]>3198.5000000000005?t[297]>1e-35?F=.09518584795377832:F=-.018197744600833596:t[13]>1e-35?F=.006751790086127549:t[148]>1e-35?F=.01904174573618417:t[99]>1e-35?F=.025287735102561926:t[4]>14.500000000000002?F=-.004364337681643273:t[1]>15.500000000000002?t[35]>1e-35?F=-.09467943982430241:t[243]>1e-35?F=-.02521824751996268:F=.005437570718352172:F=-.022476214821960674;let te;t[0]>384.50000000000006?t[84]>1e-35?te=-.06088131453064195:t[147]>1e-35?te=-.05332792965930566:t[135]>1e-35?t[9]>32.50000000000001?te=.04219361472548491:te=-.07227529211725771:t[10]>4.500000000000001?t[21]>1e-35?te=-.0787279848043689:t[17]>1e-35?t[3]>18.500000000000004?t[188]>1e-35?te=-.054347604504400286:t[0]>3544.5000000000005?t[0]>5850.500000000001?te=-.11431764534511478:te=.013549717238356157:te=-.020987333767091276:t[6]>2.5000000000000004?te=-.02914877855133127:te=.08483464900160231:t[8]>58.50000000000001?t[183]>1e-35?te=-.10087072787978416:t[37]>1e-35?te=-.030467397753331196:t[229]>1e-35?te=-.1017559811057469:t[4]>20.500000000000004?te=-.00413177742240167:t[20]>1e-35?te=.05213315982685969:te=.0037921635866823133:t[8]>51.50000000000001?te=.07327913092421544:t[6]>49.50000000000001?te=-.03457694284156811:t[6]>18.500000000000004?t[7]>17.500000000000004?te=.02744420891894289:te=.11288946357194463:te=.003482908820966248:t[18]>1e-35?t[1]>20.500000000000004?t[7]>4.500000000000001?te=-.012329314369909049:te=.026816658655600168:te=-.0872405354618811:te=.007872673500247845:t[1]>42.50000000000001?te=-.04309044198258254:t[145]>1e-35?te=.07572529147860785:t[7]>5.500000000000001?te=-.013837187093264945:t[1]>17.500000000000004?te=.04208698439539668:te=-.06284346769019863;let oe;t[294]>1e-35?oe=-.0384794324818203:t[266]>1e-35?oe=-.1087205883821061:t[32]>1e-35?t[8]>2302.5000000000005?oe=.07432960094940501:oe=-.035248735855751855:t[134]>1e-35?oe=-.02456191365284949:t[121]>1e-35?t[0]>4720.500000000001?t[1]>39.50000000000001?oe=-.01706896375068821:oe=.08212247914968074:t[2]>59.50000000000001?oe=-.09546478958824225:t[6]>53.50000000000001?oe=.12317082897575611:t[1]>56.50000000000001?t[4]>7.500000000000001?t[0]>3560.5000000000005?oe=.02816463285971267:oe=.15449139016588445:oe=-.10199787406123524:oe=-.038068684323297096:t[223]>1e-35?t[8]>668.5000000000001?oe=-.13924786681478077:oe=-.0072772442570213335:t[39]>1e-35?oe=-.05392786531177836:t[0]>93.50000000000001?t[40]>1e-35?oe=-.054059371343144036:t[306]>1e-35?t[2]>14.500000000000002?t[149]>1e-35?oe=-.11174465335620831:oe=.00013144040097180107:oe=-.08493919336681105:t[42]>1e-35?oe=-.11078582572836196:t[84]>1e-35?t[4]>17.500000000000004?oe=-.015540659878839153:oe=-.14442609417300142:t[21]>1e-35?oe=-.025251979447574083:oe=.0023698372645272847:t[18]>1e-35?oe=.07269739695712212:t[8]>2592.5000000000005?oe=-.1460388776448558:t[9]>30.500000000000004?t[1]>23.500000000000004?oe=-.01835130329646532:t[9]>45.50000000000001?oe=.02023047454629885:oe=.16469378262221102:oe=-.042975030085836426;let Y;t[8]>2915.5000000000005?t[297]>1e-35?Y=.06257393915394144:t[0]>93.50000000000001?t[4]>1.5000000000000002?Y=-.01034964686484714:Y=-.07357437440667927:Y=-.11987794734779106:t[298]>1e-35?t[8]>81.50000000000001?t[0]>3370.5000000000005?t[8]>155.50000000000003?t[8]>660.5000000000001?t[8]>2134.5000000000005?Y=-.09476398869062203:t[9]>72.50000000000001?Y=-.0757383854264379:Y=.02806542779508718:Y=-.05147742568418084:Y=.10212721564444344:Y=.0518263760642861:Y=-.08743405377022222:t[189]>1e-35?t[0]>5269.500000000001?Y=-.10669213185972036:Y=.027050434286384796:t[302]>1e-35?Y=-.0407832394672723:t[116]>1e-35?t[10]>38.50000000000001?Y=.06354599160071946:t[1]>67.50000000000001?Y=.05317447949011187:Y=-.059138165935307165:t[212]>1e-35?t[19]>1e-35?Y=-.09369289448773599:t[0]>2215.5000000000005?Y=.04077965380363924:t[0]>807.5000000000001?Y=-.0591771776458298:Y=.057315736906679376:t[308]>1e-35?t[1]>52.50000000000001?t[5]>3749.5000000000005?Y=-.016323380219241672:Y=.007291062979527741:t[210]>1e-35?t[8]>1641.5000000000002?Y=.03720704290087811:Y=-.008730548158766654:t[4]>80.50000000000001?Y=-.05346644687473197:Y=.014596824736762107:t[218]>1e-35?t[3]>3.5000000000000004?Y=.019984510398089086:Y=-.03917825025861855:t[9]>170.50000000000003?Y=-.09759719821334525:Y=-.0023586682752856298;let ge;t[183]>1e-35?t[17]>1e-35?ge=.030100940443356424:t[10]>1.5000000000000002?ge=-.10861112216742408:ge=.017680668976453255:t[227]>1e-35?t[17]>1e-35?t[2]>16.500000000000004?ge=-.032062878390325456:ge=-.10808232631806887:t[8]>1641.5000000000002?ge=-.06147013392655731:t[4]>12.500000000000002?ge=.03324767551088266:t[145]>1e-35?ge=.028851633810612017:ge=-.054871239091792784:t[134]>1e-35?ge=-.023813968121342108:t[266]>1e-35?ge=-.10037039667146351:t[222]>1e-35?t[0]>612.5000000000001?t[10]>1e-35?t[8]>1939.5000000000002?ge=-.055566877553100726:t[2]>24.500000000000004?t[8]>182.50000000000003?t[10]>43.50000000000001?t[10]>55.50000000000001?ge=-.025350325484720576:ge=.1579024598549572:t[9]>2.5000000000000004?t[0]>3746.5000000000005?ge=.056817276537534815:ge=-.07674158463557636:ge=-.06335553143454145:t[1]>56.50000000000001?ge=.16390494217299284:ge=-.0027330160430847177:t[10]>36.50000000000001?t[8]>1067.5000000000002?ge=.041717597065890205:ge=-.10357913492269129:t[10]>29.500000000000004?ge=.1365512866715726:ge=.020600048310575665:ge=.09708785634773187:ge=-.060427658852305666:t[126]>1e-35?t[10]>32.50000000000001?t[6]>24.500000000000004?t[8]>1146.5000000000002?ge=-.03146213719547347:ge=.11784024316238083:ge=-.050940520532045355:ge=-.047988344143075616:t[191]>1e-35?ge=.028764654731460032:ge=.0011911575567860023;let re;t[294]>1e-35?t[10]>50.50000000000001?re=-.11630092297244568:t[0]>2432.5000000000005?t[0]>4199.500000000001?re=-.05103908560370243:re=.05002066201169583:re=-.09976646725732496:t[32]>1e-35?t[0]>4242.500000000001?re=-.0648838712201258:t[5]>3721.5000000000005?t[9]>4.500000000000001?re=.127983140816313:re=-.05436534163636867:re=-.024514536544596455:t[121]>1e-35?t[0]>4449.500000000001?t[4]>9.500000000000002?re=-.009504203657088933:t[8]>819.5000000000001?re=.18689664822602375:re=.03635576744011826:re=-.029862411809998525:t[223]>1e-35?re=-.06474496692999487:t[86]>1e-35?t[8]>65.50000000000001?t[1]>46.50000000000001?re=-.09405026597863717:t[0]>4153.500000000001?re=.053577663326799765:re=-.05062127873995668:re=.06512222894425874:t[39]>1e-35?re=-.04985311717827547:t[51]>1e-35?re=-.04541229517934797:t[178]>1e-35?t[2]>25.500000000000004?t[2]>30.500000000000004?t[0]>2151.5000000000005?re=-.02860634573675884:re=.08863753005590103:re=.11158892111063744:t[0]>655.5000000000001?re=-.031005736641654926:re=-.1439827004505974:t[222]>1e-35?t[1]>11.500000000000002?t[0]>612.5000000000001?re=-.00843386136334982:re=-.05273594615999777:re=.1060183822015004:t[126]>1e-35?t[10]>32.50000000000001?t[8]>719.5000000000001?re=-.015774115523598486:re=.10147367091236065:re=-.048307000563071016:re=.002118376117677254;let J;t[8]>1014.5000000000001?t[9]>137.50000000000003?J=-.10279096288817871:t[0]>93.50000000000001?t[8]>1067.5000000000002?t[227]>1e-35?J=-.03544332389470493:t[285]>1e-35?t[9]>64.50000000000001?J=.07211107542565391:J=-.041556776020476104:t[145]>1e-35?t[1]>66.50000000000001?J=-.0751486415451188:t[1]>59.50000000000001?J=.13459005084554104:J=.024184371850147466:t[0]>3072.5000000000005?t[95]>1e-35?J=.06715575425741895:J=-.005895690393702183:t[8]>2915.5000000000005?J=-.010205039411753762:t[9]>33.50000000000001?t[9]>47.50000000000001?J=-.00029068886245881074:J=.0613467393188786:t[148]>1e-35?J=-.06074463294936236:t[3]>1.5000000000000002?t[5]>1849.5000000000002?t[1]>15.500000000000002?J=.003887223773199377:J=-.08553893131979015:J=.025654192706396767:J=-.05651733979610658:J=-.02039913645229667:t[2]>7.500000000000001?J=-.1058450646728524:J=.02267192191610376:t[1]>120.50000000000001?t[2]>60.50000000000001?J=-.12304707569000428:t[1]>132.50000000000003?t[6]>41.50000000000001?J=.1283258201586378:J=-.01718135372229775:J=-.07702452408491414:t[125]>1e-35?J=-.0804612900572707:t[178]>1e-35?t[0]>4533.500000000001?J=.04273051857848212:J=-.04533122948101463:t[2]>196.50000000000003?J=-.10543331044088727:t[94]>1e-35?t[5]>4532.500000000001?J=.0231032972703664:J=-.04807386814498683:J=.002729435991332102;let Ae;t[179]>1e-35?Ae=-.08065315471211375:t[183]>1e-35?t[17]>1e-35?Ae=.026484626664041125:t[10]>1.5000000000000002?Ae=-.10187000872941615:Ae=.015274190652133752:t[84]>1e-35?t[9]>6.500000000000001?t[2]>43.50000000000001?Ae=.09574540795390041:Ae=-.06454986703691233:Ae=-.11411849349353141:t[266]>1e-35?Ae=-.09281838517322076:t[32]>1e-35?t[8]>2302.5000000000005?Ae=.06685250330182936:t[4]>67.50000000000001?t[2]>97.50000000000001?Ae=-.04403391373512386:Ae=.1132928075412222:t[2]>47.50000000000001?Ae=-.09700191391838056:Ae=-.02147184357182825:t[10]>4.500000000000001?t[21]>1e-35?Ae=-.0735617817957859:t[17]>1e-35?t[3]>18.500000000000004?Ae=-.001668912999010927:Ae=-.02363511102970245:t[8]>58.50000000000001?Ae=-.00035213368294640616:t[3]>17.500000000000004?t[2]>28.500000000000004?t[10]>23.500000000000004?t[1]>38.50000000000001?Ae=.0911011436534449:t[1]>28.500000000000004?Ae=-.07192390493729035:Ae=.06913818091291246:Ae=-.012312625373699222:Ae=.06784496312307986:Ae=-167756936027735e-19:t[18]>1e-35?t[8]>302.50000000000006?Ae=.0026564453057705273:Ae=-.025425772389361445:t[122]>1e-35?Ae=-.12046786388602149:t[0]>3183.5000000000005?Ae=.01162092842804907:t[91]>1e-35?Ae=.07000265526928563:t[1]>22.500000000000004?t[0]>576.5000000000001?Ae=-.0001647792543020228:Ae=-.023664538532907665:Ae=.01609078206180752;let G;t[294]>1e-35?t[1]>26.500000000000004?t[0]>4141.500000000001?G=-.051473645433684705:t[0]>3030.5000000000005?t[1]>51.50000000000001?G=-.017696526862422682:G=.1450050954613223:G=-.05406930069823832:G=-.08308700260259043:t[120]>1e-35?G=.058316269489189415:t[297]>1e-35?t[94]>1e-35?G=-.07425512495167255:t[8]>51.50000000000001?t[1]>13.500000000000002?t[1]>33.50000000000001?t[19]>1e-35?t[0]>4498.500000000001?G=.038431826961746934:G=-.05937462906539856:t[9]>65.50000000000001?G=.10814845712507865:t[4]>9.500000000000002?t[2]>22.500000000000004?t[1]>39.50000000000001?t[1]>44.50000000000001?t[10]>44.50000000000001?G=.12297945639231944:t[0]>3796.5000000000005?t[4]>26.500000000000004?G=-.09579030954062734:G=.025064711572811746:G=.02579440518821548:G=.1044440128091862:G=-.058348633139536844:G=.07766788227934436:G=-.01021229539092708:t[2]>2.5000000000000004?t[10]>29.500000000000004?t[0]>3770.5000000000005?t[0]>4438.500000000001?G=.07463684068207214:G=.18244269035484484:t[6]>39.50000000000001?G=-.06050050067471004:G=.05787759066913493:G=.010783225857972171:G=.1674891243602606:t[4]>9.500000000000002?G=-.004814132027475892:G=-.14543299413454813:G=-.02935093398687923:t[116]>1e-35?t[9]>2.5000000000000004?t[8]>1218.5000000000002?G=-.07634466313617769:G=.0287825335169114:G=-.06894721943300268:G=-.00023988459059521937;let U;t[131]>1e-35?t[1]>93.50000000000001?U=-.05706887458825395:t[2]>1.5000000000000002?U=.011446637886629108:U=-.10616119878749211:t[230]>1e-35?t[4]>6.500000000000001?t[0]>4977.500000000001?U=.08424281276381033:t[3]>17.500000000000004?t[20]>1e-35?U=.11146885439601915:t[8]>61.50000000000001?t[0]>3530.5000000000005?t[9]>48.50000000000001?t[9]>61.50000000000001?U=.026278724448495064:U=.17053138400480508:t[0]>4463.500000000001?U=-.06482289890096041:U=.03026516489536295:U=-.031785170717683144:U=.1312690622980455:t[13]>1e-35?U=.14336922540461444:U=.03523850945454039:U=-.015407465968975714:t[39]>1e-35?U=-.054809635385158186:t[32]>1e-35?t[0]>4242.500000000001?U=-.0659975068798723:U=-.008386582621403979:t[4]>60.50000000000001?t[10]>75.50000000000001?t[3]>107.50000000000001?U=-.04225314193574262:t[3]>70.50000000000001?t[1]>29.500000000000004?U=.057409156184759516:U=.2024322059866388:U=-.030670938454461245:t[10]>1e-35?t[0]>4733.500000000001?U=.010648654146284154:t[308]>1e-35?U=.008728141696325391:t[4]>64.50000000000001?t[298]>1e-35?U=.12364025998551711:U=-.02247495081065243:t[1]>22.500000000000004?U=-.0726295464624251:U=.03481895086048152:t[0]>4331.500000000001?U=-.04775443357020673:U=.07172377425057568:t[2]>89.50000000000001?U=-.11782645274716962:U=.00010092665257989378;let ie;t[147]>1e-35?ie=-.041560228567115574:t[302]>1e-35?t[10]>47.50000000000001?ie=.062292114082780084:t[10]>5.500000000000001?t[7]>22.500000000000004?ie=-.016101990375700172:t[0]>2579.5000000000005?ie=-.13045089661551845:ie=-.02874367814784938:ie=.025835149631944995:t[167]>1e-35?t[0]>3928.5000000000005?ie=.17084176915326055:ie=-.019195947948312853:t[222]>1e-35?t[30]>1e-35?t[1]>36.50000000000001?t[8]>45.50000000000001?t[8]>578.5000000000001?t[1]>67.50000000000001?ie=.10591712319944074:ie=-.024082167264285:ie=.16497698867036126:ie=-.04985066326861431:t[0]>1937.5000000000002?t[2]>16.500000000000004?ie=-.021012910475524206:ie=-.13058422554298485:t[0]>1102.5000000000002?ie=.10955864175201457:ie=-.03566689354348996:t[1]>11.500000000000002?ie=-.02093884208606101:ie=.09107244766183857:t[126]>1e-35?t[10]>32.50000000000001?t[8]>719.5000000000001?ie=-.013861861436128482:ie=.09756849802202777:t[224]>1e-35?t[1]>51.50000000000001?ie=.10163873449625677:ie=-.02779270277623805:t[1]>26.500000000000004?ie=-.08035058228527389:ie=.0005719695099064484:t[191]>1e-35?t[9]>9.500000000000002?ie=-.007028075523033826:ie=.0489470913925288:t[1]>61.50000000000001?t[132]>1e-35?ie=.11230846723576784:t[0]>350.50000000000006?t[2]>1.5000000000000002?ie=-.0032075580718124892:ie=-.04442829143298883:ie=-.06597073245775804:ie=.0015594090939337751;let xe;t[223]>1e-35?t[8]>668.5000000000001?xe=-.12803889879260094:xe=.002171373740016862:t[121]>1e-35?t[0]>4720.500000000001?t[217]>1e-35?xe=.08967966612917375:t[1]>39.50000000000001?xe=-.059791671514498074:xe=.05648934961902822:t[2]>59.50000000000001?xe=-.08633234097449628:t[6]>53.50000000000001?xe=.11140345067444689:t[1]>56.50000000000001?t[4]>7.500000000000001?t[0]>3560.5000000000005?xe=.025606129643140924:xe=.13835395886271978:xe=-.09361630641448024:t[4]>7.500000000000001?t[1]>26.500000000000004?t[1]>49.50000000000001?xe=-.09975506556937946:t[10]>36.50000000000001?xe=-.09427724661655643:t[10]>24.500000000000004?xe=.07329330653410447:xe=-.02271182965807972:xe=-.09767874967639482:t[6]>13.500000000000002?t[10]>23.500000000000004?xe=-.05082091374050816:xe=.1687114435254966:t[0]>2314.5000000000005?xe=-.06422664016383926:xe=.0636688376664789:t[298]>1e-35?t[9]>12.500000000000002?t[133]>1e-35?xe=-.06857762517406195:t[9]>71.50000000000001?t[0]>4188.500000000001?xe=-.1274167728754332:xe=.01308079126447365:t[4]>73.50000000000001?xe=.13854015371106546:t[4]>48.50000000000001?xe=-.03684255740123261:t[6]>45.50000000000001?xe=.10329912215813097:t[10]>77.50000000000001?xe=-.08630788656925215:xe=.031022006843800853:t[1]>25.500000000000004?xe=-.08278381528048026:xe=.06664374548141594:t[84]>1e-35?xe=-.05624227409079396:xe=.00012184182357340415;let ze;t[179]>1e-35?ze=-.07443348719246982:t[40]>1e-35?t[0]>1937.5000000000002?ze=-.07595415373151816:ze=.054065040429292326:t[134]>1e-35?t[11]>1e-35?t[2]>13.500000000000002?t[0]>1187.5000000000002?ze=.022822510448266862:ze=.17491569312933697:ze=-.058362287133533565:t[2]>2.5000000000000004?ze=-.03633895806364428:ze=.06397808186120692:t[8]>4968.500000000001?t[1]>31.500000000000004?ze=-.07294848747514579:ze=.025053613105805606:t[230]>1e-35?t[4]>6.500000000000001?t[107]>1e-35?ze=-.07009535282685533:t[8]>2640.0000000000005?ze=-.051761240111316276:t[131]>1e-35?ze=-.06245774419231631:ze=.03495606662854905:ze=-.013863522184803188:t[131]>1e-35?t[1]>93.50000000000001?t[1]>105.50000000000001?ze=.0015036626973581122:ze=-.12505706794835883:t[1]>48.50000000000001?t[276]>1e-35?ze=.10435171369790015:t[0]>5026.500000000001?t[0]>5308.500000000001?ze=.022343994371919224:ze=-.14087991797693533:t[8]>1323.5000000000002?t[10]>49.50000000000001?ze=.07724450228328664:t[0]>3853.5000000000005?ze=-.15671707454435677:t[10]>28.500000000000004?ze=-.10179090671841723:ze=.014878216919760927:ze=.03967665658164865:t[8]>2696.5000000000005?t[15]>1e-35?ze=.14054154485273487:ze=.01821247272493051:t[2]>5.500000000000001?t[2]>100.50000000000001?ze=-.08632985141410315:ze=.005524157938954954:ze=-.08802502622523681:ze=-.0004649168897260341;let Me;t[86]>1e-35?t[8]>65.50000000000001?t[1]>32.50000000000001?t[4]>16.500000000000004?Me=-.007458687464321174:Me=-.09444966249102484:t[1]>23.500000000000004?Me=.08564129697360716:Me=-.07105002902845851:Me=.05688756955238231:t[294]>1e-35?t[10]>50.50000000000001?Me=-.10326216566705966:t[1]>26.500000000000004?Me=.0050539832484585365:Me=-.07080395606126953:t[306]>1e-35?t[149]>1e-35?Me=-.10399433201474328:t[2]>14.500000000000002?t[9]>6.500000000000001?Me=.05783632021087773:t[10]>17.500000000000004?Me=-.06720598671764105:t[1]>47.50000000000001?Me=.097495825172558:Me=-.013372242800584872:Me=-.06463226787713715:t[42]>1e-35?Me=-.0885725817597767:t[204]>1e-35?t[1]>62.50000000000001?Me=-.07496598696848249:t[1]>29.500000000000004?t[8]>446.50000000000006?Me=.11051270080118503:Me=.027719462817590454:t[8]>597.5000000000001?Me=-.08441503592016869:Me=.05534229430302502:t[223]>1e-35?t[8]>668.5000000000001?Me=-.12190088985091102:Me=-.0067442838156576345:t[148]>1e-35?t[9]>79.50000000000001?Me=.09225972475904022:t[2]>10.500000000000002?t[1]>102.50000000000001?Me=.11805676536334647:t[8]>1726.5000000000002?t[9]>10.500000000000002?Me=.016585157185448045:Me=-.11032043771149425:Me=.01586986028570486:t[8]>388.50000000000006?Me=-.10592413013261853:Me=.04930703248769364:t[13]>1e-35?Me=.003621937787920821:Me=-.0013786331198611841;let ce;t[145]>1e-35?t[1]>32.50000000000001?t[1]>38.50000000000001?t[10]>55.50000000000001?t[1]>54.50000000000001?ce=.009769895322846493:ce=-.10620052926943656:t[9]>19.500000000000004?ce=.03781202525403449:t[9]>14.500000000000002?ce=-.11485785321365344:t[9]>6.500000000000001?ce=.07677177833073881:t[0]>4342.500000000001?ce=-.07079285609687631:t[49]>1e-35?ce=.06156814809246001:ce=-.014788509042554625:ce=-.032659201618470655:t[5]>5207.500000000001?ce=-.09013500825185713:t[3]>10.500000000000002?t[8]>1787.5000000000002?ce=-.03094160322187924:t[1]>29.500000000000004?ce=.09474646043921069:ce=.023445783928231618:ce=.09342846694174194:t[0]>533.5000000000001?t[204]>1e-35?t[1]>62.50000000000001?ce=-.07164443768784848:t[1]>29.500000000000004?ce=.089473622509272:t[8]>597.5000000000001?ce=-.08155349903101317:ce=.07098423265024251:t[8]>691.5000000000001?t[5]>2252.5000000000005?ce=-.004003900679358653:t[190]>1e-35?ce=-.09236113461485262:t[8]>3198.5000000000005?ce=-.0124130160451179:ce=.018453070064009328:t[15]>1e-35?ce=.012013209112857824:t[7]>4.500000000000001?t[7]>5.500000000000001?ce=-.0009580759587680961:ce=-.03227283036698222:ce=.01369287669536875:t[1]>50.50000000000001?ce=-.04213060332500437:t[35]>1e-35?ce=-.11508095777767471:t[190]>1e-35?ce=-.08611884672400155:t[297]>1e-35?ce=.05723551879433584:ce=-.004829340082311461;let se;t[183]>1e-35?se=-.037994150023203555:t[227]>1e-35?t[17]>1e-35?t[3]>20.500000000000004?t[10]>36.50000000000001?se=-.11753465135886734:se=-.007515490299047085:se=-.08576941990777916:t[8]>1641.5000000000002?t[10]>37.50000000000001?se=-.12371142493530439:t[1]>36.50000000000001?se=.032189417575190435:se=-.10339125953022954:t[3]>32.50000000000001?t[4]>27.500000000000004?t[1]>59.50000000000001?se=-.0784518658439288:t[2]>54.50000000000001?se=.12477882322370665:se=.000313468482399738:se=.12261955132611434:t[8]>81.50000000000001?t[23]>1e-35?se=.04969252946760318:t[8]>511.50000000000006?t[8]>1146.5000000000002?se=.0353146070135579:se=-.06327619611098285:se=.02813577701641991:se=-.12354390728506215:t[34]>1e-35?se=-.07664408516055397:t[3]>99.50000000000001?t[1]>16.500000000000004?t[1]>26.500000000000004?se=-.01245803535276381:se=-.07169472553475001:t[1]>11.500000000000002?se=.12989984824561698:se=-.01201544398886606:t[6]>91.50000000000001?t[1]>22.500000000000004?se=.010390226893521422:t[10]>14.500000000000002?se=.16790888126487719:se=.010614982228955577:t[4]>79.50000000000001?t[9]>44.50000000000001?t[0]>3853.5000000000005?se=-.043398307129729134:se=.09963544907820426:t[9]>30.500000000000004?se=-.13540713124984502:t[9]>17.500000000000004?se=.0509435850590757:se=-.04761897852404613:t[4]>78.50000000000001?se=.09197086656470652:se=.0006771050176682337;let ue;t[122]>1e-35?t[6]>36.50000000000001?ue=.05686884451670743:ue=-.05334759543084309:t[266]>1e-35?ue=-.08603579519816038:t[157]>1e-35?ue=-.06736746113382097:t[302]>1e-35?t[0]>2579.5000000000005?ue=-.0499592651503952:t[0]>725.5000000000001?ue=.11780353905132664:ue=-.05232097173108943:t[147]>1e-35?t[1]>53.50000000000001?ue=-.11398297342629615:t[0]>2604.5000000000005?t[0]>3629.5000000000005?ue=-.03190157229022304:ue=.07985197845805492:ue=-.0763078988943886:t[4]>41.50000000000001?t[280]>1e-35?ue=.05162933940904835:t[11]>1e-35?t[0]>460.50000000000006?ue=-.027174047777029083:ue=.057117284879796476:t[3]>43.50000000000001?ue=-.0016147040913107311:ue=-.05856597304613519:t[2]>45.50000000000001?t[0]>4663.500000000001?t[18]>1e-35?ue=-.04779247091640426:t[10]>25.500000000000004?t[9]>22.500000000000004?t[22]>1e-35?ue=-.01466076988151239:ue=.13375695925484857:ue=-.04885873081899647:t[0]>5566.500000000001?ue=.11086813028591343:t[8]>992.5000000000001?ue=-.07622304217072383:ue=.04316019272026325:t[10]>12.500000000000002?t[9]>36.50000000000001?t[9]>45.50000000000001?ue=.03285858361708423:ue=-.12354858211764992:ue=.0672788301823281:t[15]>1e-35?ue=.08658836986585006:ue=-.02741484278509758:t[290]>1e-35?ue=-.08161310335133287:t[135]>1e-35?ue=-.04824156054814152:ue=.0009156904299554183;let V;t[3]>7.500000000000001?V=.0006791852818377787:t[129]>1e-35?t[0]>2904.5000000000005?t[0]>4004.5000000000005?V=.03642374718166293:V=.16379973756366603:V=-.03946685266127979:t[186]>1e-35?V=.07618896623420895:t[96]>1e-35?V=.0680272261319657:t[107]>1e-35?t[1]>48.50000000000001?V=-.022822371600847505:V=.0501405836324949:t[203]>1e-35?t[1]>77.50000000000001?V=.044416424920571296:V=-.0648450593196238:t[5]>3921.5000000000005?t[1]>110.50000000000001?V=-.11110466767595227:t[9]>5.500000000000001?t[9]>52.50000000000001?t[1]>50.50000000000001?V=.1061937286809567:t[7]>54.50000000000001?V=.11487507743121311:t[8]>819.5000000000001?V=-.07181278009001418:t[10]>25.500000000000004?V=.13499019430369633:t[1]>31.500000000000004?V=.09032979489780704:V=-.12754166393372374:t[9]>37.50000000000001?V=-.05093963635361407:V=-.005026651151683848:t[9]>2.5000000000000004?V=.07619735785573735:V=.012363301341532136:t[26]>1e-35?V=-.10685800454968203:t[8]>125.50000000000001?t[8]>446.50000000000006?t[0]>3842.5000000000005?V=-.08783796894105043:t[282]>1e-35?t[1]>47.50000000000001?t[9]>40.50000000000001?V=-.10764172927882483:V=.01890760098464703:V=.06573095405846417:t[8]>634.5000000000001?V=-.00783575973273707:V=-.050612689680229306:t[1]>22.500000000000004?V=-.0016842490401359626:V=.0738227088444087:V=-.02663970950432175;let W;t[31]>1e-35?t[8]>17.500000000000004?W=.013678038624884814:t[1]>35.50000000000001?t[1]>51.50000000000001?W=.007191286124908192:W=-.09347881647636902:t[10]>1.5000000000000002?W=.07938758708008091:W=-.008702935600305113:t[224]>1e-35?t[149]>1e-35?t[13]>1e-35?W=.12321804057595996:W=-.018281109320672437:t[23]>1e-35?t[4]>62.50000000000001?W=-.04644244754790671:W=.024546310702263208:t[8]>862.5000000000001?t[0]>3429.5000000000005?t[4]>9.500000000000002?t[52]>1e-35?W=.0706108609273337:t[2]>40.50000000000001?W=-.028046629962303716:W=-.06497613993109329:W=.01076489668586676:t[1]>33.50000000000001?t[0]>966.5000000000001?t[2]>14.500000000000002?t[1]>38.50000000000001?W=-.03056331974267756:W=-.11886389712497057:W=.053364962175658184:t[8]>2233.5000000000005?W=-.0448152521157682:W=.1508651602190868:t[2]>33.50000000000001?t[0]>2882.5000000000005?t[0]>3183.5000000000005?W=.03818796510453344:W=.23673992112982362:W=.02858814226507374:t[10]>44.50000000000001?W=-.1125863771551199:W=.009129996952394916:t[1]>7.500000000000001?W=-.004374525302461639:W=-.07858519434925451:t[149]>1e-35?t[6]>23.500000000000004?W=.0005231594491642136:t[0]>4053.5000000000005?t[8]>660.5000000000001?W=-.13677189943034931:t[10]>2.5000000000000004?W=.039591891437078086:W=-.09312596849507347:W=-.02423172142089822:W=.0009836986075266283;let X;t[189]>1e-35?t[0]>5269.500000000001?X=-.103183298350443:t[2]>51.50000000000001?X=.09784373530929913:t[10]>26.500000000000004?t[8]>764.5000000000001?X=-.05186168947388339:X=.0496996365539082:t[10]>23.500000000000004?X=.1404445738719:t[93]>1e-35?X=.0027146310074558505:t[5]>3821.5000000000005?X=.002153033152069652:t[4]>2.5000000000000004?X=.007663539551317215:X=.13902616832015402:t[298]>1e-35?t[8]>81.50000000000001?t[4]>64.50000000000001?X=.11498405722487515:t[2]>23.500000000000004?t[0]>2815.5000000000005?t[2]>44.50000000000001?t[4]>42.50000000000001?X=-.021479467709980358:X=.09336868994327292:t[1]>22.500000000000004?t[15]>1e-35?X=.021660293256233334:X=-.0927396152303864:X=.0665074081601698:t[0]>1550.5000000000002?X=.08972407105958534:X=-.0380796411182682:t[6]>13.500000000000002?t[10]>2.5000000000000004?X=.06761927942466854:X=-.015762168112653286:t[17]>1e-35?X=.10311304131145381:X=-.017672785252336027:X=-.08629805732772755:t[1]>24.500000000000004?t[138]>1e-35?X=-.10638321435298535:X=.0007073011744385905:t[18]>1e-35?X=-.027056185501334325:t[145]>1e-35?X=.023191199677450886:t[9]>33.50000000000001?t[201]>1e-35?X=.09762140519655171:t[9]>110.50000000000001?X=-.06581942957595835:t[6]>54.50000000000001?X=.04959634035251596:X=.0022616298654554207:X=-.007437620924990854;let ve;t[179]>1e-35?ve=-.06961998209988884:t[167]>1e-35?t[0]>3928.5000000000005?ve=.1470294450403005:ve=-.01671476793947083:t[187]>1e-35?t[6]>13.500000000000002?t[4]>30.500000000000004?t[13]>1e-35?ve=.07448480853603114:t[0]>1012.5000000000001?t[5]>2883.5000000000005?t[0]>3682.5000000000005?t[5]>4031.5000000000005?t[23]>1e-35?ve=.07965955447707423:t[10]>10.500000000000002?ve=-.09236156404262426:ve=.03396273196231458:ve=-.13246465021467432:ve=.07092822261735353:ve=-.08753829085942:ve=.09409024840640956:t[1]>40.50000000000001?t[8]>984.5000000000001?t[8]>1514.5000000000002?t[8]>2134.5000000000005?ve=.004705878789890202:ve=.13775378964952867:ve=-.04770928980587811:t[10]>29.500000000000004?ve=.011221519891071544:t[0]>3853.5000000000005?ve=.06365381191628273:ve=.15506252245336827:t[1]>37.50000000000001?ve=-.07254777021042061:ve=.026514587757252385:t[308]>1e-35?ve=.04115804816617256:t[10]>26.500000000000004?ve=.02077721353011946:t[5]>3548.5000000000005?ve=-.1280907116663952:ve=-.021974774274438:t[306]>1e-35?ve=-.02700446558079895:t[297]>1e-35?t[212]>1e-35?ve=.07794139136748461:t[7]>5.500000000000001?t[19]>1e-35?ve=-.005710865560475598:t[94]>1e-35?ve=-.06751507982853555:ve=.027250040757588703:t[9]>52.50000000000001?ve=.07060357924595577:ve=-.030297760713011795:ve=-.0006005400085266517;let he;t[113]>1e-35?he=-.07311041707507712:t[40]>1e-35?t[0]>1937.5000000000002?he=-.06996356565314456:he=.04780211300352931:t[10]>52.50000000000001?t[49]>1e-35?he=-.08317707559926495:t[21]>1e-35?he=-.0817284654645976:t[15]>1e-35?t[2]>3.5000000000000004?he=-.010538203005984922:he=.08454819465349446:t[9]>124.50000000000001?he=.09015659250299132:t[7]>15.500000000000002?t[5]>5732.500000000001?he=-.08542251249346582:t[9]>50.50000000000001?he=-.023428882537657472:he=.010042500833979073:he=.020697210754240154:t[10]>28.500000000000004?t[5]>423.00000000000006?t[148]>1e-35?he=.03006025206979096:t[9]>108.50000000000001?he=-.09153851322499747:t[145]>1e-35?t[5]>4814.500000000001?t[2]>38.50000000000001?he=.04222035773042132:he=-.09078149053947535:t[8]>568.5000000000001?t[1]>64.50000000000001?he=-.07209095448054853:he=.028065954981903313:he=.08714651929917122:he=-.006678820669279169:t[10]>40.50000000000001?he=.006982396294941626:he=-.07889649792011418:t[94]>1e-35?t[4]>30.500000000000004?he=-.09351114982645548:t[4]>3.5000000000000004?he=-.004837550129223451:he=-.08324141237464677:t[303]>1e-35?he=.10703037493990825:t[9]>156.50000000000003?he=-.10803018621648303:t[116]>1e-35?he=-.03208302566598311:t[212]>1e-35?t[243]>1e-35?he=.10261721665006701:he=.018994509090668264:he=.0011244262442038839;let ye;t[86]>1e-35?t[8]>65.50000000000001?t[1]>46.50000000000001?ye=-.08404263465005328:t[0]>3682.5000000000005?ye=.041259223920298876:t[1]>29.500000000000004?ye=-.09541257493441671:ye=.001482192721625409:ye=.051541427372951004:t[3]>7.500000000000001?t[157]>1e-35?ye=-.08268996098437432:t[230]>1e-35?ye=.015749498159959817:t[4]>7.500000000000001?t[3]>11.500000000000002?ye=-913218977737457e-19:t[4]>10.500000000000002?ye=-.056334165674005156:t[127]>1e-35?ye=-.0784634021824036:t[2]>9.500000000000002?t[1]>62.50000000000001?ye=-.04231200150318989:t[10]>42.50000000000001?ye=.10182973257894812:ye=.015934763950068445:ye=-.03130938805859397:t[92]>1e-35?t[4]>6.500000000000001?t[1]>51.50000000000001?t[9]>19.500000000000004?ye=-.041117068322885315:ye=.1167767830037126:ye=.13611206992387337:t[10]>41.50000000000001?ye=-.07120286010564107:ye=.022032788063345417:t[8]>1.5000000000000002?t[1]>51.50000000000001?t[9]>72.50000000000001?ye=-.07702290997669524:t[198]>1e-35?ye=.08776558554437136:ye=-.008290740324975692:t[2]>32.50000000000001?ye=.07198457624219955:ye=.005463113714361629:ye=.09414099512900526:t[129]>1e-35?t[0]>2904.5000000000005?t[0]>4004.5000000000005?ye=.03295785445437507:ye=.15140250150674536:ye=-.035613213948910254:t[186]>1e-35?ye=.06849425535860769:t[96]>1e-35?ye=.06028225812727254:ye=-.007582543288662308;let _e;t[84]>1e-35?t[9]>6.500000000000001?t[2]>43.50000000000001?_e=.08396556264106572:_e=-.0562516995099192:_e=-.10593011018789432:t[183]>1e-35?t[15]>1e-35?_e=-.09705176473553752:t[7]>18.500000000000004?t[2]>37.50000000000001?_e=.0052017514017035915:_e=-.11194119432743639:_e=.03724337696163019:t[227]>1e-35?t[17]>1e-35?t[2]>16.500000000000004?_e=-.025692451287403446:_e=-.09511862672123193:t[8]>1661.5000000000002?t[10]>37.50000000000001?_e=-.11892250746801664:t[10]>22.500000000000004?_e=.07548493166973796:_e=-.05973048107712209:t[4]>12.500000000000002?t[0]>4319.500000000001?t[10]>4.500000000000001?t[10]>37.50000000000001?_e=.13750699058082427:t[18]>1e-35?_e=.06535408879552801:_e=-.054118179035040674:_e=.1344282838979622:t[0]>3982.5000000000005?_e=-.10409582202467015:t[19]>1e-35?_e=.12672850705810795:t[8]>587.5000000000001?t[1]>35.50000000000001?_e=.012705935670766466:_e=.14149359442527545:_e=-.047977876173706004:t[20]>1e-35?_e=.057945228080337946:t[0]>3642.5000000000005?_e=-.008726535792122467:_e=-.08424769891378858:t[34]>1e-35?_e=-.0699329538228602:t[134]>1e-35?t[11]>1e-35?t[4]>15.500000000000002?t[0]>1187.5000000000002?_e=.01196849566739346:_e=.1614642278429876:_e=-.043022338150701625:t[3]>5.500000000000001?_e=-.03907848255033881:_e=.018280601026175593:_e=.0006654540402589085;let we;t[31]>1e-35?t[2]>58.50000000000001?t[9]>1.5000000000000002?we=-.01386103677247845:we=.11386694333005128:t[4]>27.500000000000004?we=-.021862617610091336:t[2]>31.500000000000004?we=.0828858469030438:we=.006483353475830127:t[224]>1e-35?t[149]>1e-35?t[13]>1e-35?we=.11303635767048735:we=-.01645525128352694:t[23]>1e-35?t[4]>62.50000000000001?we=-.04238798044549342:we=.022091190130494303:t[5]>5082.500000000001?we=-.04287166152163786:t[8]>862.5000000000001?t[19]>1e-35?we=.000660344696244351:t[4]>9.500000000000002?t[0]>1277.5000000000002?we=-.04291104140431434:t[17]>1e-35?we=.11256797532342613:we=-.017206916368289193:we=.026482035265709743:t[1]>8.500000000000002?t[11]>1e-35?we=.04060606971664621:t[0]>4733.500000000001?t[8]>214.50000000000003?t[5]>4814.500000000001?we=.03581712466863222:we=.14770264307668884:t[8]>73.50000000000001?we=-.13093289429740068:we=.042461737442702936:t[52]>1e-35?we=.0501831919044939:we=-.010450249720465756:we=-.0753365425372656:t[149]>1e-35?t[6]>23.500000000000004?we=.0005381332165438493:we=-.04549431717503909:t[133]>1e-35?t[2]>5.500000000000001?t[8]>698.5000000000001?t[282]>1e-35?we=.04849637311285226:we=-.036671377119808564:t[0]>421.50000000000006?we=.00020968499911058945:we=.11636422423182405:we=-.12687837788222575:we=.0012774367867215346;let Le;t[120]>1e-35?Le=.04776057572434719:t[229]>1e-35?t[0]>2952.5000000000005?t[0]>3904.5000000000005?Le=-.042799574885345304:Le=.07412430171193245:Le=-.11248270469336048:t[193]>1e-35?Le=-.060694220820603384:t[121]>1e-35?t[217]>1e-35?t[0]>4449.500000000001?t[4]>8.500000000000002?Le=.028911612178122104:Le=.12326369727728437:t[0]>4091.5000000000005?Le=-.09370267064141052:t[0]>3519.5000000000005?t[8]>668.5000000000001?Le=.1159839898100149:Le=-.01924880886585737:t[8]>501.50000000000006?t[10]>16.500000000000004?Le=-.0216343737351583:Le=-.1220272260878369:t[2]>18.500000000000004?Le=.09152924475072398:t[8]>55.50000000000001?Le=.039508716651005665:Le=-.11714436880423203:t[18]>1e-35?t[9]>2.5000000000000004?Le=.06793009902674053:Le=-.024060578029812988:t[4]>2.5000000000000004?t[2]>16.500000000000004?t[4]>11.500000000000002?Le=-.04391068849624096:Le=.04009967593394672:t[8]>1085.5000000000002?Le=-.024773826356034825:Le=-.13919707884246582:Le=.06659278075192335:t[223]>1e-35?t[8]>668.5000000000001?Le=-.11567917501901476:Le=-.006813640337684114:t[3]>7.500000000000001?Le=.0010671269682548076:t[7]>3.5000000000000004?t[1]>33.50000000000001?t[0]>1597.5000000000002?t[10]>1.5000000000000002?Le=-.001754586408351048:Le=-.055422422450722056:Le=-.06090032532532226:t[0]>5269.500000000001?Le=.11787981735983527:Le=-.00198119768540783:Le=.00210412924303036;let Ke;t[294]>1e-35?t[10]>50.50000000000001?Ke=-.09738558653332406:t[0]>2432.5000000000005?t[0]>4533.500000000001?Ke=-.06063239096209816:Ke=.03317022411417386:Ke=-.08607562321324262:t[120]>1e-35?t[4]>18.500000000000004?Ke=-.013608609329298802:Ke=.09078000157330264:t[99]>1e-35?Ke=.014828708581964632:t[10]>52.50000000000001?t[49]>1e-35?Ke=-.07536137260189814:Ke=.006253266595455118:t[10]>28.500000000000004?Ke=-.006106041147592768:t[9]>156.50000000000003?Ke=-.11828932797811101:t[94]>1e-35?Ke=-.02566078479505714:t[303]>1e-35?Ke=.09544850289775349:t[15]>1e-35?t[224]>1e-35?t[4]>56.50000000000001?Ke=-.08401252789168523:t[5]>4244.500000000001?Ke=.026372887658499107:t[1]>16.500000000000004?Ke=-.027836756345634026:Ke=.09205362097909099:Ke=.00934612788718244:t[203]>1e-35?Ke=-.016371658366767253:t[7]>26.500000000000004?t[0]>966.5000000000001?t[1]>38.50000000000001?t[146]>1e-35?t[9]>21.500000000000004?Ke=-.09580979052540028:t[1]>50.50000000000001?Ke=-.06402211827281554:Ke=.08342858760095972:t[2]>36.50000000000001?Ke=.008114897658204584:t[92]>1e-35?Ke=.09541587072672864:Ke=-.022342147210555434:Ke=-.01660492519175128:Ke=.014721622240945446:t[4]>25.500000000000004?t[11]>1e-35?Ke=.15846731118501817:Ke=.039498507912023195:t[245]>1e-35?Ke=.07008718676813333:Ke=.0019806389728814727;let Xe;t[32]>1e-35?t[8]>90.50000000000001?t[4]>67.50000000000001?t[0]>4188.500000000001?Xe=-.01192072916082109:Xe=.13888590840802637:t[1]>16.500000000000004?t[8]>2302.5000000000005?Xe=.06874032717466054:t[4]>40.50000000000001?Xe=-.07752510020707537:t[1]>76.50000000000001?Xe=-.09944032260703917:t[8]>1381.5000000000002?Xe=-.054466635810800745:t[1]>32.50000000000001?Xe=.05974084520839573:Xe=-.0384718740755954:Xe=-.11374190719134032:t[0]>2151.5000000000005?Xe=-.13703645155803298:Xe=.004833344758654556:t[297]>1e-35?t[212]>1e-35?Xe=.06954747264544993:t[7]>9.500000000000002?t[19]>1e-35?t[1]>30.500000000000004?t[0]>4242.500000000001?Xe=.013539805885738608:Xe=-.0692740641801559:t[0]>2653.5000000000005?t[10]>57.50000000000001?Xe=.09941880179344399:Xe=-.01608127391210995:Xe=.08025226531247417:t[9]>67.50000000000001?Xe=.13525448212444113:t[6]>61.50000000000001?Xe=-.05511099182158894:t[94]>1e-35?Xe=-.06821509831783572:t[128]>1e-35?Xe=.11361314817714643:Xe=.030160785008575566:t[1]>13.500000000000002?t[8]>17.500000000000004?t[16]>1e-35?Xe=-.09954181329804547:t[197]>1e-35?Xe=.10102833149755386:t[188]>1e-35?Xe=.05584490988313965:t[9]>49.50000000000001?t[4]>5.500000000000001?Xe=-.03781554214742005:Xe=.09927933385592314:Xe=-.020006000056720083:Xe=-.10520473615957895:Xe=-.12006990846253787:Xe=-.00026111570975317574;let Tt;t[8]>2830.5000000000005?t[1]>31.500000000000004?t[9]>32.50000000000001?t[5]>1234.5000000000002?t[0]>1725.5000000000002?t[7]>14.500000000000002?t[2]>38.50000000000001?Tt=-.019188245509744628:Tt=-.13354864350075848:t[0]>2461.5000000000005?Tt=.051885477468354396:Tt=-.0833581968852119:Tt=.08233441701532287:Tt=-.10865584951212362:t[8]>2992.5000000000005?t[10]>49.50000000000001?t[10]>56.50000000000001?t[1]>45.50000000000001?t[0]>2041.5000000000002?Tt=.09926337893072812:Tt=-.027753610497327715:t[0]>1972.5000000000002?Tt=-.09780045823152517:Tt=.032380915168504935:Tt=.11502632261226381:t[17]>1e-35?Tt=-.06094965899579662:t[10]>40.50000000000001?Tt=-.07500475582440802:Tt=.006499832113084677:t[10]>4.500000000000001?t[4]>10.500000000000002?Tt=-.09584538995220808:Tt=-.00908705814304442:Tt=.03203281520813893:t[10]>49.50000000000001?Tt=-.03146271513986384:t[2]>63.50000000000001?Tt=.13172001315536286:t[224]>1e-35?Tt=.08945777550527927:t[0]>2282.5000000000005?t[4]>4.500000000000001?Tt=.09521549382082259:Tt=-.04414925613522197:t[0]>1847.5000000000002?Tt=-.09118580379557353:Tt=.009206744918282364:t[178]>1e-35?t[2]>25.500000000000004?t[1]>31.500000000000004?Tt=.03525144509943896:Tt=-.053340750721609057:t[0]>1057.5000000000002?t[10]>2.5000000000000004?Tt=-.04766112322938157:t[2]>10.500000000000002?Tt=.0728516504357201:Tt=-.05049625965272536:Tt=-.10868663055825774:Tt=.0005382613419948969;let Kt;t[147]>1e-35?t[1]>53.50000000000001?Kt=-.10615739288764095:t[0]>2604.5000000000005?t[0]>3629.5000000000005?Kt=-.030504020655417463:Kt=.07102458639110094:Kt=-.07058131985243714:t[302]>1e-35?t[10]>47.50000000000001?Kt=.055304563442710876:t[1]>53.50000000000001?Kt=.033723409577443623:t[8]>175.50000000000003?t[0]>2628.5000000000005?t[9]>40.50000000000001?Kt=-.1568835288372895:Kt=-.0279829124400056:Kt=.04493843959601833:Kt=-.11637042729644327:t[191]>1e-35?t[282]>1e-35?Kt=-.054133834303687026:t[9]>48.50000000000001?Kt=.11263810289007213:t[9]>9.500000000000002?Kt=-.02202034562838259:t[4]>45.50000000000001?Kt=-.03410927569045158:Kt=.04381615166534081:t[242]>1e-35?t[0]>3615.5000000000005?t[3]>19.500000000000004?t[1]>56.50000000000001?t[4]>28.500000000000004?Kt=-.029687297407295893:Kt=.10673602850001934:t[4]>42.50000000000001?Kt=.0036275562945108117:Kt=-.0760789221330622:Kt=-.10385623431741903:t[2]>34.50000000000001?t[2]>44.50000000000001?t[4]>51.50000000000001?Kt=.08274426793676076:Kt=-.07076234425516396:Kt=.13890177606150175:Kt=-.019863286503635686:t[53]>1e-35?t[18]>1e-35?Kt=-.09250637750836187:Kt=-.0031531727902009026:t[2]>107.50000000000001?t[4]>91.50000000000001?t[1]>16.500000000000004?Kt=-.01897867921812603:Kt=.04890781705365262:Kt=-.11569892307597907:t[2]>106.50000000000001?Kt=.09032697440623969:Kt=.00047935919155035045;let fn;t[115]>1e-35?fn=.05338335681275557:t[242]>1e-35?t[0]>3615.5000000000005?t[4]>42.50000000000001?t[4]>75.50000000000001?fn=-.10131179514695865:t[8]>938.5000000000001?fn=.10203729808015481:fn=-.015357944186835289:t[1]>56.50000000000001?t[2]>22.500000000000004?fn=.03574015165562999:fn=-.07763042506449493:fn=-.0813323116215548:t[2]>34.50000000000001?t[2]>44.50000000000001?t[4]>51.50000000000001?fn=.0665706259130275:fn=-.06586817559309924:fn=.11925564412287476:fn=-.014170019267143326:t[1]>124.50000000000001?t[2]>30.500000000000004?t[8]>533.5000000000001?t[4]>41.50000000000001?t[8]>977.5000000000001?fn=.046017146627455346:fn=-.08623321630086885:t[8]>1765.5000000000002?fn=-.017990564319859934:t[10]>25.500000000000004?t[10]>48.50000000000001?fn=.11143827902215087:fn=-.01817808730473413:fn=.16980985030210127:fn=-.09357806298740017:t[10]>7.500000000000001?t[10]>54.50000000000001?fn=.010168994879727824:fn=-.09099594488792513:t[9]>1.5000000000000002?fn=.0533459678147928:fn=-.06886854808370108:t[99]>1e-35?t[17]>1e-35?t[9]>22.500000000000004?fn=-.062346959148773695:t[1]>47.50000000000001?fn=-.0021578343835599316:t[2]>27.500000000000004?fn=.19567373210166172:fn=.07851555379116423:t[18]>1e-35?fn=.03711549097804649:t[8]>359.50000000000006?fn=.012492346746905587:t[4]>20.500000000000004?fn=.047511695735697544:fn=-.07999269063948773:fn=6802045404471004e-20;let nn;t[222]>1e-35?t[0]>612.5000000000001?t[10]>1e-35?t[8]>2167.5000000000005?t[4]>25.500000000000004?nn=.0011484728213539738:nn=-.0936582904650763:t[2]>25.500000000000004?t[8]>182.50000000000003?t[10]>22.500000000000004?t[0]>5026.500000000001?nn=-.09828874964938798:t[8]>1586.5000000000002?nn=.13726397438080162:t[4]>48.50000000000001?t[2]>63.50000000000001?nn=.011938269926919522:nn=.17541983715953954:t[19]>1e-35?nn=.023002786011088672:nn=-.06221461272461431:t[9]>2.5000000000000004?t[0]>3818.5000000000005?nn=.06508934844183291:nn=-.10168553534835639:nn=-.07755626499024171:t[2]>51.50000000000001?t[4]>65.50000000000001?nn=.021140806225203937:nn=-.1167833342453639:t[2]>33.50000000000001?nn=.13163585734056618:nn=-.00203273890889717:t[10]>36.50000000000001?t[8]>1067.5000000000002?nn=.06314479201263888:nn=-.09639088327091713:t[10]>29.500000000000004?nn=.09225469303582386:t[0]>3129.5000000000005?t[0]>4091.5000000000005?t[0]>4354.500000000001?nn=40577156464836036e-21:nn=.12322387121810757:nn=-.03697224045046014:t[1]>22.500000000000004?nn=.016474835887320276:nn=.16919298733903063:nn=.07633203630214054:nn=-.047438037934250644:t[30]>1e-35?t[224]>1e-35?t[1]>52.50000000000001?nn=.14150493354700563:nn=-.01831155354975749:t[1]>28.500000000000004?nn=-.07952557178685365:t[10]>28.500000000000004?nn=.0665695554984927:nn=-.053640139319277094:nn=.0004754840665898665;let bn;t[76]>1e-35?bn=-.06814884255939921:t[179]>1e-35?bn=-.06325743795510681:t[122]>1e-35?t[6]>36.50000000000001?bn=.05052338063261613:t[8]>626.5000000000001?t[1]>38.50000000000001?bn=.004193658608848433:bn=-.1066968975983452:t[8]>302.50000000000006?bn=.05476730110440451:bn=-.06382970920394895:t[218]>1e-35?t[2]>3.5000000000000004?t[6]>13.500000000000002?t[2]>19.500000000000004?t[0]>3200.5000000000005?t[4]>91.50000000000001?bn=-.12156071809840739:t[9]>21.500000000000004?t[5]>3883.5000000000005?t[8]>919.5000000000001?t[8]>1085.5000000000002?bn=.013555772109446666:bn=-.09856116699770784:bn=.0284329611813383:t[2]>52.50000000000001?bn=.04008708444763762:t[9]>29.500000000000004?bn=-.1289599546008197:bn=-.018566534248335896:t[8]>747.5000000000001?bn=.02236484980076122:bn=.1148871655157582:t[8]>3084.0000000000005?bn=-.05573875952902531:t[10]>17.500000000000004?t[2]>51.50000000000001?bn=.03164751204281298:bn=.11752140436184891:t[9]>42.50000000000001?bn=-.07180559595410106:t[22]>1e-35?bn=.09325040416256854:bn=-.016041122807939914:bn=-.02765708954618808:t[1]>30.500000000000004?t[1]>66.50000000000001?bn=-.010718250133458515:bn=.09818827994853763:bn=.010180038981174032:bn=-.039472162599295535:t[9]>170.50000000000003?bn=-.08536729235976731:t[189]>1e-35?t[0]>5269.500000000001?bn=-.08674788057474031:bn=.02077653508548371:bn=-.0003536561382007414;let jn;t[86]>1e-35?t[10]>6.500000000000001?t[0]>4376.500000000001?jn=.018337297491457794:jn=-.05926206443180149:jn=.024026520855881126:t[288]>1e-35?t[184]>1e-35?jn=.10747078482128616:t[126]>1e-35?jn=-.10550625192391357:t[7]>71.50000000000001?jn=-.07698346027863572:t[8]>302.50000000000006?t[6]>49.50000000000001?t[4]>47.50000000000001?t[1]>38.50000000000001?t[15]>1e-35?jn=.1317396472229434:jn=-.025035791351328947:jn=-.0728334305864372:t[8]>963.5000000000001?jn=.023642201723096064:jn=.183010326734258:t[128]>1e-35?jn=.04228920135648387:t[2]>34.50000000000001?t[15]>1e-35?jn=.002801782941492993:t[3]>40.50000000000001?t[4]>39.50000000000001?jn=-.1088876900335281:jn=.02758317023002635:jn=-.11886771300807207:t[9]>59.50000000000001?t[1]>33.50000000000001?jn=-.01928020117446408:jn=.10193718474139135:t[1]>48.50000000000001?t[4]>9.500000000000002?t[8]>932.5000000000001?jn=.07893723375925096:jn=-.009878929627026153:t[10]>2.5000000000000004?t[9]>20.500000000000004?jn=-.10301657587280551:jn=.005787463140224318:jn=.07421364314695046:t[0]>2840.5000000000005?t[10]>29.500000000000004?jn=-.019296977889522397:jn=-.07274529751752634:t[1]>30.500000000000004?jn=-.050368901143148286:jn=.029630869489466655:t[2]>6.500000000000001?t[4]>9.500000000000002?jn=.0015332402792773946:jn=.09930153676749967:jn=-.06370844564357069:jn=.00042272155209927616;let Ie;t[71]>1e-35?t[4]>17.500000000000004?Ie=.12586844370423247:Ie=-.006791999603126354:t[222]>1e-35?t[1]>10.500000000000002?t[30]>1e-35?t[1]>36.50000000000001?t[9]>1.5000000000000002?t[10]>25.500000000000004?Ie=-.08474891624263797:t[8]>125.50000000000001?Ie=.08125086980439704:Ie=-.04082085238068532:t[0]>3863.5000000000005?Ie=.020481535807469208:Ie=.14810819386202126:t[0]>1937.5000000000002?t[2]>16.500000000000004?Ie=-.019110200161573936:Ie=-.12387719685855114:t[0]>1102.5000000000002?Ie=.08376595701957407:Ie=-.031821919580524834:t[9]>4.500000000000001?Ie=-.08116383486497568:t[7]>8.500000000000002?t[2]>24.500000000000004?Ie=-.02154820850475448:t[0]>3863.5000000000005?t[8]>902.5000000000001?Ie=.1349841206807871:Ie=.011864053595560297:t[1]>41.50000000000001?Ie=-.08203662486612544:t[2]>18.500000000000004?Ie=-.009541865642346947:Ie=.08345043168501759:t[2]>10.500000000000002?Ie=-.09585031818030947:Ie=.019432330487099865:Ie=.08399259524715129:t[30]>1e-35?t[224]>1e-35?t[1]>52.50000000000001?Ie=.11951517733981365:Ie=-.016651014735738538:t[1]>28.500000000000004?Ie=-.07410922545030711:t[10]>28.500000000000004?Ie=.05886430683844788:Ie=-.04929626605117184:t[191]>1e-35?t[9]>9.500000000000002?t[9]>48.50000000000001?Ie=.04802269879144705:Ie=-.026208212831796737:t[4]>45.50000000000001?Ie=-.03227476944664786:Ie=.05124575625622705:Ie=.00020506696916003137;let ot;t[116]>1e-35?t[9]>2.5000000000000004?t[9]>17.500000000000004?ot=-.03042091758483443:t[10]>14.500000000000002?ot=.09816619204768777:ot=.01332124067720947:t[8]>8.500000000000002?t[4]>15.500000000000002?ot=-.02381165060401718:ot=-.10950361804974783:ot=.03538211665111128:t[212]>1e-35?t[19]>1e-35?ot=-.09940014650006174:t[0]>2215.5000000000005?t[5]>5056.500000000001?t[3]>5.500000000000001?t[10]>25.500000000000004?ot=-.06371052144380579:ot=.0835500621252692:ot=-.10408255929333915:t[1]>74.50000000000001?ot=.13208968122712403:t[1]>64.50000000000001?ot=-.04778844603644965:t[8]>51.50000000000001?t[8]>201.50000000000003?t[8]>660.5000000000001?t[6]>4.500000000000001?t[9]>5.500000000000001?t[1]>29.500000000000004?t[0]>3830.5000000000005?ot=.09922816902423433:ot=.016366955328796718:ot=.1592412560903584:t[1]>39.50000000000001?ot=.05409467990258923:ot=-.08260633210459611:ot=-.06307205775247567:t[9]>36.50000000000001?ot=.040253940015648144:ot=.14202568969471283:ot=-.028761848341594044:ot=.08994073058773508:t[0]>807.5000000000001?ot=-.043427848826323195:ot=.04573516446846493:t[20]>1e-35?t[188]>1e-35?ot=-.0758877731600639:t[23]>1e-35?ot=.05913923322043199:t[8]>155.50000000000003?t[128]>1e-35?ot=.08124700978741987:ot=.013296063087086852:t[7]>5.500000000000001?ot=-.01640196088612987:ot=-.12685498840146067:ot=-.0004940792382459551;let Bt;t[1]>24.500000000000004?t[103]>1e-35?t[8]>61.50000000000001?t[17]>1e-35?Bt=-.05584993681929434:t[9]>27.500000000000004?t[0]>3916.5000000000005?Bt=.08513773825688947:Bt=-.1184664832315282:Bt=.05676963535893477:Bt=.14263843210340613:Bt=.0005795003292924202:t[18]>1e-35?t[0]>5453.500000000001?t[1]>11.500000000000002?Bt=-.10669720555606924:Bt=.029016613003137307:t[2]>46.50000000000001?t[10]>9.500000000000002?Bt=.0664744575868955:Bt=-.08469256188890871:Bt=-.026746678040592144:t[281]>1e-35?Bt=-.07408427239006925:t[145]>1e-35?t[4]>6.500000000000001?t[9]>16.500000000000004?t[4]>18.500000000000004?Bt=.012131807587207655:Bt=-.12776015795398743:Bt=.04320472481083551:Bt=.08390980661550446:t[10]>227.50000000000003?Bt=-.09771783809101153:t[10]>130.50000000000003?Bt=.11175201938704937:t[8]>779.5000000000001?t[5]>3325.5000000000005?t[128]>1e-35?Bt=-.07610698254064358:t[8]>902.5000000000001?Bt=-.03136381213599649:t[131]>1e-35?Bt=.0704821739127936:t[224]>1e-35?Bt=-.056961477774953785:t[10]>30.500000000000004?t[9]>43.50000000000001?Bt=.10431473040024908:t[8]>841.5000000000001?Bt=.07304745320500514:Bt=-.038011541882439825:Bt=-.01679746695007364:t[0]>3129.5000000000005?Bt=.05589952587431965:t[210]>1e-35?Bt=.06227198085800842:Bt=-.0011341890997947812:t[8]>740.5000000000001?Bt=.04817300084412584:Bt=-.000577001010789238;let Ht;t[187]>1e-35?t[6]>12.500000000000002?t[10]>8.500000000000002?t[10]>16.500000000000004?t[8]>234.50000000000003?t[4]>43.50000000000001?t[0]>4476.500000000001?Ht=-.10504730480402079:t[5]>3341.5000000000005?Ht=.11087894671081754:Ht=-.0406668834674614:Ht=.03308382165616109:t[8]>104.50000000000001?Ht=-.10431436764549162:Ht=.0073928337244891455:t[4]>34.50000000000001?Ht=-.10571751512748416:Ht=-.006081128814142983:t[13]>1e-35?Ht=.1299673566095023:t[4]>60.50000000000001?Ht=-.06587492443829139:t[0]>2604.5000000000005?t[3]>19.500000000000004?Ht=.04857126072645073:Ht=-.03431365358104773:t[4]>16.500000000000004?Ht=.04101865986596709:Ht=.16480274980378218:t[10]>26.500000000000004?Ht=.03673978504199255:t[10]>9.500000000000002?Ht=-.10996402743800027:t[308]>1e-35?Ht=.0553693735082498:Ht=-.041600136235644125:t[306]>1e-35?t[8]>1156.5000000000002?t[4]>14.500000000000002?t[10]>21.500000000000004?Ht=.010902983761213922:Ht=.1325118659895645:Ht=-.064362945508595:t[1]>66.50000000000001?Ht=.033416767779331176:Ht=-.054080316225040496:t[42]>1e-35?Ht=-.07762364337810815:t[10]>1089.5000000000002?Ht=-.08465599849125216:t[31]>1e-35?t[8]>30.500000000000004?Ht=.012788520036013586:t[1]>32.50000000000001?t[1]>51.50000000000001?Ht=.0220102041325908:Ht=-.06516708740003069:Ht=.012833498905748267:t[224]>1e-35?Ht=-.007038418272997865:Ht=.00037666304316290967;let Pe;t[84]>1e-35?t[9]>6.500000000000001?t[2]>43.50000000000001?Pe=.07554189644995735:Pe=-.052089349455904946:Pe=-.10148206848169845:t[113]>1e-35?Pe=-.06666678653225779:t[39]>1e-35?t[9]>3.5000000000000004?t[0]>3670.5000000000005?Pe=.07172653627995676:Pe=-.07602959317610998:Pe=-.08790686271287523:t[229]>1e-35?t[0]>2952.5000000000005?t[0]>3904.5000000000005?Pe=-.0399322883690891:Pe=.06523495517476098:Pe=-.10358715295743802:t[193]>1e-35?Pe=-.05551414334329124:t[134]>1e-35?t[11]>1e-35?t[2]>13.500000000000002?t[10]>1.5000000000000002?Pe=.015928764772252406:Pe=.1341513061552287:Pe=-.04975001987586173:t[10]>2.5000000000000004?t[3]>5.500000000000001?t[9]>2.5000000000000004?t[8]>310.50000000000006?Pe=-.033592997607280156:Pe=-.12432458028446665:t[1]>32.50000000000001?t[217]>1e-35?Pe=-.08402551858097379:Pe=.017401984506038796:t[1]>25.500000000000004?Pe=.13337205393591278:Pe=-.01160208350090984:Pe=.06708317942315471:t[8]>227.50000000000003?Pe=-.08486943882418681:Pe=-.013970104864235007:t[8]>4968.500000000001?t[1]>31.500000000000004?t[9]>4.500000000000001?Pe=-.10496268177586783:Pe=-.020921489532370493:Pe=.02629915927247642:t[7]>20.500000000000004?t[8]>251.50000000000003?t[115]>1e-35?Pe=.11639296062157028:Pe=-.004275784356569115:t[32]>1e-35?Pe=-.07297384970166025:Pe=.006026841626381599:Pe=.002034611134960428;let et;t[248]>1e-35?et=.06091438745093315:t[0]>384.50000000000006?t[204]>1e-35?t[1]>62.50000000000001?et=-.06455513326540585:t[1]>29.500000000000004?et=.07718474591552532:t[4]>7.500000000000001?et=.040139336931404826:et=-.09685734690563386:et=.00015327283570347363:t[9]>88.50000000000001?et=.10079017954199324:t[1]>47.50000000000001?t[2]>20.500000000000004?t[2]>27.500000000000004?et=-.04077257804338707:et=.0739963982640615:t[9]>1.5000000000000002?t[17]>1e-35?et=.03778141591008941:et=-.06459919920634845:et=-.11193190957880604:t[7]>6.500000000000001?t[11]>1e-35?t[18]>1e-35?et=.14063930759326346:t[0]>179.50000000000003?et=.07287482250668585:t[8]>1180.5000000000002?et=-.14419393112726253:t[10]>28.500000000000004?et=-.07993142770099469:t[17]>1e-35?et=-.04702595410391655:t[7]>21.500000000000004?t[2]>26.500000000000004?et=.05527969663610186:et=-.10824385941441346:t[3]>11.500000000000002?et=.12358502961047915:et=-.017509147119622873:t[0]>74.50000000000001?et=-.014907705458730486:t[8]>95.50000000000001?et=-.02225118168342062:et=-.1222374623708485:t[8]>1.5000000000000002?t[8]>950.5000000000001?et=.06946188930925638:t[3]>6.500000000000001?t[10]>2.5000000000000004?t[19]>1e-35?et=.04962819555610421:et=-.07213577821855309:et=.09139529824708481:t[19]>1e-35?et=.013439401088345224:et=-.049274647207292056:et=.10531673719686951;let ct;t[40]>1e-35?t[0]>1937.5000000000002?ct=-.06421671152073961:ct=.04235421241226177:t[294]>1e-35?t[10]>50.50000000000001?ct=-.09100102290316286:t[0]>3030.5000000000005?t[0]>4177.500000000001?ct=-.03520420769287065:t[8]>1085.5000000000002?ct=-.019817352506127633:ct=.11444439424520964:ct=-.06854631664538167:t[120]>1e-35?t[4]>18.500000000000004?ct=-.010490117519863269:ct=.08104430117757461:t[121]>1e-35?t[243]>1e-35?ct=.16408304891242204:t[217]>1e-35?t[0]>4449.500000000001?ct=.06619344145920268:t[0]>4091.5000000000005?ct=-.08813353450871053:t[0]>3519.5000000000005?t[8]>668.5000000000001?ct=.10016091391222309:ct=-.017407607199427293:t[8]>501.50000000000006?t[10]>16.500000000000004?ct=-.019511460451434884:ct=-.11643672465055221:t[2]>18.500000000000004?ct=.07848228087333317:t[8]>55.50000000000001?ct=.032583027899956235:ct=-.11209832692153521:t[11]>1e-35?ct=.027482174104412567:t[10]>1.5000000000000002?t[6]>26.500000000000004?t[4]>19.500000000000004?t[9]>31.500000000000004?ct=-.09996887746328006:t[9]>2.5000000000000004?ct=.02157682011863397:ct=-.05247727848991843:ct=.07409150201483244:t[1]>38.50000000000001?ct=-.11378466075449625:t[224]>1e-35?ct=-.10741749127732923:t[1]>26.500000000000004?ct=.07343136534146562:ct=-.07013573628594773:t[25]>1e-35?ct=-.04626669734164317:ct=.05518333197956482:ct=.00032434010867555516;let wt;t[183]>1e-35?t[10]>1.5000000000000002?t[17]>1e-35?wt=.026313251010808853:wt=-.08997339150292381:wt=.025062509535227952:t[227]>1e-35?t[1]>6.500000000000001?t[2]>9.500000000000002?t[210]>1e-35?wt=.08071107515789745:t[23]>1e-35?t[1]>75.50000000000001?wt=.0905155504503746:t[8]>1049.5000000000002?wt=-.062312558183394054:t[8]>719.5000000000001?wt=.09583836191410239:t[0]>3719.5000000000005?wt=-.0778097309430818:wt=.04012012419054895:t[4]>12.500000000000002?t[8]>1496.5000000000002?t[10]>42.50000000000001?wt=-.12920865648544927:t[0]>2699.5000000000005?wt=-.07086587879041864:wt=.022614182502461846:t[4]>15.500000000000002?t[8]>55.50000000000001?t[1]>60.50000000000001?t[8]>652.5000000000001?wt=-.11377786322600797:wt=-.009486325820117998:t[1]>55.50000000000001?wt=.12430248795958142:t[0]>2952.5000000000005?t[0]>4331.500000000001?t[1]>38.50000000000001?wt=-.07938291201004219:t[2]>36.50000000000001?wt=.01520046732530246:wt=.13649854049662832:wt=-.07145015938528873:t[8]>407.50000000000006?wt=-.00350257360822279:wt=.11332047082193297:wt=-.10060624458629897:wt=.05429496612497562:t[8]>1446.5000000000002?wt=.006073419197482838:wt=-.08718676350883998:wt=-.11532497988252638:wt=.10766270463068293:t[34]>1e-35?wt=-.06345912440611544:t[131]>1e-35?t[9]>1.5000000000000002?wt=-.0004109812623829506:wt=.021601073497455662:wt=-7343540098965853e-20;let $t;t[298]>1e-35?t[9]>12.500000000000002?t[133]>1e-35?$t=-.06107663265515864:t[9]>70.50000000000001?t[10]>37.50000000000001?$t=.05995640200798119:t[0]>3443.5000000000005?$t=-.14698883458733583:$t=-.030039164579240187:t[189]>1e-35?$t=-.06086763220538141:t[1]>86.50000000000001?$t=-.05096727866142538:t[4]>64.50000000000001?$t=.11240554253834577:t[4]>45.50000000000001?$t=-.030279760168394117:t[6]>45.50000000000001?$t=.10161088917815142:t[10]>77.50000000000001?$t=-.0792333078055653:t[7]>23.500000000000004?t[0]>2882.5000000000005?$t=-.06672020005240323:$t=.08831457502630258:t[8]>2592.5000000000005?$t=-.052617701047376654:t[10]>29.500000000000004?$t=.08499327690298047:t[2]>12.500000000000002?t[9]>41.50000000000001?$t=.12880460816709416:t[9]>25.500000000000004?t[4]>11.500000000000002?$t=-.064099222705728:$t=.044332487521538365:t[0]>2882.5000000000005?$t=.031099546885005065:$t=.12938467051623853:t[0]>4221.500000000001?$t=-.0928676413498701:t[9]>30.500000000000004?$t=-.05781824812803708:$t=.07561268901778094:t[8]>711.5000000000001?t[2]>22.500000000000004?$t=-.06648105454098469:$t=.05985487552383097:$t=-.13070190291919334:t[116]>1e-35?t[10]>38.50000000000001?$t=.05282385499619401:t[1]>66.50000000000001?$t=.048802929108006314:t[2]>4.500000000000001?t[0]>4593.500000000001?$t=.027885690791379255:$t=-.08407126408362446:$t=.014432924125571093:$t=-9903435845205118e-20;let an;t[76]>1e-35?an=-.06307875292162934:t[21]>1e-35?t[7]>10.500000000000002?t[10]>4.500000000000001?t[8]>944.5000000000001?t[0]>3655.5000000000005?an=.013633653464240465:an=-.10164319411983509:an=-.1228424374328996:t[1]>26.500000000000004?t[2]>28.500000000000004?an=.00632864847804078:an=-.08393000368134668:an=.07870508617440916:t[284]>1e-35?an=.1092302727710421:an=-.0025505047582483234:t[248]>1e-35?an=.07101822393621864:t[274]>1e-35?an=-.06621099406425579:t[1]>26.500000000000004?t[1]>28.500000000000004?an=.0003077044909372931:t[10]>2.5000000000000004?t[0]>3770.5000000000005?an=.025081789181021243:an=-.014813325803582618:t[9]>33.50000000000001?an=-.033466921233840194:t[3]>12.500000000000002?t[23]>1e-35?an=.11926990418060353:an=.01852125513565268:an=.0975367595927343:t[5]>3325.5000000000005?t[8]>892.5000000000001?t[133]>1e-35?an=-.1178464984373743:t[283]>1e-35?an=.043370859226927405:t[5]>4320.500000000001?an=-.01103141226366587:t[8]>1104.5000000000002?an=-.023053423988095886:an=-.0734238953804657:t[6]>18.500000000000004?t[8]>85.50000000000001?an=.000579145585864887:an=.03389152834202143:t[128]>1e-35?an=-.14527722052568462:t[210]>1e-35?an=-.08915971541902741:t[7]>9.500000000000002?an=-.03307314577076116:t[18]>1e-35?an=-.05521712302023565:an=.009315605032770029:an=.0036332551852289933;let ae;t[0]>689.5000000000001?t[5]>768.5000000000001?t[20]>1e-35?t[5]>4368.500000000001?ae=-.07583539600416284:t[188]>1e-35?ae=-.07042659515500142:t[23]>1e-35?t[0]>3807.5000000000005?ae=-.011038193049597113:ae=.08154028164397753:t[1]>85.50000000000001?ae=.10259361975201933:ae=.011640408330521594:ae=-.00023319159023748508:t[92]>1e-35?ae=.13771692859530546:ae=.022860029819654806:t[1]>22.500000000000004?t[1]>24.500000000000004?t[2]>96.50000000000001?ae=.09967230141007705:t[30]>1e-35?ae=-.08888529037551285:ae=-.008615931385397808:t[10]>5.500000000000001?t[4]>36.50000000000001?ae=.08284665960761373:ae=-.029292565021289504:t[7]>7.500000000000001?ae=-.09945093355204493:ae=-.008381393701708593:t[20]>1e-35?ae=-.04218678460370465:t[10]>6.500000000000001?t[9]>2.5000000000000004?t[1]>13.500000000000002?t[8]>143.50000000000003?t[4]>7.500000000000001?t[2]>36.50000000000001?ae=.07585582641438211:t[8]>284.50000000000006?ae=-.029387993239886723:ae=.07716738177321587:t[1]>18.500000000000004?ae=.026745348497993746:ae=.1427429617069753:t[9]>16.500000000000004?t[9]>33.50000000000001?ae=.02337306890530338:ae=-.10390355904767366:ae=.07390521199638532:ae=-.06788247515155237:ae=-.04201446383470994:t[2]>25.500000000000004?t[2]>29.500000000000004?t[8]>227.50000000000003?ae=-.06360325615644084:ae=.04342192339836601:ae=-.10598779152030145:ae=.05253384605768211;let Ce;t[3]>7.500000000000001?t[157]>1e-35?Ce=-.07514182877923786:Ce=.000636205502279271:t[129]>1e-35?t[0]>2904.5000000000005?t[0]>4004.5000000000005?Ce=.028692053800951845:Ce=.14081686716133598:Ce=-.03316566526940354:t[186]>1e-35?t[0]>2653.5000000000005?Ce=.0037139292567243084:Ce=.12662311031652707:t[107]>1e-35?t[0]>612.5000000000001?Ce=.01202688580305612:Ce=.0993509141454483:t[203]>1e-35?t[1]>77.50000000000001?Ce=.043935495082738626:Ce=-.05639305759669704:t[247]>1e-35?Ce=-.06770766046891649:t[105]>1e-35?t[19]>1e-35?Ce=.10331836202616368:Ce=.0006926658459781341:t[96]>1e-35?Ce=.05361846065599475:t[127]>1e-35?t[0]>2723.5000000000005?t[1]>54.50000000000001?Ce=-.0741403257305367:Ce=.022900127535540854:t[7]>3.5000000000000004?Ce=.038110741403836294:Ce=.14618649985842758:t[5]>3921.5000000000005?t[1]>110.50000000000001?Ce=-.09552842289807008:t[1]>27.500000000000004?Ce=.012505935885798007:Ce=-.020509603428689526:t[282]>1e-35?t[9]>45.50000000000001?t[6]>5.500000000000001?Ce=-.1046104767723845:Ce=.031388606992301074:t[8]>114.50000000000001?t[9]>17.500000000000004?t[9]>22.500000000000004?t[1]>32.50000000000001?Ce=.023466328488582572:Ce=.11730925774586994:Ce=-.04771965631104874:Ce=.17059689880751394:Ce=-.08181850955999449:t[26]>1e-35?Ce=-.12727482696678769:Ce=-.014343123272734182;let Oe;t[147]>1e-35?t[1]>53.50000000000001?Oe=-.0993064321015924:t[0]>2604.5000000000005?t[0]>3629.5000000000005?Oe=-.02763546051134888:Oe=.06423344777499343:Oe=-.064606430904295:t[302]>1e-35?t[10]>2.5000000000000004?t[10]>47.50000000000001?Oe=.049825139823021586:t[7]>22.500000000000004?Oe=-.01131680751379858:t[0]>2579.5000000000005?Oe=-.10673674485369694:Oe=-.015387212937189957:Oe=.04347325151148724:t[179]>1e-35?Oe=-.05788885608624092:t[84]>1e-35?t[9]>6.500000000000001?t[2]>43.50000000000001?Oe=.0650355590939066:Oe=-.0473332870892226:Oe=-.09699315983340703:t[288]>1e-35?t[88]>1e-35?Oe=.11139543329789044:t[126]>1e-35?Oe=-.09726928633696198:t[8]>149.50000000000003?t[9]>46.50000000000001?t[4]>1.5000000000000002?t[8]>1861.5000000000002?Oe=.06370903833231022:t[10]>29.500000000000004?Oe=.03415223859607161:t[10]>3.5000000000000004?Oe=-.07415518117873297:Oe=-.0014119203473324082:Oe=.12617652343819508:t[9]>41.50000000000001?Oe=-.10311145857176976:t[8]>2757.5000000000005?Oe=-.08106484219011428:t[7]>71.50000000000001?Oe=-.09783384432091176:t[1]>88.50000000000001?Oe=.06249739709782831:t[3]>9.500000000000002?t[5]>1601.5000000000002?Oe=-.008884084501608536:Oe=.061339437777743616:Oe=-.042490992675121846:t[2]>6.500000000000001?t[3]>10.500000000000002?Oe=.01526664064166223:Oe=.13534828515415498:Oe=-.06985484465894776:Oe=.0005758961943178744;let He;t[86]>1e-35?t[1]>23.500000000000004?t[1]>29.500000000000004?t[4]>16.500000000000004?t[2]>31.500000000000004?He=-.029152732370514342:He=.07173628916139178:t[1]>36.50000000000001?He=-.08859111297255318:He=.0018030071815630785:He=.13652461563759322:He=-.07550137680349367:t[10]>52.50000000000001?t[49]>1e-35?He=-.07145140450454163:t[21]>1e-35?He=-.07422841663493233:He=.006289319702780104:t[10]>40.50000000000001?t[9]>59.50000000000001?t[19]>1e-35?t[13]>1e-35?He=.11864240653986852:t[3]>33.50000000000001?He=-.08821209591953476:He=.05706392280054726:He=-.03600088051578915:t[18]>1e-35?t[1]>24.500000000000004?He=.01953613016837112:He=-.059781039130025006:t[148]>1e-35?He=.052668447861325476:t[3]>30.500000000000004?t[9]>49.50000000000001?He=.07207826841738371:t[202]>1e-35?He=.08163917539410503:He=-.01319846363832958:t[9]>35.50000000000001?t[5]>4134.500000000001?t[10]>44.50000000000001?He=-.06858280496900336:He=-.1781828899516648:He=-.04024620133969553:t[9]>10.500000000000002?t[1]>22.500000000000004?t[1]>37.50000000000001?He=.018232649414147116:He=-.04419781124222661:He=.05145485182416554:t[1]>23.500000000000004?t[0]>655.5000000000001?t[5]>4901.500000000001?t[10]>45.50000000000001?He=.11452368095776105:He=-.036496437259924026:He=-.040445338739465486:He=.0816572651001145:He=-.08968914517368663:He=.0002826343082585516;let bt;t[189]>1e-35?t[0]>5269.500000000001?bt=-.08839493050459957:t[10]>85.50000000000001?bt=.10046908365702462:t[8]>2592.5000000000005?bt=-.09632233975926387:t[8]>2000.5000000000002?bt=.10282992953871627:t[8]>1266.5000000000002?t[9]>34.50000000000001?bt=.035504970430426296:t[1]>31.500000000000004?bt=-.1133764813142531:bt=-.01138280942244812:t[8]>1125.5000000000002?bt=.09800530246229806:bt=.016170419267589393:t[218]>1e-35?t[9]>99.50000000000001?t[9]>101.50000000000001?t[9]>124.50000000000001?bt=.07316772160107896:bt=-.059095014819051765:bt=.17859437315769733:t[2]>1.5000000000000002?t[9]>86.50000000000001?bt=-.09150209066166894:t[8]>3084.0000000000005?bt=-.05443972593168094:t[1]>65.50000000000001?t[10]>11.500000000000002?t[9]>33.50000000000001?bt=-.04449234460408263:bt=.05568837973347338:bt=-.12362324875024472:t[1]>41.50000000000001?t[10]>12.500000000000002?t[8]>1336.5000000000002?bt=.12741077850267066:bt=.007372371864985329:t[2]>39.50000000000001?bt=.02295917234617787:bt=.14966532083907075:t[1]>39.50000000000001?bt=-.06685557815340279:t[10]>22.500000000000004?t[2]>52.50000000000001?bt=-.02511861881285652:t[1]>27.500000000000004?bt=.08683660011672288:bt=.02956214835267301:t[9]>15.500000000000002?bt=-.016538805462996232:bt=.04352738094981517:bt=-.05561856645643868:t[9]>170.50000000000003?bt=-.07996752635874248:t[179]>1e-35?bt=-.09065975936933919:bt=-.00042817975060427177;let It;t[39]>1e-35?t[4]>25.500000000000004?It=.03443173196222934:It=-.06554248341270724:t[32]>1e-35?t[8]>90.50000000000001?t[4]>67.50000000000001?t[4]>86.50000000000001?It=-.0013415395759330318:It=.12950978489563347:t[1]>22.500000000000004?t[10]>19.500000000000004?t[4]>30.500000000000004?t[9]>41.50000000000001?It=.002297618040307216:It=-.12522800128774994:t[4]>8.500000000000002?t[8]>1075.5000000000002?It=-.015297257305397608:It=.09651828834062742:It=-.06636003334371929:t[10]>11.500000000000002?It=.17631616138309397:t[0]>1639.5000000000002?It=3804386478092585e-20:It=-.09099296398683193:It=-.06874415876172972:t[0]>2151.5000000000005?It=-.1311264883406766:It=.00809052010141122:t[253]>1e-35?It=-.06338558211939296:t[178]>1e-35?t[2]>25.500000000000004?t[2]>30.500000000000004?t[0]>2151.5000000000005?t[10]>10.500000000000002?t[0]>3615.5000000000005?It=.045038497754638605:It=-.07770167665661752:It=-.08596294280650517:It=.08538655727027213:It=.09829076418590559:t[1]>39.50000000000001?t[9]>1.5000000000000002?It=.054627956617973275:t[1]>61.50000000000001?It=-.11994465088415499:t[4]>8.500000000000002?It=.06676200239406452:It=-.027503148069376867:t[8]>676.5000000000001?It=-.10363964928357075:t[4]>8.500000000000002?It=-.07589816227175682:It=.034664436544646814:t[1]>159.50000000000003?t[6]>25.500000000000004?It=.009093153189012338:It=-.06119765876605404:It=.0004668642103528348;let cn;t[223]>1e-35?t[1]>31.500000000000004?t[8]>711.5000000000001?cn=-.10100794502567233:cn=.08000205636470442:cn=-.11945419826856896:t[113]>1e-35?cn=-.06105445938688056:t[167]>1e-35?t[0]>3928.5000000000005?cn=.1224302423880318:cn=-.01875566982911468:t[222]>1e-35?t[1]>8.500000000000002?t[1]>24.500000000000004?t[4]>3.5000000000000004?t[0]>725.5000000000001?t[0]>1682.5000000000002?t[0]>2860.5000000000005?cn=.0019277012166729114:t[1]>28.500000000000004?cn=-.054445821715687494:cn=.045645722976713245:t[30]>1e-35?cn=.13402660155331655:cn=.008921176001777645:cn=-.058547426505451076:cn=.08841202222426625:t[1]>22.500000000000004?t[10]>9.500000000000002?cn=-.13526418192218206:cn=-.03266013432583145:t[1]>20.500000000000004?t[4]>27.500000000000004?cn=.0007263224246135398:cn=.12450043268647056:t[1]>17.500000000000004?t[9]>1.5000000000000002?cn=-.11575657261278308:cn=-.01530376565862095:t[4]>13.500000000000002?t[4]>22.500000000000004?cn=-.01995960178292952:cn=.11216586049153021:cn=-.10050961087149474:cn=.08848063368485726:t[30]>1e-35?t[224]>1e-35?t[1]>52.50000000000001?cn=.10303451081526649:cn=-.01375730267020699:t[1]>28.500000000000004?t[2]>20.500000000000004?cn=-.043799548968209395:cn=-.12451444314954115:t[4]>12.500000000000002?cn=-.03838117361958468:cn=.06504990789767144:t[57]>1e-35?cn=.06890006938293915:cn=.0003914274695562949;let Bn;t[53]>1e-35?t[4]>11.500000000000002?t[8]>617.5000000000001?t[2]>41.50000000000001?Bn=.004271749009686975:Bn=-.10523878297127605:Bn=.04633982158107851:Bn=-.10349713975483057:t[183]>1e-35?t[15]>1e-35?Bn=-.08655730561951676:t[8]>919.5000000000001?Bn=-.0676453705610183:t[7]>18.500000000000004?Bn=-.027787974193650575:Bn=.08012784576991301:t[227]>1e-35?t[1]>6.500000000000001?t[3]>8.500000000000002?t[210]>1e-35?Bn=.07185850683316512:t[8]>201.50000000000003?t[8]>348.50000000000006?t[23]>1e-35?t[8]>1049.5000000000002?Bn=-.03473877164537313:t[8]>719.5000000000001?Bn=.10471053866934404:Bn=.008236107678382981:t[4]>57.50000000000001?Bn=.09412219478825269:t[10]>66.50000000000001?Bn=-.13884338641811986:t[10]>19.500000000000004?t[10]>22.500000000000004?t[0]>2490.5000000000005?Bn=-.040681323751002293:Bn=.06374650297561021:Bn=.12884615227401788:t[10]>5.500000000000001?Bn=-.0887517295786972:t[8]>597.5000000000001?t[18]>1e-35?Bn=-.05474068967150784:Bn=.03744700650806603:Bn=-.07846396348680855:t[1]>42.50000000000001?Bn=.018972315810821302:Bn=.10953621007604744:t[5]>4439.500000000001?Bn=.010999776705494586:t[1]>40.50000000000001?Bn=-.12394200059775967:t[10]>2.5000000000000004?Bn=.013528093962849453:Bn=-.09222088417048682:Bn=-.12662967149701485:Bn=.09327296405849603:t[3]>99.50000000000001?Bn=-.013581954439986752:Bn=.0005526498251862075;let mr;t[187]>1e-35?t[243]>1e-35?mr=-.08392792551692502:t[10]>68.50000000000001?mr=.07871769409454053:t[10]>8.500000000000002?t[10]>16.500000000000004?t[2]>17.500000000000004?t[3]>31.500000000000004?t[91]>1e-35?t[10]>21.500000000000004?t[10]>33.50000000000001?t[10]>48.50000000000001?mr=-.0825306209711224:mr=.049559996084532945:mr=-.1064938580886302:mr=.03353240732240275:mr=.045985370399163464:t[1]>42.50000000000001?t[4]>20.500000000000004?mr=.16966001471529374:t[1]>57.50000000000001?mr=-.005772777673676247:mr=.09383677041525058:t[8]>747.5000000000001?mr=.054068175469351235:mr=-.049968216310277036:t[8]>753.5000000000001?mr=-.0679383555784074:t[4]>8.500000000000002?mr=-.059757341189735386:mr=.05701083682780414:mr=-.052497281448921164:t[6]>12.500000000000002?t[8]>969.5000000000001?t[4]>23.500000000000004?mr=.05820296128730006:mr=-.1063042385102475:t[1]>49.50000000000001?t[8]>302.50000000000006?mr=.15340611616954566:mr=.04385036188666874:t[0]>4449.500000000001?mr=-.02110897605541555:t[1]>24.500000000000004?t[2]>17.500000000000004?mr=.004840354641006495:mr=.09967827580276283:mr=.11605363537391578:t[9]>19.500000000000004?mr=-.0735831692725717:mr=.019973331823355176:t[306]>1e-35?t[149]>1e-35?mr=-.08968948874343531:t[8]>1094.5000000000002?t[10]>15.500000000000002?mr=-.02442182361342386:mr=.10334853004243093:mr=-.030431948680167104:mr=-956078595250818e-19;let pn;t[294]>1e-35?t[1]>26.500000000000004?t[0]>4078.5000000000005?pn=-.040232505718244854:t[0]>3030.5000000000005?pn=.0634109586813073:pn=-.04043617034245621:pn=-.06385323610738443:t[120]>1e-35?t[4]>18.500000000000004?pn=-.007859096946435131:pn=.07282728486115758:t[229]>1e-35?t[0]>2952.5000000000005?t[17]>1e-35?pn=.05515771679628051:pn=-.04214471312668263:pn=-.09589322222261765:t[193]>1e-35?pn=-.05056345906812831:t[121]>1e-35?t[243]>1e-35?pn=.14857706653119385:t[4]>9.500000000000002?t[1]>26.500000000000004?t[2]>59.50000000000001?pn=-.08152604001147906:t[11]>1e-35?pn=.09132936522356462:t[15]>1e-35?t[4]>23.500000000000004?pn=.13100930780107503:t[10]>25.500000000000004?pn=.05921074710011526:pn=-.07226005736695183:t[0]>3304.5000000000005?t[0]>3707.5000000000005?t[0]>4053.5000000000005?pn=.0009447118243153454:pn=-.09820565036865991:pn=.057146909749745546:t[0]>2115.5000000000005?pn=-.12331216726611678:pn=.007281983677694285:t[2]>56.50000000000001?pn=.012310154675612615:pn=-.08873665774670461:t[6]>25.500000000000004?pn=.134708740821879:t[9]>5.500000000000001?pn=-.0805901581148979:t[224]>1e-35?pn=-.063684477784257:t[7]>2.5000000000000004?t[19]>1e-35?pn=.10842593386554122:t[2]>13.500000000000002?pn=.06466798320378395:pn=-.08578130788886655:pn=-.03590892078300114:pn=.0003499894043880708;let qe;t[134]>1e-35?t[6]>50.50000000000001?t[0]>3601.5000000000005?qe=.10839808814624702:qe=-.028043875308180352:t[7]>30.500000000000004?t[8]>932.5000000000001?qe=-.007478368069393829:qe=-.09066751344326617:t[0]>3588.5000000000005?t[5]>4748.500000000001?qe=.04035247751736232:t[0]>4255.500000000001?qe=-.1310865624507367:t[0]>4004.5000000000005?qe=.06647367311982634:qe=-.08339693352955757:t[4]>10.500000000000002?t[1]>34.50000000000001?qe=-.011618902907510411:qe=.1114646660406691:t[10]>2.5000000000000004?t[0]>3072.5000000000005?qe=.09356028223727986:qe=-.03811765057032162:qe=-.09456215497345526:t[280]>1e-35?t[7]>70.50000000000001?qe=.10322956436499003:t[2]>22.500000000000004?t[1]>83.50000000000001?qe=.1146142460964847:t[1]>62.50000000000001?qe=-.09679869865322362:t[9]>71.50000000000001?qe=-.07377580769927583:t[4]>19.500000000000004?t[0]>4571.500000000001?qe=-.039046426387852974:qe=.04558778688367152:qe=.11220830937352602:t[7]>5.500000000000001?t[9]>17.500000000000004?t[8]>1067.5000000000002?qe=.03261697816211156:t[15]>1e-35?qe=.02586252542264368:t[2]>14.500000000000002?qe=-.016420452667484604:qe=-.1011799626006976:qe=-.13787471318963773:t[6]>4.500000000000001?t[8]>427.50000000000006?t[10]>36.50000000000001?qe=.010193588102560583:qe=.11748729525930773:qe=-.04468162226743652:qe=-.028365274393617957:t[71]>1e-35?qe=.05115139346588793:qe=-.0001510425316936658;let pe;t[298]>1e-35?t[8]>81.50000000000001?t[8]>119.50000000000001?t[4]>64.50000000000001?pe=.09072192054181037:t[9]>72.50000000000001?t[8]>1094.5000000000002?pe=.020637047900190317:pe=-.1017300802134141:t[1]>23.500000000000004?t[9]>12.500000000000002?t[0]>2815.5000000000005?t[0]>3183.5000000000005?t[3]>23.500000000000004?t[3]>45.50000000000001?t[4]>48.50000000000001?pe=-.04632587527094407:pe=.08603684785510396:pe=-.05101401015448496:pe=.025466432054358498:pe=-.07897811963329214:t[6]>13.500000000000002?t[10]>26.500000000000004?pe=.020385355430046367:pe=.12032592051335252:pe=-.012387370292173013:t[2]>23.500000000000004?pe=-.12568545484492677:pe=-.022261190943521976:t[8]>634.5000000000001?t[8]>857.5000000000001?pe=.043528764484784536:pe=.14352071657196003:pe=-.009332833816977268:pe=.11186782227735846:pe=-.0737365712425554:t[136]>1e-35?t[0]>1937.5000000000002?pe=-.05649104643152564:pe=.03884200719305747:t[42]>1e-35?pe=-.07191700385792335:t[116]>1e-35?t[9]>2.5000000000000004?t[9]>17.500000000000004?pe=-.04103416502526736:pe=.04881823954656287:t[4]>15.500000000000002?pe=.009342724662897898:t[0]>3969.5000000000005?pe=-.025637309961309498:pe=-.12574492012987865:t[212]>1e-35?t[19]>1e-35?pe=-.08185697075265091:t[0]>2215.5000000000005?pe=.030063975892297354:t[0]>807.5000000000001?pe=-.03924325550733229:pe=.0415330999189793:pe=-.00024374664461674863;let De;t[3]>7.500000000000001?De=.0005117490419655908:t[129]>1e-35?t[0]>2904.5000000000005?t[0]>4004.5000000000005?De=.025798416259686565:De=.13251610353146012:De=-.029900559552677654:t[1]>81.50000000000001?t[1]>110.50000000000001?t[0]>4242.500000000001?De=-.11098564237775424:De=25960925309712775e-21:t[0]>4177.500000000001?t[9]>35.50000000000001?De=.15347826616466054:t[3]>4.500000000000001?De=.10379320730958941:De=-.008896303020010654:t[0]>3415.5000000000005?t[0]>3830.5000000000005?De=.03159791088468647:De=-.10612873364104258:De=.05059856107348746:t[133]>1e-35?t[2]>5.500000000000001?De=-.02335760775001469:De=-.1379386577903324:t[1]>62.50000000000001?t[3]>2.5000000000000004?De=-.011164334474672973:De=-.06594044410501655:t[207]>1e-35?De=-.1014214372326535:t[8]>3.5000000000000004?t[107]>1e-35?t[2]>6.500000000000001?De=-.01725821503981916:De=.05594086838700241:t[203]>1e-35?t[1]>44.50000000000001?t[1]>51.50000000000001?De=-.04226531631656534:De=-.14409800530171432:De=-.03245576341206398:t[8]>4214.500000000001?De=.0895409165534886:t[247]>1e-35?De=-.06506383629143335:t[118]>1e-35?De=-.07214270121257443:t[8]>546.5000000000001?De=-.004385020865473831:De=.009321812545248529:t[0]>1639.5000000000002?t[13]>1e-35?De=.046278501133958524:De=-.030835570926968044:t[0]>493.50000000000006?De=-.12794504651610425:De=.009415039807550776;let Re;t[304]>1e-35?Re=-.04717777269217453:t[76]>1e-35?Re=-.05813439142128324:t[1]>59.50000000000001?t[0]>350.50000000000006?t[53]>1e-35?Re=-.09648224457374217:t[132]>1e-35?Re=.07089308107910267:t[0]>2248.5000000000005?t[5]>2525.5000000000005?t[9]>1.5000000000000002?t[114]>1e-35?Re=-.08595213071749083:t[9]>14.500000000000002?t[9]>33.50000000000001?t[285]>1e-35?Re=.10838431695638147:t[230]>1e-35?Re=.06458713915750626:t[0]>3219.5000000000005?t[3]>23.500000000000004?t[9]>69.50000000000001?Re=.050071316251979:Re=-.006356941111525215:t[6]>8.500000000000002?Re=-.0384814076434817:t[1]>73.50000000000001?t[0]>3746.5000000000005?Re=.10217402850540398:Re=-.048840949025349197:Re=-.03668313197909846:t[7]>39.50000000000001?Re=-.0562642841496003:t[10]>2.5000000000000004?Re=.09749777369987417:Re=-.04848223121417616:t[0]>5453.500000000001?Re=.08316648226133942:Re=-.0261979698267618:t[212]>1e-35?Re=.09565573198318654:t[5]>4814.500000000001?t[8]>963.5000000000001?t[8]>1514.5000000000002?Re=.04837009746506856:Re=-.09184360565631328:Re=.0032411047845613606:t[0]>4733.500000000001?Re=.0977378556864798:Re=.010776545559325588:Re=-.012483310473120218:Re=-.049284121449103935:Re=.011962641341789565:t[1]>67.50000000000001?t[1]>77.50000000000001?Re=-.08380361910948711:Re=.07375088778585813:Re=-.1084864186071348:Re=.0007819503469605476;let le;t[7]>17.500000000000004?t[115]>1e-35?le=.08741852531696623:t[167]>1e-35?le=.10078975495600809:le=-.0018324767784017562:t[290]>1e-35?le=-.0850089851255888:t[74]>1e-35?t[10]>16.500000000000004?le=.1379733311640402:le=-.0038500648529631075:t[6]>29.500000000000004?t[8]>876.5000000000001?t[0]>3129.5000000000005?t[9]>5.500000000000001?t[8]>1765.5000000000002?le=-.09360083033774169:le=.061471353193188374:t[10]>11.500000000000002?t[10]>31.500000000000004?le=-.015599362579530679:t[0]>4593.500000000001?le=-.12029549262691491:le=-.018917032256501397:le=.04632831686576592:le=.06892347785444271:t[4]>8.500000000000002?t[10]>33.50000000000001?le=-.05894883236412263:le=.05213944998315824:le=.12621779223564986:t[243]>1e-35?t[6]>16.500000000000004?t[0]>4141.500000000001?t[0]>5850.500000000001?le=.07577412405680808:le=-.053144737214742235:t[1]>29.500000000000004?t[9]>16.500000000000004?le=-.0277076900736147:t[1]>65.50000000000001?le=-.023587471585763506:le=.10184896592433082:le=-.057699270527916825:le=-.041191811945739454:t[114]>1e-35?t[2]>23.500000000000004?le=.06566902102799584:t[10]>25.500000000000004?le=-.07033633753181047:le=-.01599120398351932:t[242]>1e-35?t[0]>2402.5000000000005?le=-.08108035861059537:le=.04184690010531078:t[35]>1e-35?t[0]>2904.5000000000005?le=-.12431182772561139:le=.01886235886984271:le=.0025579594894418116;let ee;t[8]>2915.5000000000005?t[101]>1e-35?ee=.08648323956719083:t[0]>93.50000000000001?t[196]>1e-35?ee=-.09509320772734361:t[4]>1.5000000000000002?t[5]>1106.5000000000002?t[5]>1191.5000000000002?t[283]>1e-35?ee=-.11268313808648661:t[10]>12.500000000000002?t[131]>1e-35?ee=.0687641681341721:t[10]>102.50000000000001?ee=-.09667920080214842:t[4]>15.500000000000002?t[8]>2992.5000000000005?t[1]>24.500000000000004?t[1]>71.50000000000001?ee=-.06762578396473291:t[10]>65.50000000000001?ee=-.05226727783610509:t[282]>1e-35?ee=.09911438410640917:t[19]>1e-35?ee=.06915156336429933:ee=-.006565637886508241:ee=-.08344300251849307:ee=-.0928863907927501:t[1]>60.50000000000001?t[2]>17.500000000000004?ee=.19428463865406298:ee=.016073883020956765:t[13]>1e-35?ee=.06864077097923665:ee=-.01388867527034731:t[0]>1847.5000000000002?ee=.004655280608161356:t[1]>40.50000000000001?ee=.031406054057765996:ee=.12798062439212832:ee=.09859670536264255:t[10]>2.5000000000000004?t[9]>68.50000000000001?ee=.08821759640665892:t[9]>32.50000000000001?t[8]>3960.0000000000005?t[1]>31.500000000000004?ee=-.0706095614785733:ee=.04227164041372561:ee=-.1056906923176064:t[2]>8.500000000000002?t[19]>1e-35?ee=-.07139533369873902:ee=.008952586782921625:ee=.06086212582180936:ee=-.0816938490403437:ee=-.051224901945956025:ee=-.10525399124186095:ee=.000270924147208224;let Ge;t[122]>1e-35?t[0]>2461.5000000000005?t[2]>36.50000000000001?Ge=.029186512383291244:t[7]>1.5000000000000002?Ge=-.14984127276725573:t[1]>40.50000000000001?Ge=.032757060730648144:Ge=-.07675575422749602:t[6]>8.500000000000002?Ge=.10599766037117893:Ge=-.0541423394552156:t[1]>24.500000000000004?t[103]>1e-35?t[8]>61.50000000000001?t[17]>1e-35?Ge=-.051394622947855385:Ge=.03237141302699347:Ge=.12526173027943244:Ge=.000579473126472788:t[18]>1e-35?t[3]>4.500000000000001?t[3]>6.500000000000001?t[0]>5453.500000000001?Ge=-.07383912482657777:t[0]>5147.500000000001?Ge=.07008813937042091:t[10]>38.50000000000001?Ge=-.06779203808365307:Ge=-.013782769999524498:Ge=.0880038869117715:Ge=-.12846294176070952:t[281]>1e-35?Ge=-.06810806903850834:t[10]>227.50000000000003?Ge=-.08937977001661111:t[10]>130.50000000000003?Ge=.10538920632708033:t[145]>1e-35?t[4]>6.500000000000001?t[9]>16.500000000000004?t[4]>18.500000000000004?Ge=.011036530162093841:Ge=-.11500797478569702:Ge=.03702229366129399:Ge=.07242026683784307:t[189]>1e-35?Ge=.03331407112090286:t[9]>33.50000000000001?t[201]>1e-35?Ge=.08979610115743614:t[7]>57.50000000000001?t[1]>20.500000000000004?Ge=-.02608892716555304:Ge=.09609599320761308:t[9]>105.50000000000001?Ge=-.06848127135991534:Ge=.0023675721254089715:t[86]>1e-35?Ge=-.11049635625500497:Ge=-.004847764219432233;let Ct;t[125]>1e-35?t[0]>3969.5000000000005?Ct=-.09462233499115416:Ct=.05235324508465096:t[17]>1e-35?t[49]>1e-35?t[10]>19.500000000000004?Ct=-.030700661288166148:Ct=.0870883677166864:t[10]>3.5000000000000004?t[3]>18.500000000000004?t[0]>3544.5000000000005?t[188]>1e-35?t[9]>7.500000000000001?Ct=.03149547314036763:Ct=-.08166208257451366:t[0]>5850.500000000001?Ct=-.10228136324773157:t[102]>1e-35?Ct=-.10572585290676295:t[8]>726.5000000000001?t[5]>3657.5000000000005?Ct=.01782894842128785:t[13]>1e-35?Ct=.002680190260979968:Ct=.1773965720476949:t[2]>72.50000000000001?Ct=.09090831938627947:t[1]>59.50000000000001?Ct=-.12297206702816128:t[0]>4977.500000000001?Ct=.09899015653118268:Ct=-.022207141540838887:t[4]>32.50000000000001?t[1]>34.50000000000001?Ct=-.0675900954187773:Ct=.012336403425364092:Ct=-.0017002325391924573:t[6]>7.500000000000001?t[1]>17.500000000000004?Ct=-.02671721777458802:Ct=-.09242452991958029:t[284]>1e-35?Ct=-.08585691288582491:Ct=.013332890564324447:t[4]>14.500000000000002?Ct=-.005245022074799553:t[23]>1e-35?Ct=-.020036720167235768:t[1]>29.500000000000004?t[114]>1e-35?Ct=-.09289852307936758:t[116]>1e-35?Ct=-.09686573010015055:t[8]>804.5000000000001?Ct=.03812547148215318:Ct=.005162744968176633:t[9]>43.50000000000001?Ct=-.059246106396159376:Ct=.050370113808135275:Ct=.000794041852811028;let Gn;t[3]>7.500000000000001?Gn=.0004981426543104341:t[9]>114.50000000000001?Gn=.05666010099424601:t[129]>1e-35?t[6]>3.5000000000000004?Gn=-.019061766497948867:Gn=.07193491146561211:t[186]>1e-35?t[0]>2653.5000000000005?Gn=-.006044199577160493:Gn=.1147136801028133:t[6]>85.50000000000001?t[8]>847.5000000000001?Gn=.11486607015912494:t[9]>16.500000000000004?Gn=-.08686820858087294:Gn=.06119632492911875:t[127]>1e-35?t[0]>2723.5000000000005?t[0]>3682.5000000000005?t[1]>38.50000000000001?Gn=-.022230207980026437:Gn=.1056683690528792:Gn=-.05859530800943035:Gn=.06970608927597141:t[7]>3.5000000000000004?t[105]>1e-35?Gn=.08073568184886762:t[107]>1e-35?t[2]>6.500000000000001?Gn=-.05177544573528314:Gn=.05370469772149028:t[1]>35.50000000000001?t[0]>4106.500000000001?t[9]>46.50000000000001?t[0]>4633.500000000001?Gn=.15159657923771555:Gn=-.0060542654587671055:t[9]>5.500000000000001?Gn=-.042808028205051786:t[1]>48.50000000000001?Gn=-.010449538258110742:Gn=.10026907521968294:Gn=-.04249349329714756:t[9]>42.50000000000001?t[1]>19.500000000000004?t[8]>852.5000000000001?Gn=-.02272452389409874:Gn=-.11202691218244319:t[5]>1809.5000000000002?Gn=-.04460413584255906:Gn=.08196329474205256:t[10]>69.50000000000001?Gn=.10221481166238167:Gn=.0004063052701699382:t[243]>1e-35?Gn=-.07563941678849846:t[18]>1e-35?Gn=.02563513231103432:Gn=-.004740081147303786;let Hr;t[84]>1e-35?t[9]>6.500000000000001?t[2]>43.50000000000001?Hr=.057446442918106:Hr=-.04404018270156349:Hr=-.09282976714550464:t[0]>384.50000000000006?t[204]>1e-35?t[1]>62.50000000000001?Hr=-.05930486238817954:t[1]>29.500000000000004?Hr=.06955866121256543:t[8]>597.5000000000001?Hr=-.06538593556505168:Hr=.06212512595497445:Hr=.00021102929959182257:t[9]>90.50000000000001?Hr=.0958061289119631:t[102]>1e-35?Hr=.07172059675638813:t[1]>47.50000000000001?Hr=-.03879798603977766:t[297]>1e-35?Hr=.054948234271956144:t[282]>1e-35?t[2]>6.500000000000001?Hr=.003805910996312012:Hr=.09304295674749524:t[11]>1e-35?t[18]>1e-35?Hr=.11252376801858695:t[288]>1e-35?Hr=-.10293901912180432:Hr=.014669268837893872:t[1]>42.50000000000001?Hr=-.05988274123836837:t[145]>1e-35?Hr=.06142784665288495:t[3]>1.5000000000000002?t[4]>4.500000000000001?t[1]>21.500000000000004?t[1]>27.500000000000004?t[9]>24.500000000000004?Hr=.038791154988529926:t[10]>22.500000000000004?t[2]>19.500000000000004?Hr=-.03366718308159971:Hr=.11936550608549797:t[1]>31.500000000000004?Hr=-.07454716789539667:Hr=.027859650621164217:t[10]>10.500000000000002?Hr=-.11806374092321247:Hr=-.03506042229223101:Hr=-.0007080765837654515:t[10]>6.500000000000001?Hr=-.028077713664996503:t[2]>7.500000000000001?Hr=.15803724124216814:Hr=.0351381284833169:Hr=-.07877953381054767;let lr;t[131]>1e-35?t[282]>1e-35?t[4]>23.500000000000004?lr=.14144941521975005:lr=.0007727806714190652:t[9]>1.5000000000000002?t[8]>2134.5000000000005?t[2]>34.50000000000001?lr=.10514088112381886:t[7]>18.500000000000004?lr=-.10370643555956745:lr=.04093594315421388:t[6]>15.500000000000002?t[4]>9.500000000000002?t[10]>27.500000000000004?t[10]>71.50000000000001?lr=-.0508129468802936:t[224]>1e-35?lr=-.037816066368733595:t[10]>43.50000000000001?lr=.07793408602607932:lr=.017646166646099453:t[9]>3.5000000000000004?t[9]>29.500000000000004?t[17]>1e-35?lr=.036972453794202324:lr=-.08727431092411866:t[8]>427.50000000000006?t[8]>1278.5000000000002?lr=.09475302525132188:lr=-.03580104945898193:lr=.08349488283861875:t[10]>3.5000000000000004?t[0]>1847.5000000000002?t[0]>4280.500000000001?t[2]>27.500000000000004?lr=-.1282448778804823:lr=-.014395808269207212:lr=-.008940927190750592:lr=-.1459118815453748:t[0]>4897.500000000001?lr=-.09733068457286576:t[1]>57.50000000000001?lr=.06575271409540207:lr=-.019556422817450115:lr=-.10623959222984136:t[18]>1e-35?lr=.11280940901275241:t[8]>319.50000000000006?t[2]>6.500000000000001?lr=.008125645893104896:lr=-.11084368630465868:lr=.0584398731508786:t[0]>350.50000000000006?t[3]>83.50000000000001?lr=-.05854904579626861:t[4]>5.500000000000001?lr=.02985784951394175:lr=-.03247600140149334:lr=-.11152899295304973:lr=-.00035424577714215764;let Ki;t[32]>1e-35?t[17]>1e-35?t[8]>359.50000000000006?t[8]>804.5000000000001?Ki=-.06563670567578264:Ki=.067656954313663:Ki=-.10388217548685377:t[8]>2302.5000000000005?Ki=.07190621943790435:t[4]>67.50000000000001?Ki=.060020507643618604:t[4]>38.50000000000001?Ki=-.08707253184321638:t[2]>11.500000000000002?t[2]>16.500000000000004?t[1]>31.500000000000004?t[1]>59.50000000000001?Ki=-.06568134366461277:t[8]>1075.5000000000002?Ki=-.004768057709758692:Ki=.11785959165999467:Ki=-.05080221682879267:Ki=.14814206127494542:Ki=-.07241946332311736:t[253]>1e-35?Ki=-.058893562861261274:t[4]>61.50000000000001?t[283]>1e-35?t[10]>23.500000000000004?Ki=-.02471195342450034:Ki=.11866056464409412:t[10]>44.50000000000001?t[1]>16.500000000000004?t[8]>2640.0000000000005?Ki=-.10741850739482771:Ki=.010051635824944:Ki=.12502069436017124:t[8]>1971.5000000000002?t[1]>23.500000000000004?t[308]>1e-35?Ki=.10511236013756364:t[10]>10.500000000000002?t[1]>53.50000000000001?Ki=-.08992396138178163:Ki=.010944365997007212:Ki=.06221307021813793:Ki=.1286024087559141:t[127]>1e-35?Ki=.06568148624531012:t[10]>40.50000000000001?Ki=-.07567979134643352:t[5]>5647.500000000001?Ki=.07594672895572069:Ki=-.018158016446439187:t[6]>55.50000000000001?Ki=.009293422430111872:t[4]>45.50000000000001?Ki=-.017749818406964022:t[2]>46.50000000000001?Ki=.01714136511113982:Ki=-724762291423549e-19;let Pi;t[1]>24.500000000000004?t[103]>1e-35?t[8]>48.50000000000001?t[17]>1e-35?Pi=-.048689215588703864:t[9]>27.500000000000004?t[0]>3916.5000000000005?Pi=.07084726276890757:Pi=-.11232323677722932:Pi=.04812773089510436:Pi=.11757502216780046:t[5]>1464.5000000000002?t[5]>1505.5000000000002?t[167]>1e-35?Pi=.07470606002425358:t[1]>53.50000000000001?t[132]>1e-35?Pi=.0879462816013881:Pi=-.002966662093626573:t[306]>1e-35?Pi=-.04588085188342676:Pi=.0031910005157084823:t[3]>10.500000000000002?t[10]>20.500000000000004?Pi=-.006600332774461143:Pi=.1272481351557754:Pi=-.09030973597154808:t[284]>1e-35?t[1]>38.50000000000001?t[10]>2.5000000000000004?Pi=.011884312066620044:Pi=.11678751052403374:t[4]>8.500000000000002?Pi=.03627129613273813:Pi=-.12132783497902287:Pi=-.006784372643244717:t[18]>1e-35?t[3]>4.500000000000001?t[3]>6.500000000000001?t[0]>5453.500000000001?Pi=-.06830131718398992:t[0]>5147.500000000001?Pi=.062360406249609306:t[4]>4.500000000000001?Pi=-.013162203864592055:Pi=-.07153029184927609:Pi=.07628618062271557:Pi=-.12085065687320373:t[190]>1e-35?Pi=-.045816889524231186:t[137]>1e-35?Pi=-.07956001795911584:t[199]>1e-35?t[0]>3853.5000000000005?Pi=.025895337822752502:Pi=-.06503949350616421:t[10]>227.50000000000003?Pi=-.09989456525790491:t[10]>130.50000000000003?Pi=.08616651057030683:Pi=.0001234981796706021;let ko;t[8]>1014.5000000000001?t[9]>137.50000000000003?ko=-.08778879924617534:t[8]>1022.5000000000001?t[285]>1e-35?t[9]>64.50000000000001?ko=.04955806187281689:t[0]>3670.5000000000005?t[10]>32.50000000000001?ko=-.141732381961068:ko=-.0317152307496497:ko=-.02074638849097191:t[0]>93.50000000000001?t[0]>3072.5000000000005?t[10]>100.50000000000001?t[4]>24.500000000000004?t[8]>1336.5000000000002?ko=.12191801556691254:ko=-.0003444689085397977:ko=.005739668504631604:t[146]>1e-35?t[308]>1e-35?ko=.015237524791728777:t[6]>61.50000000000001?t[4]>63.50000000000001?ko=-.05676033995381961:ko=.10933961076803381:t[4]>26.500000000000004?ko=-.11667582544549814:t[8]>1765.5000000000002?ko=.032174455312047705:ko=-.0755016390126608:t[293]>1e-35?ko=-.08234885407658332:t[9]>41.50000000000001?t[0]>3830.5000000000005?ko=.026571311956824436:t[15]>1e-35?ko=.06175459479851121:ko=-.018778084411148754:t[9]>40.50000000000001?ko=-.09420232889965811:ko=-.004578248021263184:t[2]>1.5000000000000002?ko=.005453714644971445:ko=-.03907138175699279:ko=-.055296364182154736:t[23]>1e-35?ko=.036555134842143476:t[0]>4188.500000000001?t[6]>29.500000000000004?ko=-.09358146510580179:ko=.060524657996178094:ko=-.11245101144669545:t[125]>1e-35?t[9]>1.5000000000000002?ko=-.12698331085931538:ko=.006059605604079918:t[2]>196.50000000000003?ko=-.09451315810804783:ko=.0011390147031687425;let ar;t[8]>2830.5000000000005?t[1]>31.500000000000004?t[9]>32.50000000000001?t[5]>1234.5000000000002?t[8]>3794.5000000000005?ar=.05517359070460923:ar=-.04758751221404857:ar=-.09482078194138792:t[8]>2992.5000000000005?t[1]>101.50000000000001?ar=.1040436595565776:t[9]>21.500000000000004?ar=.04032250517675179:t[107]>1e-35?ar=.05978752253058374:t[210]>1e-35?t[4]>37.50000000000001?ar=.1192453009230486:t[1]>51.50000000000001?ar=.0443376336292195:ar=-.07967674833321865:t[5]>2117.5000000000005?t[9]>10.500000000000002?ar=-.10025078607591283:t[0]>2882.5000000000005?t[18]>1e-35?ar=-.08999822408398037:ar=.017533219253893447:t[9]>1.5000000000000002?t[4]>12.500000000000002?ar=-.061850439226075:ar=.08849196353361093:ar=.10536348167793089:t[92]>1e-35?ar=.04894947712119185:t[9]>16.500000000000004?ar=.05900227903883853:t[9]>5.500000000000001?ar=-.11946594348916476:ar=-.03652096348071964:t[1]>41.50000000000001?ar=-.07411603110840567:ar=-.00021033247574340914:t[10]>22.500000000000004?t[9]>68.50000000000001?ar=.08493634342741495:t[11]>1e-35?ar=-.10899097825564363:ar=-.006156708838964173:t[8]>3198.5000000000005?t[2]>41.50000000000001?ar=.08356655906359918:t[7]>25.500000000000004?ar=-.09475076526194888:t[10]>5.500000000000001?ar=-.01999406228763778:ar=.06696212545889428:t[6]>20.500000000000004?ar=.14713592661393468:ar=.0459917279002218:ar=.00027445928493734093;let pi;t[223]>1e-35?t[1]>31.500000000000004?t[8]>634.5000000000001?pi=-.06904501553217077:pi=.05696231672035904:pi=-.1124703178077813:t[99]>1e-35?t[1]>89.50000000000001?pi=-.05074261170009721:t[1]>57.50000000000001?t[8]>969.5000000000001?pi=-.011419256378538392:t[0]>3830.5000000000005?pi=.140315841503076:pi=.02403434913963024:t[1]>31.500000000000004?t[8]>65.50000000000001?t[2]>10.500000000000002?pi=-.04027822909411164:pi=.03176085103667189:pi=.06779515865838849:t[4]>15.500000000000002?pi=.0762878389015175:t[8]>175.50000000000003?t[0]>3030.5000000000005?t[8]>1041.5000000000002?pi=.06124039747298539:pi=-.04312732764434027:pi=.09161522761808062:pi=-.09663512235460074:t[280]>1e-35?t[6]>45.50000000000001?t[1]>46.50000000000001?pi=.11211681010488772:t[13]>1e-35?pi=.06725735814960367:pi=-.046744031455827846:t[10]>44.50000000000001?t[0]>3400.5000000000005?t[0]>4004.5000000000005?t[2]>22.500000000000004?pi=.11743605068905603:pi=-.011309033539148687:pi=-.07896094707523052:pi=.12862714793172117:t[10]>1.5000000000000002?t[8]>455.50000000000006?t[0]>4706.500000000001?pi=-.09218756798869711:t[10]>19.500000000000004?t[0]>1894.5000000000002?t[0]>3719.5000000000005?pi=.02836295848998302:pi=.12210680366745175:pi=-.058302317470509096:t[5]>4144.500000000001?pi=.06123341960495106:pi=-.03840046906926525:pi=-.05221474543453495:pi=.03988215485860711:pi=-.00033074684693083496;let nh=soa(e+n+r+o+a+s+c+l+u+d+p+m+A+f+g+h+y+v+_+w+x+E+I+k+T+D+M+q+$+L+F+te+oe+Y+ge+re+J+Ae+G+U+ie+xe+ze+Me+ce+se+ue+V+W+X+ve+he+ye+_e+we+Le+Ke+Xe+Tt+Kt+fn+nn+bn+jn+Ie+ot+Bt+Ht+Pe+et+ct+wt+$t+an+ae+Ce+Oe+He+bt+It+cn+Bn+mr+pn+qe+pe+De+Re+le+ee+Ge+Ct+Gn+Hr+lr+Ki+Pi+ko+ar+pi);return[1-nh,nh]}function soa(t){if(t<0){let e=Math.exp(t);return e/(1+e)}return 1/(1+Math.exp(-t))}var coa={javascript:["//"],typescript:["//"],typescriptreact:["//"],javascriptreact:["//"],vue:["//","-->"],php:["//","#"],dart:["//"],go:["//"],cpp:["//"],scss:["//"],csharp:["//"],java:["//"],c:["//"],rust:["//"],python:["#"],markdown:["#","-->"],css:["*/"]},D2r={javascript:1,javascriptreact:2,typescript:3,typescriptreact:4,python:5,go:6,ruby:7};function P2r(t,e,n,r=!0){let o=t.split(` `);if(r&&(o=o.filter(c=>c.trim().length>0)),Math.abs(e)>o.length||e>=o.length)return!1;e<0&&(e=o.length+e);let a=o[e];return(coa[n]??[]).some(c=>a.includes(c))}var mtt=class{constructor(e,n){let[r,o]=this.firstAndLast(e),a=this.firstAndLast(e.trimEnd());this.language=n,this.length=e.length,this.firstLineLength=r.length,this.lastLineLength=o.length,this.lastLineRstripLength=o.trimEnd().length,this.lastLineStripLength=o.trim().length,this.rstripLength=e.trimEnd().length,this.stripLength=e.trim().length,this.rstripLastLineLength=a[1].length,this.rstripLastLineStripLength=a[1].trim().length,this.secondToLastLineHasComment=P2r(e,-2,n),this.rstripSecondToLastLineHasComment=P2r(e.trimEnd(),-2,n),this.prefixEndsWithNewline=e.endsWith(` `),this.lastChar=e.slice(-1),this.rstripLastChar=e.trimEnd().slice(-1),this.firstChar=e[0],this.lstripFirstChar=e.trimStart().slice(0,1)}firstAndLast(e){let n=e.split(` `),r=n.length,o=n[0],a=n[r-1];return a===""&&r>1&&(a=n[r-2]),[o,a]}},sGt=class{constructor(e,n,r){this.language=r,this.prefixFeatures=new mtt(e,r),this.suffixFeatures=new mtt(n,r)}constructFeatures(){let e=new Array(14).fill(0);e[0]=this.prefixFeatures.length,e[1]=this.prefixFeatures.firstLineLength,e[2]=this.prefixFeatures.lastLineLength,e[3]=this.prefixFeatures.lastLineRstripLength,e[4]=this.prefixFeatures.lastLineStripLength,e[5]=this.prefixFeatures.rstripLength,e[6]=this.prefixFeatures.rstripLastLineLength,e[7]=this.prefixFeatures.rstripLastLineStripLength,e[8]=this.suffixFeatures.length,e[9]=this.suffixFeatures.firstLineLength,e[10]=this.suffixFeatures.lastLineLength,e[11]=this.prefixFeatures.secondToLastLineHasComment?1:0,e[12]=this.prefixFeatures.rstripSecondToLastLineHasComment?1:0,e[13]=this.prefixFeatures.prefixEndsWithNewline?1:0;let n=new Array(Object.keys(D2r).length+1).fill(0);n[D2r[this.language]??0]=1;let r=new Array(Object.keys(SF).length+1).fill(0);r[SF[this.prefixFeatures.lastChar]??0]=1;let o=new Array(Object.keys(SF).length+1).fill(0);o[SF[this.prefixFeatures.rstripLastChar]??0]=1;let a=new Array(Object.keys(SF).length+1).fill(0);a[SF[this.suffixFeatures.firstChar]??0]=1;let s=new Array(Object.keys(SF).length+1).fill(0);return s[SF[this.suffixFeatures.lstripFirstChar]??0]=1,e.concat(n,r,o,a,s)}};function loa(t,e){return new sGt(t.prefix,t.suffix,e)}function N2r(t,e){let n=loa(t,e).constructFeatures();return R2r(n)[1]}Be();var cGt=class t{constructor(e,n){this.index=e;this.documentPrefix=n;this.startOffset=0;this.text="";this.trimCount=0}updateText(e){this.text=e}get addedToPrefix(){return this.text.substring(0,this.startOffset)}get effectivePrefix(){return this.documentPrefix+this.addedToPrefix}get effectiveText(){return this.text.substring(this.startOffset)}get isFirstCompletion(){return this.trimCount===0}get firstNewlineOffset(){let e=[...this.text.matchAll(/\r?\n/g)];return e.length>0&&e[0].index===0&&e.shift(),e.length>0?e[0].index:-1}trimAt(e){let n=new t(this.index,this.documentPrefix);return n.startOffset=this.startOffset,n.text=this.text.substring(0,this.startOffset+e),n.trimCount=this.trimCount,this.startOffset+=e,this.trimCount++,n}},lpe=class{constructor(e,n,r,o,a,s){this.prefix=e;this.languageId=n;this.initialSingleLine=r;this.trimmerLookahead=o;this.cacheFunction=a;this.instantiationService=s;this.lineLimit=3;this.completions=new Map}getFinishedCallback(){return async(e,n)=>{let r=n.index??0,o=this.getCompletion(r,e);if(o.isFirstCompletion&&this.initialSingleLine&&o.firstNewlineOffset>=0){let a={yieldSolution:!0,continueStreaming:!0,finishOffset:o.firstNewlineOffset};return o.trimAt(a.finishOffset),n.finished&&await this.trimAll(n,o),a}return n.finished?await this.trimAll(n,o):await this.trimOnce(n,o)}}getCompletion(e,n){let r=this.completions.get(e);return r||(r=new cGt(e,this.prefix),this.completions.set(e,r)),r.updateText(n),r}async trimOnce(e,n){let r=await this.trim(n);return r===void 0?{yieldSolution:!1,continueStreaming:!0}:n.isFirstCompletion?(n.trimAt(r),{yieldSolution:!0,continueStreaming:!0,finishOffset:r}):(this.cacheCompletion(e,n,r),{yieldSolution:!1,continueStreaming:!0})}async trimAll(e,n){let r,o;do r=await this.trim(n),n.isFirstCompletion?(o=r,n.trimAt(r??n.effectiveText.length)):this.cacheCompletion(e,n,r);while(r!==void 0);return o!==void 0?{yieldSolution:!0,continueStreaming:!0,finishOffset:o}:{yieldSolution:!1,continueStreaming:!0}}async trim(e){return await new NXe(this.languageId,e.effectivePrefix,e.effectiveText,this.lineLimit,this.trimmerLookahead).getCompletionTrimOffset()}cacheCompletion(e,n,r){let o=n.trimAt(r??n.effectiveText.length);if(o.effectiveText.trim()==="")return;let a=this.instantiationService.invokeFunction(yJe,o.effectiveText.trimEnd(),e.getAPIJsonData(),o.index,e.requestId,r!==void 0,e.telemetryData);a.copilotAnnotations=this.adjustedAnnotations(a,n,o),a.generatedChoiceIndex=o.trimCount,this.cacheFunction(o.addedToPrefix,a)}adjustedAnnotations(e,n,r){if(e.copilotAnnotations===void 0)return;let o=r.addedToPrefix.length,s=o+e.completionText.length>=n.text.length,c={};for(let[l,u]of Object.entries(e.copilotAnnotations)){let d=u.filter(p=>p.start_offset-o0).map(p=>{let m={...p};return m.start_offset-=o,m.stop_offset-=o,s||(m.stop_offset=Math.min(m.stop_offset,e.completionText.length)),m});d.length>0&&(c[l]=d)}return Object.keys(c).length>0?c:void 0}};lpe=S([b(5,j)],lpe);var L2r=20;function M2r(t){return e=>{let n=e?.split(` `)??[];if(n.length>t+1)return n.slice(0,t+1).join(` `).length}}async function Q2r(t,e,n,r,o,a,s){let c=t.get(j),l=t.get(La),u=t.get(Ide),d=l.multilineAfterAcceptLines(s),p=u.forLanguage(e.textDocument.detectedLanguageId,s);switch(p){case"server":return a?{blockMode:"parsing",requestMultiline:!0,finishedCb:M2r(d),stop:[` `],maxTokens:L2r*d}:{blockMode:"server",requestMultiline:!0,finishedCb:m=>{}};case"parsing":case"parsingandserver":case"moremultiline":default:{let m;try{m=await c.invokeFunction(uoa,p,e.textDocument,e.position,o,a,r)}catch{m={requestMultiline:!1}}if(!a&&m.requestMultiline&&l.singleLineUnlessAccepted(s)&&(m.requestMultiline=!1),m.requestMultiline){let A;return r.trailingWs.length>0&&!r.prompt.prefix.endsWith(r.trailingWs)?A=wd.position(e.position.line,Math.max(e.position.character-r.trailingWs.length,0)):A=e.position,{blockMode:p,requestMultiline:!0,...c.invokeFunction(F2r,p,e.textDocument,A,m.blockPosition,n,!0,r.prompt,s)}}if(a){let A={blockMode:"parsing",requestMultiline:!0,finishedCb:M2r(d),stop:[` `],maxTokens:L2r*d};return p==="moremultiline"&&(A.blockMode="moremultiline"),A}return{blockMode:p,requestMultiline:!1,...c.invokeFunction(F2r,p,e.textDocument,e.position,m.blockPosition,n,!1,r.prompt,s)}}}}function F2r(t,e,n,r,o,a,s,c,l){let u=t.get(La),d=t.get(j);if(s&&e==="moremultiline"&&xk.isSupported(n.detectedLanguageId)){let p=o==="empty-block"||o==="block-end"?u.longLookaheadSize(l):u.shortLookaheadSize(l),m=t.get(iP);return{finishedCb:d.createInstance(lpe,a,n.detectedLanguageId,!1,p,(f,g)=>{let h={prefix:a+f,prompt:{...c,prefix:c.prefix+f}};spe(m,h,g)}).getFinishedCallback(),maxTokens:u.maxMultilineTokens(l)}}return{finishedCb:s?MTe(n,r):p=>{}}}async function uoa(t,e,n,r,o,a,s){if(n.lineCount>=8e3)hi(t,"ghostText.longFileMultilineSkip",us.createAndMarkAsIssued({languageId:n.detectedLanguageId,lineCount:String(n.lineCount),currentLine:String(r.line)}));else{if(e==="moremultiline"&&xk.isSupported(n.detectedLanguageId))return a?{requestMultiline:!0,blockPosition:await hEr(n,r)}:{requestMultiline:!1};if(["typescript","typescriptreact"].includes(n.detectedLanguageId)&&doa(r,n))return{requestMultiline:!0};let l=!1;return!o&&lx(n.detectedLanguageId)?l=await IJe(n,r):o&&lx(n.detectedLanguageId)&&(l=await IJe(n,r)||await IJe(n,n.lineAt(r).range.end)),l||["javascript","javascriptreact","python"].includes(n.detectedLanguageId)&&(l=N2r(s.prompt,n.detectedLanguageId)>.5),{requestMultiline:l}}return{requestMultiline:!1}}function doa(t,e){return e.lineAt(t).text.trim().length===0}var poa={isCycling:!1,promptOnly:!1,isSpeculative:!1};function moa(t,e,n){let r=t.get(La),o=Cd(t,Er.CompletionsDebounce)??r.completionsDebounce(n)??e.debounceMs;if(o===void 0)return 0;let a=K0()-n.issuedTime;return Math.max(0,o-a)}function dRe(t,e,n){return n?.isCancellationRequested||e!==t.currentRequestId}var pRe=class{constructor(e,n,r,o,a,s,c,l,u,d,p){this.instantiationService=e;this.telemetryService=n;this.notifierService=r;this.contextProviderBridge=o;this.currentGhostText=a;this.contextproviderStatistics=s;this.asyncCompletionManager=c;this.completionsFeaturesService=l;this.logTarget=u;this.statusReporter=d;this.logService=p}async getGhostText(e,n,r,o,a,s){let c=st(),l=s.createSubLogger(["GhostTextComputer#getGhostText"]);this.currentGhostText.currentRequestId=c;let u=await this.instantiationService.invokeFunction(boa,e.textDocument,c,r);await x_r.catch(()=>{});try{this.contextProviderBridge.schedule(e,c,r?.opportunityId??"",u,n,r),this.notifierService.notifyRequest(e,c,u,n,r);let d=await this.getGhostTextWithoutAbortHandling(e,c,u,n,r,o,a,l),p=this.contextproviderStatistics.getStatisticsForCompletion(c),m=r?.opportunityId??"unknown";for(let[A,f]of p.getAllUsageStatistics())this.telemetryService.sendMSFTTelemetryEvent("context-provider.completion-stats",{requestId:c,opportunityId:m,providerId:A,resolution:f.resolution,usage:f.usage,usageDetails:JSON.stringify(f.usageDetails)},{});return d}catch(d){if(rF(d))return{type:"canceled",reason:"aborted at unknown location",telemetryData:fF(u,{cancelledNetworkRequest:!0})};throw d}}async getGhostTextWithoutAbortHandling(e,n,r,o,a,s,c,l){let u=l.createSubLogger(["GhostTextComputer#getGhostTextWithoutAbortHandling"]),d=r.issuedTime,p=[];function m(v){let _=K0();p.push([v,_-d]),d=_}if(m("telemetry"),dRe(this.currentGhostText,n,o))return{type:"abortedBeforeIssued",reason:"cancelled before extractPrompt",telemetryData:Hp(r)};let A=foa(e.textDocument,e.position);if(A===void 0)return u.debug("Completions do not trigger in the middle of the line"),{type:"abortedBeforeIssued",reason:"Invalid middle of the line",telemetryData:Hp(r)};let f=this.instantiationService.invokeFunction(N6,r),g={...poa,...a,tokenizer:f.tokenizer},h=await this.instantiationService.invokeFunction(vde,n,e,r,void 0,g);if(m("prompt"),s.setPrompt(o7t.toString(h)),h.type==="copilotContentExclusion")return u.debug("Copilot not available, due to content exclusion"),{type:"abortedBeforeIssued",reason:"Copilot not available due to content exclusion",telemetryData:Hp(r)};if(h.type==="contextTooShort")return u.debug("Breaking, not enough context"),{type:"abortedBeforeIssued",reason:"Not enough context",telemetryData:Hp(r)};if(h.type==="promptError")return u.debug("Error while building the prompt"),{type:"abortedBeforeIssued",reason:"Error while building the prompt",telemetryData:Hp(r)};if(g.promptOnly)return{type:"promptOnly",reason:"Breaking, promptOnly set to true",prompt:h};if(h.type==="promptCancelled")return u.debug("Cancelled during extractPrompt"),{type:"abortedBeforeIssued",reason:"Cancelled during extractPrompt",telemetryData:Hp(r)};if(h.type==="promptTimeout")return u.debug("Timeout during extractPrompt"),{type:"abortedBeforeIssued",reason:"Timeout",telemetryData:Hp(r)};if(h.prompt.prefix.length===0&&h.prompt.suffix.length===0)return u.debug("Error empty prompt"),{type:"abortedBeforeIssued",reason:"Empty prompt",telemetryData:Hp(r)};let y=this.instantiationService.invokeFunction(moa,g,r);return y>0&&(u.debug(`Debouncing ghost text request for ${y}ms`),await Due(y),dRe(this.currentGhostText,n,o))?{type:"abortedBeforeIssued",reason:"cancelled after debounce",telemetryData:Hp(r)}:this.statusReporter.withProgress(async()=>{let[v]=bde(e.textDocument.getText(wd.range(wd.position(0,0),e.position)));u.trace(`Starting ghost text computation, prefix length: ${v.length}`);let _=this.currentGhostText.hasAcceptedCurrentCompletion(v,h.prompt.suffix);u.trace(`hasAcceptedCurrentCompletion: ${_}`);let w=h.prompt,x=await this.instantiationService.invokeFunction(Q2r,e,v,h,A,_,r);m("strategy"),u.trace(`Ghost text strategy: blockMode=${x.blockMode}, requestMultiline=${x.requestMultiline}, stop=${x.stop}, maxTokens=${x.maxTokens}`);let E=this.instantiationService.invokeFunction(Aoa,v,w,x.requestMultiline);u.trace(`Local cache lookup: ${E?`found ${E[0].length} choices`:"no cached choices"}`),m("cache");let I=this.instantiationService.invokeFunction(gJe,e.textDocument.uri),k={blockMode:x.blockMode,languageId:e.textDocument.detectedLanguageId,repoInfo:I,engineModelId:f.modelId,ourRequestId:n,prefix:v,prompt:h.prompt,multiline:x.requestMultiline,indentation:kJe(e.textDocument,e.position),isCycling:g.isCycling,headers:f.headers,stop:x.stop,maxTokens:x.maxTokens,afterAccept:_};k.headers={...k.headers,"X-Copilot-Async":"true","X-Copilot-Speculative":g.isSpeculative?"true":"false"};let T=this.instantiationService.invokeFunction(voa,e.textDocument,k,e.position,h,r,f,g);if(E===void 0&&!g.isCycling&&this.asyncCompletionManager.shouldWaitForAsyncCompletions(v,h.prompt)){u.trace("No cached choices, waiting for async completions from in-flight request");let Y=await this.asyncCompletionManager.getFirstMatchingRequestWithTimeout(n,v,h.prompt,g.isSpeculative,T);if(m("asyncWait"),Y){u.trace("Received choice from async completion");let ge=!x.requestMultiline;E=[[dtt(Y[0],{forceSingleLine:ge})],4]}else u.trace("No matching async completion found within timeout");if(dRe(this.currentGhostText,n,o))return u.debug("Cancelled before requesting a new completion"),{type:"abortedBeforeIssued",reason:"Cancelled after waiting for async completion",telemetryData:Hp(T)}}else u.trace("Skipping wait for async completions");let D=x.blockMode==="moremultiline"&&xk.isSupported(e.textDocument.detectedLanguageId);if(E!==void 0&&(u.trace(`Post-processing ${E[0].length} cached choices, isMoreMultiline=${D}`),E[0]=E[0].map(Y=>this.instantiationService.invokeFunction(aBe,e.textDocument,e.position,Y,D,u)).filter(Y=>Y!==void 0)),E&&(E[1]===1||E[1]===2)&&(c.setIsFromCache(),s.markAsFromCache()),E!==void 0&&E[0].length===0)return u.trace(`Found empty inline suggestions locally via ${qZ(E[1])}`),{type:"empty",reason:"cached results empty after post-processing",telemetryData:Hp(T)};if(E!==void 0&&E[0].length>0&&(!g.isCycling||E[0].length>1))u.trace(`Found inline suggestions locally via ${qZ(E[1])}`);else{u.trace(`Going to network, isCycling=${g.isCycling}`);let Y=this.instantiationService.createInstance(cpe);if(g.isCycling){u.trace("Fetching all completions for cycling request");let ge=await Y.getAllCompletionsFromNetwork(k,T,o,x.finishedCb,c);if(ge.type==="success"){u.trace(`Cycling network request returned ${ge.value[0].length} choices`);let re=E?.[0]??[];ge.value[0].forEach(J=>{re.findIndex(Ae=>Ae.completionText.trim()===J.completionText.trim())===-1&&re.push(J)}),u.trace(`After deduplication: ${re.length} unique choices`),E=[re,3]}else if(E===void 0)return ge}else{u.trace("Initiating network request for completions");let ge=(G,U)=>(this.asyncCompletionManager.updateCompletion(n,G),x.finishedCb(G,U)),re=new mC.CancellationTokenSource,J=Y.getCompletionsFromNetwork(k,T,re.token,ge,c);this.asyncCompletionManager.queueCompletionRequest(n,v,h.prompt,re,J);let Ae=await this.asyncCompletionManager.getFirstMatchingRequest(n,v,h.prompt,g.isSpeculative);if(Ae===void 0)return u.trace("Network request returned no results"),{type:"empty",reason:"received no results from async completions",telemetryData:Hp(T)};u.trace("Received completion from network request"),E=[[Ae[0]],4]}m("network")}if(E===void 0)return{type:"failed",reason:"internal error: choices should be defined after network call",telemetryData:Hp(T)};let[M,q]=E;u.trace(`Final choices: ${M.length} from ${qZ(q)}`);let $=M.map(Y=>this.instantiationService.invokeFunction(aBe,e.textDocument,e.position,Y,D,u)).filter(Y=>Y!==void 0);u.trace(`Post-processed to ${$.length} choices`);let L=this.instantiationService.invokeFunction(Cd,Er.CompletionsDelay)??this.completionsFeaturesService.completionsDelay(r),F=K0()-r.issuedTime,te=Math.max(L-F,0);if(q!==2&&!g.isCycling&&te>0&&(u.debug(`Waiting ${te}ms before returning completion`),await Due(te),dRe(this.currentGhostText,n,o)))return u.debug("Cancelled after completions delay"),{type:"canceled",reason:"after completions delay",telemetryData:fF(T)};let oe=[];for(let Y of $){let ge=yoa(e.textDocument,k,Y,T),re=A?gEr(e.textDocument,e.position,Y):0,Ae={completion:goa(Y.choiceIndex,Y.completionText,h.trailingWs),telemetry:ge,isMiddleOfTheLine:A,suffixCoverage:re,copilotAnnotations:Y.copilotAnnotations,clientCompletionId:Y.clientCompletionId};oe.push(Ae)}return T.properties.clientCompletionId=oe[0]?.clientCompletionId,T.measurements.foundOffset=oe?.[0]?.telemetry?.measurements?.foundOffset??-1,u.debug(`Produced ${oe.length} results from ${qZ(q)} at ${T.measurements.foundOffset} offset`),dRe(this.currentGhostText,n,o)?{type:"canceled",reason:"after post processing completions",telemetryData:fF(T)}:(g.isSpeculative||(u.trace("Updating current ghost text as request is not speculative"),this.currentGhostText.setGhostText(v,h.prompt.suffix,$,q)),m("complete"),u.trace(`Ghost text computation complete, returning ${oe.length} results`),{type:"success",value:[oe,q],telemetryData:Hp(T),telemetryBlob:T,resultType:q,performanceMetrics:p})})}};pRe=S([b(0,j),b(1,Ee),b(2,stt),b(3,QZ),b(4,uRe),b(5,ob),b(6,Kde),b(7,La),b(8,Ir),b(9,uT),b(10,Z)],pRe);async function lGt(t,e,n,r,o,a,s){return t.get(j).createInstance(pRe).getGhostText(e,n,r,o,a,s)}function Aoa(t,e,n,r){let a=t.get(uRe).getCompletionsForUserTyping(e,n.suffix),s=hoa(t,e,n.suffix,r);if(a&&a.length>0){let c=(s??[]).filter(l=>!a.some(u=>u.completionText===l.completionText));return[a.concat(c),2]}if(s&&s.length>0)return[s,1]}function foa(t,e){let r=t.lineAt(e).text.substring(e.character);return iGt(r)}var O2r=class t{constructor(e=!1){this.requestMultilineOverride=e}static{this.default=new t}};function goa(t,e,n){if(n.length>0){if(e.startsWith(n))return{completionIndex:t,completionText:e,displayText:e.substring(n.length),displayNeedsWsOffset:!1};{let r=e.substring(0,e.length-e.trimStart().length);return n.startsWith(r)?{completionIndex:t,completionText:e,displayText:e.trimStart(),displayNeedsWsOffset:!0}:{completionIndex:t,completionText:e,displayText:e,displayNeedsWsOffset:!1}}}else return{completionIndex:t,completionText:e,displayText:e,displayNeedsWsOffset:!1}}function hoa(t,e,n,r){let o=t.get(Z).createSubLogger(["getCompletionsFromCache"]),a=t.get(iP).findAll(e,n);return a.length===0?(o.debug("Found no completions in cache"),[]):(o.debug(`Found ${a.length} completions in cache`),a.map(s=>dtt(s,{forceSingleLine:!r})))}async function boa(t,e,n,r){let o=t.get(La),a={headerRequestId:n};r?.opportunityId&&(a.opportunityId=r.opportunityId),r?.selectedCompletionInfo?.text&&(a.completionsActive="true"),r?.isSpeculative&&(a.reason="speculative");let s=us.createAndMarkAsIssued(a);return await o.updateExPValuesAndAssignments({uri:e.uri,languageId:e.detectedLanguageId},s)}function yoa(t,e,n,r){let o=n.requestId,a={choiceIndex:n.choiceIndex.toString(),clientCompletionId:n.clientCompletionId};n.generatedChoiceIndex!==void 0&&(a.originalChoiceIndex=a.choiceIndex,a.choiceIndex=(1e4*(n.generatedChoiceIndex+1)+n.choiceIndex).toString());let s={compCharLen:n.completionText.length,numLines:n.completionText.trim().split(` `).length};n.meanLogProb&&(s.meanLogProb=n.meanLogProb),n.meanAlternativeLogProb&&(s.meanAlternativeLogProb=n.meanAlternativeLogProb);let c=n.telemetryData.extendedBy(a,s);return c.issuedTime=r.issuedTime,c.measurements.timeToProduceMs=performance.now()-r.issuedTime,U2r(c,t),c.extendWithRequestId(o),c}function voa(t,e,n,r,o,a,s,c){let l={languageId:e.detectedLanguageId};l.afterAccept=n.afterAccept.toString(),l.isSpeculative=c.isSpeculative.toString();let u=a.extendedBy(l);U2r(u,e);let d=n.repoInfo;u.properties.gitRepoInformation=d===void 0?"unavailable":d===0?"pending":"available",d!==void 0&&d!==0&&(u.properties.gitRepoUrl=d.url,u.properties.gitRepoHost=d.hostname,d.repoId?.type==="github"?(u.properties.gitRepoOwner=d.repoId.org,u.properties.gitRepoName=d.repoId.repo):d.repoId?.type==="ado"&&(u.properties.gitRepoOwner=d.repoId.project,u.properties.gitRepoName=d.repoId.repo),u.properties.gitRepoPath=d.pathname),u.properties.engineName=s.modelId,u.properties.engineChoiceSource=s.engineChoiceSource,u.properties.isMultiline=JSON.stringify(n.multiline),u.properties.isCycling=JSON.stringify(n.isCycling);let p=e.lineAt(r.line),m=e.getText(wd.range(p.range.start,r)),A=e.getText(wd.range(r,p.range.end)),f=Array.from(o.neighborSource.entries()).map(v=>[v[0],v[1].map(_=>d0(_).toString())]),g={beforeCursorWhitespace:JSON.stringify(m.trim()===""),afterCursorWhitespace:JSON.stringify(A.trim()===""),neighborSource:JSON.stringify(f),blockMode:n.blockMode},h={...yZ(o.prompt),promptEndPos:e.offsetAt(r),promptComputeTimeMs:o.computeTimeMs};o.metadata&&(g.promptMetadata=JSON.stringify(o.metadata)),o.contextProvidersTelemetry&&(g.contextProviders=JSON.stringify(o.contextProvidersTelemetry));let y=u.extendedBy(g,h);return hi(t,"ghostText.issued",y),u}function U2r(t,e){t.measurements.documentLength=e.getText().length,t.measurements.documentLineCount=e.lineCount}var upe=class{constructor(e,n,r){this.instantiationService=e;this.logTargetService=n;this.speculativeRequestCache=r}async getInlineCompletions(e,n,r,o={},a,s,c){_oa(this.logTargetService,e,n);let l=await this.getInlineCompletionsResult(_de(e,n),r,o,a,s,c);return this.instantiationService.invokeFunction(IEr,l)}async getInlineCompletionsResult(e,n,r={},o,a,s){let c=0;r.selectedCompletionInfo?.text&&!r.selectedCompletionInfo.text.includes(")")&&(e=e.addSelectedCompletionInfo(r.selectedCompletionInfo),c=e.position.character-r.selectedCompletionInfo.range.end.character);let l=await this.instantiationService.invokeFunction(lGt,e,n,r,o,a,s);if(l.type!=="success")return l;let[u,d]=l.value;if(n.isCancellationRequested)return{type:"canceled",reason:"after getGhostText",telemetryData:{telemetryBlob:l.telemetryBlob}};let p=this.instantiationService.invokeFunction(y2r,e.textDocument,e.position,d),m=x2r(u,d,e.textDocument,e.position,r.formattingOptions,p);if(m.length===0)return{type:"empty",reason:"no completions in final result",telemetryData:l.telemetryData};if(d!==2){e=e.applyEdits([{newText:m[0].insertText,range:m[0].range}]);let f={isSpeculative:!0,opportunityId:r.opportunityId},g=()=>this.instantiationService.invokeFunction(lGt,e,void 0,f,o,a,s);this.speculativeRequestCache.set(m[0].clientCompletionId,g)}let A=m.map(f=>{let{start:g,end:h}=f.range,y=Att.Range.create(g,Att.Position.create(h.line,h.character-c));return{...f,range:y}});return{...l,value:A}}};upe=S([b(0,j),b(1,Ir),b(2,Sde)],upe);function _oa(t,e,n){let r=e.getText({start:{line:Math.max(n.line-1,0),character:0},end:n}),o=e.getText({start:n,end:{line:Math.min(n.line+2,e.lineCount-1),character:e.lineCount-1>n.line?0:n.character}});FXe.debug(t,`Requesting for ${e.uri} at ${n.line}:${n.character}`,`between ${JSON.stringify(r)} and ${JSON.stringify(o)}.`)}var dpe=class{constructor(e,n){this.instantiationService=e;this._surveyService=n;this.ghostText=this.instantiationService.createInstance(upe)}async provideInlineCompletionItems(e,n,r,o,a,s,c){let l=xZ(e);if(!l)return;let u=s.createSubLogger(["GhostTextProvider","provideInlineCompletionItems"]),d=r.requestUuid,p=cP.window.visibleTextEditors.find(f=>f.document.uri===e.uri)?.options,m=await this.ghostText.getInlineCompletions(l,n,c,{isCycling:r.triggerKind===cP.InlineCompletionTriggerKind.Invoke,selectedCompletionInfo:r.selectedCompletionInfo,formattingOptions:p,opportunityId:d},a,o.nesBuilder,u);return m?{items:m.map(f=>{let{start:g,end:h}=f.range,y=new cP.Range(g.line,g.character,h.line,h.character);return{opportunityId:d,insertText:f.insertText,range:y,copilotCompletion:f,correlationId:itt("completions",{}),telemetryBuilder:o}}),telemetryBuilder:o}:void 0}handleDidShowCompletionItem(e){this.instantiationService.invokeFunction(v2r,e.copilotCompletion)}handleDidPartiallyAcceptCompletionItem(e,n){typeof n!="number"&&this.instantiationService.invokeFunction(C2r,e.copilotCompletion,n.acceptedLength)}async handleEndOfLifetime(e,n){let r=e.copilotCompletion;switch(n.kind){case cP.InlineCompletionEndOfLifeReasonKind.Accepted:{e.telemetryBuilder.setAcceptance("accepted"),this.instantiationService.invokeFunction(_2r,r),this._surveyService.signalUsage("completions").catch(()=>{});return}case cP.InlineCompletionEndOfLifeReasonKind.Rejected:{e.telemetryBuilder.setAcceptance("rejected"),this.instantiationService.invokeFunction(hi,"ghostText.dismissed",r.telemetry);return}case cP.InlineCompletionEndOfLifeReasonKind.Ignored:{if(e.telemetryBuilder.setAcceptance("notAccepted"),n.supersededBy){let o=n.supersededBy;e.telemetryBuilder.setSupersededBy(o.opportunityId)}e.telemetryBuilder.setUserTypingDisagreed(n.userTypingDisagreed);return}default:ai(n)}}};dpe=S([b(0,j),b(1,EI)],dpe);function Coa(){let t=gV.workspace.getConfiguration("editor.quickSuggestions");return t.get("other")!=="on"&&t.get("comments")!=="on"&&t.get("strings")!=="on"}var ftt=new el("CopilotInlineCompletionItemProvider");function ppe(t,e,n,r){if(e instanceof Error&&e.name==="Canceled"||e instanceof Error&&e.name==="CodeExpectedError")return;t.get(DA).sendGHTelemetryException(e,"codeUnification.completions.exception"),oJe(t,e,n,r)}var mpe=class extends fe{constructor(n,r,o,a,s){super();this.instantiationService=n;this.telemetryService=r;this.extensionStatusService=o;this.requestLogger=s;this.onDidChange=void 0;this.copilotCompletionFeedbackTracker=this._register(this.instantiationService.createInstance(rpe)),this.ghostTextProvider=this.instantiationService.createInstance(dpe),this.inlineEditLogger=this.instantiationService.createInstance(aP),this.telemetrySender=this.instantiationService.createInstance(oP,void 0),this.logger=a.createSubLogger(["Ghost","CopilotInlineCompletionItemProvider"])}async provideInlineCompletionItems(n,r,o,a){if(o.triggerKind===gV.InlineCompletionTriggerKind.Automatic&&(!this.instantiationService.invokeFunction(JUt,n)||this.extensionStatusService.kind==="Error"))return;let s=new Gi,c=`Ghost | ${(0,q2r.basename)(n.uri.toString())} (v${n.version})`,l=new Zd(c,void 0);return await this.requestLogger.captureInvocation(l,async()=>{let u=new rtt(n.uri.toString(),n.version,o),d=this.logger.createSubLogger("provideInlineCompletionItems").withExtraTarget(mX.fromCallback((m,A)=>{u.trace(`[${Math.floor(s.elapsed()).toString().padStart(4," ")}ms] ${A}`)})),p=this.createTelemetryBuilder();p.setOpportunityId(o.requestUuid);try{return d.trace("Started providing inline completion items"),await this._provideInlineCompletionItems(n,r,o,p,u,d,a)}catch(m){return u.setError(m),this.telemetryService.sendGHTelemetryException(m,"codeUnification.completions.exception"),{items:[],telemetryBuilder:p}}finally{this.inlineEditLogger.add(u),p.nesBuilder.markEndTime()}})}async _provideInlineCompletionItems(n,r,o,a,s,c,l){gV.workspace.getConfiguration(nb).get("respectSelectedCompletionInfo",Coa()||rb.isPreRelease())||(o={...o,selectedCompletionInfo:void 0});let d={items:[],telemetryBuilder:a};try{let p=await this.ghostTextProvider.provideInlineCompletionItems(n,r,o,a,s,c,l);return a.nesBuilder.setHasNextEdit(p!==void 0&&p.items.length>0),p?(this.logSuggestion(s,n,p),s.setResponseResults(p.items),{...p,commands:[rGt]}):(l.isCancellationRequested?s.setIsSkipped():s.markAsNoSuggestions(),d)}catch(p){this.instantiationService.invokeFunction(ppe,p,"._provideInlineCompletionItems",ftt),s.setError(p)}return d}handleDidShowCompletionItem(n){try{return n.telemetryBuilder.setAsShown(),this.copilotCompletionFeedbackTracker.trackItem(n),this.ghostTextProvider.handleDidShowCompletionItem(n)}catch(r){this.instantiationService.invokeFunction(ppe,r,".handleDidShowCompletionItem",ftt)}}handleDidPartiallyAcceptCompletionItem(n,r){try{return this.ghostTextProvider.handleDidPartiallyAcceptCompletionItem(n,r)}catch(o){this.instantiationService.invokeFunction(ppe,o,".handleDidPartiallyAcceptCompletionItem",ftt)}}handleEndOfLifetime(n,r){try{return this.ghostTextProvider.handleEndOfLifetime(n,r)}catch(o){this.instantiationService.invokeFunction(ppe,o,".handleEndOfLifetime",ftt)}}handleListEndOfLifetime(n,r){let o=n;R7(o.telemetryBuilder!==void 0,"Expected GhostTextCompletionList to have telemetryBuilder");let a=o.telemetryBuilder,s=gV.InlineCompletionsDisposeReasonKind[r.kind];a.setDisposalReason(s),this.telemetrySender.sendTelemetryForBuilder(a)}logSuggestion(n,r,o){if(o.items.length===0){n.markAsNoSuggestions(),n.addLog("No inline completion items provided");return}let a=o.items[0];if(!a.range){n.addLog("Inline completion item has no range");return}if(typeof a.insertText!="string"){n.addLog("Inline completion item has non-string insertText");return}let s=new v0e(u=>r.lineAt(u-1).text,r.lineCount),l=Gf.fromTextEdit(new s0([new tc(new zt(a.range.start.line+1,a.range.start.character+1,a.range.end.line+1,a.range.end.character+1),a.insertText)]),s).humanReadablePatch(s.getLines());n.setResult(l)}createTelemetryBuilder(){return new tpe(void 0,void 0,void 0,"ghostText",void 0)}};mpe=S([b(0,j),b(1,DA),b(2,kF),b(3,Z),b(4,Fr)],mpe);Be();function woa(t){return["a5db0bcaae94032fe715fb34a5e4bce2","7184f66dfcee98cb5f08a1cb936d5225","faef89d9169d5eacf1d8c8dde3412e37","4535c7beffc844b46bb1ed4aa04d759a"].find(n=>t.includes(n))}function uGt(t){let e=t.organizationList??[];return woa(e)??""}function z2r(t){let e=t.get(at),n=t.get(j),r=e.onDidAuthenticationChange(()=>{n.invokeFunction($2r,e.copilotToken)});return $2r(t,e.copilotToken),r}function xoa(t){return rb.getBuildType()==="nightly"?"nightly":"stable"}function $2r(t,e){let n=t.get(Fe),r=dGt(t,e);n.setCompletionsFilters(r)}function dGt(t,e){let n=new Map;if(n.set("X-VSCode-ExtensionRelease",xoa(t)),n.set("X-Copilot-OverrideEngine",Cd(t,Er.DebugOverrideEngine)||Cd(t,Er.DebugOverrideEngineLegacy)),n.set("X-Copilot-ClientVersion",rb.isProduction()?rb.getVersion():"1.999.0"),e){let o=uGt(e),a=e.getTokenValue("ft")??"",s=e.getTokenValue("ol")??"",c=e.getTokenValue("cml")??"",l=e.getTokenValue("tid")??"";n.set("X-Copilot-UserKind",o),n.set("X-Copilot-CustomModel",a),n.set("X-Copilot-Orgs",s),n.set("X-Copilot-CustomModelNames",c),n.set("X-Copilot-CopilotTrackingId",l),n.set("X-Copilot-UserKind",uGt(e))}let r=N6(t).modelId;return n.set("X-Copilot-Engine",r),n}Be();var Ape=class{constructor(e,n,r){this.instantiationService=e;this.experimentationService=n;this.copilotTokenManager=r;this.includeNeighboringFilesDefault=new Map,this.excludeRelatedFilesDefault=new Map}async updateExPValuesAndAssignments(e,n=us.createAndMarkAsIssued()){if(n instanceof hZ)throw new Error("updateExPValuesAndAssignments should not be called with TelemetryWithExp");let r=this.copilotTokenManager.token??await this.copilotTokenManager.getToken(),{filters:o,exp:a}=this.createExpConfigAndFilters(r);return new hZ(n.properties,n.measurements,n.issuedTime,{filters:o,exp:a})}async fetchTokenAndUpdateExPValuesAndAssignments(e,n){return await this.updateExPValuesAndAssignments(e,n)}createExpConfigAndFilters(e){let n={};for(let l of Object.values(PKe)){let u=this.experimentationService.getTreatmentVariable(l);u!==void 0&&(n[l]=u)}let r=Object.entries(n).map(([l,u])=>l+(u?"":"cf")),o=new tue(n,r.join(";")),a=this.instantiationService.invokeFunction(dGt,e),s={};for(let[l,u]of a.entries())s[l]=u;return{filters:new nue(s),exp:o}}async getFallbackExpAndFilters(){let e=this.copilotTokenManager.token??await this.copilotTokenManager.getToken();return this.createExpConfigAndFilters(e)}overrideBlockMode(e){return e.filtersAndExp.exp.variables.copilotoverrideblockmode||void 0}customEngine(e){return e.filtersAndExp.exp.variables.copilotcustomengine??""}customEngineTargetEngine(e){return e.filtersAndExp.exp.variables.copilotcustomenginetargetengine}suffixPercent(e){return e.filtersAndExp.exp.variables.CopilotSuffixPercent??bJe.suffix}suffixMatchThreshold(e){return e.filtersAndExp.exp.variables.copilotsuffixmatchthreshold??hJe}cppHeadersEnableSwitch(e){return e.filtersAndExp.exp.variables.copilotcppheadersenableswitch??!1}relatedFilesVSCodeCSharp(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscodecsharp??!1}relatedFilesVSCodeTypeScript(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscodetypescript??!1}relatedFilesVSCode(e){return e.filtersAndExp.exp.variables.copilotrelatedfilesvscode??!1}contextProviders(e){let n=e.filtersAndExp.exp.variables.copilotcontextproviders??"";return n?n.split(",").map(r=>r.trim()):[]}contextProviderTimeBudget(e,n){let r=n.filtersAndExp.exp.variables.copilotcontextprovidertimebudget??150;return r||(this.getContextProviderExpSettings(e)?.timeBudget??150)}setIncludeNeighboringFilesDefault(e,n){this.includeNeighboringFilesDefault.set(e,n)}includeNeighboringFiles(e,n){return n.filtersAndExp.exp.variables.copilotincludeneighboringfiles??!1?!0:this.getContextProviderExpSettings(e)?.includeNeighboringFiles??this.includeNeighboringFilesDefault.get(e)??!1}setExcludeRelatedFilesDefault(e,n){this.excludeRelatedFilesDefault.set(e,n)}excludeRelatedFiles(e,n){return n.filtersAndExp.exp.variables.copilotexcluderelatedfiles??!1?!0:this.getContextProviderExpSettings(e)?.excludeRelatedFiles??this.excludeRelatedFilesDefault.get(e)??!1}getContextProviderExpSettings(e){let n=this.experimentationService.getTreatmentVariable(`config.github.copilot.chat.contextprovider.${e}`);if(typeof n=="string")try{let r=JSON.parse(n),o=this.getProviderIDs(r);return delete r.id,delete r.ids,Object.assign({ids:o},{includeNeighboringFiles:!1,excludeRelatedFiles:!1,timeBudget:150},r)}catch{this.instantiationService.invokeFunction(o=>{o.get(Z).error(`Failed to parse context provider exp settings for language ${e}`)});return}else return}getProviderIDs(e){let n=[];if(typeof e.id=="string"&&e.id.length>0&&n.push(e.id),Array.isArray(e.ids))for(let r of e.ids)typeof r=="string"&&r.length>0&&n.push(r);return n}maxPromptCompletionTokens(e){return e.filtersAndExp.exp.variables.maxpromptcompletionTokens??b_r+BTe}stableContextPercent(e){return e.filtersAndExp.exp.variables.copilotstablecontextpercent??bJe.stableContext}volatileContextPercent(e){return e.filtersAndExp.exp.variables.copilotvolatilecontextpercent??bJe.volatileContext}cppContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotcppContextProviderParams}csharpContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotcsharpcontextproviderparams}javaContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotjavacontextproviderparams}multiLanguageContextProviderParams(e){return e.filtersAndExp.exp.variables.copilotmultilanguagecontextproviderparams}tsContextProviderParams(e){return e.filtersAndExp.exp.variables.copilottscontextproviderparams}completionsDebounce(e){return e.filtersAndExp.exp.variables.copilotcompletionsdebounce}enableElectronFetcher(e){return e.filtersAndExp.exp.variables.copilotelectronfetcher??!1}enableFetchFetcher(e){return e.filtersAndExp.exp.variables.copilotfetchfetcher??!1}asyncCompletionsTimeout(e){return e.filtersAndExp.exp.variables.copilotasynccompletionstimeout??200}enableProgressiveReveal(e){return e.filtersAndExp.exp.variables.copilotprogressivereveal??!1}modelAlwaysTerminatesSingleline(e){return e.filtersAndExp.exp.variables.copilotmodelterminatesingleline??!0}longLookaheadSize(e){return e.filtersAndExp.exp.variables.copilotprogressivereveallonglookaheadsize??9}shortLookaheadSize(e){return e.filtersAndExp.exp.variables.copilotprogressiverevealshortlookaheadsize??3}maxMultilineTokens(e){return e.filtersAndExp.exp.variables.copilotmaxmultilinetokens??200}multilineAfterAcceptLines(e){return e.filtersAndExp.exp.variables.copilotmultilineafteracceptlines??1}completionsDelay(e){return e.filtersAndExp.exp.variables.copilotcompletionsdelay??200}singleLineUnlessAccepted(e){return e.filtersAndExp.exp.variables.copilotsinglelineunlessaccepted??!1}};Ape=S([b(0,j),b(1,Fe),b(2,dT)],Ape);var j2r=O(require("node:util"));function G2r(t,...e){return`[${t}] ${Eoa(e)}`}function Eoa(t){return j2r.default.formatWithOptions({maxStringLength:1/0},...t)}Be();var H2r=["cpp","c","cuda-cpp"],W2r=["typescript","javascript","typescriptreact","javascriptreact"],Z2r=["csharp"],Ioa=new Map([...H2r.map(t=>[t,"related/cpp"]),...W2r.map(t=>[t,"related/typescript"]),...Z2r.map(t=>[t,"related/csharproslyn"])]);function koa(t){return Ioa.get(t)??"related/other"}var fpe=class extends Z6{constructor(n,r,o,a,s){super(n,r,a,s);this.featuresService=o;this.providers=new Map;this.telemetrySent=!1;this.reportedUnknownProviders=new Set}async getRelatedFilesResponse(n,r,o){let a=Date.now(),s=n.clientLanguageId.toLowerCase();if(koa(s)==="related/other"&&!this.reportedUnknownProviders.has(s)&&(this.reportedUnknownProviders.add(s),Eg.warn(this.logTarget,`unknown language ${s}`)),this.relatedFilesTelemetry(r),Eg.debug(this.logTarget,`Fetching related files for ${n.uri}`),!this.isActive(s,r))return Eg.debug(this.logTarget,"language-server related-files experiment is not active."),X$t;let l=this.providers.get(s);if(!l)return X$t;try{return this.convert(n.uri,l,a,r,o)}catch{this.relatedFileNonresponseTelemetry(s,r);return}}async convert(n,r,o,a,s){s||(s={isCancellationRequested:!1,onCancellationRequested:()=>({dispose(){}})});let c={entries:[],traits:[]},l=r.size>0;for(let u of r.values()){let d=await u.callback(n,{flags:{}},s);if(d){l=!1,c.entries.push(...d.entries),d.traits&&c.traits.push(...d.traits);for(let p of d.entries)for(let m of p.uris)Eg.debug(this.logTarget,m.toString())}}return this.performanceTelemetry(Date.now()-o,a),l?void 0:c}registerRelatedFilesProvider(n,r,o){let a=this.providers.get(r);a?a.set(n,{extensionId:n,languageId:r,callback:o}):this.providers.set(r,new Map([[n,{extensionId:n,languageId:r,callback:o}]]))}unregisterRelatedFilesProvider(n,r,o){let a=this.providers.get(r);if(a){let s=a.get(n);s&&s.callback===o&&a.delete(n)}}isActive(n,r){return Z2r.includes(n)?this.featuresService.relatedFilesVSCodeCSharp(r)||this.instantiationService.invokeFunction(Cd,Er.RelatedFilesVSCodeCSharp):W2r.includes(n)?this.featuresService.relatedFilesVSCodeTypeScript(r)||this.instantiationService.invokeFunction(Cd,Er.RelatedFilesVSCodeTypeScript):H2r.includes(n)?this.featuresService.cppHeadersEnableSwitch(r):this.featuresService.relatedFilesVSCode(r)||this.instantiationService.invokeFunction(Cd,Er.RelatedFilesVSCode)}relatedFilesTelemetry(n){}relatedFileNonresponseTelemetry(n,r){}performanceTelemetry(n,r){}};fpe=S([b(0,j),b(1,Dt),b(2,La),b(3,Ir),b(4,gk)],fpe);function V2r(t,e){let n=t.get(Z),r=new ef;return r.set(Ir,new class{logIt(o,a,...s){let c=G2r(a,...s);switch(o){case 4:return n.debug(c);case 3:return n.info(c);case 2:return n.warn(c);case 1:return n.error(c)}}}),r.set(xy,FKe.fromEnvironment(!1)),r.set(iP,new ntt),r.set(Xle,new ZKe),r.set(oU,new ott),r.set(uRe,new ptt),r.set(Sde,new MXe),r.set(due,new Qe(uue)),r.set(I6,new VKe),r.set(kF,new ett),r.set(La,new Qe(Ape)),r.set(IXe,new Qe(WKe)),r.set(uT,new Qe(Xde,["github.copilot.languageStatus"])),r.set(dT,new Qe(Bue,[!1])),r.set(Zl,new Qe(AJe)),r.set(mBe,new Qe(kde)),r.set(Ide,new Qe(Ede)),r.set(DA,new Qe(aue)),r.set(iue,new Qe(rue)),r.set(gde,new Qe(fde,[void 0])),r.set(stt,new Qe(ipe)),r.set(Mue,new Qe(M6)),r.set(P6,new Qe(W2,[!0])),r.set(Kde,new Qe(Yde)),r.set(QZ,new Qe(pde)),r.set(utt,new Qe(ape)),r.set(e7t,new Qe(fpe)),r.set(gk,f2r),r.set(hXe,new Qe(dde,[FZ,evr])),r.set(lT,new NKe),r.set(UZ,new Qe(mue)),r.set(ob,new MJe),r.set(DXe,new Qe(yde)),r.set(CZ,new Qe(_ue)),r.set(bXe,new gXe),t.get(j).createChild(r,e)}function Y2r(t,e){e.add(t.get(UZ).register()),e.add(Gxr(t));let n=t.get(bXe);n.add("ms-vscode.cpptools"),n.add("promptfile-ai-context-provider"),n.add("scm-context-provider"),n.add("chat-session-context-provider"),n.add("typescript-ai-context-provider"),t.get(La).setIncludeNeighboringFilesDefault("typescript",!0),e.add(z2r(t))}function htt(t){let e=new it;return e.add(Soa(t)),e.add(Boa(t)),e.add(Roa(t)),e.add(A2r(t)),e.add(Toa(t)),e}function Soa(t){let e=new it,n=t.get(j);function r(s){return hV(t,s,async()=>{await n.invokeFunction(XUt)})}function o(s){return hV(t,s,async()=>{await n.invokeFunction(eqt)})}function a(s){return hV(t,s,async()=>{await n.invokeFunction(O0r)})}return e.add(r(JKe)),e.add(o(XKe)),e.add(a(H0r)),e.add(r(W0r)),e.add(o(Z0r)),e.add(a(V0r)),e}function Toa(t){let e=new it,r=t.get(j).createInstance(Jde);function o(a){return hV(t,a,async()=>{await r.showModelPicker()})}return e.add(o(nJe)),e.add(o(J0r)),e}function Boa(t){let e=new it,n=t.get(j),r=t.get(dT),o=t.get(kF);function a(s){return hV(t,s,async()=>{o.kind==="Error"&&await Promise.race([r.primeToken(),new Promise(c=>setTimeout(c,100))]),n.createInstance(epe).showStatusMenu()})}return e.add(a(j0r)),e.add(a(KKe)),e}function Roa(t){let e=new it;return e.add(hV(t,eJe,()=>gtt.env.openExternal(K.parse("https://docs.github.com/en/copilot/getting-started-with-github-copilot?tool=vscode")))),e.add(hV(t,ETe,()=>{_W.show()})),e}function hV(t,e,n){let r=t.get(j);return gtt.commands.registerCommand(e,async(...o)=>{try{await n(...o)}catch(a){r.invokeFunction(ppe,a,e)}})}Je();var sU=me("ICopilotInlineCompletionItemProviderService");var mRe=require("vscode");Ue();var gpe=class extends fe{constructor(n,r,o,a){super();this.authenticationService=a;this._copilotToken=To(this,this.authenticationService.onDidAuthenticationChange,()=>this.authenticationService.copilotToken);let s=mW(this);this._register(fo(c=>{let l=s.read(c),u=r.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsEnableGhCompletionsProvider,o).read(c),d=l?.extensionUnification??!1,p=!1;if(l?.codeUnification||d||u||this._copilotToken.read(c)?.isNoAuthUser){let m=n.getOrCreateProvider();c.store.add(mRe.languages.registerInlineCompletionItemProvider({pattern:"**"},m,{debounceDelayMs:0,excludes:["github.copilot"],groupId:"completions"})),p=!0}if(mRe.commands.executeCommand("setContext","github.copilot.extensionUnification.activated",d),d&&p){let m=n.getOrCreateInstantiationService();c.store.add(m.invokeFunction(htt))}})),this._register(fo(c=>{let l=this._copilotToken.read(c);mRe.commands.executeCommand("setContext","github.copilot.activated",l!==void 0)}))}};gpe=S([b(0,sU),b(1,be),b(2,Fe),b(3,at)],gpe);var pGt=(n=>(n.SelectionChange="selectionChange",n.ActiveDocumentSwitch="activeDocumentSwitch",n))(pGt||{}),ARe;(e=>{function t(n){if(typeof n!="object"||n===null)return!1;let r=n;return typeof r.data=="object"&&r.data!==null&&typeof r.data.uuid=="string"&&Object.values(pGt).includes(r.data.reason)}e.is=t})(ARe||={});var Vl=require("vscode");Ue();var OT=require("vscode");var gRe=class t{constructor(e){this.parts=e}static str(e,...n){if(typeof e=="string")return new t([e]);{let r=[];for(let o=0;otypeof a=="string"?(r=Doa(a),a):btt(a.value,r)).join("");return mGt(o,e)}if(Array.isArray(t)){let r=[];for(let o of t)r.push(btt(o,e+1));return`[ `+r.map(o=>fRe(o,e+1)+`, `).join("")+fRe("]",e)}let n=[];for(let[r,o]of Object.entries(t))n.push(`${Poa(r)}: ${btt(o,e+1)}, `);return`{ `+n.map(r=>fRe(r,e+1)).join("")+fRe("}",e)}return mGt(t===void 0?"undefined":JSON.stringify(t,void 0," "),e)}function Doa(t){let e=t.split(` `),n=e[e.length-1];return n.length-n.trimStart().length}function mGt(t,e){return t.split(` `).map((r,o)=>o===0?r:fRe(r,e)).join(` `)}function fRe(t,e){return" ".repeat(e)+t}function Poa(t){return/^[a-zA-Z_]\w*$/.test(t)?t:JSON.stringify(t)}Xa();Ue();sr();var ytt=O(Ye()),vtt=O(require("vscode"));Ue();fr();So();Be();var AGt="---------------------------------",hpe=class extends fe{constructor(n,r,o,a,s){super();this._instantiationService=n;this._configurationService=r;this._requestLogger=o;this.telemetryService=a;this._editLogService=s;this.canReport=this._configurationService.getConfigObservable(H.TeamInternal.DebugReportFeedback)}_findChatParamsForTurn(n){for(let r of this._requestLogger.getRequests().reverse())if(r.kind===1&&r.entry.type!=="MarkdownContentRequest"&&r.entry.chatParams.ourRequestId===n.id)return r.entry.chatParams}async reportInline(n,r,o){if(!this.canReport)return;let a=n.getLatestTurn(),s=this._findChatParamsForTurn(a)?.messages,c=r.intent?this._embedCodeblock("INTENT",r.intent.id):"",l=this._embedCodeblock("CONTEXT",JSON.stringify({document:r.document.uri.toString(),fileIndentInfo:r.fileIndentInfo,language:r.language,wholeRange:r.wholeRange,selection:r.selection},null," ")),u="";if(s&&s.length>0){let A=s.map(f=>this._embedCodeblock(xL(f.role).toUpperCase(),Su(f.content))).join(` `);u=` ${AGt} ${this._headerSeparator()}PROMPT MESSAGES: ${A}`}else u=this._embedCodeblock(a.request.type.toUpperCase(),a.request.message);let d=this._embedCodeblock("ASSISTANT",a.responseMessage?.message||""),p=this._embedCodeblock("Interaction outcome",JSON.stringify(o,null," ")),m=[];K2r(m,c,l,u,d,p),await J2r(m,a),await this._reportIssue("Feedback for inline chat",m.join(` `))}async reportChat(n){if(!this.canReport)return;let r="",o=this._findChatParamsForTurn(n);if(o?.messages&&o.messages.length>0){let f=o.messages.map(g=>{let h=Su(g.content);return g.content.some(y=>y.type===ytt.Raw.ChatCompletionContentPartKind.CacheBreakpoint)&&(h+=` copilot_cache_control: { type: 'ephemeral' }`),g.role===ytt.Raw.ChatRole.Assistant&&g.toolCalls?.length?(h&&(h+=` `),h+=g.toolCalls.map(y=>{let v=y.function.arguments;try{let _=JSON.parse(y.function.arguments);v=JSON.stringify(_,void 0,2)}catch{}return`\u{1F6E0}\uFE0F ${y.function.name} (${y.id}) ${v}`}).join(` `)):g.role===ytt.Raw.ChatRole.Tool&&(h=`\u{1F6E0}\uFE0F ${g.toolCallId} ${h}`),this._embedCodeblock(xL(g.role).toUpperCase(),h)}).join(` `);r+=` ${AGt} ${this._headerSeparator()}PROMPT MESSAGES: ${f}`}else r+=this._embedCodeblock(n.request.type.toUpperCase(),n.request.message);let a=n.getMetadata(ND)?.value.intent,s=a?this._embedCodeblock("INTENT",`[${a.id}] ${a.description}`):"",c=this._embedCodeblock("ASSISTANT",n.responseMessage?.message||""),l=await this._instantiationService.createInstance(yW).captureWorkspaceStateSnapshot([]),u=this._embedCodeblock("WORKSPACE STATE",JSON.stringify(l,null,2)),d=o?.body?.tools?this._embedCodeblock("TOOLS",JSON.stringify(o.body.tools,null,2)):"",p=this._embedCodeblock("METADATA",`requestID: ${n.id} model: ${o?.model}`),m=(await this._editLogService.getEditLog(n.id))?.map((f,g)=>this._embedCodeblock(`EDIT ${g+1}`,JSON.stringify(f,null,2))).join(` `)||"",A=[];K2r(A,s,r,c,u,d,p,m),await J2r(A,n),await this._reportIssue("Feedback for sidebar chat",A.join(` `))}async reportSearch(n){this.telemetryService.sendMSFTTelemetryEvent("copilot.search.feedback",{kind:n,rankResult:Or.feedBackTelemetry.rankResult},{chunkCount:Or.feedBackTelemetry.chunkCount,rankResultsCount:Or.feedBackTelemetry.rankResultsCount,combinedResultsCount:Or.feedBackTelemetry.combinedResultsCount,chunkSearchDuration:Or.feedBackTelemetry.chunkSearchDuration,llmFilteringDuration:Or.feedBackTelemetry.llmFilteringDuration})}_embedCodeblock(n,r){let o=this._bodySeparator()+r.split(` `).join(` ${this._bodySeparator()}`);return` ${AGt} ${this._headerSeparator()}${n}: ${o}`}_headerSeparator(){return" "}_bodySeparator(){return" "}async _reportIssue(n,r){gGt({title:n,data:r})}};hpe=S([b(0,j),b(1,be),b(2,Fr),b(3,Ee),b(4,kh)],hpe);async function gGt(t){await vtt.commands.executeCommand("workbench.action.openIssueReporter",{extensionId:CA,issueTitle:t.title,data:t.data,issueBody:t.issueBody??"",uri:vtt.Uri.parse(t.public?"https://github.com/microsoft/vscode":"https://github.com/microsoft/vscode-copilot-issues")})}function K2r(t,...e){t.push("
Prompt Details","

","",...e,"

","
")}async function J2r(t,e){let n=await hGt(e);n&&t.push("
STest","

","STest code:","","```ts",...n,"```","

","
")}async function hGt(t){let e=t.getMetadata(ND)?.value;if(e&&e.location===4)return Noa(t)}function Noa(t){let e=t.getMetadata(ste);if(!e)return;let n=Ni(e.uri),r=o=>JSON.stringify(o);return[`stest({ description: 'Issue #XXXXX', language: ${r(e.languageId)}, model }, (testingServiceCollection) => {`," return simulateInlineChat(testingServiceCollection, {"," files: [toFile({",` fileName: ${r(`${e.intentId}/issue-XXXXX/${n}`)},`," fileContents: [",...tX(e.initialDocumentText).map(o=>` ${r(o)},`)," ]"," })],"," queries: ["," {",` file: ${r(n)},`,` selection: ${r(Loa(e.userSelection))},`,` query: ${r(e.userPrompt)},`," diagnostics: 'tsc',",` expectedIntent: ${r(e.intentId)},`," validate: async (outcome, workspace, accessor) => {"," assertInlineEdit(outcome);"," await assertNoDiagnosticsAsync(accessor, outcome, workspace, KnownDiagnosticProviders.tscIgnoreImportErrors);"," }"," }"," ]"," });","});"]}function Loa(t){return[t.start.line,t.start.character,t.end.line,t.end.character]}function X2r(t,e){let n={id:e??"copilot-nes-xtab",urlOrRequestMetadata:{type:qn.ProxyChatCompletions},name:"xtab-proxy",vendor:"xtab",model_picker_enabled:!1,is_chat_default:!1,is_chat_fallback:!1,version:"unknown",capabilities:{type:"chat",family:"xtab-proxy",tokenizer:"o200k_base",limits:{max_prompt_tokens:12285,max_output_tokens:4096},supports:{streaming:!0,parallel_tool_calls:!1,tool_calls:!1,vision:!1,prediction:!0}}};return t.createInstance(ad,n)}Je();Ar();var bpe=me("IInlineEditsModelService"),_tt=me("IUndesiredModelsManager");var Ctt=class t{static filterEdit(e,n){return n.filter(o=>!t._isWhitespaceOnlyChange(o,e.documentAfterEditsLines))}static _isWhitespaceOnlyChange(e,n){let r=e.lineRange.toOffsetRange().slice(n),o=e.newLines,a=o.length===0;if(a&&r.every(s=>s.trim()==="")||!a&&o.every(s=>s.trim()===""))return!0;if(r.length!==o.length)return!1;for(let s=0;s!t._isFormattingOnlyChange(e.documentAfterEditsLines,r))}static _isFormattingOnlyChange(e,n){let r=n.lineRange.toOffsetRange().slice(e).join("").replace(/\s/g,""),o=n.newLines.join("").replace(/\s/g,"");return r===o}};function ePr(t,e){let n=e.toEdit(t.documentAfterEdits);if(n=n.normalizeOnSource(t.documentAfterEdits.value),!tPr(n))return!1;for(let r=t.recentEdits.edits.length-1;r>=0;r--){let o=t.recentEdits.edits[r],a=n.tryRebase(o);if(!a)return!0;n=a}return!1}function tPr(t){let e=t.replacements.reduce((r,o)=>r+o.replaceRange.length,0);return t.replacements.reduce((r,o)=>r+o.newText.length,0)===0&&e>0}function nPr(t,e){let n=e.toEdit(t.documentAfterEdits);if(n=n.normalizeOnSource(t.documentAfterEdits.value),!tPr(n))return!1;let r=t.documentAfterEdits.value;for(let o=t.recentEdits.edits.length-1;o>=0;o--){let s=t.recentEdits.edits[o].inverse(r);if(s.equals(n))return!0;r=s.apply(r)}return!1}dn();En();var Ix=class{constructor(){this._runningTask=void 0;this._pendingTasks=[]}schedule(e){let n=new no;return this._pendingTasks.push({task:e,deferred:n,setUndefinedWhenCleared:!1}),this._runIfNotRunning(),n.p}scheduleSkipIfCleared(e){let n=new no;return this._pendingTasks.push({task:e,deferred:n,setUndefinedWhenCleared:!0}),this._runIfNotRunning(),n.p}_runIfNotRunning(){this._runningTask===void 0&&this._processQueue()}async _processQueue(){if(this._pendingTasks.length===0)return;let e=this._pendingTasks.shift();if(e){if(this._runningTask)throw new gn;this._runningTask=e.task;try{let n=await e.task();e.deferred.complete(n)}catch(n){e.deferred.error(n)}finally{this._runningTask=void 0,this._processQueue()}}}clearPending(){let e=this._pendingTasks;this._pendingTasks=[];for(let n of e)n.setUndefinedWhenCleared?n.deferred.complete(void 0):n.deferred.error(new Jn)}},ype=class{constructor(e,n){this._fn=e;this._waitingTimeMs=n;this._queue=[];this._timeout=null}request(e){this._timeout===null&&(this._timeout=setTimeout(()=>this._flush(),this._waitingTimeMs));let n=new no;return this._queue.push({arg:e,promise:n}),n.p}async _flush(){let e=this._queue;this._queue=[],this._timeout=null;let n=e.map(o=>o.arg),r;try{r=await this._fn(n)}catch(o){for(let a of e)a.promise.error(o);return}for(let[o,a]of r.entries())e[o].promise.complete(a)}};function rPr(t,e){return new Promise((n,r)=>{if(t.length===0){n(void 0);return}let o=!1,a=t.length;for(let s of t)s.then(c=>{a--,o||(e(c)?(o=!0,n(c)):a===0&&n(void 0))}).catch(r)})}var bGt;(l=>{async function*t(u,d){for await(let p of u)yield d(p)}l.map=t;async function*e(u,d,p){let m=u[Symbol.asyncIterator](),A;for(;!(A=await m.next()).done;)yield d(A.value);return p(A.value)}l.mapWithReturn=e;async function*n(u,d){for await(let p of u)d(p)&&(yield p)}l.filter=n;async function r(u){let d=[];for await(let p of u)d.push(p);return d}l.toArray=r;async function*o(u){for(let d of u)yield d}l.fromArray=o;async function*a(u,d){for(let p of u)yield p;return d}l.fromArrayWithReturn=a;async function s(u){let d=u[Symbol.asyncIterator](),p=[],m;for(;!(m=await d.next()).done;)p.push(m.value);return[p,m.value]}l.toArrayWithReturn=s;async function c(u){let d=u[Symbol.asyncIterator](),p;do p=await d.next();while(!p.done);return p.value}l.drainUntilReturn=c})(bGt||={});var hRe;(e=>{async function*t(n){let r=null;for await(let o of n){r??="",r+=o;let a=r.split(/\r?\n/);r=a.pop()??"",yield*a}r!==null&&(yield r)}e.splitLines=t})(hRe||={});Xa();dn();sr();Cp();Ot();Be();En();function iPr(t){let e=new dt(0,0);return t.lastSelectionInAfterEdit&&!t.lastSelectionInAfterEdit.equals(e)?t.documentAfterEdits.getTransformer().getRange(t.lastSelectionInAfterEdit):Moa(t)}function Moa(t){let e=t.recentEdits.edits.at(-1);if(e===void 0)return null;let n=e.replacements.at(-1);if(n===void 0)return null;let r=n.replaceRange,a=n.newText.length-r.length,s=r.endExclusive+a;return t.documentAfterEdits.getTransformer().getRange(new dt(s,s))}var xtt=class{constructor(e,n,r=Date.now()){this.baseDebounceTime=e;this.expectedTotalTime=n;this.providerInvocationTime=r;this.extraDebounce=0}setExtraDebounce(e){this.extraDebounce=e}setBaseDebounceTime(e){this.baseDebounceTime=e}setExpectedTotalTime(e){this.expectedTotalTime=e}getDebounceTime(){let n=(this.expectedTotalTime===void 0?this.baseDebounceTime:Math.min(this.baseDebounceTime,this.expectedTotalTime))+this.extraDebounce,r=Date.now()-this.providerInvocationTime;return Math.max(0,n-r)}getArtificialDelay(){if(this.expectedTotalTime===void 0)return 0;let e=Date.now()-this.providerInvocationTime;return Math.max(0,this.expectedTotalTime-e)}};var Ett=10,Foa=30;function Qoa(t,e){let{limitConsecutiveIgnored:n,limitTotalIgnored:r,ignoredLimit:o}=e;if(!n&&!r)return t.slice(-Ett);let a=[],s=0,c=0;for(let l=t.length-1;l>=0&&a.length=o&&(d=!0),r&&c>=o&&(d=!0),d)continue;s++,c++}else s=0;a.push(u)}return a.reverse(),a}function Ooa(t,e){if(t.length===0)return .5;let n=Qoa(t,e);if(n.length===0)return .5;let r=0,o=0,a=0;for(let l=0;l0?r/o:.5,c=a/Ett;return .5+(s-.5)*c}var vpe=class{constructor(e,n,r,o){this._configurationService=e;this._experimentationService=n;this._logService=r;this._telemetryService=o;this._recentUserActionsForAggressiveness=[];this._recentUserActionsForTiming=[];this._lastActionWasAcceptance=!1}handleAcceptance(){this._recordUserAction("accepted")}handleRejection(){this._recordUserAction("rejected")}handleIgnored(){this._recordUserAction("ignored")}get wasLastActionAcceptance(){return this._lastActionWasAcceptance}_recordUserAction(e){let n=Date.now();this._lastActionWasAcceptance=e==="accepted",this._recentUserActionsForAggressiveness.push({time:n,kind:e}),this._recentUserActionsForAggressiveness=this._recentUserActionsForAggressiveness.slice(-Foa),e!=="ignored"&&(this._recentUserActionsForTiming.push({time:n,kind:e}),this._recentUserActionsForTiming=this._recentUserActionsForTiming.slice(-Ett))}createDelaySession(e){let n=this._configurationService.getExperimentBasedConfig(H.TeamInternal.InlineEditsDebounce,this._experimentationService),o=this._configurationService.getExperimentBasedConfig(H.TeamInternal.InlineEditsBackoffDebounceEnabled,this._experimentationService)?this._getExpectedTotalTime(n):void 0;return new xtt(n,o,e)}_getExpectedTotalTime(e){let c=Date.now(),l=1;for(let d of this._recentUserActionsForTiming){let p=c-d.time;if(p>6e5)continue;let m=Math.exp(-p/6e5),A=d.kind==="rejected"?1.5:.8;l*=1+(A-1)*m}let u=e*l;return u=Math.min(3e3,Math.max(50,u)),u}getAggressivenessLevel(){let e=this._configurationService.getExperimentBasedConfig(H.Advanced.InlineEditsAggressiveness,this._experimentationService),n=OO.toLevel(e);if(n!==void 0)return{aggressivenessLevel:n,userHappinessScore:void 0};let r=this._configurationService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabAggressivenessLevel,this._experimentationService);if(r!==void 0)return{aggressivenessLevel:r,userHappinessScore:void 0};let o,a=this._getUserHappinessScoreConfiguration(),s=this._getUserHappinessScore(a);return s>=a.highThreshold?o="high":s>=a.mediumThreshold?o="medium":o="low",{aggressivenessLevel:o,userHappinessScore:s}}_getUserHappinessScoreConfiguration(){let e=H.TeamInternal.InlineEditsUserHappinessScoreConfigurationString,n=this._configurationService.getExperimentBasedConfig(e,this._experimentationService);if(n===void 0)return Ogt;try{return NAn(n)}catch(r){return this._logService.error(r,"Failed to parse user happiness score configuration, using default config"),this._telemetryService.sendMSFTTelemetryEvent("incorrectNesAdaptiveAggressivenessConfig",{configName:e.id,errorMessage:jr.toString(jr.fromUnknown(r)),configValue:n}),Ogt}}_getUserHappinessScore(e){return Ooa(this._recentUserActionsForAggressiveness,e)}};vpe=S([b(0,be),b(1,Fe),b(2,Z),b(3,Ee)],vpe);wr();var Itt=class t{static isImportChange(e,n,r){return e.newLines.some(o=>I4(o,n))||Uoa(e,r).some(o=>I4(o,n))}static filterEdit(e,n,r="none"){if(r==="all")return n;let o=e.languageId,a=e.documentLinesBeforeEdit;return n.filter(c=>!t.isImportChange(c,o,a))}};function Uoa(t,e){return er(t.lineRange.mapToLineArray(n=>e[n-1]))}En();fr();var cU=class{constructor(e,n,r,o){this._documentId=e;this._document=n;this._langDiagService=r;this._xtabHistory=o}_diagnostics(e){let n=e?[[e,this._langDiagService.getDiagnostics(e)]]:this._langDiagService.getAllDiagnostics(),r=this._documentId.toUri();return n.map(o=>{let[a,s]=o;return s.map(c=>{let l=new zt(c.range.start.line+1,c.range.start.character+1,c.range.end.line+1,c.range.end.character+1),u=Un(r,a)?Stt.fromPositions(l.getStartPosition(),this._document.cursorPosition):void 0;return new vGt(a,c.message,c.severity===vc.Error?"error":"warning",u,l,this._document.transformer.getOffsetRange(l),c.code&&typeof c.code!="number"&&typeof c.code!="string"?c.code.value:c.code,c.source)})}).flat()}_getRelevantDiagnostics(e,n){let r=this._diagnostics(n);return r=joa(r,e.maxLineDistance),r=oPr(r),r=yGt(r,e.warnings),r.slice(0,e.maxLints)}getFormattedLintErrors(e){let n=this._getRelevantDiagnostics(e,this._documentId.toUri()),r;if(e.nRecentFiles>0&&this._xtabHistory){let c=this._collectRecentFileUris(e.nRecentFiles),l=this._getRecentFileDiagnostics(c,e);r=[...n,...l].slice(0,e.maxLints)}else r=n;this._previousFormttedDiagnostics=r;let o=this._documentId.toUri(),a=r.map(c=>{let u=Un(c.documentUri,o)?e:{...e,showCode:"no"};return ktt(c,this._document.lines,u)}).join(` `),s=aa.createLintTag(e.tagName);return`${s.start} ${a} ${s.end}`}_collectRecentFileUris(e){if(!this._xtabHistory)return[];let n=[],r=new Set,o=this._documentId;for(let a=this._xtabHistory.length-1;a>=0;--a){let s=this._xtabHistory[a];if(!(s.docId===o||r.has(s.docId))&&(n.push(s.docId.toUri()),r.add(s.docId),n.length>=e))break}return n}_getRecentFileDiagnostics(e,n){let r=[];for(let o of e){let a=this._diagnostics(o);a=yGt(a,n.warnings),a=a.slice().sort((s,c)=>s.documentRange.startLineNumber-c.documentRange.startLineNumber),r.push(...a)}return r}lineNumberInPreviousFormattedPrompt(e,n){if(!this._previousFormttedDiagnostics)throw new gn("No previous formatted diagnostics available to check line number against.");let r=this._documentId.toUri();for(let o of this._previousFormttedDiagnostics){if(!Un(o.documentUri,r))continue;if(o.documentRange.getStartPosition().lineNumber-1===n)return!0;if(e.showCode==="no")continue;if(aPr(o.documentRange,e).contains(n))return!0}return!1}getData(){let e={tagName:"telemetry",warnings:"yes",showCode:"no",maxLints:Number.MAX_SAFE_INTEGER,maxLineDistance:Number.MAX_SAFE_INTEGER,nRecentFiles:0},n=this._diagnostics(void 0);n=yGt(n,"yes"),n=oPr(n),n=n.slice(0,20);let r=n.map(o=>({uri:o.documentUri.toString(),line:o.documentRange.startLineNumber,column:o.documentRange.startColumn,endLine:o.documentRange.endLineNumber,endColumn:o.documentRange.endColumn,severity:o.severity,message:o.message,code:o.code,source:o.source,lineDistance:o.distance?.lineDistance,formatted:ktt(o,this._document.lines,e),formattedCode:ktt(o,this._document.lines,{...e,showCode:"yes"}),formattedCodeWithSurrounding:ktt(o,this._document.lines,{...e,showCode:"yesWithSurroundingLines"})}));return JSON.stringify(r)}};cU=S([b(2,Ga)],cU);function ktt(t,e,n){let r=qoa(t,t.documentRange);if(n.showCode==="no")return r;let o=$oa(t.documentRange,n,e);return r+` `+o.join(` `)}function qoa(t,e){let n="";t.code&&(n=` ${t.source?t.source.toUpperCase():""}${t.code}`);let r=e.getStartPosition();return`${r.lineNumber-1}:${r.column-1} - ${t.severity}${n}: ${t.message}`}function $oa(t,e,n){let o=aPr(t,e).intersect(new dt(0,n.length));if(!o)return[];let a=[];for(let s=o.start;sn.distance?.lineDistance!==void 0&&n.distance.lineDistance<=e)}function oPr(t){return t.slice().sort((e,n)=>e.distance===void 0&&n.distance===void 0?0:e.distance===void 0?1:n.distance===void 0?-1:Stt.compareFn(e.distance,n.distance))}function yGt(t,e){switch(e){case"no":return t.filter(n=>n.severity==="error");case"yes":return t.filter(n=>n.severity==="error"||n.severity==="warning");case"yesIfNoErrors":{let n=t.filter(r=>r.severity==="error");return n.length>0?n:t.filter(r=>r.severity==="error"||r.severity==="warning")}}}var Stt=class t{constructor(e,n){this.lineDistance=e;this.columnDistance=n}static compareFn(e,n){return e.lineDistance!==n.lineDistance?e.lineDistance-n.lineDistance:e.columnDistance-n.columnDistance}static fromPositions(e,n){return new t(Math.abs(e.lineNumber-n.lineNumber),Math.abs(e.column-n.column))}},vGt=class extends Aue{constructor(n,r,o,a,s,c,l,u){super(n,r,o,c,l,u);this.distance=a;this.documentRange=s}};Je();var Ttt=me("ISimilarFilesContextService");var sPr=`Your role as an AI assistant is to help developers complete their code tasks by assisting in editing specific sections of code marked by the ${aa.EDIT_WINDOW.start} and ${aa.EDIT_WINDOW.end} tags, while adhering to Microsoft's content policies and avoiding the creation of content that violates copyrights. You have access to the following information to help you make informed suggestions: - recently_viewed_code_snippets: These are code snippets that the developer has recently looked at, which might provide context or examples relevant to the current task. They are listed from oldest to newest, with line numbers in the form #| to help you understand the edit diff history. It's possible these are entirely irrelevant to the developer's change. - current_file_content: The content of the file the developer is currently working on, providing the broader context of the code. Line numbers in the form #| are included to help you understand the edit diff history. - edit_diff_history: A record of changes made to the code, helping you understand the evolution of the code and the developer's intentions. These changes are listed from oldest to latest. It's possible a lot of old edit diff history is entirely irrelevant to the developer's change. - area_around_code_to_edit: The context showing the code surrounding the section to be edited. - cursor position marked as ${aa.CURSOR}: Indicates where the developer's cursor is currently located, which can be crucial for understanding what part of the code they are focusing on. Your task is to predict and complete the changes the developer would have made next in the ${aa.EDIT_WINDOW.start} section. The developer may have stopped in the middle of typing. Your goal is to keep the developer on the path that you think they're following. Some examples include further implementing a class, method, or variable, or improving the quality of the code. Make sure the developer doesn't get distracted and ensure your suggestion is relevant. Consider what changes need to be made next, if any. If you think changes should be made, ask yourself if this is truly what needs to happen. If you are confident about it, then proceed with the changes. # Steps 1. **Review Context**: Analyze the context from the resources provided, such as recently viewed snippets, edit history, surrounding code, and cursor location. 2. **Evaluate Current Code**: Determine if the current code within the tags requires any corrections or enhancements. 3. **Suggest Edits**: If changes are required, ensure they align with the developer's patterns and improve code quality. 4. **Maintain Consistency**: Ensure indentation and formatting follow the existing code style. # Output Format - Provide only the revised code within the tags. If no changes are necessary, simply return the original code from within the ${aa.EDIT_WINDOW.start} and ${aa.EDIT_WINDOW.end} tags. - There are line numbers in the form #| in the code displayed to you above, but these are just for your reference. Please do not include the numbers of the form #| in your response. - Ensure that you do not output duplicate code that exists outside of these tags. The output should be the revised code that was between these tags and should not include the ${aa.EDIT_WINDOW.start} or ${aa.EDIT_WINDOW.end} tags. \`\`\` // Your revised code goes here \`\`\` # Notes - Apologize with "Sorry, I can't assist with that." for requests that may breach Microsoft content guidelines. - Avoid undoing or reverting the developer's last change unless there are obvious typos or errors. - Don't include the line numbers of the form #| in your response.`,cPr=`Your role as an AI assistant is to help developers complete their code tasks by assisting in editing specific sections of code marked by the <|code_to_edit|> and <|/code_to_edit|> tags, while adhering to Microsoft's content policies and avoiding the creation of content that violates copyrights. You have access to the following information to help you make informed suggestions: - recently_viewed_code_snippets: These are code snippets that the developer has recently looked at, which might provide context or examples relevant to the current task. They are listed from oldest to newest. It's possible these are entirely irrelevant to the developer's change. - current_file_content: The content of the file the developer is currently working on, providing the broader context of the code. - edit_diff_history: A record of changes made to the code, helping you understand the evolution of the code and the developer's intentions. These changes are listed from oldest to latest. It's possible a lot of old edit diff history is entirely irrelevant to the developer's change. - area_around_code_to_edit: The context showing the code surrounding the section to be edited. - cursor position marked as <|cursor|>: Indicates where the developer's cursor is currently located, which can be crucial for understanding what part of the code they are focusing on. Your task is to predict and complete the changes the developer would have made next in the <|code_to_edit|> section. The developer may have stopped in the middle of typing. Your goal is to keep the developer on the path that you think they're following. Some examples include further implementing a class, method, or variable, or improving the quality of the code. Make sure the developer doesn't get distracted and ensure your suggestion is relevant. Consider what changes need to be made next, if any. If you think changes should be made, ask yourself if this is truly what needs to happen. If you are confident about it, then proceed with the changes. # Steps 1. **Review Context**: Analyze the context from the resources provided, such as recently viewed snippets, edit history, surrounding code, and cursor location. 2. **Evaluate Current Code**: Determine if the current code within the tags requires any corrections or enhancements. 3. **Suggest Edits**: If changes are required, ensure they align with the developer's patterns and improve code quality. 4. **Maintain Consistency**: Ensure indentation and formatting follow the existing code style. # Output Format - Your response should start with the word , , or . - If your are making an edit, start with , then provide the rewritten code window, then . - If you are inserting new code, start with and then provide only the new code that will be inserted at the cursor position, then . - If no changes are necessary, reply only with . - Ensure that you do not output duplicate code that exists outside of these tags. The output should be the revised code that was between these tags and should not include the <|code_to_edit|> or <|/code_to_edit|> tags. # Notes - Apologize with "Sorry, I can't assist with that." for requests that may breach Microsoft content guidelines. - Avoid undoing or reverting the developer's last change unless there are obvious typos or errors.`,lPr=`Your role as an AI assistant is to help developers complete their code tasks by assisting in editing specific sections of code marked by the <|code_to_edit|> and <|/code_to_edit|> tags, while adhering to Microsoft's content policies and avoiding the creation of content that violates copyrights. You have access to the following information to help you make informed suggestions: - recently_viewed_code_snippets: These are code snippets that the developer has recently looked at, which might provide context or examples relevant to the current task. They are listed from oldest to newest. It's possible these are entirely irrelevant to the developer's change. - current_file_content: The content of the file the developer is currently working on, providing the broader context of the code. - edit_diff_history: A record of changes made to the code, helping you understand the evolution of the code and the developer's intentions. These changes are listed from oldest to latest. It's possible a lot of old edit diff history is entirely irrelevant to the developer's change. - area_around_code_to_edit: The context showing the code surrounding the section to be edited. - cursor position marked as <|cursor|>: Indicates where the developer's cursor is currently located, which can be crucial for understanding what part of the code they are focusing on. Your task is to predict and complete the changes the developer would have made next in the <|code_to_edit|> section. The developer may have stopped in the middle of typing. Your goal is to keep the developer on the path that you think they're following. Some examples include further implementing a class, method, or variable, or improving the quality of the code. Make sure the developer doesn't get distracted and ensure your suggestion is relevant. Consider what changes need to be made next, if any. If you think changes should be made, ask yourself if this is truly what needs to happen. If you are confident about it, then proceed with the changes. # Steps 1. **Review Context**: Analyze the context from the resources provided, such as recently viewed snippets, edit history, surrounding code, and cursor location. 2. **Evaluate Current Code**: Determine if the current code within the tags requires any corrections or enhancements. 3. **Suggest Edits**: If changes are required, ensure they align with the developer's patterns and improve code quality. 4. **Maintain Consistency**: Ensure indentation and formatting follow the existing code style. # Output Format - Your response should start with the word or . - If your are making an edit, start with , then provide the rewritten code window, then . - If no changes are necessary, reply only with . - Ensure that you do not output duplicate code that exists outside of these tags. The output should be the revised code that was between these tags and should not include the <|code_to_edit|> or <|/code_to_edit|> tags. # Notes - Apologize with "Sorry, I can't assist with that." for requests that may breach Microsoft content guidelines. - Avoid undoing or reverting the developer's last change unless there are obvious typos or errors.`,uPr="Predict next code edit based on the context given by the user.",dPr=`Predict the next code edit based on user context, following Microsoft content policies and avoiding copyright violations. If a request may breach guidelines, reply: "Sorry, I can't assist with that."`;Ue();var bRe=2e3,_pe=class extends fe{constructor(n){super();this._terminalService=n;this._register(this._terminalService.onDidEndTerminalShellExecution(r=>{this._recordTerminalActivity(r)})),this._register(this._terminalService.onDidCloseTerminal(r=>{this._lastActivity?.terminal===r&&(this._lastActivity=void 0)}))}_recordTerminalActivity(n){let r=n.execution;this._lastActivity={terminal:n.terminal,terminalName:n.terminal.name,commandLine:r.commandLine?.value,cwd:Goa(r.cwd),exitCode:n.exitCode,timestamp:Date.now()}}getData(){let n=Date.now(),r=this._terminalService.terminals.length;if(!this._lastActivity)return JSON.stringify({terminalCount:r});let o=this._terminalService.getBufferForTerminal(this._lastActivity.terminal,bRe*2),a=n-this._lastActivity.timestamp,s={terminalName:this._lastActivity.terminalName,commandLine:this._lastActivity.commandLine,cwd:this._lastActivity.cwd,exitCode:this._lastActivity.exitCode,msAgo:a,buffer:o.length<=bRe?{fits:!0,content:o,length:o.length}:{fits:!1,contentStart:o.slice(0,bRe/2),contentEnd:o.slice(-bRe/2),length:o.length,truncatedChars:o.length-bRe},terminalCount:r};return JSON.stringify(s)}};_pe=S([b(0,Vd)],_pe);function Goa(t){if(t!==void 0)return typeof t=="string"?t:t.fsPath}var Btt=class{constructor(e,n){this.content=e;this.cursorPosition=n;this.lines=e.getLines(),this.transformer=e.getTransformer(),this.cursorOffset=this.transformer.getOffset(n),this.cursorLineOffset=this.cursorPosition.lineNumber-1}};sr();Ot();var Rtt=class t{constructor(e,n){this.filePath=e;this.lineNumZeroBased=n;this.removedLines=[];this.addedLines=[]}static ofLine(e){let n=e.match(/^(.+):(\d+)$/);if(!n)return null;let[,r,o]=n;return new t(r,parseInt(o,10))}addLine(e){let n=e.slice(1);return e.startsWith("-")?(this.removedLines.push(n),!0):e.startsWith("+")?(this.addedLines.push(n),!0):!1}toString(){return[`${this.filePath}:${this.lineNumZeroBased}`,...this.removedLines.map(e=>`-${e}`),...this.addedLines.map(e=>`+${e}`)].join(` `)}},Dtt=class t{static async*handleResponse(e,n,r,o,a,s,c){let l=w2(r,o?.path);try{for await(let u of t.extractEdits(e)){let d=c?.();if(d)return d;let p=u.filePath===l?r:t.resolveTargetDocument(u.filePath,o)??r;yield{edit:t.resolveEdit(u),isFromCursorJump:!1,targetDocument:p,window:a}}}catch(u){let d=jr.fromUnknown(u);return new Gr.Unexpected(d)}return new Gr.NoSuggestions(n,a,void 0)}static resolveEdit(e){return new jf(new mi(e.lineNumZeroBased+1,e.lineNumZeroBased+1+e.removedLines.length),e.addedLines)}static resolveTargetDocument(e,n){if(td(e))return hy.create(K.file(e).toString());if(n)return hy.create(K.joinPath(n,e).toString())}static async*extractEdits(e){let n=null;for await(let r of e){if(r.trim()===x2.NO_EDIT)break;if(n===null){n=Rtt.ofLine(r);continue}n.addLine(r)||(n&&(yield n),n=Rtt.ofLine(r))}n&&(yield n)}};Be();var TF=class extends ad{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h){let y=o?{...TF.chatModelInfo,id:o}:TF.chatModelInfo;super(y,s,p,m,A,a,f,g,h);this._url=n;this._apiKey=r;this._configService=a}static{this.chatModelInfo={id:"xtab-4o-mini-finetuned",name:"xtab-4o-mini-finetuned",vendor:"xtab",model_picker_enabled:!1,is_chat_default:!1,is_chat_fallback:!1,version:"unknown",capabilities:{type:"chat",family:"xtab-4o-mini-finetuned",tokenizer:"o200k_base",limits:{max_prompt_tokens:12285,max_output_tokens:4096},supports:{streaming:!0,parallel_tool_calls:!1,tool_calls:!1,vision:!1,prediction:!0}}}}get urlOrRequestMetadata(){return this._configService.getConfig(H.TeamInternal.InlineEditsXtabProviderUrl)||this._url}getExtraHeaders(){let n=this._configService.getConfig(H.TeamInternal.InlineEditsXtabProviderApiKey)||this._apiKey;if(!n){let r=`Missing API key for custom URL (${this.urlOrRequestMetadata}). Provide the API key using vscode setting \`github.copilot.chat.advanced.inlineEdits.xtabProvider.apiKey\` or, if in simulations using \`--nes-api-key\` or \`--config-file\``;throw console.error(r),new Error(r)}return{Authorization:`Bearer ${n}`,"api-key":n}}};TF=S([b(3,be),b(4,ic),b(5,nr),b(6,Mr),b(7,Ee),b(8,at),b(9,Ip),b(10,cl),b(11,j),b(12,Fe),b(13,od),b(14,Z)],TF);function pPr(t,e){return e(t)}Xa();Be();var Ptt=O(Ye());async function*mPr(t){let e=-1,n;for await(let r of t)if(++e,n&&(yield n,n=void 0),r.match(/^```[a-z]*$/)){if(e===0)continue;n=r}else yield r}function Ntt({systemMsg:t,userMsg:e}){return[{role:Ptt.Raw.ChatRole.System,content:Nz(t)},{role:Ptt.Raw.ChatRole.User,content:Nz(e)}]}function APr(t){return t.reduce((n,r)=>n+r.content.reduce((o,a)=>o+(a.type===Ptt.Raw.ChatCompletionContentPartKind.Text?a.text.length:0),0),0)}var Cpe=class{constructor(e,n,r,o,a,s){this.computeTokens=e;this.instaService=n;this.configService=r;this.expService=o;this.langDiagService=a;this.endpointProvider=s;this.isDisabled=!1}determineEnablement(e){if(this.isDisabled||e===!1)return;let n=this.configService.getExperimentBasedConfig(H.InlineEditsNextCursorPredictionEnabled,this.expService);switch(n){case!0:return"onlyWithEdit";case!1:case void 0:return;case"onlyWithEdit":case"jump":return"onlyWithEdit";default:ai(n)}}async predictNextCursorPosition(e,n,r,o){let a=n.createSubLogger("predictNextCursorPosition"),s="Your task is to predict the line number where the developer is most likely to make their next edit. If you jump in the current file, just output the line number. If you want to jump to another file, output the filepath (relative to workspace root), colon, then line number. If you don't think anywhere is a good next line jump target, just output the current line number of the cursor. Make sure to output no explanation, reasoning, extra spaces, etc.",c=this.configService.getExperimentBasedConfig(H.Advanced.InlineEditsNextCursorPredictionCurrentFileMaxTokens,this.expService),l=TZe(e.currentDocument,e.editWindowLinesRange,e.areaAroundEditWindowLinesRange,{...e.opts,currentFile:{...e.opts.currentFile,maxTokens:c,includeTags:!1}},this.computeTokens,{includeLineNumbers:{areaAroundCodeToEdit:"none",currentFileContent:"withSpaceAfter"}});if(l.isError())return a.trace(`Failed to construct tagged file: ${l.err}`),vt.fromString(l.err);let{clippedTaggedCurrentDoc:u,areaAroundCodeToEdit:d}=l.val,p=this.determineLintOptions(),m=new cU(e.activeDoc.id,e.currentDocument,this.langDiagService,e.xtabHistory),A=pPr(this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsNextCursorPredictionRecentSnippetsIncludeLineNumbers,this.expService),T=>typeof T=="boolean"?T?"withSpaceAfter":"none":T),f=new wce(e.currentDocument,e.editWindowLinesRange,e.areaAroundEditWindowLinesRange,e.activeDoc,e.xtabHistory,u.lines,d,e.langCtx,e.aggressivenessLevel,m,this.computeTokens,{...e.opts,includePostScript:!1,lintOptions:p,recentlyViewedDocuments:{...e.opts.recentlyViewedDocuments,includeLineNumbers:A}}),{prompt:g}=kZe(f),h=Ntt({systemMsg:s,userMsg:g});r?.setCursorJumpPrompt(h);let y=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsNextCursorPredictionModelName,this.expService);if(y===void 0)return a.trace("Model name for cursor prediction is not defined; skipping prediction"),vt.fromString("modelNameNotDefined");r?.setCursorJumpModelName(y);let v=await this.resolveEndpoint(y,a);if(!v)return vt.fromString("endpointNotResolved");let{endpoint:_,usesResponsesApi:w}=v,x=this.configService.getConfig(H.TeamInternal.InlineEditsNextCursorPredictionApiKey),E=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsNextCursorPredictionMaxResponseTokens,this.expService),I={max_tokens:w?Math.max(E,2048):E};x&&(I={...I,secretKey:x});let k=await _.makeChatRequest2({messages:h,debugName:"nes.nextCursorPosition",finishedCb:void 0,location:6,requestOptions:I},o);if(k.type!=="success")return k.type==="notFound"&&(a.trace("Next cursor position prediction endpoint not found; disabling predictor for current session."),this.isDisabled=!0),vt.fromString(`fetchError:${k.type}`);try{r?.setCursorJumpResponse(k.value);let T=k.value.trim();return this.parseResponse(T,u.keptRange)}catch(T){return a.trace(`Failed to parse predicted line number from response '${k.value}': ${T}`),vt.fromString(`failedToParseLine:"${k.value}". Error ${jr.fromUnknown(T).message}`)}}async resolveEndpoint(e,n){if(this.configService.getConfig(H.TeamInternal.InlineEditsNextCursorPredictionUseEndpointProvider)){let s=(await this.endpointProvider.getAllChatEndpoints()).find(l=>l.model===e||l.family===e);if(!s){n.trace(`Could not find endpoint for model '${e}' via endpoint provider`);return}let c=s.apiType==="responses";return{endpoint:s,usesResponsesApi:c}}let o=this.configService.getConfig(H.TeamInternal.InlineEditsNextCursorPredictionUrl);return{endpoint:this.instaService.createInstance(ad,{id:e,name:"nes.nextCursorPosition",vendor:e,urlOrRequestMetadata:o||{type:qn.ProxyChatCompletions},model_picker_enabled:!1,is_chat_default:!1,is_chat_fallback:!1,version:"",capabilities:{type:"chat",family:"",tokenizer:"cl100k_base",limits:void 0,supports:{parallel_tool_calls:!1,tool_calls:!1,streaming:!0,vision:!1,prediction:!1,thinking:!1}}}),usesResponsesApi:!1}}determineLintOptions(){let e=this.configService.getConfig(H.TeamInternal.InlineEditsNextCursorPredictionLintOptions);if(e)return{...xX,...e};let n=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsNextCursorPredictionLintOptionsString,this.expService);return n?PAn(n,xX):xX}parseResponse(e,n){let r=parseInt(e,10);if(!isNaN(r)&&String(r)===e)return this.parseSameFileLineNumber(r,n);let o=e.lastIndexOf(":");if(o<=0)return vt.fromString("gotNaN");let a=e.substring(0,o),s=e.substring(o+1),c=parseInt(s,10);return isNaN(c)||c<0?vt.fromString("crossFileInvalidLineNumber"):a.trim().length===0?vt.fromString("crossFileEmptyFilePath"):vt.ok({kind:"differentFile",filePath:a.trim(),lineNumber:c})}parseSameFileLineNumber(e,n){return e<0?vt.fromString("negativeLineNumber"):e{class t{static{this.INSTANCE=new t}}n.NotRetrying=t;class e{constructor(o){this.reason=o}}n.Retrying=e})(bV||={});var ub=class{constructor(e,n,r,o,a,s,c,l,u,d,p){this.modelService=e;this.simulationCtx=n;this.instaService=r;this.workspaceService=o;this.diffService=a;this.configService=s;this.expService=c;this.langCtxService=l;this.langDiagService=u;this.ignoreService=d;this.similarFilesContextService=p;this.ID=ub.ID;this.forceUseDefaultModel=!1;this.userInteractionMonitor=this.instaService.createInstance(vpe),this.terminalMonitor=this.instaService.createInstance(_pe),this.nextCursorPredictor=this.instaService.createInstance(Cpe,ub.computeTokens)}static{this.ID=BX}static{this.computeTokens=e=>Math.floor(e.length/4)}handleAcceptance(){this.userInteractionMonitor.handleAcceptance()}handleRejection(){this.userInteractionMonitor.handleRejection()}handleIgnored(){this.userInteractionMonitor.handleIgnored()}async*provideNextEdit(e,n,r,o){let a=new ope(e.headerRequestId);r.setProviderStartTime();try{if(e.xtabEditHistory.length===0){let d=new Gr.ActiveDocumentHasNoEdits;return new mV(d,a.build(vt.error(d)))}let s=this.userInteractionMonitor.createDelaySession(e.providerRequestStartDateTime),c=this.doGetNextEdit(e,s,n,r,o,a,bV.NotRetrying.INSTANCE),l=await c.next();for(;!l.done;)yield new mV(l.value,a.build(vt.ok(void 0))),l=await c.next();let u=l.value;return u instanceof Gr.GotCancelled&&r.setIsSkipped(),new mV(u,a.build(vt.error(u)))}catch(s){let c=jr.fromUnknown(s),l=new Gr.Unexpected(c);return new mV(l,a.build(vt.error(l)))}finally{r.setProviderEndTime()}}doGetNextEdit(e,n,r,o,a,s,c){return this.doGetNextEditWithSelection(e,iPr(e.getActiveDocument()),n,r,o,a,s,c)}async*doGetNextEditWithSelection(e,n,r,o,a,s,c,l,u){let d=o.createSubLogger(["XtabProvider","doGetNextEditWithSelection"]),p=e.getActiveDocument();if(n===null)return new Gr.Uncategorized(new Error("NoSelection"));let{promptOptions:m,modelServiceConfig:A}=this.determineModelConfiguration(p);c.setModelConfig(JSON.stringify(A));let f=this.getEndpoint(m.modelName);a.setEndpointInfo(typeof f.urlOrRequestMetadata=="string"?f.urlOrRequestMetadata:JSON.stringify(f.urlOrRequestMetadata.type),f.model),c.setModelName(f.model);let g=new Sr(n.endLineNumber,n.endColumn),h=new Btt(p.documentAfterEdits,g),v=h.lines[h.cursorLineOffset].substring(g.column-1).match(/^\s*$/)!==null;c.setIsCursorAtLineEnd(v);let _=E2r(h,g);if(c.setIsInlineSuggestion(!!_),e.isSpeculative)d.trace("No extra debounce applied for speculative request");else{let ue=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsExtraDebounceInlineSuggestion,this.expService);_&&ue>0?(d.trace("Debouncing for inline suggestion position"),r.setExtraDebounce(ue)):v?(d.trace("Debouncing for cursor at end of line"),r.setExtraDebounce(this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsExtraDebounceEndOfLine,this.expService))):d.trace("No extra debounce applied")}Qgt(m.promptingStrategy)||this._applyAggressivenessSettings(r,d);let w=Zoa(h),x=this.computeEditWindowLinesRange(h,e,d,c),E=Math.max(0,h.cursorLineOffset-x.start),I=h.transformer.getLineLength(x.endExclusive),k=h.transformer.getOffsetRange(new zt(x.start+1,1,x.endExclusive,I+1)),T=h.lines.slice(x.start,x.endExclusive),D=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabEditWindowMaxTokens,this.expService);if(D!==void 0&&V5(T,ub.computeTokens)>D)return new Gr.PromptTooLarge("editWindow");let q=!T.some(ue=>ue.includes(aa.CURSOR)),$=TZe(h,x,w,m,ub.computeTokens,{includeLineNumbers:{areaAroundCodeToEdit:"none",currentFileContent:m.currentFile.includeLineNumbers}});if($.isError())return new Gr.PromptTooLarge("currentFile");let{clippedTaggedCurrentDoc:L,areaAroundCodeToEdit:F}=$.val;c.setNLinesOfCurrentFileInPrompt(L.lines.length);let{aggressivenessLevel:te,userHappinessScore:oe}=this.userInteractionMonitor.getAggressivenessLevel(),Y=this.configService.getExperimentBasedConfig(H.Advanced.InlineEditsAggressiveness,this.expService);Y!=="auto"&&c.setUserAggressivenessSetting(Y),Qgt(m.promptingStrategy)&&(c.setXtabAggressivenessLevel(te),oe!==void 0&&c.setXtabUserHappinessScore(oe));let ge=await this.getAndProcessLanguageContext(e,r,p,g,m,d,a,s);if(s.isCancellationRequested)return new Gr.GotCancelled("afterLanguageContextAwait");let re=new cU(p.id,h,this.langDiagService,e.xtabEditHistory),J=new wce(h,x,w,p,e.xtabEditHistory,L.lines,F,ge,te,re,ub.computeTokens,m),{prompt:Ae,nDiffsInPrompt:G,diffTokensInPrompt:U}=kZe(J);c.setNDiffsInPrompt(G),c.setDiffTokensInPrompt(U);let ie=b0e.fromPromptingStrategy(m.promptingStrategy),xe=this.getPredictedOutput(p,T,ie),ze=Ntt({systemMsg:Koa(m.promptingStrategy),userMsg:Ae});a.setPrompt(ze),c.setPrompt(ze);let Me=3e4*4;if(APr(ze)>Me)return new Gr.PromptTooLarge("final");if(await this.debounce(r,l,d,c,s),s.isCancellationRequested)return new Gr.GotCancelled("afterDebounce");Promise.resolve().then(()=>{let ue=re.getData();c.setLintErrors(ue),a.setDiagnosticsData(ue);let V=this.terminalMonitor.getData();c.setTerminalOutput(V),a.setTerminalData(V)}),c.setSimilarFilesContext(this.similarFilesContextService.compute(p.id.uri,p.languageId,p.documentAfterEdits.value,h.cursorOffset)),e.fetchIssued=!0;let se=g.column;return yield*this.streamEditsWithFiltering(e,f,A,ze,h,L,k,T,E,se,x,J,xe,{shouldRemoveCursorTagFromResponse:q,responseFormat:ie,retryState:l,aggressivenessLevel:te,userHappinessScore:oe},r,d,c,a,s,u)}_applyAggressivenessSettings(e,n){let r=this.configService.getExperimentBasedConfig(H.Advanced.InlineEditsAggressiveness,this.expService),a={low:{minResponseConfigKey:H.TeamInternal.InlineEditsAggressivenessLowMinResponseTimeMs},medium:{minResponseConfigKey:H.TeamInternal.InlineEditsAggressivenessMediumMinResponseTimeMs},high:{debounceConfigKey:H.TeamInternal.InlineEditsAggressivenessHighDebounceMs},auto:void 0}[r];if(a){if(a.debounceConfigKey){let s=this.configService.getExperimentBasedConfig(a.debounceConfigKey,this.expService);e.setBaseDebounceTime(s),n.trace(`Aggressiveness ${r}: debounce set to ${s}ms`)}if(a.minResponseConfigKey){if(this.userInteractionMonitor.wasLastActionAcceptance){n.trace(`Aggressiveness ${r}: skipping min response time (last action was acceptance)`);return}let s=this.configService.getExperimentBasedConfig(a.minResponseConfigKey,this.expService);e.setExpectedTotalTime(s),n.trace(`Aggressiveness ${r}: min response time set to ${s}ms`)}}}getAndProcessLanguageContext(e,n,r,o,a,s,c,l){let u=this.configService.getConfig(H.TeamInternal.InlineEditsLogContextRecorderEnabled);if(!a.languageContext.enabled&&!u)return Promise.resolve(void 0);let d=this.getLanguageContext(e,n,r,o,s,c,l);return u&&d.then(p=>{p&&c.setLanguageContext(p)}),a.languageContext.enabled?d:Promise.resolve(void 0)}async getLanguageContext(e,n,r,o,a,s,c){try{let l=this.workspaceService.textDocuments.find(_=>_.uri.toString()===r.id.uri);if(l===void 0||this.langCtxService.getContextProviders(l,"nes").length<1)return;let d=n.getDebounceTime(),p=new Pn(o.lineNumber-1,o.column-1),m={opportunityId:e.opportunityId,completionId:e.headerRequestId,documentContext:{uri:l.uri.toString(),languageId:l.languageId,version:l.version,offset:l.offsetAt(p),position:p},activeExperiments:new Map,timeBudget:d,timeoutEnd:Date.now()+d,source:"nes"},A=async _=>{let w=[_.uri,..._.additionalUris??[]];return!!await rPr(w.map(E=>this.ignoreService.isCopilotIgnored(E)),E=>E)},f=[],g=async()=>{let _=this.langCtxService.getContextItems(l,m,c);for await(let w of _)w.kind==="snippet"&&await A(w)||f.push({context:w,timeStamp:Date.now(),onTimeout:!1})},h=Date.now();if(await gs(au(g(),d),c),c.isCancellationRequested)return;let y=Date.now(),v=this.langCtxService.getContextItemsOnTimeout(l,m);for(let _ of v)_.kind==="snippet"&&await A(_)||f.push({context:_,timeStamp:y,onTimeout:!0});return{start:h,end:y,items:f}}catch(l){s.setError(jr.fromUnknown(l)),a.trace(`Failed to fetch language context: ${l}`);return}}async*streamEditsWithFiltering(e,n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_,w){let x=h.createSubLogger("streamEditsWithFiltering"),E=this.streamEdits(e,n,r,o,a,s,c,l,u,d,p,m,A,f,g,x,y,v,_,w),I=0,k=await E.next();for(;!k.done;){let T=k.value.edit;this.filterEdit(e.getActiveDocument(),[T]).length===0?x.trace(`Filtered out an edit: ${T.toString()}`):(x.trace(`Yielding an edit: ${T.toString()}`),yield k.value,I++),k=await E.next()}return I===0&&k.value instanceof Gr.NoSuggestions?yield*this.doGetNextEditsWithCursorJump(e,r,c,m,g,h,v,_,y,f.retryState):k.value}async*streamEdits(e,n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_,w){let x=h.createSubLogger("streamEdits"),E=e.getActiveDocument().id,I=this.configService.getExperimentBasedConfig(H.NextEditSuggestionsFetcher,this.expService)||void 0,k=new OS,T=new Gi,D="",M,q,$=new no;v.setHeaderRequestId(e.headerRequestId),y.setFetchStartedAt(),v.setFetchStartTime();let L=n.makeChatRequest2({debugName:ub.ID,messages:o,finishedCb:async(G,U,ie)=>{$.isSettled||$.complete(),q===void 0&&G!==""&&(q=T.elapsed(),v.addLog(`TTFT ${q} ms`)),k.update(G,ie),D=G,v.setResponse(D)},location:6,source:void 0,requestOptions:{temperature:0,stream:!0,prediction:A},userInitiatedRequest:void 0,telemetryProperties:{requestId:e.headerRequestId},useFetcher:I,customMetadata:{aggressivenessLevel:f.aggressivenessLevel,userHappinessScore:f.userHappinessScore}},_);y.setResponse(L.then(G=>({response:G,ttft:q}))),v.setFullResponse(L.then(G=>G.type==="success"?G.value:void 0));let F=await Promise.race([$.p,L]);if(F&&F.type!=="success")return F.type==="notFound"&&!this.forceUseDefaultModel?(this.forceUseDefaultModel=!0,yield*this.doGetNextEdit(e,g,x,v,_,y,f.retryState)):F.type==="unknown"&&F.reason===w3e?new Gr.NoSuggestions(e.documentBeforeEdits,c):CGt(F);L.then(G=>{M=G.type!=="success"?G:void 0}).catch(G=>{v.setError(jr.fromUnknown(G)),v.addLog("ChatMLFetcher fetch call threw -- this's UNEXPECTED!")}).finally(()=>{v.setFetchEndTime(),$.isSettled||$.complete(),k.resolve(),v.setResponse(D)});let te=hRe.splitLines(bGt.map(k.stream,G=>G.delta.text)),oe=async function*(){let G=0;for await(let U of te){let ie=`Line ${G++} emitted with latency ${T.elapsed()} ms`;x.trace(ie),yield f.shouldRemoveCursorTagFromResponse?U.replaceAll(aa.CURSOR,""):U}}(),Y=f.retryState instanceof bV.Retrying&&f.retryState.reason==="cursorJump",ge;if(f.responseFormat==="editWindowOnly")ge=oe;else if(f.responseFormat==="editWindowWithEditIntent"||f.responseFormat==="editWindowWithEditIntentShort"){let G=f.responseFormat==="editWindowWithEditIntentShort"?"shortName":"tags",{editIntent:U,remainingLinesStream:ie,parseError:xe}=await eaa(oe,x,G);if(y.setEditIntent(U),xe&&y.setEditIntentParseError(xe),!z7.shouldShowEdit(U,m.aggressivenessLevel))return x.trace(`Filtered out edit due to edit intent "${U}" with aggressiveness "${m.aggressivenessLevel}"`),new Gr.FilteredOut(`editIntent:${U} aggressivenessLevel:${m.aggressivenessLevel}`);ge=ie}else if(f.responseFormat==="customDiffPatch"){let G=e.getActiveDocument(),ie=a.lines[s.keptRange.endExclusive-1].length,xe=a.transformer.getOffsetRange(new zt(s.keptRange.start+1,1,s.keptRange.endExclusive,ie+1));return yield*Dtt.handleResponse(oe,e.documentBeforeEdits,G.id,G.workspaceRoot,xe,void 0,()=>M?CGt(M):void 0)}else if(f.responseFormat==="unifiedWithXml"){let G=oe[Symbol.asyncIterator](),U=await G.next();if(M!==void 0)return new Gr.Unexpected(jr.fromUnknown(M));if(U.done)return new Gr.NoSuggestions(e.documentBeforeEdits,c);let ie=U.value.trim();if(ie===x2.NO_CHANGE.start)return yield*this.doGetNextEditsWithCursorJump(e,r,c,m,g,x,v,_,y,f.retryState);if(ie===x2.INSERT.start){let xe=await G.next();if(xe.done||xe.value.includes(x2.INSERT.end))return new Gr.NoSuggestions(e.documentBeforeEdits,c);yield{edit:new jf(new mi(p.start+u+1,p.start+u+2),[l[u].slice(0,d-1)+xe.value+l[u].slice(d-1)]),isFromCursorJump:Y,window:c,originalWindow:w,targetDocument:E};let Me=[],ce=await G.next();for(;!ce.done&&!ce.value.includes(x2.INSERT.end);)Me.push(ce.value),ce=await G.next();let se=p.start+u+2;return yield{edit:new jf(new mi(se,se),Me),isFromCursorJump:Y,window:c,originalWindow:w,targetDocument:E},new Gr.NoSuggestions(e.documentBeforeEdits,c)}if(ie===x2.EDIT.start)ge=async function*(){let xe=await G.next();for(;!xe.done;){if(xe.value.includes(x2.EDIT.end))return;yield xe.value,xe=await G.next()}}();else return new Gr.Unexpected(new Error(`unexpected tag ${ie}`))}else f.responseFormat==="codeBlock"?ge=mPr(oe):ai(f.responseFormat);let re={emitFastCursorLineChange:UO.mapEmitFastCursorLineChange(this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabProviderEmitFastCursorLineChange,this.expService)),nLinesToConverge:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabNNonSignificantLinesToConverge,this.expService),nSignificantLinesToConverge:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabNSignificantLinesToConverge,this.expService)};x.trace(`starting to diff stream against edit window lines with latency ${T.elapsed()} ms`);let J=0,Ae=!1;try{for await(let G of UO.diff(l,ge,u,re)){x.trace(`ResponseProcessor streamed edit #${J} with latency ${T.elapsed()} ms`);let U=[];if(G.lineRange.startLineNumber===G.lineRange.endLineNumberExclusive||G.newLines.length===0||G.lineRange.endLineNumberExclusive-G.lineRange.startLineNumber===1&&G.newLines.length===1){let ie=new jf(new mi(G.lineRange.startLineNumber+p.start,G.lineRange.endLineNumberExclusive+p.start),G.newLines);U.push(ie)}else{let ie=l.slice(G.lineRange.startLineNumber-1,G.lineRange.endLineNumberExclusive-1).join(` `),xe=await this.diffService.computeDiff(ie,G.newLines.join(` `),{ignoreTrimWhitespace:!1,maxComputationTimeMs:0,computeMoves:!1});x.trace(`Ran diff for #${J} with latency ${T.elapsed()} ms`);let ze=p.start+G.lineRange.startLineNumber;for(let Me of xe.changes){let ce=new jf(new mi(ze+Me.original.startLineNumber-1,ze+Me.original.endLineNumberExclusive-1),G.newLines.slice(Me.modified.startLineNumber-1,Me.modified.endLineNumberExclusive-1));U.push(ce)}}if(M)break;v.setResponse(D);for(let ie of U){if(x.trace(`extracting edit #${J}: ${ie.toString()}`),!Ae){Ae=!0;let xe=this.determineArtificialDelayMs(g,x,y);if(xe&&(await vo(xe),x.trace(`Artificial delay of ${xe} ms completed`),_.isCancellationRequested))return new Gr.GotCancelled("afterArtificialDelay")}yield{edit:ie,isFromCursorJump:Y,window:c,originalWindow:w,targetDocument:E},J++}}return M?CGt(M):new Gr.NoSuggestions(e.documentBeforeEdits,c)}catch(G){return v.setError(G),new Gr.Unexpected(jr.fromUnknown(G))}}async*doGetNextEditsWithCursorJump(e,n,r,o,a,s,c,l,u,d){let p=new Gr.NoSuggestions(e.documentBeforeEdits,r),m=this.nextCursorPredictor.determineEnablement(n.supportsNextCursorLinePrediction);if(m===void 0||d instanceof bV.Retrying)return p;if(_Gt(e))return s.trace("Skipping cursor prediction: user typed during request"),new Gr.GotCancelled("beforeNextCursorPredictionFetchUserTyped");let A=await this.nextCursorPredictor.predictNextCursorPosition(o,s,u,l);if(l.isCancellationRequested)return new Gr.GotCancelled("afterNextCursorPredictionFetch");if(_Gt(e))return s.trace("Skipping cursor prediction: user typed during prediction fetch"),new Gr.GotCancelled("afterNextCursorPredictionFetchUserTyped");if(A.isError())return s.trace(`Predicted next cursor line error: ${A.err.message}`),u.setNextCursorLineError(A.err.message),p;let f=A.val;if(f.kind==="differentFile")return yield*this.handleCrossFilePrediction(f,m,e,r,o,a,s,c,l,u);let g=f.lineNumber,h=g-o.currentDocument.cursorLineOffset;if(u.setNextCursorLineDistance(h),u.setNextCursorIsCrossFile(!1),s.trace(`Predicted next cursor line: ${g}`),g>=o.currentDocument.lines.length)return s.trace("Predicted next cursor line error: exceedsDocumentLines"),u.setNextCursorLineError("exceedsDocumentLines"),p;if(o.editWindowLinesRange.contains(g))return s.trace("Predicted next cursor line error: withinEditWindow"),u.setNextCursorLineError("withinEditWindow"),p;let y=g+1,v=o.activeDoc.documentAfterEditsLines.at(g),_=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsNextCursorPredictionCursorPlacement,this.expService),w=ub.getNextCursorColumn(v,_);switch(m){case"jump":{let x=new Sr(y,w);return new Gr.NoSuggestions(e.documentBeforeEdits,r,x)}case"onlyWithEdit":return yield*this.doGetNextEditWithSelection(e,new zt(y,w,y,w),a,s,c,l,u,new bV.Retrying("cursorJump"),r);default:ai(m)}}async*handleCrossFilePrediction(e,n,r,o,a,s,c,l,u,d){let p=a.activeDoc.workspaceRoot;if(!p&&!td(e.filePath))return c.trace("Predicted cross-file cursor jump error: noWorkspaceRoot"),d.setNextCursorLineError("crossFile:noWorkspaceRoot"),new Gr.NoSuggestions(r.documentBeforeEdits,o);let m=td(e.filePath)?K.file(e.filePath):K.joinPath(p,e.filePath),A=hy.create(m.toString()),f=e.lineNumber+1,g=new Sr(f,1);switch(d.setNextCursorIsCrossFile(!0),c.trace(`Predicted cross-file cursor jump: ${e.filePath}:${e.lineNumber}`),n){case"jump":return new Gr.NoSuggestions(r.documentBeforeEdits,o,g,A);case"onlyWithEdit":{let h;try{h=await this.workspaceService.openTextDocument(m)}catch(w){return c.trace(`Failed to open target file for cross-file edit: ${jr.fromUnknown(w).message}`),d.setNextCursorLineError("crossFile:failedToOpenFile"),new Gr.NoSuggestions(r.documentBeforeEdits,o,g,A)}if(u.isCancellationRequested)return new Gr.GotCancelled("afterCrossFileOpenTextDocument");if(_Gt(r))return c.trace("Skipping cross-file edit: user typed during openTextDocument"),new Gr.GotCancelled("afterCrossFileOpenTextDocumentUserTyped");let y=new hl(h.getText()),v=new fV(A,a.activeDoc.workspaceRoot,k6.create(h.languageId),y.getLines(),Gf.empty,y,new yI(Cn,[])),_=new AV(r.headerRequestId,r.opportunityId,y,[v],0,r.xtabEditHistory,new no,r.expandedEditWindowNLines,r.isSpeculative,r.logContext,r.recordingBookmark,r.recording,r.providerRequestStartDateTime);return yield*this.doGetNextEditWithSelection(_,new zt(f,1,f,1),s,c,l,u,d,new bV.Retrying("cursorJump"),o)}default:ai(n)}}computeEditWindowLinesRange(e,n,r,o){let a=e.lines,s=e.cursorLineOffset,c;if(this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabProviderUseVaryingLinesAbove,this.expService)){c=0;for(let A=0;A<8;++A){let f=s-A;if(f<0)break;if(a[f].trim()!==""){c=A;break}}}else c=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabProviderNLinesAbove,this.expService)??SZe;let l;if(n.expandedEditWindowNLines!==void 0)r.trace(`Using expanded nLinesBelow: ${n.expandedEditWindowNLines}`),l=n.expandedEditWindowNLines;else{let m=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabProviderNLinesBelow,this.expService);m!==void 0?(r.trace(`Using overridden nLinesBelow: ${m}`),l=m):(r.trace(`Using default nLinesBelow: ${NSe}`),l=NSe)}let u=Math.max(0,s-c),d=Math.min(a.length,s+l+1),p=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabMaxMergeConflictLines,this.expService);if(p){let m=new dt(u,d),A=raa(a,m,p);if(A){let f=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabOnlyMergeConflictLines,this.expService);o.setMergeConflictExpanded(f?"only":"normal"),f?(r.trace(`Expanding edit window to include ONLY merge conflict markers: ${A.toString()}`),u=A.start,d=A.endExclusive):(r.trace(`Expanding edit window to include merge conflict markers: ${A.toString()}; edit window range [${u}, ${d})`),d=Math.max(d,A.endExclusive))}}return new dt(u,d)}determineModelConfiguration(e){if(this.forceUseDefaultModel){let a={modelName:void 0,...pA},s=this.modelService.defaultModelConfiguration();return{promptOptions:fPr(a,s),modelServiceConfig:s}}let n={modelName:void 0,promptingStrategy:void 0,currentFile:{maxTokens:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabCurrentFileMaxTokens,this.expService),includeTags:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabIncludeTagsInCurrentFile,this.expService),includeLineNumbers:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabIncludeLineNumbersInCurrentFile,this.expService),includeCursorTag:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabIncludeCursorTagInCurrentFile,this.expService),prioritizeAboveCursor:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabPrioritizeAboveCursor,this.expService)},pagedClipping:{pageSize:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabPageSize,this.expService)},recentlyViewedDocuments:{nDocuments:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabNRecentlyViewedDocuments,this.expService),maxTokens:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabRecentlyViewedDocumentsMaxTokens,this.expService),includeViewedFiles:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabIncludeViewedFiles,this.expService),includeLineNumbers:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabRecentlyViewedIncludeLineNumbers,this.expService),clippingStrategy:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabRecentlyViewedClippingStrategy,this.expService)},languageContext:Joa(e.languageId,{enabled:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabLanguageContextEnabled,this.expService),enabledLanguages:this.configService.getConfig(H.TeamInternal.InlineEditsXtabLanguageContextEnabledLanguages),enableAllContextProviders:this.configService.getExperimentBasedConfig(H.Advanced.DiagnosticsContextProvider,this.expService)||this.configService.getExperimentBasedConfig(H.Advanced.ChatSessionContextProvider,this.expService),maxTokens:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabLanguageContextMaxTokens,this.expService),traitPosition:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabLanguageContextTraitsPosition,this.expService)}),diffHistory:{nEntries:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabDiffNEntries,this.expService),maxTokens:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabDiffMaxTokens,this.expService),onlyForDocsInPrompt:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabDiffOnlyForDocsInPrompt,this.expService),useRelativePaths:this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabDiffUseRelativePaths,this.expService)},lintOptions:void 0,includePostScript:!0},r=this.modelService.selectedModelConfiguration(),o=r.promptingStrategy==="copilotNesXtab"?{...r,includeTagsInCurrentFile:!0}:r;return{promptOptions:fPr(n,o),modelServiceConfig:o}}getEndpoint(e){let n=this.configService.getConfig(H.TeamInternal.InlineEditsXtabProviderUrl),r=this.configService.getConfig(H.TeamInternal.InlineEditsXtabProviderApiKey);return n!==void 0&&r!==void 0?this.instaService.createInstance(TF,n,r,e):X2r(this.instaService,e)}getPredictedOutput(e,n,r){return this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabProviderUsePrediction,this.expService)?{type:"content",content:Xoa(e,n,r)}:void 0}async debounce(e,n,r,o,a){if(this.simulationCtx.isInSimulationTests)return;if(n instanceof bV.Retrying){r.trace("Skipping debounce on retry");return}let s=e.getDebounceTime();r.trace(`Debouncing for ${s} ms`),o.setDebounceTime(s);try{await vo(s,a)}catch{}}determineArtificialDelayMs(e,n,r){if(this.simulationCtx.isInSimulationTests)return;let o=e.getArtificialDelay();if(!(o<=0))return n.trace(`Enforcing artificial delay of ${o} ms`),r.setArtificialDelay(o),o}filterEdit(e,n){let r=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsAllowImportChanges,this.expService),o=[c=>Itt.filterEdit(e,c,r),c=>Ctt.filterEdit(e,c)];this.configService.getExperimentBasedConfig(H.InlineEditsAllowWhitespaceOnlyChanges,this.expService)||o.push(c=>wtt.filterEdit(e,c));let a=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsUndoInsertionFiltering,this.expService);if(a!==void 0){let c;switch(a){case"v1":c=ePr;break;case"v2":c=nPr;break;default:ai(a)}o.push(l=>c(e,new Gf(l))?[]:l)}let s=this.configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsFilterOutEditsWithSubstrings,this.expService);if(s){let c=s.split(",").map(l=>l.trim()).filter(l=>l.length>0);o.push(l=>Woa(l,c))}return o.reduce((c,l)=>l(c),n)}static getNextCursorColumn(e,n){let r;switch(n){case"beforeLine":r=(e?.match(/^(\s*)/)?.at(1)?.length??0)+1;break;case"afterLine":r=(e?.length??0)+1;break;default:ai(n)}return r}};ub=S([b(0,bpe),b(1,dg),b(2,j),b(3,Te),b(4,ny),b(5,be),b(6,Fe),b(7,Rm),b(8,Ga),b(9,Dt),b(10,Ttt)],ub);function Woa(t,e){return t.filter(n=>n.newLines.every(r=>e.every(o=>!r.includes(o))))}function Zoa(t){let e=t.cursorLineOffset,n=Math.max(0,e-y9t),r=Math.min(t.lines.length,e+y9t+1);return new dt(n,r)}function CGt(t){switch(t.type){case"canceled":return new Gr.GotCancelled("afterFetchCall");case"offTopic":case"filtered":case"promptFiltered":case"length":case"rateLimited":case"quotaExceeded":case"extensionBlocked":case"agent_unauthorized":case"agent_failed_dependency":case"invalid_stateful_marker":return new Gr.Uncategorized(jr.fromUnknown(t));case"badRequest":case"notFound":case"failed":case"networkError":case"unknown":return new Gr.FetchFailure(jr.fromUnknown(t))}}function fPr(t,e){return{...t,modelName:e.modelName,promptingStrategy:e.promptingStrategy,includePostScript:e.includePostScript??t.includePostScript,currentFile:{...t.currentFile,...e.currentFile,includeTags:e.includeTagsInCurrentFile},recentlyViewedDocuments:{...t.recentlyViewedDocuments,...e.recentlyViewedDocuments},lintOptions:e.lintOptions?Yoa(t.lintOptions,e.lintOptions):t.lintOptions}}var Voa={...xX,maxLineDistance:10};function Yoa(t,e){return{...t??Voa,...e}}function Koa(t){switch(t){case"xtabUnifiedModel":return cPr;case"codexv21nesUnified":case"simplifiedSystemPrompt":return uPr;case"patchBased":case"patchBased01":case"patchBased02":case"xtab275":case"xtabAggressiveness":case"xtab275Aggressiveness":case"xtab275EditIntent":case"xtab275EditIntentShort":return dPr;case"nes41miniv3":return lPr;case"copilotNesXtab":case void 0:return sPr;default:ai(t)}}function Joa(t,{enabled:e,enabledLanguages:n,maxTokens:r,enableAllContextProviders:o,traitPosition:a}){return t in n?{enabled:n[t],maxTokens:r,traitPosition:a}:o?{enabled:!0,maxTokens:r,traitPosition:a}:{enabled:e,maxTokens:r,traitPosition:a}}function Xoa(t,e,n){if(n==="unifiedWithXml")return["",...e,""].join(` `);if(n==="editWindowOnly")return e.join(` `);if(n==="editWindowWithEditIntent")return["<|edit_intent|>high<|/edit_intent|>",...e].join(` `);if(n==="editWindowWithEditIntentShort")return["H",...e].join(` `);if(n==="codeBlock")return["```",...e,"```"].join(` `);if(n==="customDiffPatch"){let r=t.workspaceRoot?.path;return`${w2(t.id,r)}:`}else ai(n)}async function eaa(t,e,n="tags"){return n==="shortName"?taa(t,e):naa(t,e)}async function taa(t,e){let n="high",r,o=t[Symbol.asyncIterator](),a=await o.next();if(a.done){r="emptyResponse",e.warn("Empty response stream, no edit_intent short name found");let u=async function*(){}();return{editIntent:n,remainingLinesStream:u,parseError:r}}let s=a.value.trim(),c=z7.fromShortName(s);if(c!==void 0){n=c,e.trace(`Parsed edit_intent short name from first line: "${s}" -> ${n}`);let u=async function*(){let d=await o.next();for(;!d.done;)yield d.value,d=await o.next()}();return{editIntent:n,remainingLinesStream:u,parseError:r}}r=`unknownIntentValue:${s}`,e.warn(`Edit intent parse error: ${r} (using Xtab275EditIntentShort prompting strategy). Defaulting to High (always show). First line was: "${s.substring(0,100)}..."`);let l=async function*(){yield a.value;let u=await o.next();for(;!u.done;)yield u.value,u=await o.next()}();return{editIntent:n,remainingLinesStream:l,parseError:r}}async function naa(t,e){let n="<|edit_intent|>",r="<|/edit_intent|>",o="high",a,s=t[Symbol.asyncIterator](),c=await s.next();if(c.done){a="emptyResponse",e.warn("Empty response stream, no edit_intent tag found");let m=async function*(){}();return{editIntent:o,remainingLinesStream:m,parseError:a}}let l=c.value,u=l.indexOf(n),d=l.indexOf(r);if(u!==-1&&d!==-1&&d>u){let m=l.substring(u+n.length,d).trim().toLowerCase();["no_edit","low","medium","high"].includes(m)||(a=`unknownIntentValue:${m}`,e.warn(`Unknown edit_intent value: "${m}", defaulting to High`)),o=z7.fromString(m),e.trace(`Parsed edit_intent from first line: "${m}" -> ${o}`);let f=l.substring(d+r.length),g=async function*(){f.trim()!==""&&(yield f);let h=await s.next();for(;!h.done;)yield h.value,h=await s.next()}();return{editIntent:o,remainingLinesStream:g,parseError:a}}u!==-1&&d===-1?a="malformedTag:startWithoutEnd":u===-1&&d!==-1?a="malformedTag:endWithoutStart":a="noTagFound",e.warn(`Edit intent parse error: ${a} (using Xtab275EditIntent prompting strategy). Defaulting to High (always show). First line was: "${l.substring(0,100)}..."`);let p=async function*(){yield l;let m=await s.next();for(;!m.done;)yield m.value,m=await s.next()}();return{editIntent:o,remainingLinesStream:p,parseError:a}}function raa(t,e,n){for(let r=e.start;r>>>>>>"))return new dt(r,o+1)}}var wGt=BX,iaa={[UAn(ub.ID)]:ub};function gPr(t,e){let n=t??wGt,r=iaa[n];if(!r)throw new Error(`Unknown next edit provider ID: ${n}`);return e.createInstance(r)}var wpe="github.copilot.debug.inlineEdit.reportFeedback",hPr="github.copilot.debug.inlineEdit.pickProvider",xpe=class extends fe{constructor(n,r,o,a){super();this._internalActionsEnabled=n;this._inlineEditsEnabled=r;this._debugRecorder=o;this._inlineEditsProviderId=a;this._register(OT.commands.registerCommand(wpe,async s=>{if(!this._inlineEditsEnabled.get())return;let c=this._internalActionsEnabled.get(),l=new xGt;if(l.appendLine("# Inline Edits Debug Info"),!c)l.appendLine(s.logContext.toMinimalLog());else{l.appendLine(s.logContext.toLogDocument());let u;{let d=s.logContext.recordingBookmark,p=this._debugRecorder.getRecentLog(d),m=!1,A;p===void 0?A=["Could not get recording to generate stest (likely because there was no corresponding workspaceRoot for this file)"]:(u=EGt(p),m=p.length!==u.length,A=["```typescript",oaa(u),"```"]);let f=m?"STest (sensitive files removed)":"STest";l.appendSection(f,A),l.appendLine("")}u!==void 0&&l.appendSection("Recording",["```json",JSON.stringify(u,void 0,2),"```"]);{let d=await saa();d&&l.appendSection("UI Repro",["```",d,"```"])}}await gGt({title:"",data:l.toString(),issueBody:`# Description Please describe the expected outcome and attach a screenshot!`,public:!c})})),this._register(OT.commands.registerCommand(hPr,async s=>{if(!this._inlineEditsEnabled.get()||!this._internalActionsEnabled.get())return;let c=await OT.window.showQuickPick(this._getAvailableProviderIds(),{placeHolder:"Select inline edits provider"});!c||c===this._inlineEditsProviderId.get()||(this._inlineEditsProviderId.set(c,void 0),!await OT.window.showWarningMessage(`Inline edits provider set to ${c}. Reloading will undo this change. Set "github.copilot.${H.TeamInternal.InlineEditsProviderId.id}": "${c}" in your settings file to make the change persistent.`,"Open settings (JSON)"))||await OT.commands.executeCommand("workbench.action.openSettingsJson",{revealSetting:{key:`github.copilot.${H.TeamInternal.InlineEditsProviderId.id}`,edit:!0}})}))}getCommands(n){let r=[];return r.push({command:{command:wpe,title:"Feedback",arguments:[{logContext:n}]},icon:new OT.ThemeIcon("feedback")}),this._internalActionsEnabled.get()&&this._getAvailableProviderIds().length>1&&r.push({command:{command:hPr,title:`Model: ${this._inlineEditsProviderId.get()??wGt}`},icon:new OT.ThemeIcon("wand")}),r}_getAvailableProviderIds(){let n=[ub.ID],r=this._inlineEditsProviderId.get();return r&&!n.includes(r)&&n.push(r),n}};function oaa(t){return gRe.str` stest({ description: 'MyTest', language: 'typescript' }, collection => tester.runAndScoreTestFromRecording(collection, loadFile({ fileName: "MyTest/recording.w.json", fileContents: ${JSON.stringify({log:t})}, }) )); `.toString()}var yRe={exactNames:new Set(["settings.json","keybindings.json","launch.json",".npmrc",".netrc",".htpasswd",".gitconfig","credentials","credentials.json","secrets.json","config.json","password.txt","passwords.txt","password.json","passwords.json","token.json","tokens.json","token.txt","tokens.txt"]),extensions:[".env",".pem",".key",".p12",".pfx"],sensitiveDotfilePrefixes:[".env"],sensitivePathSegments:[".aws",".ssh",".gnupg",".docker"],patterns:["id_rsa","id_ed25519","id_ecdsa","id_dsa",".secret","_secret"]};function aaa(t){let e=t.replace(/\\/g,"/"),n=e.split("/"),o=dr(e).toLowerCase(),a=_O(e).toLowerCase();if(yRe.exactNames.has(o))return!0;for(let s of yRe.extensions)if(a===s||o.endsWith(s))return!0;for(let s of yRe.sensitiveDotfilePrefixes)if(o===s||o.startsWith(s+"."))return!0;for(let s of yRe.sensitivePathSegments)if(n.some(c=>c===s))return!0;for(let s of yRe.patterns)if(o.includes(s))return!0;return!1}function EGt(t){let e=new Set,n=[];for(let r of t)switch(r.kind){case"meta":case"header":case"applicationStart":case"event":case"bookmark":n.push(r);break;case"documentEncountered":{aaa(r.relativePath)?e.add(r.id):n.push(r);break}case"setContent":case"storeContent":case"restoreContent":case"opened":case"closed":case"changed":case"focused":case"selectionChanged":case"documentEvent":{e.has(r.id)||n.push(r);break}default:ai(r)}return n}async function saa(){return(await OT.commands.executeCommand("editor.action.inlineSuggest.dev.extractRepro"))?.reproCase}var xGt=class{constructor(){this._lines=[]}appendLine(e){this._lines.push(e)}toString(){return this._lines.join(` `)}appendSection(e,n){this._lines.push(`
${e}`,"",...n,"
")}};var bPr=O(Lt()),Wp=require("vscode");var Ltt=class t{constructor(e,n,r,o=t.DEFAULT_REPO_CONFIG){this._authenticationService=n;this._fetcherService=r;this._repoConfig=o;this._logger=e.createSubLogger(["NES","FeedbackSubmitter"])}static{this.DEFAULT_REPO_CONFIG={owner:"microsoft",name:"copilot-nes-feedback",apiUrl:"https://api.github.com"}}async submitFromFolder(e){try{let n=await this._collectFeedbackFiles(e);if(n.length===0){Wp.window.showInformationMessage('No NES feedback captures found to submit. Use "Copilot: Record Expected Edit (NES)" to capture feedback first.');return}let r=await this._readFeedbackFiles(n,e);if(r.length===0){Wp.window.showErrorMessage("Failed to read feedback files.");return}let o=this._extractDocumentPathsFromRecordings(r),a=this._extractNextUserEditPaths(r),s=await this._showFilePreviewAndConfirm(o,a);if(!s)return;let c=this._filterRecordingsByExcludedPaths(r,s,a);if(c.length===0){Wp.window.showInformationMessage("No files to submit after filtering.");return}let l=await this._authenticationService.getGitHubSession("permissive",{createIfNone:{detail:bPr.t("Sign in to GitHub to submit feedback.")}});if(!l){Wp.window.showErrorMessage("GitHub authentication required with repo access. Please sign in to GitHub.");return}let u=await this._uploadToPrivateRepo(c,l.accessToken);u&&(await this._showSuccessDialog(u),this._logger.info(`Uploaded feedback to private repo: ${u}`))}catch(n){this._logger.error(n instanceof Error?n:String(n),"Error submitting feedback"),Wp.window.showErrorMessage(`Failed to submit NES feedback: ${n instanceof Error?n.message:"Unknown error"}`)}}async _showSuccessDialog(e){let n=await Wp.window.showInformationMessage("Feedback submitted! A pull request has been created.","Open Pull Request","Copy Link");n==="Open Pull Request"?await Wp.env.openExternal(Wp.Uri.parse(e)):n==="Copy Link"&&(await Wp.env.clipboard.writeText(e),Wp.window.showInformationMessage("Pull request URL copied to clipboard!"))}async _collectFeedbackFiles(e){try{return(await Wp.workspace.fs.readDirectory(e)).filter(([r,o])=>o===1&&r.endsWith(".json")).map(([r])=>Wp.Uri.joinPath(e,r))}catch{return[]}}async _readFeedbackFiles(e,n){let r=[];for(let o of e)try{let a=await Wp.workspace.fs.readFile(o),s=new TextDecoder().decode(a),c=o.path.replace(n.path+"/","");r.push({name:c,content:s})}catch(a){this._logger.warn(`Failed to read file: ${o.fsPath}: ${a}`)}return r}_extractDocumentPathsFromRecordings(e){let n=new Set;for(let r of e)if(r.name.endsWith(".recording.w.json"))try{let o=JSON.parse(r.content);if(o.log)for(let a of o.log)a.kind==="documentEncountered"&&n.add(a.relativePath)}catch{}return Array.from(n).sort()}_extractNextUserEditPaths(e){let n=new Map;for(let r of e)if(r.name.endsWith(".recording.w.json"))try{let o=JSON.parse(r.content);n.set(r.name,o.nextUserEdit?.relativePath)}catch{n.set(r.name,void 0)}return n}_countIncludedRecordings(e,n){let r=0;for(let[,o]of e)o!==void 0&&!n.has(o)&&r++;return r}_createFilesSummary(e,n=5){let r=[...e].sort();return r.length<=n?r.join(", "):`${r.slice(0,n).join(", ")}, and ${r.length-n} more...`}async _showFilePreviewAndConfirm(e,n){let r=this._countIncludedRecordings(n,new Set);if(e.length===0)return await Wp.window.showInformationMessage(`Found ${r} feedback recording(s). This will upload your NES feedback to the internal feedback repository. Only team members with access to the private repo can view this data.`,{modal:!0},"Submit Feedback")==="Submit Feedback"?[]:void 0;let o=this._createFilesSummary(e),a=await Wp.window.showInformationMessage(`Found ${r} recording(s) containing ${e.length} file(s): ${o} This will upload your NES feedback to the internal feedback repository.`,{modal:!0},"Submit Feedback","Select Files to Include");if(a==="Submit Feedback")return[];if(a==="Select Files to Include")return this._showFileSelectionQuickPick(e,n)}async _showFileSelectionQuickPick(e,n){let r=new Set(e);for(;;){let o=e.map(f=>({label:f,description:"",picked:r.has(f)})),a=await Wp.window.showQuickPick(o,{title:"Select files to include in the upload",placeHolder:"Deselect files you want to exclude, then press Enter to confirm",canPickMany:!0,ignoreFocusOut:!0});if(!a)return;let s=new Set(a.map(f=>f.label)),c=e.filter(f=>!s.has(f));if(s.size===0){Wp.window.showInformationMessage("No files selected. Upload cancelled.");return}let l=new Set(c),u=this._countIncludedRecordings(n,l);if(u===0){if(await Wp.window.showInformationMessage("No recordings would be included with this selection (all nextUserEdit files are excluded).",{modal:!0},"Edit Selection")==="Edit Selection"){r=s;continue}return}let d=Array.from(s),p=this._createFilesSummary(d),m=c.length>0?`Submit ${u} recording(s) with ${s.size} file(s)? (${c.length} excluded) Included: ${p}`:`Submit ${u} recording(s) containing ${s.size} file(s)? ${p}`,A=await Wp.window.showInformationMessage(m,{modal:!0},"Submit Feedback","Edit Selection");if(A==="Submit Feedback")return c;if(A==="Edit Selection"){r=s;continue}return}}_filterRecordingsByExcludedPaths(e,n,r){if(n.length===0)return e;let o=new Set(n),a=[],s=new Set;for(let l of e){if(!l.name.endsWith(".recording.w.json"))continue;let u=r.get(l.name);if(u===void 0||o.has(u)){let d=l.name.replace(".recording.w.json","");s.add(d),this._logger.debug(`Skipping recording ${l.name}: nextUserEdit excluded or missing`);continue}try{let d=this._filterSingleRecording(l,o);a.push(d)}catch{a.push(l)}}let c=[...a];for(let l of e)if(l.name.endsWith(".metadata.json")){let u=l.name.replace(".metadata.json","");s.has(u)?this._logger.debug(`Skipping metadata ${l.name}: associated recording was skipped`):c.push(l)}return c}_filterSingleRecording(e,n){let r=JSON.parse(e.content);if(!r.log)return e;let o=new Set;for(let c of r.log)c.kind==="documentEncountered"&&n.has(c.relativePath)&&o.add(c.id);let a=r.log.filter(c=>c.kind==="header"?!0:"id"in c&&typeof c.id=="number"?!o.has(c.id):!0),s={...r,log:a};return{name:e.name,content:JSON.stringify(s,null,2)}}async _uploadToPrivateRepo(e,n){let r=new Date().toISOString().replace(/[:.]/g,"-").slice(0,-5),o=`feedback/${r}`,s=(await this._getCurrentUser(n))?.login??"anonymous",c=`feedback/${s}/${r}`,l=await this._getBranchSha(n,"main");if(!l)throw new Error("Failed to get main branch SHA");await this._createBranch(n,c,l);for(let d of e){let p=`${o}/${d.name}`;await this._createFileInRepo(p,d.content,n,s,r,c)}return await this._createPullRequest(n,c,s,r,e.length)}async _getBranchSha(e,n){try{let r=await this._fetcherService.fetch(`${this._repoConfig.apiUrl}/repos/${this._repoConfig.owner}/${this._repoConfig.name}/git/ref/heads/${n}`,{method:"GET",callSite:"nes-feedback-branch-sha",headers:{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":this._fetcherService.getUserAgentLibrary()}});if(r.ok)return(await r.json()).object.sha}catch(r){this._logger.error(r instanceof Error?r:String(r),"Failed to get branch SHA")}}async _createBranch(e,n,r){let o=`${this._repoConfig.apiUrl}/repos/${this._repoConfig.owner}/${this._repoConfig.name}/git/refs`,a={ref:`refs/heads/${n}`,sha:r},s=await fetch(o,{method:"POST",headers:{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","Content-Type":"application/json","X-GitHub-Api-Version":"2022-11-28","User-Agent":this._fetcherService.getUserAgentLibrary()},body:JSON.stringify(a)});if(!s.ok){let c=await s.text();throw this._logger.error(`Failed to create branch ${n}: ${s.status} ${s.statusText} - ${c}`),new Error(`Failed to create branch: ${s.statusText}`)}}async _createPullRequest(e,n,r,o,a){let s=`${this._repoConfig.apiUrl}/repos/${this._repoConfig.owner}/${this._repoConfig.name}/pulls`,c={title:`NES Feedback from ${r} (${o})`,head:n,base:"main",body:`## NES Feedback Submission - **Submitted by:** ${r} - **Timestamp:** ${o} - **Files:** ${a} file(s) This feedback was automatically submitted via the "Copilot: Submit NES Feedback" command.`},l=await fetch(s,{method:"POST",headers:{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","Content-Type":"application/json","X-GitHub-Api-Version":"2022-11-28","User-Agent":this._fetcherService.getUserAgentLibrary()},body:JSON.stringify(c)});if(!l.ok){let d=await l.text();throw this._logger.error(`Failed to create pull request: ${l.status} ${l.statusText} - ${d}`),new Error(`Failed to create pull request: ${l.statusText}`)}return(await l.json()).html_url}async _createFileInRepo(e,n,r,o,a,s){let c=`${this._repoConfig.apiUrl}/repos/${this._repoConfig.owner}/${this._repoConfig.name}/contents/${e}`,l={message:`NES feedback from ${o} at ${a}`,content:zX(Pl.fromString(n)),branch:s},u=await fetch(c,{method:"PUT",headers:{Authorization:`Bearer ${r}`,Accept:"application/vnd.github+json","Content-Type":"application/json","X-GitHub-Api-Version":"2022-11-28","User-Agent":this._fetcherService.getUserAgentLibrary()},body:JSON.stringify(l)});if(!u.ok){let d=await u.text();throw this._logger.error(`Failed to create file ${e}: ${u.status} ${u.statusText} - ${d}`),new Error(`Failed to upload file: ${u.statusText}`)}}async _getCurrentUser(e){try{let n=await this._fetcherService.fetch(`${this._repoConfig.apiUrl}/user`,{method:"GET",callSite:"nes-feedback-current-user",headers:{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":this._fetcherService.getUserAgentLibrary()}});if(n.ok)return await n.json()}catch(n){this._logger.warn(`Failed to get current user: ${n}`)}}};var IGt="copilotNesCaptureMode",UT=class extends fe{constructor(n,r,o,a,s){super();this._debugRecorder=n;this._configurationService=r;this._logService=o;this._authenticationService=a;this._fetcherService=s;this._logger=this._logService.createSubLogger(["NES","Capture"]),this._feedbackSubmitter=new Ltt(this._logService,this._authenticationService,this._fetcherService)}static{this.CAPTURE_FOLDER=".copilot/nes-feedback"}get isEnabled(){return this._configurationService.getConfig(H.TeamInternal.RecordExpectedEditEnabled)??!1}get captureOnReject(){return this._configurationService.getConfig(H.TeamInternal.RecordExpectedEditOnReject)??!0}get isCaptureActive(){return this._state?.active??!1}async startCapture(n,r){if(!this.isEnabled){this._logger.trace("Feature disabled, ignoring start request");return}if(this._state?.active){this._logger.trace("Capture already active, ignoring start request");return}let o=Vl.window.activeTextEditor;if(!o){this._logger.trace("No active editor, cannot start capture");return}let a=this._debugRecorder.createBookmark(),s=hy.create(o.document.uri.toString());this._state={active:!0,startBookmark:a,startDocumentId:s,startTime:Date.now(),trigger:n,originalNesMetadata:r},await Vl.commands.executeCommand("setContext",IGt,!0),this._createStatusBarItem(),this._logger.info(`Started capture session: trigger=${n}, documentUri=${o.document.uri.toString()}, hasMetadata=${!!r}`)}async confirmCapture(){if(!this._state?.active){this._logger.trace("No active capture to confirm");return}try{let n=this._debugRecorder.createBookmark();this._state.endBookmark=n;let r=this._debugRecorder.getRecentLog(this._state.startBookmark),o=this._debugRecorder.getRecentLog(n);if(!r||!o){this._logger.warn("Failed to retrieve logs from debug recorder"),await this.abortCapture();return}let a=this._extractEditsBetweenBookmarks(r,o,this._state.startDocumentId),c={log:EGt(this._filterLogForNonInteractedDocuments(r)),nextUserEdit:a},l=a?.edit&&typeof a.edit=="object"&&"__marker__"in a.edit&&a.edit.__marker__==="NO_EDIT_EXPECTED";await this._saveRecording(c,this._state,l);let u=Date.now()-this._state.startTime;this._logger.info(`Capture confirmed and saved: durationMs=${u}, hasEdit=${!l}, noEditExpected=${l}, trigger=${this._state.trigger}`),l?Vl.window.showInformationMessage("Captured: No edit expected (this is valid feedback!)."):Vl.window.showInformationMessage("Expected edit captured successfully!")}catch(n){this._logger.error(n instanceof Error?n:String(n),"Error confirming capture"),Vl.window.showErrorMessage("Failed to save expected edit capture")}finally{await this.cleanup()}}async abortCapture(){this._state?.active&&(this._logger.info("Capture aborted"),await this.cleanup())}async cleanup(){this._state=void 0,await Vl.commands.executeCommand("setContext",IGt,!1),this._disposeStatusBarItem()}_createStatusBarItem(){this._statusBarItem&&this._statusBarItem.dispose(),this._statusBarAnimationInterval&&clearInterval(this._statusBarAnimationInterval),this._statusBarItem=Vl.window.createStatusBarItem(Vl.StatusBarAlignment.Left,1e4),this._statusBarItem.backgroundColor=new Vl.ThemeColor("statusBarItem.errorBackground");let n=process.platform==="darwin"?"Cmd":"Ctrl",r=new Vl.MarkdownString;r.appendMarkdown(`### \u{1F534} NES CAPTURE MODE ACTIVE `),r.appendMarkdown(`Type your expected edit, then: `),r.appendMarkdown(`- **${n}+Enter** \u2014 Save your edits `),r.appendMarkdown(`- **${n}+Enter (empty)** \u2014 No edit expected `),r.appendMarkdown(`- **Esc** \u2014 Cancel capture `),r.isTrusted=!0,this._statusBarItem.tooltip=r;let o=["$(record)","$(alert)","$(warning)","$(zap)"],a=0,s=!1,c=()=>{if(!this._statusBarItem)return;let l=o[a];s?this._statusBarItem.text=`${l} NES CAPTURE MODE: ${n}+Enter=Save, Esc=Cancel ${l}`:this._statusBarItem.text=`${l} NES CAPTURE MODE ACTIVE ${l}`,a=(a+1)%o.length,s=!s};c(),this._statusBarAnimationInterval=setInterval(c,1e3),this._statusBarItem.show()}_disposeStatusBarItem(){this._statusBarAnimationInterval&&(clearInterval(this._statusBarAnimationInterval),this._statusBarAnimationInterval=void 0),this._statusBarItem&&(this._statusBarItem.dispose(),this._statusBarItem=void 0)}_extractEditsBetweenBookmarks(n,r,o){let a,s;for(let d of n)if(d.kind==="documentEncountered"){let p=d.relativePath;if(p&&this._pathMatchesDocument(p,o)){a=d.id,s=d.relativePath;break}}if(a===void 0||!s){this._logger.trace("Could not find document in log");return}let l=r.slice(n.length).filter(d=>d.kind==="changed"&&d.id===a);if(l.length===0)return this._logger.trace("No edits found between bookmarks - marking as NO_EDIT_EXPECTED"),{relativePath:s,edit:{__marker__:"NO_EDIT_EXPECTED"}};let u=[];for(let d of l)d.kind==="changed"&&(u=this._composeSerializedEdits(u,d.edit));return{relativePath:s,edit:u}}_pathMatchesDocument(n,r){let o=r.path;return n.endsWith(o)||o.endsWith(n)}_composeSerializedEdits(n,r){let o=oGt(n),a=oGt(r),s=o.compose(a);return ltt(s)}_filterLogForNonInteractedDocuments(n){let r=new Set;for(let a of n)(a.kind==="selectionChanged"||a.kind==="changed")&&"id"in a&&typeof a.id=="number"&&r.add(a.id);let o=new Set;for(let a of n)a.kind==="documentEncountered"&&(r.has(a.id)||(o.add(a.id),this._logger.trace(`Filtering out background document: ${a.relativePath}`)));return n.filter(a=>a.kind==="header"?!0:"id"in a&&typeof a.id=="number"?!o.has(a.id):!0)}async _saveRecording(n,r,o=!1){let a=Vl.workspace.workspaceFolders?.[0];if(!a)throw new Error("No workspace folder found");let s=Vl.Uri.joinPath(a.uri,UT.CAPTURE_FOLDER);try{await Vl.workspace.fs.createDirectory(s)}catch{}let l=`capture-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,-5)}.recording.w.json`,u=Vl.Uri.joinPath(s,l),d=JSON.stringify(n,null,2);await Vl.workspace.fs.writeFile(u,Buffer.from(d,"utf8")),await this._saveMetadata(s,l,r,o),this._logger.info(`Saved recording: path=${u.fsPath}, noEditExpected=${o}`)}async _saveMetadata(n,r,o,a=!1){let s=r.replace(".recording.w.json",".metadata.json"),c=Vl.Uri.joinPath(n,s),l={captureTimestamp:new Date(o.startTime).toISOString(),trigger:o.trigger,durationMs:Date.now()-o.startTime,noEditExpected:a,originalNesContext:o.originalNesMetadata},u=JSON.stringify(l,null,2);await Vl.workspace.fs.writeFile(c,Buffer.from(u,"utf8"))}async submitCaptures(){let n=Vl.workspace.workspaceFolders?.[0];if(!n){Vl.window.showErrorMessage("No workspace folder found");return}let r=Vl.Uri.joinPath(n.uri,UT.CAPTURE_FOLDER);await this._feedbackSubmitter.submitFromFolder(r)}dispose(){this._state?.active&&(this._state=void 0,Vl.commands.executeCommand("setContext",IGt,!1)),this._disposeStatusBarItem(),super.dispose()}};UT=S([b(1,be),b(2,Z),b(3,at),b(4,nr)],UT);var Ott=O(require("fs/promises")),Utt=require("fs/promises");dn();En();Ue();sr();var lU=require("fs"),lP=require("fs/promises");var Ftt=require("fs/promises");var Mtt=class t{constructor(e,n,r=4){this.filePath=e;this.indent=r;this._writeQueue=new Ix;this._value=n}static async readOrCreate(e,n,r=4){let o=n,a=await kGt(e);if(a!==void 0){let s=SGt(a);s!==void 0&&(o=s)}return new t(e,o,r)}get value(){return F7(this._value)}async setValue(e){this._value=e,this._writeQueue.clearPending(),await this._writeQueue.scheduleSkipIfCleared(()=>this._write())}async _write(){await(0,Ftt.writeFile)(this.filePath,JSON.stringify(this._value,null,this.indent),{encoding:"utf8"})}};async function kGt(t){try{return await(0,Ftt.readFile)(t,"utf8")}catch(e){if(e.code==="ENOENT")return;throw e}}function SGt(t){try{return JSON.parse(t)}catch(e){if(e instanceof SyntaxError){console.error(e);return}throw e}}En();var Epe=class t{constructor(e,n,r=!1){this.filePath=e;this._exists=r;this._dirty=!1;this._value=n}static async loadOrCreate(e,n){let r=n,o=await kGt(e);if(o!==void 0){let a=SGt(o);a!==void 0&&(r=a)}return new t(e,r,o!==void 0)}get value(){return this._value}setValue(e){this._value=e,this._dirty=!0}async flushAsync(){if(!this._dirty)return;let e=JSON.stringify(this._value,null,4),n=this.filePath+".new";await(0,lP.writeFile)(n,e,{encoding:"utf8"}),this._exists&&await(0,lP.unlink)(this.filePath),await(0,lP.rename)(n,this.filePath),this._exists=!0,this._dirty=!1}flushSync(){if(!this._dirty)return;let e=JSON.stringify(this._value,null,4),n=this.filePath+".new";(0,lU.writeFileSync)(n,e,{encoding:"utf8"}),this._exists&&(0,lU.unlinkSync)(this.filePath),(0,lU.renameSync)(n,this.filePath),this._exists=!0,this._dirty=!1}},Ipe=class{constructor(e){this.filePath=e;this._lock=!1;this._newEntries=[]}appendEntry(e){this._newEntries.push(JSON.stringify(e))}_getTextAndClear(){let e=this._newEntries.map(n=>` `+n).join("");return this._newEntries.length=0,e}async flushAsync(){if(this._newEntries.length!==0){if(this._lock)throw new gn("Locked!");this._lock=!0;try{let e=this._getTextAndClear();if(e==="")return;await(0,lP.appendFile)(this.filePath,e,{encoding:"utf8"})}finally{this._lock=!1}}}flushSync(){if(this._newEntries.length===0)return;if(this._lock)throw new gn("Locked!");let e=this._getTextAndClear();e!==""&&(0,lU.appendFileSync)(this.filePath,e,{encoding:"utf8"})}};async function Qtt(t){try{return(await(0,lP.stat)(t)).size}catch{return}}var BF=class t extends fe{constructor(n,r){super();this.recordingDirPath=n;this._inlineEditLogger=r;this._queue=new Ix,this._shownSuggestions=this._register(new dA),this.logFilePath=zr(this.recordingDirPath,`current${t.fileSuffix}`),this._impl=TGt.create(this.recordingDirPath,this.logFilePath),this._impl.then(o=>{this._store.isDisposed?o.dispose():this._register(o)})}static{this.fileSuffix=".logContext.jsonl"}static async cleanupOldRecordings(n){let r=await Ott.readdir(n).catch(()=>[]);return Promise.all(r.filter(o=>o.endsWith(t.fileSuffix)).map(o=>{let a=zr(n,o);return Ott.unlink(a).catch(()=>{})}))}handleShown(n){let r=n.requestId,o=setTimeout(()=>{let a=this._inlineEditLogger.getRequestById(r);a&&this.writeLog(a),this._shownSuggestions.deleteAndDispose(r)},1e4);this._shownSuggestions.set(r,{timeout:o,dispose:()=>clearTimeout(o)})}handleAcceptance(n){let r=n.requestId;this._shownSuggestions.deleteAndDispose(r);let o=this._inlineEditLogger.getRequestById(r);o&&(o.setAccepted(!0),this.writeLog(o))}handleRejection(n){let r=n.requestId;this._shownSuggestions.deleteAndDispose(r);let o=this._inlineEditLogger.getRequestById(r);o&&(o.setAccepted(!1),this.writeLog(o))}writeLog(n){this._queue.schedule(async()=>{let r=await this._impl;await n.allPromisesResolved(),r.appendEntry(n)})}},TGt=class t extends fe{constructor(n,r){super();this._state=n;this._log=r;this._writeQueue=new Ix;this._loggedRequests=new Set;this._loggedQueue=[];this._logBufferSize=20;this._register(Fn(()=>{this._forceFlush()}))}static async create(n,r){await(0,Utt.mkdir)(n,{recursive:!0});let o=1,a=await Epe.loadOrCreate(zr(n,"state.json"),{version:o,logCount:0}),s=!1;if((!("version"in a.value)||a.value.version!==o)&&(s=!0,a.setValue({version:o,logCount:0}),await a.flushAsync()),!("version"in a.value))throw new gn;let c=await Qtt(r),l=c!==void 0,d=20*(1024*1024);if(c!==void 0&&c>d&&(s=!0),l&&s){let f=function(g){return g.toISOString().replace(/:/g,"-")};var m=f;let A=new Date;await(0,Utt.rename)(r,zr(n,`${a.value.logCount}.${f(A)}${BF.fileSuffix}`)),a.setValue({version:o,logCount:a.value.logCount+1}),await a.flushAsync(),l=!1}let p=new Ipe(r);return new t(a,p)}_scheduleFlush(){this._writeQueue.clearPending(),this._writeQueue.schedule(async()=>{await vo(10*1e3),await this._state.flushAsync(),await this._log.flushAsync()})}_forceFlush(){this._writeQueue.clearPending(),this._state.flushSync(),this._log.flushSync()}shouldLog(n){if(this._loggedRequests.has(n.requestId))return!1;if(this._loggedRequests.size>=this._logBufferSize){let r=this._loggedQueue.shift();r!==void 0&&this._loggedRequests.delete(r)}return!0}appendEntry(n){this.shouldLog(n)&&(this._loggedRequests.add(n.requestId),this._loggedQueue.push(n.requestId),this._log.appendEntry(n.toJSON()),this._scheduleFlush())}};var Ktt=O(require("vscode"));dn();En();Ue();Be();var PPr=require("path");Je();var qtt=me("ISnippyService");Xa();dn();IO();En();Ue();Cp();pa();wr();Xa();var kpe=class{constructor(e,n,r){this.changes=e;this.moves=n;this.hitTimeout=r}},Spe=class t{constructor(e,n){this.lineRangeMapping=e,this.changes=n}flip(){return new t(this.lineRangeMapping.flip(),this.changes.map(e=>e.flip()))}};wr();Xa();En();var Ik=class t{static inverse(e,n,r){let o=[],a=1,s=1;for(let l of e){let u=new t(new mi(a,l.original.startLineNumber),new mi(s,l.modified.startLineNumber));u.modified.isEmpty||o.push(u),a=l.original.endLineNumberExclusive,s=l.modified.endLineNumberExclusive}let c=new t(new mi(a,n+1),new mi(s,r+1));return c.modified.isEmpty||o.push(c),o}static clip(e,n,r){let o=[];for(let a of e){let s=a.original.intersect(n),c=a.modified.intersect(r);s&&!s.isEmpty&&c&&!c.isEmpty&&o.push(new t(s,c))}return o}constructor(e,n){this.original=e,this.modified=n}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new t(this.modified,this.original)}join(e){return new t(this.original.join(e.original),this.modified.join(e.modified))}get changedLineCount(){return Math.max(this.original.length,this.modified.length)}toRangeMapping(){let e=this.original.toInclusiveRange(),n=this.modified.toInclusiveRange();if(e&&n)return new bC(e,n);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new gn("not a valid diff");return new bC(new zt(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new zt(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new bC(new zt(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new zt(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(e,n){if(yPr(this.original.endLineNumberExclusive,e)&&yPr(this.modified.endLineNumberExclusive,n))return new bC(new zt(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new zt(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new bC(zt.fromPositions(new Sr(this.original.startLineNumber,1),Tpe(new Sr(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),zt.fromPositions(new Sr(this.modified.startLineNumber,1),Tpe(new Sr(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),n)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new bC(zt.fromPositions(Tpe(new Sr(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),e),Tpe(new Sr(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),zt.fromPositions(Tpe(new Sr(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),n),Tpe(new Sr(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),n)));throw new gn}};function Tpe(t,e){if(t.lineNumber<1)return new Sr(1,1);if(t.lineNumber>e.length)return new Sr(e.length,e[e.length-1].length+1);let n=e[t.lineNumber-1];return t.column>n.length+1?new Sr(t.lineNumber,n.length+1):t}function yPr(t,e){return t>=1&&t<=e.length}var uU=class t extends Ik{static toTextEdit(e,n){let r=[];for(let o of e)for(let a of o.innerChanges??[]){let s=a.toTextEdit(n);r.push(s)}return new s0(r)}static fromRangeMappings(e){let n=mi.join(e.map(o=>mi.fromRangeInclusive(o.originalRange))),r=mi.join(e.map(o=>mi.fromRangeInclusive(o.modifiedRange)));return new t(n,r,e)}constructor(e,n,r){super(e,n),this.innerChanges=r}flip(){return new t(this.modified,this.original,this.innerChanges?.map(e=>e.flip()))}withInnerChangesFromLineRanges(){return new t(this.original,this.modified,[this.toRangeMapping()])}},bC=class t{static fromEdit(e){let n=e.getNewRanges();return e.replacements.map((o,a)=>new t(o.range,n[a]))}static fromEditJoin(e){let n=e.getNewRanges(),r=e.replacements.map((o,a)=>new t(o.range,n[a]));return t.join(r)}static join(e){if(e.length===0)throw new gn("Cannot join an empty list of range mappings");let n=e[0];for(let r=1;r${this.modifiedRange.toString()}}`}flip(){return new t(this.modifiedRange,this.originalRange)}toTextEdit(e){let n=e.getValueOfRange(this.modifiedRange);return new tc(this.originalRange,n)}join(e){return new t(this.originalRange.plusRange(e.originalRange),this.modifiedRange.plusRange(e.modifiedRange))}};function BGt(t,e,n,r=!1){let o=[];for(let a of CO(t.map(s=>caa(s,e,n)),(s,c)=>s.original.intersectsOrTouches(c.original)||s.modified.intersectsOrTouches(c.modified))){let s=a[0],c=a[a.length-1];o.push(new uU(s.original.join(c.original),s.modified.join(c.modified),a.map(l=>l.innerChanges[0])))}return Xy(()=>!r&&o.length>0&&(o[0].modified.startLineNumber!==o[0].original.startLineNumber||n.length.lineCount-o[o.length-1].modified.endLineNumberExclusive!==e.length.lineCount-o[o.length-1].original.endLineNumberExclusive)?!1:HJ(o,(a,s)=>s.original.startLineNumber-a.original.endLineNumberExclusive===s.modified.startLineNumber-a.modified.endLineNumberExclusive&&a.original.endLineNumberExclusive=n.getLineLength(t.modifiedRange.startLineNumber)&&t.originalRange.startColumn-1>=e.getLineLength(t.originalRange.startLineNumber)&&t.originalRange.startLineNumber<=t.originalRange.endLineNumber+o&&t.modifiedRange.startLineNumber<=t.modifiedRange.endLineNumber+o&&(r=1);let a=new mi(t.originalRange.startLineNumber+r,t.originalRange.endLineNumber+1+o),s=new mi(t.modifiedRange.startLineNumber+r,t.modifiedRange.endLineNumber+1+o);return new uU(a,s,[t])}wr();En();var dP=class t{constructor(e,n){this.diffs=e;this.hitTimeout=n}static trivial(e,n){return new t([new vu(dt.ofLength(e.length),dt.ofLength(n.length))],!1)}static trivialTimedOut(e,n){return new t([new vu(dt.ofLength(e.length),dt.ofLength(n.length))],!0)}},vu=class t{constructor(e,n){this.seq1Range=e;this.seq2Range=n}static invert(e,n){let r=[];return omn(e,(o,a)=>{r.push(t.fromOffsetPairs(o?o.getEndExclusives():uP.zero,a?a.getStarts():new uP(n,(o?o.seq2Range.endExclusive-o.seq1Range.endExclusive:0)+n)))}),r}static fromOffsetPairs(e,n){return new t(new dt(e.offset1,n.offset1),new dt(e.offset2,n.offset2))}static assertSorted(e){let n;for(let r of e){if(n&&!(n.seq1Range.endExclusive<=r.seq1Range.start&&n.seq2Range.endExclusive<=r.seq2Range.start))throw new gn("Sequence diffs must be sorted");n=r}}swap(){return new t(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new t(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new t(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new t(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new t(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(e){let n=this.seq1Range.intersect(e.seq1Range),r=this.seq2Range.intersect(e.seq2Range);if(!(!n||!r))return new t(n,r)}getStarts(){return new uP(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new uP(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},uP=class t{constructor(e,n){this.offset1=e;this.offset2=n}static{this.zero=new t(0,0)}static{this.max=new t(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new t(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},dU=class t{static{this.instance=new t}isValid(){return!0}},$tt=class{constructor(e){this.timeout=e;this.startTime=Date.now();this.valid=!0;if(e<=0)throw new gn("timeout must be positive")}isValid(){return!(Date.now()-this.startTime!0,this.valid=!0}};qf();var Bpe=class{constructor(e,n){this.width=e;this.height=n;this.array=[];this.array=new Array(e*n)}get(e,n){return this.array[e+n*this.width]}set(e,n,r){this.array[e+n*this.width]=r}};function _Re(t){return t===32||t===9}var vRe=class t{constructor(e,n,r){this.range=e;this.lines=n;this.source=r;this.histogram=[];let o=0;for(let a=e.startLineNumber-1;a0&&g>0&&s.get(f-1,g-1)===3&&(v+=c.get(f-1,g-1)),v+=o?o(f,g):1):v=-1;let _=Math.max(h,y,v);if(_===v){let w=f>0&&g>0?c.get(f-1,g-1):0;c.set(f,g,w+1),s.set(f,g,3)}else _===h?(c.set(f,g,0),s.set(f,g,1)):_===y&&(c.set(f,g,0),s.set(f,g,2));a.set(f,g,_)}let l=[],u=e.length,d=n.length;function p(f,g){(f+1!==u||g+1!==d)&&l.push(new vu(new dt(f+1,u),new dt(g+1,d))),u=f,d=g}let m=e.length-1,A=n.length-1;for(;m>=0&&A>=0;)s.get(m,A)===3?(p(m,A),m--,A--):s.get(m,A)===1?m--:A--;return p(-1,-1),l.reverse(),new dP(l,!1)}};var Rpe=class{compute(e,n,r=dU.instance){if(e.length===0||n.length===0)return dP.trivial(e,n);let o=e,a=n;function s(g,h){for(;go.length||x>a.length)continue;let E=s(w,x);l.set(d,E);let I=w===v?u.get(d+1):u.get(d-1);if(u.set(d,E!==w?new jtt(I,w,x,E-w):I),l.get(d)===o.length&&l.get(d)-d===a.length)break e}}let p=u.get(d),m=[],A=o.length,f=a.length;for(;;){let g=p?p.x+p.length:0,h=p?p.y+p.length:0;if((g!==A||h!==f)&&m.push(new vu(new dt(g,A),new dt(h,f))),!p)break;A=p.x,f=p.y,p=p.prev}return m.reverse(),new dP(m,!1)}},jtt=class{constructor(e,n,r,o){this.prev=e;this.x=n;this.y=r;this.length=o}},RGt=class{constructor(){this.positiveArr=new Int32Array(10);this.negativeArr=new Int32Array(10)}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,n){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let r=this.negativeArr;this.negativeArr=new Int32Array(r.length*2),this.negativeArr.set(r)}this.negativeArr[e]=n}else{if(e>=this.positiveArr.length){let r=this.positiveArr;this.positiveArr=new Int32Array(r.length*2),this.positiveArr.set(r)}this.positiveArr[e]=n}}},DGt=class{constructor(){this.positiveArr=[];this.negativeArr=[]}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,n){e<0?(e=-e-1,this.negativeArr[e]=n):this.positiveArr[e]=n}};wr();Fd();vi();Fd();qf();var pU=class{constructor(e,n,r){this.lines=e;this.range=n;this.considerWhitespaceChanges=r;this.elements=[];this.firstElementOffsetByLineIdx=[];this.lineStartOffsets=[];this.trimmedWsLengthsByLineIdx=[];this.firstElementOffsetByLineIdx.push(0);for(let o=this.range.startLineNumber;o<=this.range.endLineNumber;o++){let a=e[o-1],s=0;o===this.range.startLineNumber&&this.range.startColumn>1&&(s=this.range.startColumn-1,a=a.substring(s)),this.lineStartOffsets.push(s);let c=0;if(!r){let u=a.trimStart();c=a.length-u.length,a=u.trimEnd()}this.trimmedWsLengthsByLineIdx.push(c);let l=o===this.range.endLineNumber?Math.min(this.range.endColumn-1-s-c,a.length):a.length;for(let u=0;uString.fromCharCode(n)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let n=CPr(e>0?this.elements[e-1]:-1),r=CPr(ea<=e),o=e-this.firstElementOffsetByLineIdx[r];return new Sr(this.range.startLineNumber+r,1+this.lineStartOffsets[r]+o+(o===0&&n==="left"?0:this.trimmedWsLengthsByLineIdx[r]))}translateRange(e){let n=this.translateOffset(e.start,"right"),r=this.translateOffset(e.endExclusive,"left");return r.isBefore(n)?zt.fromPositions(r,r):zt.fromPositions(n,r)}findWordContaining(e){if(e<0||e>=this.elements.length||!Dpe(this.elements[e]))return;let n=e;for(;n>0&&Dpe(this.elements[n-1]);)n--;let r=e;for(;r=this.elements.length||!Dpe(this.elements[e]))return;let n=e;for(;n>0&&Dpe(this.elements[n-1])&&!vPr(this.elements[n]);)n--;let r=e;for(;ro<=e.start)??0,r=xFe(this.firstElementOffsetByLineIdx,o=>e.endExclusive<=o)??this.elements.length;return new dt(n,r)}};function Dpe(t){return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57}function vPr(t){return t>=65&&t<=90}var laa={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function _Pr(t){return laa[t]}function CPr(t){return t===10?8:t===13?7:_Re(t)?6:t>=97&&t<=122?0:t>=65&&t<=90?1:t>=48&&t<=57?2:t===-1?3:t===44||t===59?5:4}function xPr(t,e,n,r,o,a){let{moves:s,excludedChanges:c}=daa(t,e,n,a);if(!a.isValid())return[];let l=t.filter(d=>!c.has(d)),u=paa(l,r,o,e,n,a);return Rv(s,u),s=maa(s),s=s.filter(d=>{let p=d.original.toOffsetRange().slice(e).map(A=>A.trim());return p.join(` `).length>=15&&uaa(p,A=>A.length>=2)>=2}),s=Aaa(t,s),s}function uaa(t,e){let n=0;for(let r of t)e(r)&&n++;return n}function daa(t,e,n,r){let o=[],a=t.filter(l=>l.modified.isEmpty&&l.original.length>=3).map(l=>new vRe(l.original,e,l)),s=new Set(t.filter(l=>l.original.isEmpty&&l.modified.length>=3).map(l=>new vRe(l.modified,n,l))),c=new Set;for(let l of a){let u=-1,d;for(let p of s){let m=l.computeSimilarity(p);m>u&&(u=m,d=p)}if(u>.9&&d&&(s.delete(d),o.push(new Ik(l.range,d.range)),c.add(l.source),c.add(d.source)),!r.isValid())return{moves:o,excludedChanges:c}}return{moves:o,excludedChanges:c}}function paa(t,e,n,r,o,a){let s=[],c=new GJ;for(let m of t)for(let A=m.original.startLineNumber;Am.modified.startLineNumber,Jy));for(let m of t){let A=[];for(let f=m.modified.startLineNumber;f{for(let w of A)if(w.originalLineRange.endLineNumberExclusive+1===v.endLineNumberExclusive&&w.modifiedLineRange.endLineNumberExclusive+1===h.endLineNumberExclusive){w.originalLineRange=new mi(w.originalLineRange.startLineNumber,v.endLineNumberExclusive),w.modifiedLineRange=new mi(w.modifiedLineRange.startLineNumber,h.endLineNumberExclusive),y.push(w);return}let _={modifiedLineRange:h,originalLineRange:v};l.push(_),y.push(_)}),A=y}if(!a.isValid())return[]}l.sort(umn(ih(m=>m.modifiedLineRange.length,Jy)));let u=new j7,d=new j7;for(let m of l){let A=m.modifiedLineRange.startLineNumber-m.originalLineRange.startLineNumber,f=u.subtractFrom(m.modifiedLineRange),g=d.subtractFrom(m.originalLineRange).getWithDelta(A),h=f.getIntersection(g);for(let y of h.ranges){if(y.length<3)continue;let v=y,_=y.delta(-A);s.push(new Ik(_,v)),u.addRange(v),d.addRange(_)}}s.sort(ih(m=>m.original.startLineNumber,Jy));let p=new Kye(t);for(let m=0;mE.original.startLineNumber<=A.original.startLineNumber),g=ZN(t,E=>E.modified.startLineNumber<=A.modified.startLineNumber),h=Math.max(A.original.startLineNumber-f.original.startLineNumber,A.modified.startLineNumber-g.modified.startLineNumber),y=p.findLastMonotonous(E=>E.original.startLineNumberE.modified.startLineNumberr.length||I>o.length||u.contains(I)||d.contains(E)||!wPr(r[E-1],o[I-1],a))break}w>0&&(d.addRange(new mi(A.original.startLineNumber-w,A.original.startLineNumber)),u.addRange(new mi(A.modified.startLineNumber-w,A.modified.startLineNumber)));let x;for(x=0;x<_;x++){let E=A.original.endLineNumberExclusive+x,I=A.modified.endLineNumberExclusive+x;if(E>r.length||I>o.length||u.contains(I)||d.contains(E)||!wPr(r[E-1],o[I-1],a))break}x>0&&(d.addRange(new mi(A.original.endLineNumberExclusive,A.original.endLineNumberExclusive+x)),u.addRange(new mi(A.modified.endLineNumberExclusive,A.modified.endLineNumberExclusive+x))),(w>0||x>0)&&(s[m]=new Ik(new mi(A.original.startLineNumber-w,A.original.endLineNumberExclusive+x),new mi(A.modified.startLineNumber-w,A.modified.endLineNumberExclusive+x)))}return s}function wPr(t,e,n){if(t.trim()===e.trim())return!0;if(t.length>300&&e.length>300)return!1;let o=new Rpe().compute(new pU([t],new zt(1,1,1,t.length),!1),new pU([e],new zt(1,1,1,e.length),!1),n),a=0,s=vu.invert(o.diffs,t.length);for(let d of s)d.seq1Range.forEach(p=>{_Re(t.charCodeAt(p))||a++});function c(d){let p=0;for(let m=0;me.length?t:e);return a/l>.6&&l>10}function maa(t){if(t.length===0)return t;t.sort(ih(n=>n.original.startLineNumber,Jy));let e=[t[0]];for(let n=1;n=0&&s>=0&&a+s<=2){e[e.length-1]=r.join(o);continue}e.push(o)}return e}function Aaa(t,e){let n=new Kye(t);return e=e.filter(r=>{let o=n.findLastMonotonous(c=>c.original.startLineNumberc.modified.startLineNumber0&&(c=c.delta(u))}o.push(c)}return r.length>0&&o.push(r[r.length-1]),o}function faa(t,e,n){if(!t.getBoundaryScore||!e.getBoundaryScore)return n;for(let r=0;r0?n[r-1]:void 0,a=n[r],s=r+1=r.start&&t.seq2Range.start-s>=o.start&&n.isStronglyEqual(t.seq2Range.start-s,t.seq2Range.endExclusive-s)&&s<100;)s++;s--;let c=0;for(;t.seq1Range.start+cu&&(u=f,l=d)}return t.delta(l)}function kPr(t,e,n){let r=[];for(let o of n){let a=r[r.length-1];if(!a){r.push(o);continue}o.seq1Range.start-a.seq1Range.endExclusive<=2||o.seq2Range.start-a.seq2Range.endExclusive<=2?r[r.length-1]=new vu(a.seq1Range.join(o.seq1Range),a.seq2Range.join(o.seq2Range)):r.push(o)}return r}function NGt(t,e,n,r,o=!1){let a=vu.invert(n,t.length),s=[],c=new uP(0,0);function l(d,p){if(d.offset10;){let v=a[0];if(!(v.seq1Range.intersects(f.seq1Range)||v.seq2Range.intersects(f.seq2Range)))break;let w=r(t,v.seq1Range.start),x=r(e,v.seq2Range.start),E=new vu(w,x),I=E.intersect(v);if(h+=I.seq1Range.length,y+=I.seq2Range.length,f=f.join(E),f.seq1Range.endExclusive>=v.seq1Range.endExclusive)a.shift();else break}(o&&h+y0;){let d=a.shift();d.seq1Range.isEmpty||(l(d.getStarts(),d),l(d.getEndExclusives().delta(-1),d))}return gaa(n,s)}function gaa(t,e){let n=[];for(;t.length>0||e.length>0;){let r=t[0],o=e[0],a;r&&(!o||r.seq1Range.start0&&n[n.length-1].seq1Range.endExclusive>=a.seq1Range.start?n[n.length-1]=n[n.length-1].join(a):n.push(a)}return n}function SPr(t,e,n){let r=n;if(r.length===0)return r;let o=0,a;do{a=!1;let c=[r[0]];for(let l=1;l5||f.seq1Range.length+f.seq2Range.length>5)};var s=p;let u=r[l],d=c[c.length-1];p(d,u)?(a=!0,c[c.length-1]=c[c.length-1].join(u)):c.push(u)}r=c}while(o++<10&&a);return r}function TPr(t,e,n){let r=n;if(r.length===0)return r;let o=0,a;do{a=!1;let l=[r[0]];for(let u=1;u5||h.length>500)return!1;let v=t.getText(h).trim();if(v.length>20||v.split(/\r\n|\r|\n/).length>1)return!1;let _=t.countLinesIn(f.seq1Range),w=f.seq1Range.length,x=e.countLinesIn(f.seq2Range),E=f.seq2Range.length,I=t.countLinesIn(g.seq1Range),k=g.seq1Range.length,T=e.countLinesIn(g.seq2Range),D=g.seq2Range.length,M=2*40+50;function q($){return Math.min($,M)}return Math.pow(Math.pow(q(_*40+w),1.5)+Math.pow(q(x*40+E),1.5),1.5)+Math.pow(Math.pow(q(I*40+k),1.5)+Math.pow(q(T*40+D),1.5),1.5)>(M**1.5)**1.5*1.3};var c=m;let d=r[u],p=l[l.length-1];m(p,d)?(a=!0,l[l.length-1]=l[l.length-1].join(d)):l.push(d)}r=l}while(o++<10&&a);let s=[];return amn(r,(l,u,d)=>{let p=u;function m(v){return v.length>0&&v.trim().length<=3&&u.seq1Range.length+u.seq2Range.length>100}let A=t.extendToFullLines(u.seq1Range),f=t.getText(new dt(A.start,u.seq1Range.start));m(f)&&(p=p.deltaStart(-f.length));let g=t.getText(new dt(u.seq1Range.endExclusive,A.endExclusive));m(g)&&(p=p.deltaEnd(g.length));let h=vu.fromOffsetPairs(l?l.getEndExclusives():uP.zero,d?d.getStarts():uP.max),y=p.intersect(h);s.length>0&&y.getStarts().equals(s[s.length-1].getEndExclusives())?s[s.length-1]=s[s.length-1].join(y):s.push(y)}),s}qf();var CRe=class{constructor(e,n){this.trimmedHash=e;this.lines=n}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){let n=e===0?0:BPr(this.lines[e-1]),r=e===this.lines.length?0:BPr(this.lines[e]);return 1e3-(n+r)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(` `)}isStronglyEqual(e,n){return this.lines[e]===this.lines[n]}};function BPr(t){let e=0;for(;eI===k))return new kpe([],[],!1);if(e.length===1&&e[0].length===0||n.length===1&&n[0].length===0)return new kpe([new uU(new mi(1,e.length+1),new mi(1,n.length+1),[new bC(new zt(1,1,e.length,e[e.length-1].length+1),new zt(1,1,n.length,n[n.length-1].length+1))])],[],!1);let o=r.maxComputationTimeMs===0?dU.instance:new $tt(r.maxComputationTimeMs),a=!r.ignoreTrimWhitespace,s=new Map;function c(I){let k=s.get(I);return k===void 0&&(k=s.size,s.set(I,k)),k}let l=e.map(I=>c(I.trim())),u=n.map(I=>c(I.trim())),d=new CRe(l,e),p=new CRe(u,n),m=d.length+p.length<1700?this.dynamicProgrammingDiffing.compute(d,p,o,(I,k)=>e[I]===n[k]?n[k].length===0?.1:1+Math.log(1+n[k].length):.99):this.myersDiffingAlgorithm.compute(d,p,o),A=m.diffs,f=m.hitTimeout;A=PGt(d,p,A),A=SPr(d,p,A);let g=[],h=I=>{if(a)for(let k=0;kI.seq1Range.start-y===I.seq2Range.start-v);let k=I.seq1Range.start-y;h(k),y=I.seq1Range.endExclusive,v=I.seq2Range.endExclusive;let T=this.refineDiff(e,n,I,o,a,r);T.hitTimeout&&(f=!0);for(let D of T.mappings)g.push(D)}h(e.length-y);let _=new G7(e),w=new G7(n),x=BGt(g,_,w),E=[];return r.computeMoves&&(E=this.computeMoves(x,e,n,l,u,o,a,r)),Xy(()=>{function I(T,D){if(T.lineNumber<1||T.lineNumber>D.length)return!1;let M=D[T.lineNumber-1];return!(T.column<1||T.column>M.length+1)}function k(T,D){return!(T.startLineNumber<1||T.startLineNumber>D.length+1||T.endLineNumberExclusive<1||T.endLineNumberExclusive>D.length+1)}for(let T of x){if(!T.innerChanges)return!1;for(let D of T.innerChanges)if(!(I(D.modifiedRange.getStartPosition(),n)&&I(D.modifiedRange.getEndPosition(),n)&&I(D.originalRange.getStartPosition(),e)&&I(D.originalRange.getEndPosition(),e)))return!1;if(!k(T.modified,n)||!k(T.original,e))return!1}return!0}),new kpe(x,E,f)}computeMoves(e,n,r,o,a,s,c,l){return xPr(e,n,r,o,a,s).map(p=>{let m=this.refineDiff(n,r,new vu(p.original.toOffsetRange(),p.modified.toOffsetRange()),s,c,l),A=BGt(m.mappings,new G7(n),new G7(r),!0);return new Spe(p,A)})}refineDiff(e,n,r,o,a,s){let l=haa(r).toRangeMapping2(e,n),u=new pU(e,l.originalRange,a),d=new pU(n,l.modifiedRange,a),p=u.length+d.length<500?this.dynamicProgrammingDiffing.compute(u,d,o):this.myersDiffingAlgorithm.compute(u,d,o),m=!1,A=p.diffs;m&&vu.assertSorted(A),A=PGt(u,d,A),m&&vu.assertSorted(A),A=NGt(u,d,A,(g,h)=>g.findWordContaining(h)),m&&vu.assertSorted(A),s.extendToSubwords&&(A=NGt(u,d,A,(g,h)=>g.findSubWordContaining(h),!0),m&&vu.assertSorted(A)),A=kPr(u,d,A),m&&vu.assertSorted(A),A=TPr(u,d,A),m&&vu.assertSorted(A);let f=A.map(g=>new bC(u.translateRange(g.seq1Range),d.translateRange(g.seq2Range)));return m&&bC.assertSorted(f),{mappings:f,hitTimeout:p.hitTimeout}}};function haa(t){return new Ik(new mi(t.seq1Range.start+1,t.seq1Range.endExclusive+1),new mi(t.seq2Range.start+1,t.seq2Range.endExclusive+1))}var baa=!1,LGt=class{constructor(e){this.index=e}join(e){if(this.index===e.index)return this}};function MGt(t,e,n,r,o,a,s,c,l,u={}){let d=Date.now();try{return yaa(t,e,n,r,o,a,s,c,l,u)}catch(p){return l.trace(`Rebase error: ${jr.toString(p)}`),"error"}finally{l.trace(`Rebase duration: ${Date.now()-d}ms`)}}function yaa(t,e,n,r,o,a,s,c,l,u){if(!Npe(t,o,a,l,!0))return"inconsistentEdits";let d=o.removeCommonSuffixAndPrefix(t),p=s[0];if(e&&p&&!d.applyToOffsetRangeOrUndefined(e)?.containsRange(p))return"outsideEditWindow";if(r.lengthlR.create(h))),A=vaa(t,m,d,c,u);if(!A)return"rebaseFailed";let f=A.replacements.reduce((h,y)=>((h[y.data.index]||=[]).push(y),h),[]),g=[];for(let h=0;hE>0?a.substring(I[E-1].replaceRange.endExclusive,x.replaceRange.start)+x.newText:x.newText).join(""),w=jo.replace(v,_);w.removeCommonSuffixAndPrefix(a).isEmpty||g.push({rebasedEdit:w,rebasedEditIndex:h})}return c==="strict"&&g.length>0&&new vxe(n).apply(t)!==Cn.create(g.map(h=>h.rebasedEdit)).apply(a)?(l.trace("Result consistency check failed"),"inconsistentEdits"):g}function Npe(t,e,n,r,o=baa){if(!o)return!0;let a=e.apply(t)===n;return a||r.trace("Edit consistency check failed"),a}function vaa(t,e,n,r,o){let a=n.removeCommonSuffixAndPrefix(t),s=[],c=0,l=0,u=0;for(;ld.replaceRange.start){let A=t.substring(d.replaceRange.start,m.replaceRange.start),f=A+m.newText;f.endsWith(A)&&(m=new rw(dt.fromTo(d.replaceRange.start,m.replaceRange.endExclusive-A.length),f.substring(0,f.length-A.length),m.data))}else if(l===e.replacements.length-1&&m.replaceRange.endExclusive=d.newText.length){let A=0,f=0,g=d,h;for(;g&&m.replaceRange.containsRange(g.replaceRange);){if(f=Iaa(t,m,g,h,f,r,o),f===-1)return;A+=g.newText.length-g.replaceRange.length,h=g,g=a.replacements[++c]}s.push(new rw(new dt(m.replaceRange.start+u,m.replaceRange.endExclusive+u+A),m.newText,m.data)),l++,u+=A}else return;else if(p.replaceRange.start",'""',"''","``"]);function Eaa(t){return xaa.has(t)}function Iaa(t,e,n,r,o,a,s){let c=n.newText,l=r?r.replaceRange.endExclusive:e.replaceRange.start;l_aa||u>0&&n.newText.length>Caa);return u!==-1&&!d?u+n.newText.length:s.absorbSubsequenceTyping&&Eaa(c)&&waa(c,e.newText.substring(o))?o:-1}function kaa(t,e,n,r,o){let a=t.split(/\r\n|\r|\n/),s=e.split(/\r\n|\r|\n/),l=new Ppe().computeDiff(a,s,o);if(l.hitTimeout)return;let u=new hl(t),d=new hl(e);return l.changes.map(p=>(p.innerChanges||[]).map(m=>{let A=u.getTransformer().getOffsetRange(m.originalRange),f=d.getValueOfRange(m.modifiedRange);return new rw(A.delta(n),f,r)})).flat()}Ue();var Lpe=class extends fe{constructor(n,r){super();this.workspace=n;this._garbageCollector=this._register(new OGt(20));this._documentCaches=new Map;this._logger=r.createSubLogger(["NES","RejectionCollector"]),qd(this,n.openDocuments,(o,a)=>{let s=new FGt(o,this._garbageCollector,this._logger);this._documentCaches.set(s.doc.id,s),a.add(kA(this,{value:o.value,selection:o.selection,languageId:o.languageId},c=>{for(let l of c.value.changes)s.handleEdit(l,c.value.value)})),a.add(Fn(()=>{this._documentCaches.delete(o.id)}))}).recomputeInitiallyAndOnChange(this._store)}reject(n,r){let o=this._documentCaches.get(n);if(!o){this._logger.trace(`Rejecting, no document cache: ${r}`);return}let a=r.removeCommonSuffixAndPrefix(o.doc.value.get().value);this._logger.trace(`Rejecting: ${a}`),o.reject(a)}isRejected(n,r){let o=this._documentCaches.get(n);if(!o)return this._logger.trace(`Checking rejection, no document cache: ${r}`),!1;let a=r.removeCommonSuffixAndPrefix(o.doc.value.get().value),s=o.isRejected(a);return this._logger.trace(`Checking rejection, ${s?"rejected":"not rejected"}: ${a}`),s}clear(){this._garbageCollector.clear()}},FGt=class{constructor(e,n,r){this.doc=e;this._garbageCollector=n;this._logger=r;this._rejectedEdits=new Set}handleEdit(e,n){for(let r of[...this._rejectedEdits])r.handleEdit(e,n)}reject(e){if(this.isRejected(e))return;let n=new QGt(e.toEdit(),()=>{this._logger.trace(`Evicting: ${e}`),this._rejectedEdits.delete(n)});this._rejectedEdits.add(n),this._garbageCollector.put(n)}isRejected(e){for(let n of this._rejectedEdits)if(n.isRejected(e))return!0;return!1}},QGt=class{constructor(e,n){this._edit=e;this._onDispose=n}handleEdit(e,n){let r=this._edit.tryRebase(e);r?this._edit=r.removeCommonSuffixAndPrefix(n.value):this.dispose()}isRejected(e){return this._edit.equals(e.toEdit())}dispose(){this._onDispose()}},OGt=class{constructor(e){this._maxSize=e;this._disposables=[]}put(e){this._disposables.push(e),this._disposables.length>this._maxSize&&this._disposables.shift().dispose()}clear(){for(let e of this._disposables)e.dispose();this._disposables=[]}dispose(){this.clear()}};Ue();var Htt=class{constructor(e,n,r,o,a,s,c){this.originalDocument=e;this.editWindow=n;this.originalEdits=r;this.userEditSince=o;this.currentDocument=a;this.currentSelection=s;this.nesRebaseConfigs=c}toMarkdown(){let e=[];e.push("### Original Document"),e.push("```"),e.push(this.originalDocument),e.push("```"),e.push(""),e.push("### Suggested Edits");for(let n=0;n0&&(e.push(""),e.push(`### Cursor: ${this.currentSelection.map(n=>n.toString()).join(", ")}`)),e.push(""),e.push("### Document Intended After Suggested Edits"),e.push("```");try{let n=new Cn(this.originalEdits.slice()).apply(this.originalDocument);e.push(n)}catch{e.push("")}return e.push("```"),e.push(""),e.push("### Copy-Pasteable Test"),e.push("```typescript"),e.push(this._generateTest()),e.push("```"),e.join(` `)}_generateTest(){let e=[];e.push("test('rebase failure (auto-generated)', () => {"),e.push(` const originalDocument = ${Gtt(this.originalDocument)};`),e.push(" const originalEdits = [");for(let r of this.originalEdits)e.push(` StringReplacement.replace(new OffsetRange(${r.replaceRange.start}, ${r.replaceRange.endExclusive}), ${Gtt(r.newText)}),`);e.push(" ];"),e.push(" const userEditSince = StringEdit.create([");for(let r of this.userEditSince.replacements)e.push(` StringReplacement.replace(new OffsetRange(${r.replaceRange.start}, ${r.replaceRange.endExclusive}), ${Gtt(r.newText)}),`);e.push(" ]);"),e.push(` const currentDocumentContent = ${Gtt(this.currentDocument)};`),this.editWindow?e.push(` const editWindow = new OffsetRange(${this.editWindow.start}, ${this.editWindow.endExclusive});`):e.push(" const editWindow = undefined;"),e.push(` const currentSelection = [${this.currentSelection.map(r=>`new OffsetRange(${r.start}, ${r.endExclusive})`).join(", ")}];`),this.nesRebaseConfigs.absorbSubsequenceTyping&&e.push(` const nesConfigs = { absorbSubsequenceTyping: ${this.nesRebaseConfigs.absorbSubsequenceTyping} };`),e.push(""),e.push(" const logger = new TestLogService();"),e.push(" expect(userEditSince.apply(originalDocument)).toBe(currentDocumentContent);");let n=this.nesRebaseConfigs.absorbSubsequenceTyping?", nesConfigs":"";return e.push(` expect(tryRebase(originalDocument, editWindow, originalEdits, [], userEditSince, currentDocumentContent, currentSelection, 'strict', logger${n})).toMatchInlineSnapshot();`),e.push("});"),e.join(` `)}};function Gtt(t){return"`"+t.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")+"`"}var Wtt=class extends fe{constructor(n,r,o,a){super();this.workspace=n;this._logService=r;this._configService=o;this._expService=a;this._documentCaches=new Map;this._sharedCache=new Fv(50);qd(this,n.openDocuments,(s,c)=>{let l=new UGt(this,s.id,s,this._sharedCache,this._logService);this._documentCaches.set(l.docId,l),c.add(kA(this,{value:s.value},u=>{for(let d of u.value.changes)d.isEmpty()||l.handleEdit(d);if(this._configService.getExperimentBasedConfig(H.Advanced.InlineEditsTriggerOnEditorChangeAfterSeconds,this._expService)!==void 0)for(let[d,p]of this._sharedCache.entries())p.docId!==s.id&&this._sharedCache.deleteKey(d)})),c.add(Fn(()=>{this._documentCaches.delete(s.id)}))}).recomputeInitiallyAndOnChange(this._store)}setKthNextEdit(n,r,o,a,s,c,l,u,d){let p=this._documentCaches.get(n);if(p)return p.setKthNextEdit(r,o,a,c,l,s,u,d)}setNoNextEdit(n,r,o,a){let s=this._documentCaches.get(n);s&&s.setNoNextEdit(r,o,a)}_getNesRebaseConfigs(){return{absorbSubsequenceTyping:this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsAbsorbSubsequenceTyping,this._expService)}}lookupNextEdit(n,r,o){let a=this._documentCaches.get(n);if(a)return a.lookupNextEdit(r,o,this._getNesRebaseConfigs())}tryRebaseCacheEntry(n,r,o){let a=this._documentCaches.get(n.docId);return a?a.tryRebaseCacheEntry(n,r,o,this._getNesRebaseConfigs()):{edit:void 0}}rejectedNextEdit(n){this._sharedCache.getValues().filter(r=>r.source.headerRequestId===n).forEach(r=>r.rejected=!0)}isRejectedNextEdit(n,r,o){let a=this._documentCaches.get(n);return a?a.isRejectedNextEdit(r,o):!1}evictedCachedEdit(n){let r=this._documentCaches.get(n.docId);r&&r.evictedCachedEdit(n)}clear(){this._documentCaches.forEach(n=>n.clear()),this._sharedCache.clear()}},UGt=class{constructor(e,n,r,o,a){this._nextEditCache=e;this.docId=n;this._doc=r;this._sharedCache=o;this._trackedCachedEdits=[];this._logger=a.createSubLogger(["NES","DocumentEditCache"])}handleEdit(e){let n=this._logger.createSubLogger("handleEdit");for(let r of this._trackedCachedEdits)r.userEditSince&&(r.userEditSince=r.userEditSince.compose(e),r.rebaseFailed=!1,Npe(r.documentBeforeEdit.value,r.userEditSince,this._doc.value.get().value,n)||(r.userEditSince=void 0))}evictedCachedEdit(e){let n=this._trackedCachedEdits.indexOf(e);n!==-1&&this._trackedCachedEdits.splice(n,1)}clear(){this._trackedCachedEdits.length=0}setKthNextEdit(e,n,r,o,a,s,c,l){let u=this._getKey(e.value),d={docId:this.docId,edit:r,edits:o,detailedEdits:[],userEditSince:a,subsequentN:s,source:c,documentBeforeEdit:e,editWindow:n,originalEditWindow:l.originalEditWindow,cacheTime:Date.now(),isFromCursorJump:l.isFromCursorJump};a&&(Npe(d.documentBeforeEdit.value,a,this._doc.value.get().value,this._logger.createSubLogger("setKthNextEdit"))?this._trackedCachedEdits.unshift(d):d.userEditSince=void 0);let p=this._sharedCache.get(u);p&&this.evictedCachedEdit(p);let m=this._sharedCache.put(u,d);return m&&this._nextEditCache.evictedCachedEdit(m[1]),d}setNoNextEdit(e,n,r){let o=this._getKey(e.value),a={docId:this.docId,edit:void 0,edits:[],detailedEdits:[],source:r,documentBeforeEdit:e,editWindow:n,cacheTime:Date.now(),isFromCursorJump:!1},s=this._sharedCache.get(o);s&&this.evictedCachedEdit(s);let c=this._sharedCache.put(o,a);c&&this._nextEditCache.evictedCachedEdit(c[1])}lookupNextEdit(e,n,r){let o=this._getKey(e.value),a=this._sharedCache.get(o);if(a){let s=a.editWindow,c=a.originalEditWindow,l=n[0],u=s?.containsRange(l),d=c?.containsRange(l);return s&&!u&&!d?void 0:a}for(let s of this._trackedCachedEdits){let c=this.tryRebaseCacheEntry(s,e,n,r);if(c.edit)return c.edit}}tryRebaseCacheEntry(e,n,r,o){let a=this._logger.createSubLogger("tryRebaseCacheEntry");if(e.userEditSince&&!e.rebaseFailed){let s=e.edits||(e.edit?[e.edit]:[]),c=e.originalEditWindow?[e.editWindow,e.originalEditWindow]:[e.editWindow];for(let l of c){let u=MGt(e.documentBeforeEdit.value,l,s,e.detailedEdits,e.userEditSince,n.value,r,"strict",a,o);if(u==="rebaseFailed")return e.rebaseFailed=!0,{edit:void 0,failureInfo:new Htt(e.documentBeforeEdit.value,l,s,e.userEditSince,n.value,r,o)};if(u==="inconsistentEdits"||u==="error")return e.userEditSince=void 0,{edit:void 0};if(u==="outsideEditWindow")continue;if(u.length)return!e.rejected&&this.isRejectedNextEdit(n,u[0].rebasedEdit)&&(e.rejected=!0),{edit:{...e,...u[0]}};if(!s.length)return{edit:e}}}return{edit:void 0}}isRejectedNextEdit(e,n){let r=this._logger.createSubLogger("isRejectedNextEdit"),o=n.removeCommonSuffixAndPrefix(e.value);for(let a of this._trackedCachedEdits.filter(s=>s.rejected)){if(!a.userEditSince)continue;let s=a.edits||(a.edit?[a.edit]:[]);if(!s.length)continue;let c=MGt(a.documentBeforeEdit.value,void 0,s,a.detailedEdits,a.userEditSince,e.value,[],"lenient",r);if(typeof c=="string")continue;if(c.some(u=>u.rebasedEdit.removeCommonSuffixAndPrefix(e.value).equals(o)))return r.trace("Found rejected edit that matches current edit"),!0}return!1}_getKey(e){return JSON.stringify([this.docId.uri,e])}};var yV=class{constructor(e,n,r){this.requestId=e;this.source=n;this.result=r}};function Saa(t,e,n){if(!e)return t;let r=e.endExclusive,o=n.getTransformer(),a=o.getPosition(r),s=o.getOffset(a.with(void 0,1)),c=o.getOffset(a.with(void 0,o.getLineLength(a.lineNumber)+1)),l=o.getOffset(o.getPosition(t.start).delta(1)),u=o.getPosition(t.endExclusive).delta(-2),d=o.getOffset(u.column>1?u.with(void 0,o.getLineLength(u.lineNumber)+1):u);return new dt(Math.min(l,s),Math.max(d,c))}function RPr(t,e){return new __(e,t).toEdit()}function DPr(t,e){return new e0(r=>{let o=t.find(a=>a.nextEditDoc.id===r);if(!o){for(let a=e.length-1;a>=0;a--){let s=e[a];if(s.docId===r&&s.kind==="edit"){let c=s.edit.getEditedState();return{baseDocState:c,docContents:c,editsSoFar:Cn.empty,nextEdits:[],docId:r}}}throw new gn}return{baseDocState:o.documentAfterEdits,docContents:o.documentAfterEdits,editsSoFar:Cn.empty,nextEdits:[],docId:r}})}var mU=class extends fe{constructor(n,r,o,a,s,c,l,u,d,p){super();this._workspace=n;this._statelessNextEditProvider=r;this._historyContextProvider=o;this._xtabHistoryTracker=a;this._debugRecorder=s;this._configService=c;this._snippyService=l;this._logService=u;this._expService=d;this._requestLogger=p;this.ID=this._statelessNextEditProvider.ID;this._rejectionCollector=this._register(new Lpe(this._workspace,this._logService));this._pendingStatelessNextEditRequest=null;this._speculativePendingRequest=null;this._scheduledSpeculativeRequest=null;this._lastShownTime=0;this._lastShownSuggestionId=void 0;this._lastRejectionTime=0;this._lastTriggerTime=0;this._shouldExpandEditWindow=!1;this._logger=this._logService.createSubLogger(["NES","NextEditProvider"]),this._nextEditCache=new Wtt(this._workspace,this._logService,this._configService,this._expService),qd(this,this._workspace.openDocuments,(m,A)=>{A.add(O7(m.value,f=>{this._cancelPendingRequestDueToDocChange(m.id,f)}))}).recomputeInitiallyAndOnChange(this._store)}get lastRejectionTime(){return this._lastRejectionTime}get lastTriggerTime(){return this._lastTriggerTime}get lastOutcome(){return this._lastOutcome}_cancelSpeculativeRequest(){this._scheduledSpeculativeRequest=null,this._speculativePendingRequest&&(this._speculativePendingRequest.request.cancellationTokenSource.cancel(),this._speculativePendingRequest=null)}_cancelPendingRequestDueToDocChange(n,r){if(this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsAsyncCompletions,this._expService)||this._pendingStatelessNextEditRequest===null)return;let a=this._pendingStatelessNextEditRequest.getActiveDocument();a.id===n&&a.documentAfterEdits.value!==r.value&&this._pendingStatelessNextEditRequest.cancellationTokenSource.cancel()}async getNextEdit(n,r,o,a,s){let c=Date.now();this._lastTriggerTime=c;let l=new Gi,u=this._logger.createSubLogger(r.requestUuid.substring(4,8)).withExtraTarget(mX.fromCallback((m,A)=>{o.trace(`[${Math.floor(l.elapsed()).toString().padStart(4," ")}ms] ${A}`)})),d=this._shouldExpandEditWindow;o.setStatelessNextEditProviderId(this._statelessNextEditProvider.ID);let p;try{p=await this._getNextEditCanThrow(n,r,c,d,u,o,a,s)}catch(m){throw o.setError(m),s.setNextEditProviderError(jr.toString(m)),m}finally{s.markEndTime()}return this._lastNextEditResult=p,p}async _getNextEditCanThrow(n,r,o,a,s,c,l,u){let d=s.createSubLogger("_getNextEdit");d.trace(`invoked with trigger id = ${r.changeHint===void 0?"undefined":`uuid = ${r.changeHint.data.uuid}, reason = ${r.changeHint.data.reason}`}`);let p=this._workspace.getDocument(n);if(!p)throw d.trace(`Document "${n.baseName}" not found`),new gn(`Document "${n.baseName}" not found`);let m=p.value.get(),A=p.selection.get(),f=this.determineNesConfigs(u,c),g=this._nextEditCache.lookupNextEdit(n,m,A);if(g?.rejected)return d.trace("cached edit was previously rejected"),u.setStatus("previouslyRejectedCache"),u.setWasPreviouslyRejected(),new yV(c.requestId,g.source,void 0);let h,y,v,_,w=n,x=!1,E=!1,I=!1;if(g){d.trace("using cached edit");let M=g.rebasedEdit||g.edit;M&&(h={actualEdit:M,isFromCursorJump:g.isFromCursorJump}),x=!!g.rebasedEdit,E=g.subsequentN!==void 0&&g.subsequentN>0,_=g.source,c.setIsCachedResult(g.source.log),y=m,u.setHeaderRequestId(_.headerRequestId),u.setIsFromCache(),u.setSubsequentEditOrder(g.rebasedEditIndex??g.subsequentN),c.recordingBookmark=_.log.recordingBookmark}else{d.trace(`fetching next edit with shouldExpandEditWindow=${a}`);let M=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsDebounceUseCoreRequestTime,this._expService)?r.requestIssuedDateTime??void 0:void 0;_=new Ztt(r.requestUuid,c,M,!1),u.setHeaderRequestId(_.headerRequestId);let q=p.value.get();d.trace("awaiting firstEdit promise");let $=await this.fetchNextEdit(_,p,f,a,d,u,l);d.trace("resolved firstEdit promise");let L=`First edit latency: ${Date.now()-this._lastTriggerTime} ms`;if(c.addLog(L),d.trace(L),$.isError())d.trace(`failed to fetch next edit ${$.err.toString()}`),u.setStatus(`noEdit:${$.err.kind}`),v=$.err;else if(w=$.val.docId??w,y=(w?this._workspace.getDocument(w):p).value.get(),w===p.id&&q.value!==y.value)d.trace("document changed while fetching next edit"),u.setStatus("docChanged"),c.setIsSkipped();else{let oe=$.val.rebasedEdit||$.val.edit;oe?(d.trace("fetch succeeded"),c.setResponseResults([oe]),h={actualEdit:oe,isFromCursorJump:$.val.isFromCursorJump},I=$.val.isFromSpeculativeRequest??!1):(d.trace("empty edits"),u.setStatus("emptyEdits"))}}if(v instanceof Gr.FetchFailure||v instanceof Gr.Unexpected)throw d.trace(`has throwing error: ${v.error}`),v.error;if(v instanceof Gr.NoSuggestions)if(v.nextCursorPosition===void 0)c.markAsNoSuggestions();else return u.setStatus("emptyEditsButHasNextCursorPosition"),new yV(c.requestId,_,{jumpToPosition:v.nextCursorPosition,targetDocumentId:v.nextCursorDocumentId,documentBeforeEdits:m,isFromCursorJump:!1,isSubsequentEdit:!1});let k=new yV(c.requestId,_,void 0);if(!h)return d.trace("had no edit"),k;if(l.isCancellationRequested)return d.trace("cancelled"),u.setStatus("noEdit:gotCancelled"),k;if(this._rejectionCollector.isRejected(w,h.actualEdit)||y&&this._nextEditCache.isRejectedNextEdit(w,y,h.actualEdit))return d.trace("edit was previously rejected"),u.setStatus("previouslyRejected"),u.setWasPreviouslyRejected(),k;c.setResult(__.fromEdit(new Kd(m,new Cn([h.actualEdit])))),nd(y!==void 0,"should be defined if edit is defined"),u.setStatus("notAccepted");let T=new yV(c.requestId,_,{edit:h.actualEdit,isFromCursorJump:h.isFromCursorJump,documentBeforeEdits:y,targetDocumentId:w,isSubsequentEdit:E});u.setHasNextEdit(!0);let D=this.computeMinimumResponseDelay({triggerTime:o,isRebasedCachedEdit:x,isSubsequentCachedEdit:E,isFromSpeculativeRequest:I,enforceCacheDelay:r.enforceCacheDelay},d);return D>0&&(await vo(D),l.isCancellationRequested)?(d.trace("cancelled"),u.setStatus("noEdit:gotCancelled"),k):(d.trace("returning next edit result"),T)}determineNesConfigs(n,r){let o={isAsyncCompletions:this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsAsyncCompletions,this._expService),isEagerBackupRequest:this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsEagerBackupRequest,this._expService)};return n.setNESConfigs({...o}),r.addCodeblockToLog(JSON.stringify(o,null," ")),o}_processDoc(n){let r=n.lastEdit.base.getLines(),o=n.lastEdits,a=__.fromEdit(new Kd(n.lastEdit.base,n.lastEdits.compose())).removeCommonSuffixPrefixLines().edit,s=n.lastEdit.base,c=n.lastSelection,l=this._workspace.getWorkspaceRoot(n.docId),u=new fV(n.docId,l,n.languageId,r,a,s,o,c);return{recentEdit:n.lastEdit,nextEditDoc:u,documentAfterEdits:u.documentAfterEdits}}async fetchNextEdit(n,r,o,a,s,c,l){let u=r.id,d=s.createSubLogger("fetchNextEdit"),p=this._historyContextProvider.getHistoryContext(u);if(!p)return vt.error(new Gr.Unexpected(new Error("DocumentMissingInHistoryContext")));let m=r.value.get(),A=r.selection.get(),f=n.log;f.setRecentEdit(p);let g=m.value===this._pendingStatelessNextEditRequest?.documentBeforeEdits.value,h=(g||o.isAsyncCompletions)&&!this._pendingStatelessNextEditRequest?.cancellationTokenSource.token.isCancellationRequested&&this._pendingStatelessNextEditRequest||void 0,y=this._speculativePendingRequest?.docId===u&&this._speculativePendingRequest?.postEditContent===m.value&&!this._speculativePendingRequest.request.cancellationTokenSource.token.isCancellationRequested,v=y?this._speculativePendingRequest?.request:void 0,_=v??h;if(_){v?(d.trace(`reusing speculative pending request (opportunityId=${v.opportunityId}, headerRequestId=${v.headerRequestId})`),this._speculativePendingRequest=null):d.trace(`reusing in-flight pending request (opportunityId=${_.opportunityId}, headerRequestId=${_.headerRequestId})`);let I=v?y:g,k=v?"speculative":"async";if(I){let T=await this._joinNextEditRequest(_,k,c,f,l);return c.setStatelessNextEditTelemetry(T.telemetry),v?(await _.firstEdit.p).map(M=>({...M,isFromSpeculativeRequest:!0})):T.nextEdit.isError()?T.nextEdit:_.firstEdit.p}else if(o.isEagerBackupRequest){d.trace("starting eager backup request in parallel with rebase attempt"),this._pendingStatelessNextEditRequest=null;let T=this._executeNewNextEditRequest(n,r,p,o,a,d,c,l),D=()=>{T.then(L=>L.nextEditRequest.cancellationTokenSource.cancel()).catch(()=>{})},M=await this._joinNextEditRequest(_,k,c,f,l),q=await _.firstEdit.p;if(q.isOk()&&q.val.edit){let L=this._nextEditCache.tryRebaseCacheEntry(q.val,m,A);if(L.edit)return d.trace("rebase succeeded, cancelling eager backup request"),D(),c.setStatelessNextEditTelemetry(M.telemetry),vt.ok(L.edit);this._logRebaseFailure(L.failureInfo,f)}if(l.isCancellationRequested)return d.trace("cancelled after rebase failed (eager backup path)"),D(),c.setStatelessNextEditTelemetry(M.telemetry),vt.error(new Gr.GotCancelled("afterFailedRebase"));d.trace("rebase failed, using eager backup request");let $=await T;return c.setStatelessNextEditTelemetry($.nextEditResult.telemetry),$.nextEditResult.nextEdit.isError()?$.nextEditResult.nextEdit:$.nextEditRequest.firstEdit.p}else{let T=await this._joinNextEditRequest(_,k,c,f,l),D=await _.firstEdit.p;if(D.isOk()&&D.val.edit){let $=this._nextEditCache.tryRebaseCacheEntry(D.val,m,A);if($.edit)return c.setStatelessNextEditTelemetry(T.telemetry),vt.ok($.edit);this._logRebaseFailure($.failureInfo,f)}if(l.isCancellationRequested)return d.trace("document changed after rebase failed"),c.setStatelessNextEditTelemetry(T.telemetry),vt.error(new Gr.GotCancelled("afterFailedRebase"));let q=m.value===this._pendingStatelessNextEditRequest?.documentBeforeEdits.value&&!this._pendingStatelessNextEditRequest?.cancellationTokenSource.token.isCancellationRequested&&this._pendingStatelessNextEditRequest||void 0;if(q){d.trace("reusing 2nd existing next edit request after rebase failed");let $=await this._joinNextEditRequest(q,"async",c,f,l);return c.setStatelessNextEditTelemetry($.telemetry),$.nextEdit.isError()?$.nextEdit:q.firstEdit.p}d.trace("creating new next edit request after rebase failed")}}let w=await this._executeNewNextEditRequest(n,r,p,o,a,d,c,l),x=w.nextEditRequest,E=w.nextEditResult;return c.setStatelessNextEditTelemetry(E.telemetry),E.nextEdit.isError()?E.nextEdit:x.firstEdit.p}async _joinNextEditRequest(n,r,o,a,s){o.setHeaderRequestId(n.headerRequestId),o.setReusedRequest(r),o.setRequest(n),a.setRequestInput(n),a.setIsCachedResult(n.logContext);let c=this._hookupCancellation(n,s);try{return await n.result}finally{c.dispose()}}_logRebaseFailure(n,r){n&&r.setRebaseFailure(n)}async _executeNewNextEditRequest(n,r,o,a,s,c,l,u){let d=r.id,p=c.createSubLogger("_executeNewNextEditRequest"),m=this._debugRecorder?.getRecentLog(),A=n.log,f=Taa(o.getDocumentAndIdx(d)),g=r.selection.get()[0],h=o.documents.map($=>this._processDoc($)),y=this._xtabHistoryTracker.getHistory(),v=new no,_=s?this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsAutoExpandEditWindowLines,this._expService):void 0,w=new AV(n.headerRequestId,n.opportunityId,r.value.get(),h.map($=>$.nextEditDoc),f.idx,y,v,_,!1,A,n.log.recordingBookmark,m,n.providerRequestStartDateTime),x;this._pendingStatelessNextEditRequest&&(this._pendingStatelessNextEditRequest.cancellationTokenSource.cancel(),this._pendingStatelessNextEditRequest=null,this._scheduledSpeculativeRequest=null),this._speculativePendingRequest&&(this._speculativePendingRequest.docId!==d||this._speculativePendingRequest.postEditContent!==w.documentBeforeEdits.value)&&this._cancelSpeculativeRequest(),this._pendingStatelessNextEditRequest=w;let E=()=>{this._pendingStatelessNextEditRequest===w&&(this._pendingStatelessNextEditRequest=null)};l.setRequest(w),l.setStatus("requested"),A.setRequestInput(w);let I=this._hookupCancellation(w,u,a.isAsyncCompletions?kA(this,{value:r.value},$=>{$.value.changes.forEach(L=>{w.intermediateUserEdit&&!L.isEmpty()&&(w.intermediateUserEdit=w.intermediateUserEdit.compose(L),Npe(w.documentBeforeEdits.value,w.intermediateUserEdit,$.value.value.value,p)||(w.intermediateUserEdit=void 0))})}):void 0),k=DPr(h,y),T=this._statelessNextEditProvider.provideNextEdit(w,p,A,w.cancellationTokenSource.token),D=-1,M=($,L)=>{++D;let F=p.createSubLogger("processEdit");F.trace(`processing edit #${D} (starts at 0)`),F.trace("resetting shouldExpandEditWindow to false due to receiving an edit"),this._shouldExpandEditWindow=!1;let te=k.get($.targetDocument??d),oe=$.edit,Y=new Gf([oe]),re=RPr(Y,te.baseDocState).tryRebase(te.editsSoFar);if(re===void 0){F.trace(`edit ${D} is undefined after rebasing`),v.isSettled||v.complete(vt.error(new Gr.Uncategorized(new Error("Rebased edit is undefined"))));return}te.editsSoFar=te.editsSoFar.compose(re);let J;if(re.replacements.length===0)F.trace(`WARNING: ${D} has no edits`);else if(re.replacements.length>1)F.trace(`WARNING: ${D} has ${re.replacements.length} edits, but expected only 1`);else{let Ae=re.replacements[0];te.nextEdits.push(Ae),J=this._nextEditCache.setKthNextEdit(te.docId,te.docContents,D===0?$.window:void 0,Ae,D,D===0?te.nextEdits:void 0,D===0?w.intermediateUserEdit:void 0,n,{isFromCursorJump:$.isFromCursorJump,originalEditWindow:$.originalWindow}),F.trace(`populated cache for ${D}`)}return v.isSettled||(F.trace("resolving firstEdit promise"),A.setResult(new __(te.docContents,Y)),v.complete(J?vt.ok(J):vt.error(new Gr.Unexpected(new Error("No cached edit"))))),te.docContents=re.applyOnText(te.docContents),J},q=($,L)=>{let F=p.createSubLogger("streamEnd");if(D===-1&&$ instanceof Gr.NoSuggestions&&(F.trace("resetting shouldExpandEditWindow to false due to NoSuggestions"),this._shouldExpandEditWindow=!1),k.get(d).nextEdits.length)F.trace(`${k.get(d).nextEdits.length} edits returned`);else if(F.trace(`no edit, reason: ${$.kind}`),$ instanceof Gr.NoSuggestions){let{documentBeforeEdits:ge,window:re}=$,J=re?Saa(re,g,ge):void 0;this._nextEditCache.setNoNextEdit(d,ge,J,n)}v.isSettled||v.complete(vt.error($));let oe=k.get(d).nextEdits.length>0?vt.ok(void 0):vt.error($),Y=new aU(oe,L);if(w.setResult(Y),I.dispose(),E(),this._scheduledSpeculativeRequest?.headerRequestId===w.headerRequestId){let ge=this._scheduledSpeculativeRequest;this._scheduledSpeculativeRequest=null,this._triggerSpeculativeRequest(ge.suggestion)}return Y};try{let $=await T.next();if($.done){let L=$.value.v;x=q(L,$.value.telemetryBuilder)}else{let L=$.value.v,F=$.value.telemetryBuilder;M(L,F),(async()=>{try{for($=await T.next();!$.done;){let oe=$.value.v;M(oe,$.value.telemetryBuilder),this._scheduledSpeculativeRequest?.headerRequestId===w.headerRequestId&&(this._scheduledSpeculativeRequest=null),$=await T.next()}let te=$.value.v;q(te,$.value.telemetryBuilder)}catch(te){p.trace(`Error while streaming further edits: ${jr.toString(te)}`);let oe=new Gr.Unexpected(jr.fromUnknown(te));q(oe,F)}})(),x=new aU(vt.ok(void 0),F)}}catch($){throw w.setResultError($),$}return{nextEditRequest:w,nextEditResult:x}}_hookupCancellation(n,r,o){let a=new it,s=!1,c=()=>{s||(s=!0,n.liveDependentants--)},l=a.add(new BO);return a.add(r.onCancellationRequested(()=>{if(c(),!(n.liveDependentants>0)){if(!n.fetchIssued){n.cancellationTokenSource.cancel(),o?.dispose();return}l.setIfNotSet(()=>{n.liveDependentants>0||(n.cancellationTokenSource.cancel(),o?.dispose())},1e3)}})),a.add(Fn(()=>{c(),n.liveDependentants===0&&o?.dispose()})),n.liveDependentants++,a}computeMinimumResponseDelay({triggerTime:n,isRebasedCachedEdit:r,isSubsequentCachedEdit:o,isFromSpeculativeRequest:a,enforceCacheDelay:s},c){if(!s)return c.trace("[minimumDelay] no minimum delay enforced due to enforceCacheDelay being false"),0;let l=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsCacheDelay,this._expService),u=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsRebasedCacheDelay,this._expService),d=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsSubsequentCacheDelay,this._expService),p=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsSpeculativeRequestDelay,this._expService),m=l;r&&u!==void 0?m=u:o&&d!==void 0?m=d:a&&p!==void 0&&(m=p);let A=Date.now()-n,f=Math.max(0,m-A);return c.trace(`[minimumDelay] expected delay: ${m}ms, effective delay: ${f}. isRebasedCachedEdit: ${r} (rebasedCacheDelay: ${u}), isSubsequentCachedEdit: ${o} (subsequentCacheDelay: ${d}), isFromSpeculativeRequest: ${a} (speculativeRequestDelay: ${p})`),f}handleShown(n){if(this._lastShownTime=Date.now(),this._lastShownSuggestionId=n.requestId,this._lastOutcome=void 0,this._scheduledSpeculativeRequest=null,this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsSpeculativeRequests,this._expService)==="on"){let o=this._pendingStatelessNextEditRequest;o&&o.headerRequestId===n.source.headerRequestId?this._scheduledSpeculativeRequest={suggestion:n,headerRequestId:o.headerRequestId}:this._triggerSpeculativeRequest(n)}}async _triggerSpeculativeRequest(n){let r=n.result;if(!r?.edit)return;let o=r.targetDocumentId;if(!o)return;let a=new YI(o.uri,0,void 0),s=new Gi,c=this._logger.createSubLogger("_triggerSpeculativeRequest").withExtraTarget(mX.fromCallback((w,x)=>{a.trace(`[${Math.floor(s.elapsed()).toString().padStart(4," ")}ms] ${x}`)})),l=r.edit.replace(r.documentBeforeEdits.value),u=r.edit.removeCommonSuffixPrefix(r.documentBeforeEdits.value),d=u.replaceRange.start+u.newText.length,p=new dt(d,d),m=[p],A=new Kd(r.documentBeforeEdits,new Cn([r.edit])),f=new hl(l),g=this._nextEditCache.lookupNextEdit(o,f,m),h=p;if(g)if(g.edit){c.trace("already have cached edit for post-edit state");return}else if(g.editWindow){c.trace("have cached no-suggestions entry for post-edit state, but it has an edit window. Checking if shifting selection based on cursor placement config can yield a cached edit");let w=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsSpeculativeRequestsCursorPlacement,this._expService);if(w==="afterEditWindow")if(c.trace("cursor placement config is AfterEditWindow, shifting selection to after edit window"),h=mU.shiftSelectionAfterEditWindow(f,g.editWindow),g=this._nextEditCache.lookupNextEdit(o,f,[h]),g?.edit){c.trace("already have cached edit for post-edit state (after shifting selection)");return}else c.trace("no cached edit even after shifting selection");else c.trace(`cursor placement config is ${w}, not shifting selection`)}else{c.trace("already have cached no-suggestions entry for post-edit state");return}if(this._pendingStatelessNextEditRequest?.documentBeforeEdits.value===l){c.trace("already have pending request for post-edit state");return}if(this._speculativePendingRequest?.docId===o&&this._speculativePendingRequest?.postEditContent===l){c.trace("already have speculative request for post-edit state");return}let y=this._workspace.getDocument(o);if(!y){c.trace("document not found for speculative request");return}this._cancelSpeculativeRequest();let v=this._historyContextProvider.getHistoryContext(o);if(!v){c.trace("no history context for speculative request");return}let _=new Ztt(`sp-${n.source.opportunityId}`,a,void 0,!0,`sp-${st()}`);c.trace(`triggering speculative request for post-edit state (opportunityId=${_.opportunityId}, headerRequestId=${_.headerRequestId})`);try{let w=await this._createSpeculativeRequest(_,y,h,v,l,A,r.edit,{triggeredBySpeculativeRequest:n.source.isSpeculative,isSubsequentEdit:n.result?.isSubsequentEdit??!1},c);w&&(this._speculativePendingRequest={request:w,docId:o,postEditContent:l})}catch(w){c.trace(`speculative request failed: ${jr.toString(w)}`)}}async _createSpeculativeRequest(n,r,o,a,s,c,l,{triggeredBySpeculativeRequest:u,isSubsequentEdit:d},p){let m=r.id,A=this._debugRecorder?.getRecentLog(),f=n.log;f.setStatelessNextEditProviderId(this._statelessNextEditProvider.ID);let g=p.createSubLogger("_createSpeculativeRequest"),h=a.getDocumentAndIdx(m);if(!h){g.trace("active doc not found in history context");return}let y=new hl(s),v=a.documents.map(M=>{if(M.docId!==m)return this._processDoc(M);{let q=this._workspace.getWorkspaceRoot(m),$=new Cn([l]),L=__.fromEdit(new Kd(r.value.get(),$)).removeCommonSuffixPrefixLines().edit,F=new fV(m,q,M.languageId,r.value.get().getLines(),L,r.value.get(),yI.single($),o);return{recentEdit:new Kd(r.value.get(),$),nextEditDoc:F,documentAfterEdits:y}}}),_=this._xtabHistoryTracker.getHistory(),w={kind:"edit",docId:m,edit:c};_.push(w);let x=new no,E=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsSpeculativeRequestsAutoExpandEditWindowLines,this._expService),I;switch(E){case"off":I=void 0;break;case"always":I=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsAutoExpandEditWindowLines,this._expService);break;case"smart":{I=u||d?this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsAutoExpandEditWindowLines,this._expService):void 0;break}default:ai(E)}let k=new AV(n.headerRequestId,n.opportunityId,y,v.map(M=>M.nextEditDoc),h.idx,_,x,I,!0,f,void 0,A,void 0);f.setRequestInput(k),g.trace("starting speculative provider call");let T=`NES | spec | ${(0,PPr.basename)(r.id.toUri().fsPath)} (v${r.version.get()})`,D=new Zd(T,void 0);return this._requestLogger.captureInvocation(D,async()=>{try{await this._runSpeculativeProviderCall(k,v,m,n,g)}finally{this._addLogContextEntry(f,T)}}),k}async _runSpeculativeProviderCall(n,r,o,a,s){let c=s.createSubLogger("_runSpeculativeProviderCall"),l=n.xtabEditHistory,u=DPr(r,l),d=a.log,p=this._statelessNextEditProvider.provideNextEdit(n,c,d,n.cancellationTokenSource.token),m=-1;try{let A=await p.next();A.done?(n.firstEdit.complete(vt.error(A.value.v)),n.setResult(new aU(vt.error(A.value.v),A.value.telemetryBuilder)),c.trace("speculative request completed with no edits")):(async()=>{for(;!A.done;){++m;let f=A.value.v,g=u.get(f.targetDocument??o),h=f.edit,y=new Gf([h]),_=RPr(y,g.baseDocState).tryRebase(g.editsSoFar);if(_===void 0){c.trace(`speculative edit ${m} rebasing failed`),A=await p.next();continue}if(g.editsSoFar=g.editsSoFar.compose(_),_.replacements.length===1){let w=_.replacements[0];g.nextEdits.push(w);let x=this._nextEditCache.setKthNextEdit(g.docId,g.docContents,m===0?f.window:void 0,w,m,m===0?g.nextEdits:void 0,void 0,a,{isFromCursorJump:f.isFromCursorJump,originalEditWindow:f.originalWindow});!n.firstEdit.isSettled&&x&&(n.firstEdit.complete(vt.ok(x)),n.setResult(new aU(vt.ok(void 0),A.value.telemetryBuilder))),c.trace(`cached speculative edit ${m}`)}g.docContents=_.applyOnText(g.docContents),A=await p.next()}})().finally(()=>{n.firstEdit.isSettled||(n.firstEdit.complete(vt.error(new Gr.Uncategorized(new Error("Speculative request ended without edits")))),n.setResult(new aU(vt.error(new Gr.Uncategorized(new Error("Speculative request ended without edits"))),A.value.telemetryBuilder)))}),c.trace(`speculative request completed with ${m+1} edits`)}catch(A){c.trace(`speculative provider call error: ${jr.toString(A)}`)}}static shiftSelectionAfterEditWindow(n,r){let o=n.getTransformer(),a=o.getPosition(r.endExclusive-1),s=a.lineNumber+11e3&&r.result.edit&&(this._rejectionCollector.reject(n,r.result.edit),this._nextEditCache.rejectedNextEdit(r.source.headerRequestId)),this._lastRejectionTime=Date.now(),this._lastOutcome="rejected",this._statelessNextEditProvider.handleRejection?.()}handleIgnored(n,r,o){this._lastOutcome="ignored",this._lastShownSuggestionId===r.requestId&&!(o!==void 0)&&(this._cancelSpeculativeRequest(),this._statelessNextEditProvider.handleIgnored?.())}async runSnippy(n,r){r.result===void 0||r.result.edit===void 0||this._snippyService.handlePostInsertion(n.toUri(),r.result.documentBeforeEdits,r.result.edit)}_addLogContextEntry(n,r){n.includeInLogTree&&this._requestLogger.addEntry({type:"MarkdownContentRequest",debugName:r??n.getDebugName(),icon:n.getIcon(),startTimeMs:n.time,markdownContent:n.toLogDocument()})}clearCache(){this._nextEditCache.clear(),this._rejectionCollector.clear()}};mU=S([b(5,be),b(6,qtt),b(7,Z),b(8,Fe),b(9,Fr)],mU);function Taa(t){if(!t)throw new gn("expected value to be defined, but it was not");return t}var Ztt=class{constructor(e,n,r,o,a=st()){this.opportunityId=e;this.log=n;this.providerRequestStartDateTime=r;this.isSpeculative=o;this.headerRequestId=a}};var NPr=O(require("vscode"));var kk=class{constructor(e,n,r,o){this.type=e;this.diagnostic=n;this._edit=r;this._workspaceDocument=o;this.isInlineEdit=!0;this.showInlineEditMenu=!0}static equals(e,n){return e.documentId.toString()===n.documentId.toString()&&zt.equalsRange(zKe(e.range),zKe(n.range))&&e.insertText===n.insertText&&e.type===n.type&&e.isInlineEdit===n.isInlineEdit&&e.showInlineEditMenu===n.showInlineEditMenu&&Baa(e.nextEditDisplayLocation,n.nextEditDisplayLocation)}get range(){return this._range||(this._range=wTe(this._edit.range)),this._range}get insertText(){return this._edit.text}get nextEditDisplayLocation(){return this._getDisplayLocation()}get displayLocation(){let e=this.nextEditDisplayLocation;return e?{range:wTe(e.range),label:e.label,kind:NPr.InlineCompletionDisplayLocationKind.Code}:void 0}get documentId(){return this._workspaceDocument.id}toOffsetEdit(){return jo.replace(this._toOffsetRange(this._edit.range),this._edit.text)}toTextEdit(){return new s0([this._edit])}toLineEdit(){return Gf.fromTextEdit(this.toTextEdit(),this._workspaceDocument.value.get())}getDiagnosticOffsetRange(){return this.diagnostic.range}getRootedLineEdit(){return new __(this._workspaceDocument.value.get(),this.toLineEdit())}_toOffsetRange(e){return this._workspaceDocument.value.get().getTransformer().getOffsetRange(e)}_getDisplayLocation(){}toString(){return`DiagnosticCompletionItem(type=${this.type}, diagnostic=${this.diagnostic.toString()}, edit=${this._edit.toString()})`}};function Baa(t,e){return t===e||t!==void 0&&e!==void 0&&t.label===e.label&&zt.equalsRange(t.range,e.range)}var Vtt=class{constructor(){this._logs=[];this._markedToBeLogged=!1;this._error=void 0}getLogs(){if(!this._markedToBeLogged)return[];let e=[];return this._error&&(e.push("## Diagnostics Error"),e.push("```"),e.push(jr.toString(jr.fromUnknown(this._error))),e.push("```")),this._logs.length>0&&(e.push("## Diagnostics Logs"),e.push(...this._logs)),e}addLog(e){this._logs.push(e.replace(` `,"\\n").replace(" ","\\t").replace("`","`")+` `)}markToBeLogged(){this._markedToBeLogged=!0}setError(e){this._markedToBeLogged=!0,this._error=e}},wRe=class{constructor(e){this.data=e;this._isValid=!0;this._updatedRange=e.range}static equals(e,n){return e.equals(n)}get range(){return this._updatedRange}isValid(){return this._isValid}get message(){return this.data.message}equals(e){return this.data.equals(e.data)&&this._updatedRange.equals(e.range)&&this._isValid===e._isValid}toString(){return this.data.range!==this._updatedRange?`\`${this.data.toString()}\` (currently at \`${this._updatedRange.toString()}\`)`:`\`${this.data.toString()}\``}updateRange(e){this._updatedRange=e}invalidate(){this._isValid=!1}};function Zp(t,e,n){e&&t.split(` `).forEach(o=>e.addLog(o)),n&&n.trace(t)}function Mpe(t,e,n,r){let o=`${t}${e.map(a=>` - ${typeof a=="string"?a:a.toString()}`).join("")}`;Zp(o,n,r)}function qGt(t,e,n){function r(c,l){return{lineDelta:Math.abs(c.lineNumber-l.lineNumber),characterDelta:Math.abs(c.column-l.column)}}let o=t.value.get().getTransformer().getRange(e.range),a=r(o.getStartPosition(),n),s=r(o.getEndPosition(),n);return a.lineDelta===s.lineDelta?a.characterDelta{let s=qGt(t,o,n),c=qGt(t,a,n);if(s.lineDelta!==c.lineDelta)return s.lineDelta-c.lineDelta;let l=r.getPosition(o.range.start),u=r.getPosition(a.range.start);return l.lineNumber!==u.lineNumber||s.lineDelta<2?s.characterDelta-c.characterDelta:-1})}var RF=O(require("vscode"));Ue();var Qpe=class extends fe{constructor(n,r,o){super();this._documentState=new Map;this._lastDocuments=new jGt(50);this._register(fo(a=>{a.readObservable(r.branch)!==void 0&&(this._lastGitCheckout=Sh(),this._documentState.forEach(c=>c.resetEditHistory()))})),qd(this,n.openDocuments,(a,s)=>{let c=new zGt(a.value.get(),o);this._documentState.set(a.id,c),s.add(kA(this,{value:a.value},l=>{let u=this._isAwaitingGitCheckoutCooldown();for(let d of l.value.changes)this._lastDocuments.push(c),c.handleEdit(d,u)})),s.add(Fn(()=>{let l=this._documentState.get(a.id);l&&this._lastDocuments.remove(l),this._documentState.delete(a.id)}))},a=>a.id).recomputeInitiallyAndOnChange(this._store)}_isAwaitingGitCheckoutCooldown(){if(!this._lastGitCheckout)return!1;let n=Sh()-this._lastGitCheckout<2*1e3;return n||(this._lastGitCheckout=void 0),n}getRecentEdits(n){let r=this._documentState.get(n);if(r)return r.getRecentEdits()}getNRecentEdits(n,r){let o=this._documentState.get(n);if(o)return o.getNRecentEdits(r)}resetEditHistory(){this._documentState.forEach(n=>n.resetEditHistory())}getLastDocuments(){return this._lastDocuments.getItemsReversed()}hasDocument(n){return this._documentState.has(n)}},$Gt=class{constructor(e){this.value=e}join(e){return this.value>=e.value?this:e}},zGt=class{constructor(e,n){this._historyLength=n;this._documentStateID=0;this._recentEdits=lR.create([]);this._base=e,this._current=e}handleEdit(e,n){if(e.isEmpty())return;let r=this._documentStateID++;if(this._current=e.applyOnText(this._current),n){this.resetEditHistory();return}let o=e.mapData(l=>new $Gt(r)),a=this._recentEdits.compose(o),{e1:s,e2:c}=a.decomposeSplit(l=>l.data.value>this._documentStateID-this._historyLength);this._recentEdits=s,this._base=c.applyOnText(this._base)}getRecentEdits(){return{before:this._base,after:this._current,edits:this._recentEdits.toStringEdit()}}getNRecentEdits(e){let{e1:n,e2:r}=this._recentEdits.decomposeSplit(o=>o.data.value>this._documentStateID-e);return{before:r.applyOnText(this._base),after:this._current,edits:n.toStringEdit()}}resetEditHistory(){this._base=this._current,this._recentEdits=lR.create([])}},jGt=class{constructor(e){this.maxSize=e;this._arr=[]}push(e){let n=this._arr.indexOf(e);n!==-1?this._arr.splice(n,1):this._arr.length>=this.maxSize&&this._arr.shift(),this._arr.push(e)}remove(e){let n=this._arr.indexOf(e);n!==-1&&this._arr.splice(n,1)}getItemsReversed(){let e=[...this._arr];return e.reverse(),e}has(e){return this._arr.indexOf(e)!==-1}};wr();Fd();dn();yr();En();Ar();Ue();fr();var MPr=.7,xRe=class t{constructor(e=new Set,n=new Set){this.inserted=e;this.deleted=n}combine(e){return new t(QPr(this.inserted,e.inserted),QPr(this.deleted,e.deleted))}isUndoneBy(e){let n=OPr(e.inserted,e.deleted),r=OPr(e.deleted,e.inserted),o=UPr(r,this.inserted),a=UPr(n,this.deleted);return r.size>6&&o/r.size>MPr||n.size>6&&a/n.size>MPr}};function GGt(t,e){let n=new Set,r=new Set,o=s=>{if(!s)return;let c=t.substring(s.start,s.endExclusive);for(let l of c.split(/\r\n|\r|\n/)){l=l.trim();for(let u of FPr(l))r.add(u)}},a=s=>{for(let c of s.split(/\r\n|\r|\n/)){c=c.trim();for(let l of FPr(c))n.add(l)}};for(let s of e.replacements){let c=s.removeCommonPrefix(t).removeCommonSuffix(t),l=s.removeCommonSuffix(t).removeCommonPrefix(t);c.isEmpty||(o(c.replaceRange),o(l.replaceRange),o(c.replaceRange.intersect(l.replaceRange)),a(Raa(c.newText,l.newText)))}return new xRe(n,r)}function Raa(t,e){let n=Math.min(t.length,e.length);for(let r=0;rDaa(h,s));if(l.length===0)continue;Mpe(`Found the following code action which fix \`${s.message}\``,l,o,this._logger);let u=Naa(l);if(u.length===0)continue;let d=u[0];if(!d.edits)continue;let p=tc.joinReplacements(d.edits,e.value.get()),m={edit:p,type:Paa(d)},A;Math.abs(p.range.startLineNumber-r.lineNumber)>12&&(A=d.title);let g=new ERe(m,s,A,e);return Zp(`Created Completion Item for diagnostic: ${s.message}: ${g.toLineEdit().toString()}`),g}return null}completionItemRejected(e){}};function Daa(t,e){return t.diagnostics.some(n=>e.data.message===n.message&&e.data.range.equals(n.range))}function Paa(t){return t.title.replace(/(["'])(.*?)\1/g,"$1...$1")}function Naa(t){return t.filter(e=>{let n=e.edits;return!(!n||e.title==="Infer parameter types from usage"&&(n.length===0||n.length===1&&["any","unknown","undefined"].some(r=>n[0].text.includes(r))))})}var HGt=class t extends kk{constructor(n,r,o){super(t.type,n,r,o);this.providerName="async"}static{this.type="async"}},IRe=class t{constructor(e){this._logger=e;this.providerName="async"}static{this.SupportedLanguages=new Set(["typescript","javascript","typescriptreact","javascriptreact"])}providesCompletionsForDiagnostic(e,n,r,o){return!t.SupportedLanguages.has(r)||!Fpe(e,n,o,3)?!1:Laa(n)}async provideDiagnosticCompletionItem(e,n,r,o,a){let s=n.find(p=>this.providesCompletionsForDiagnostic(e,p,e.languageId.get(),r));if(s===void 0)return null;let c=await e.getCodeActions(s.range,3,a);if(c===void 0)return Zp(`Fetching code actions likely timed out for \`${s.message}\``,o,this._logger),null;let l=Faa(c,e);if(l.length===0)return Zp("No async code actions found in the available code actions",o,this._logger),null;let u=l[0],d=new HGt(s,u.edit,e);return Zp(`Created async completion item for: \`${s.toString()}\``,o,this._logger),d}};function Laa(t){return t.data.code===1308}var Maa=["Add async","Update async"];function Faa(t,e){let n=[];for(let r of t){if(!!!Maa.find(c=>r.title.startsWith(c))||!r.edits)continue;let s=tc.joinReplacements(r.edits,e.value.get());n.push({...r,edit:s})}return n}var WGt=O(require("vscode"));sr();fr();Ot();var ZGt=class{constructor(e,n,r,o){this.codeAction=e;this.edit=n;this._importDetails=r;this.hasExistingSameFileImport=o}get importName(){return this._importDetails.importName}get importPath(){return this._importDetails.importPath}get labelShort(){return this._importDetails.labelShort}get labelDeduped(){return this._importDetails.labelDeduped}get importSource(){return this._importDetails.importSource}compareTo(e){if(this.hasExistingSameFileImport&&!e.hasExistingSameFileImport)return-1;if(!this.hasExistingSameFileImport&&e.hasExistingSameFileImport)return 1;if(this.importSource===0&&e.importSource!==0||this.importSource!==1&&e.importSource===1)return-1;if(this.importSource!==0&&e.importSource===0||this.importSource===1&&e.importSource!==1)return 1;if(this.importSource!==2&&e.importSource!==2){let n=this.importPath.split("/").length-1,r=e.importPath.split("/").length-1;if(n!==r)return n-r}return-1}toString(){return this.codeAction.toString()}},kRe=class t extends kk{constructor(n,r,o,a,s){super(t.type,r,n.edit,a);this._importCodeAction=n;this._importLabel=o;this.alternativeImportsCount=s;this.providerName="import";let c;td(this._importCodeAction.importPath)?c=this._importCodeAction.importPath:c=zmn(Qd(a.id.toUri()),this._importCodeAction.importPath).path,this._importSourceFile=hy.create(c)}static{this.type="import"}get importItemName(){return this._importCodeAction.importName}get importSourceFile(){return this._importSourceFile}get isLocalImport(){switch(this._importCodeAction.importSource){case 0:return!0;case 1:return!1;default:return}}get hasExistingSameFileImport(){return this._importCodeAction.hasExistingSameFileImport}_getDisplayLocation(){return{range:this._workspaceDocument.value.get().getTransformer().getRange(this.diagnostic.range),label:this._importLabel}}},VGt=class{constructor(e,n){this._workspaceService=e;this._fileService=n;this._nodeModules=new Set,this.tsconfigPaths={}}get nodeModules(){return this._nodeModules}async updateNodeModules(){let e=this._workspaceService.getWorkspaceFolders(),n=await Promise.all(e.map(async r=>{try{let o=K.joinPath(r,"node_modules");if((await this._fileService.stat(o)).type!==WGt.FileType.Directory)return new Set;let l=(await this._fileService.readDirectory(o)).filter(([u,d])=>d===WGt.FileType.Directory).map(([u,d])=>u);return new Set(l)}catch{return new Set}}));this._nodeModules=new Set(...n)}},SRe=class{constructor(e,n,r){this._logger=e;this._workspaceService=n;this._fileService=r;this.providerName="import";this._importRejectionMap=new Map;this._workspaceInfo=new VGt(this._workspaceService,this._fileService),this._workspaceInfo.updateNodeModules();let o=new YGt,a=new KGt,s=new JGt;this._importHandlers=new Map([["javascript",o],["typescript",o],["typescriptreact",o],["javascriptreact",o],["python",a]]),JN&&this._importHandlers.set("java",s)}static{this.SupportedLanguages=new Set(["typescript","javascript","typescriptreact","javascriptreact","python","java"])}providesCompletionsForDiagnostic(e,n,r,o){let a=this._importHandlers.get(r);return!a||!Fpe(e,n,o,12)?!1:a.isImportDiagnostic(n)}async provideDiagnosticCompletionItem(e,n,r,o,a){let s=e.languageId.get(),c=n.find(A=>this.providesCompletionsForDiagnostic(e,A,s,r));if(!c)return null;let l=Date.now(),u=await e.getCodeActions(c.range,3,a),d=Date.now()-l;if(u===void 0)return Zp(`Fetching code actions likely timed out for \`${c.message}\``,o,this._logger),null;Zp(`Resolving code actions for \`${c.message}\` took \`${d}ms\``,o,this._logger);let p=this._getImportCodeActions(u,e,c,this._workspaceInfo);if(p.length===0)return Zp("No import code actions found in the available code actions",o,this._logger),null;let m=p.sort((A,f)=>A.compareTo(f));Mpe(`Sorted import code actions for \`${c.message}\``,m,o,this._logger);for(let A of m){let f=p.length===1&&A.importSource!==1?A.labelShort:A.labelDeduped,g=new kRe(A,c,f,e,p.length-1);if(this._hasImportBeenRejected(g)){Zp(`Rejected import completion item ${A.labelDeduped} for ${c.toString()}`,o,this._logger),o.markToBeLogged();continue}return Zp(`Created import completion item ${A.labelDeduped} for ${c.toString()}`,o,this._logger),g}return null}completionItemRejected(e){let n=this._importRejectionMap.get(e.importSourceFile);n===void 0&&(n=new Set,this._importRejectionMap.set(e.importSourceFile,n)),n.add(e.importItemName)}isCompletionItemStillValid(e,n){return this._hasImportBeenRejected(e)?!1:e.diagnostic.range.substring(n.value.get().value)===e.importItemName}_hasImportBeenRejected(e){return this._importRejectionMap.get(e.importSourceFile)?.has(e.importItemName)??!1}_getImportCodeActions(e,n,r,o){let a=n.value.get(),s=r.range.substring(a.value),c=n.languageId.get(),l=this._importHandlers.get(c);if(!l)throw new Error(`No import handler found for language: ${c}`);let u=[];for(let d of e){if(!l.isImportCodeAction(d)||!d.edits)continue;let p=tc.joinReplacements(d.edits,a),m=s;d.diagnostics&&d.diagnostics.length>0&&(m=d.diagnostics[0].range.substring(a.value));let A=l.getImportDetails(d,m,o);if(!A)continue;let f=new ZGt(d,p,A,!p.text.includes("import"));m.length<2||l.isImportInIgnoreList(f)||u.push(f)}return u}};var YGt=class t{static{this.CodeActionTitlePrefixes=["Add import from","Update import from"]}static{this.ImportsToIgnore=new Set(["type","namespace","module","declare","abstract","from","of","require","async"])}static{this.ModulesToIgnore=new Set([])}isImportDiagnostic(e){return e.message.includes("Cannot find name")}isImportCodeAction(e){return t.CodeActionTitlePrefixes.some(n=>e.title.startsWith(n))}isImportInIgnoreList(e){return e.importSource===0?!1:!!(e.importSource===1&&e.importPath.includes("/")||e.importSource===1&&e.importName===e.importName.toLowerCase()||t.ImportsToIgnore.has(e.importName)||t.ModulesToIgnore.has(e.importPath.split(":")[0]))}getImportDetails(e,n,r){let o=t.CodeActionTitlePrefixes.find(c=>e.title.startsWith(c));if(!o)return null;let a=e.title.substring(o.length).trim(),s=a;return(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'")||s.startsWith("`")&&s.endsWith("`"))&&(s=s.slice(1,-1)),{importName:n,importPath:s,labelShort:`import ${n}`,labelDeduped:`import ${n} from ${a}`,importSource:this._getImportSource(s,r)}}_getImportSource(e,n){if(e.startsWith("./")||e.startsWith("../"))return 0;for(let[o,a]of Object.entries(n.tsconfigPaths)){let s=o.replace(/\*$/,"");if(e.startsWith(s))return 0}return e.includes(":")||[e,e.split("/")[0]].some(o=>n.nodeModules.has(o))?1:2}},KGt=class{isImportDiagnostic(e){return e.message.includes("is not defined")}isImportCodeAction(e){return e.title.startsWith('Add "from')||e.title.startsWith('Add "import')}isImportInIgnoreList(e){return!1}getImportDetails(e,n,r){let o=e.title.match(/Add "from\s+(.+?)\s+import\s(.+?)"/);if(o){let c=o[1],l=o[2];return{importName:l,importPath:c,labelDeduped:`import from ${c}`,labelShort:`import ${l}`,importSource:this._getImportSource(c)}}let a=e.title.match(/Add "import\s+(.+?)\s+as\s(.+?)"/);if(a){let c=a[1],l=a[2];return{importName:c,importPath:c,labelDeduped:`import ${c} as ${l}`,labelShort:`import ${c} as ${l}`,importSource:2}}let s=e.title.match(/Add "import\s+(.+?)"/);if(s){let c=s[1];return{importName:c,importPath:c,labelDeduped:`import ${c}`,labelShort:`import ${c}`,importSource:2}}return null}_getImportSource(e){return e.startsWith(".")?0:2}},JGt=class{isImportDiagnostic(e){return String(e.data.code)==="16777218"||e.message.endsWith("cannot be resolved to a type")}isImportCodeAction(e){return e.title.startsWith("Import")}isImportInIgnoreList(e){return!1}getImportDetails(e,n,r){return{importName:n,importPath:e.title.split("'")[2].trim(),labelShort:"import "+n,labelDeduped:e.title,importSource:2}}};function Qaa(t,e){return t.completionItem&&e.completionItem?kk.equals(t.completionItem,e.completionItem):t.completionItem===e.completionItem}var XGt=class{constructor(){this._diagnostics=[]}applyEdit(e,n,r){let o=!1;for(let a of this._diagnostics){let s=a.range,c=aTt([s],n)[0];if(!c||c.lengthe.toString()).join(` `)}},Ope=class extends fe{constructor(n,r,o,a,s,c,l){super();this._workspace=n;this._tabsAndEditorsService=l;this._onDidChange=this._register(new lt);this.onDidChange=this._onDidChange.event;this._worker=new eHt(20,Qaa);this._currentDiagnostics=new XGt;this._lastAcceptedDiagnostic=void 0;this._workspaceDocumentEditHistory=this._register(new Qpe(this._workspace,r,100)),this._logger=o.createSubLogger(["NES","DiagnosticsInlineCompletionProvider"]);let u=a.getConfigObservable(H.TeamInternal.InlineEditsDiagnosticsExplorationEnabled),d=new SRe(this._logger.createSubLogger("Import"),s,c),p=new IRe(this._logger.createSubLogger("Async"));this._diagnosticsCompletionProviders=jc(A=>{let f=[d,p];return u.read(A)&&f.push(new Ytt(this._logger.createSubLogger("All"))),f}).recomputeInitiallyAndOnChange(this._store),this._rejectionCollector=this._register(new Lpe(this._workspace,o));let m=A=>!!A&&(ow(A.document.uri)||qPr(A));this._register(fo(A=>{let f=this._workspace.lastActiveDocument.read(A);if(!f)return;let g=this._tabsAndEditorsService.activeTextEditor;!g||!qPr(g)||!Un(f.id.toUri(),g.document.uri)||(this._updateState(),A.store.add(O7(f.diagnostics,h=>{this._logger.trace(`Diagnostics changed received in processor: ${h.map(y=>` - `+y.message).join("")}`),this._updateState()})))})),this._register(RF.window.onDidChangeTextEditorSelection(async A=>{let f=this._tabsAndEditorsService.activeTextEditor;m(f)&&Un(A.textEditor.document.uri,f.document.uri)&&this._updateState()})),this._register(this._worker.onDidChange(A=>{this._onDidChange.fire(!!A.completionItem)})),this._register(fo(A=>{let f=this._workspace.lastActiveDocument.read(A);f&&A.store.add(kA(this,{value:f.value},g=>{for(let h of g.value.changes){if(!g.value.previous)continue;this._currentDiagnostics.applyEdit(g.value.previous,h,g.value.value)&&this._updateState()}}))}))}static get documentSelector(){return Array.from(new Set([...SRe.SupportedLanguages,...IRe.SupportedLanguages]))}async _updateState(){let n=this._tabsAndEditorsService.activeTextEditor;if(!n)return;let r=this._workspace.getDocumentByTextDocument(n.document);if(!r)return;let o=new RF.Range(n.selection.active,n.selection.active),a=r.toRange(n.document,o);if(!a)return;let s=N0r(a.start),c=new Vtt,l=this._getDiagnostics(r,s,c),u=LPr(r,l,s);this._currentDiagnostics.isEqualAndUpdate(u)||(this._logger.trace("Scheduled update for diagnostics inline completion"),await this._worker.schedule(async d=>this._runCompletionHandler(r,u,s,c,d)))}_getDiagnostics(n,r,o){let a=n.diagnostics.get().map(d=>new wRe(d));if(a.length===0)return[];let s=(d,p,m)=>{let A=m(d),f=d.filter(g=>!A.includes(g));return f.length>0&&Mpe(p,f,o,this._logger),A},c=n.languageId.get(),l=this._diagnosticsCompletionProviders.get(),u=[...a];return u=s(u,"Filtered by provider",d=>d.filter(p=>l.some(m=>m.providesCompletionsForDiagnostic(n,p,c,r)))),u=s(u,"Filtered by recent acceptance",d=>d.filter(p=>!this._hasDiagnosticRecentlyBeenAccepted(p))),u=s(u,"Filtered by no recent edit",d=>this._filterDiagnosticsByRecentEditNearby(d,n)),u}async _runCompletionHandler(n,r,o,a,s){let c=new TRe,l=null;try{this._logger.trace("Running diagnostics inline completion handler"),l=await this._getCompletionFromDiagnostics(n,r,o,a,s,c)}catch(u){a.setError(u)}return this._logger.trace("Diagnostic Providers returned completion item: "+(l?l.toString():"null")),l instanceof kRe&&c.setImportTelemetry(l),{completionItem:l,logContext:a,telemetryBuilder:c}}getCurrentState(n){let r=this._worker.getCurrentResult(),o=this._workspace.getDocument(n);if(!o)return{item:void 0,telemetry:new TRe().addDroppedReason("WorkspaceDocumentNotFound").build(),logContext:void 0};if(r===void 0)return{item:void 0,telemetry:new TRe().build(),logContext:void 0};let{telemetryBuilder:a,completionItem:s,logContext:c}=r,l=this._worker.workInProgress();return s?this._isCompletionItemValid(s,o,r.logContext,a)?s.documentId!==n?(c.addLog("Dropped: wrong-document"),{item:void 0,telemetry:a.addDroppedReason("wrong-document").build(),logContext:c,workInProgress:l}):(Zp(`following known diagnostics: `+this._currentDiagnostics.toString(),void 0,this._logger),{item:s,telemetry:a.build(),logContext:c,workInProgress:l}):{item:void 0,telemetry:a.build(),logContext:c,workInProgress:l}:{item:void 0,telemetry:a.build(),logContext:c,workInProgress:l}}async _getCompletionFromDiagnostics(n,r,o,a,s,c){return r.length===0?(Zp(`No diagnostics available for document ${n.id.toString()}`,a,this._logger),null):(await this._fetchDiagnosticsBasedCompletions(n,r,o,a,s)).find(u=>this._isCompletionItemValid(u,n,a,c))??null}async _fetchDiagnosticsBasedCompletions(n,r,o,a,s){let c=this._diagnosticsCompletionProviders.get(),l=[],u=await Promise.all(c.map(async d=>{let p=Date.now(),m=await d.provideDiagnosticCompletionItem(n,r,o,a,s);return l.push({provider:d.providerName,duration:Date.now()-p}),m}));return this._logger.trace(`Provider durations: ${l.map(d=>` - ${d.provider}: ${d.duration}ms`).join("")}`),u.filter(d=>!!d)}handleEndOfLifetime(n,r){let o=this._diagnosticsCompletionProviders.get().find(a=>a.providerName===n.providerName);if(!o)throw new gn("No provider found for completion item");r.kind===RF.InlineCompletionEndOfLifeReasonKind.Rejected?this._rejectDiagnosticCompletion(o,n):r.kind===RF.InlineCompletionEndOfLifeReasonKind.Accepted&&this._acceptDiagnosticCompletion(o,n)}_acceptDiagnosticCompletion(n,r){this._lastAcceptedDiagnostic={diagnostic:r.diagnostic,time:Date.now()}}_rejectDiagnosticCompletion(n,r){this._rejectionCollector.reject(r.documentId,r.toOffsetEdit()),n.completionItemRejected?.(r)}_isCompletionItemValid(n,r,o,a){if(!n.diagnostic.isValid())return Zp("Diagnostic completion item is no longer valid",o,this._logger),a.addDroppedReason("no-longer-valid",n),o.markToBeLogged(),!1;if(this._isDiagnosticCompletionRejected(n))return Zp("Diagnostic completion item has been rejected before",o,this._logger),a.addDroppedReason("recently-rejected",n),o.markToBeLogged(),!1;if(this._isUndoRecentEdit(n))return Zp("Diagnostic completion item is an undo operation",o,this._logger),a.addDroppedReason("undo-operation",n),o.markToBeLogged(),!1;if(this._hasDiagnosticRecentlyBeenAccepted(n.diagnostic))return Zp("Completion item fixing the diagnostic has been accepted recently",o,this._logger),a.addDroppedReason("recently-accepted",n),o.markToBeLogged(),!1;if(this._hasRecentlyBeenAddedWithoutNES(n))return Zp("Diagnostic has been fixed without NES recently",o,this._logger),a.addDroppedReason("recently-added-without-nes",n),o.markToBeLogged(),!1;let s=this._diagnosticsCompletionProviders.get().find(c=>c.providerName===n.providerName);return s&&s.isCompletionItemStillValid&&!s.isCompletionItemStillValid(n,r)?(Zp(`${s.providerName}: Completion item is no longer valid`,o,this._logger),a.addDroppedReason(`${s.providerName}-no-longer-valid`,n),o.markToBeLogged(),!1):!0}_isDiagnosticCompletionRejected(n){return this._rejectionCollector.isRejected(n.documentId,n.toOffsetEdit())}_hasRecentlyBeenAddedWithoutNES(n){let r=this._workspaceDocumentEditHistory.getNRecentEdits(n.documentId,5)?.edits;if(!r)return!1;let o=n.toOffsetEdit();return r.replacements.some(a=>a.replaceRange.intersectsOrTouches(o.replaceRange))}_hasDiagnosticRecentlyBeenAccepted(n){return!this._lastAcceptedDiagnostic||this._lastAcceptedDiagnostic.time+1e3{let s=o.getNewRanges();return xFe(s,l=>l.endExclusive>=a.range.start)?.intersectsOrTouches(a.range)}):[]}};Ope=S([b(2,Z),b(3,be),b(4,Te),b(5,yt),b(6,co)],Ope);function Oaa(t,e,n,r){let o=t.toOffsetEdit().toEdit(),a=GGt(n.value,o),s=new xRe,c=e.value;for(let l of r.edits)s=s.combine(GGt(c,l)),c=l.apply(c);return!!s.isUndoneBy(a)}function qPr(t){return t.viewColumn!==void 0}var eHt=class extends fe{constructor(n,r){super();this._equals=r;this._onDidChange=this._register(new RF.EventEmitter);this.onDidChange=this._onDidChange.event;this._currentTokenSource=void 0;this._activeWorkPromise=void 0;this.__currentResult=void 0;this._taskQueue=new iR(n)}get _currentResult(){return this.__currentResult}set _currentResult(n){let r=this.__currentResult===void 0||!this._equals(n,this.__currentResult);this.__currentResult=n,r&&this._onDidChange.fire(n)}async schedule(n){let r=this._doSchedule(n);this._activeWorkPromise=r;let o=await r;this._activeWorkPromise===r&&(this._activeWorkPromise=void 0),o!==void 0&&(this._currentResult=o)}async _doSchedule(n){this._currentTokenSource?.dispose(!0),this._currentTokenSource=new Oi;let r=this._currentTokenSource.token,o;return await this._taskQueue.trigger(async()=>{r.isCancellationRequested||(o=await n(r))}),o}getCurrentResult(){if(this._currentResult!==void 0)return this._currentResult}workInProgress(){return this._activeWorkPromise!==void 0}dispose(){this._currentTokenSource&&this._currentTokenSource.dispose(),super.dispose()}},TRe=class{constructor(){this._droppedReasons=[]}addDroppedReason(e,n){return n instanceof ERe?this:(this._droppedReasons.push(n?`${n.type}:${e}`:e),this)}setDistanceToAlternativeDiagnostic(e){return this._distanceToAlternativeDiagnostic=e,this}setDistanceToUnknownDiagnostic(e){return this._distanceToUnknownDiagnostic=e,this}setHasAlternativeDiagnosticForSameRange(e){return this._hasAlternativeDiagnosticForSameRange=e,this}setImportTelemetry(e){return this._alternativeImportsCount=e.alternativeImportsCount,this._hasExistingSameFileImport=e.hasExistingSameFileImport,this._isLocalImport=e.isLocalImport,this}build(){return{droppedReasons:this._droppedReasons,alternativeImportsCount:this._alternativeImportsCount,hasExistingSameFileImport:this._hasExistingSameFileImport,isLocalImport:this._isLocalImport,distanceToUnknownDiagnostic:this._distanceToUnknownDiagnostic,distanceToAlternativeDiagnostic:this._distanceToAlternativeDiagnostic,hasAlternativeDiagnosticForSameRange:this._hasAlternativeDiagnosticForSameRange}}};var AU=class{constructor(e,n,r=!1){this.requestId=e;this.result=n;this.workInProgress=r}},fU=class extends fe{constructor(n,r,o,a){super();this.ID="DiagnosticsNextEditProvider";this._lastRejectionTime=0;this._lastTriggerTime=0;this._lastAcceptedItem=void 0;this._logger=a.createSubLogger(["NES","DiagnosticsNextEditProvider"]),this._diagnosticsCompletionHandler=this._register(o.createInstance(Ope,n,r))}get lastRejectionTime(){return this._lastRejectionTime}get lastTriggerTime(){return this._lastTriggerTime}get lastOutcome(){return this._lastOutcome}async getNextEdit(n,r,o,a,s){throw this._lastTriggerTime=Date.now(),new gn("DiagnosticsNextEditProvider does not support getNextEdit, use runUntilNextEdit instead")}async runUntilNextEdit(n,r,o,a,s,c){try{if(await vo(a),s.isCancellationRequested)return this._logger.trace("cancellationRequested before started"),new AU(o.requestId,void 0);let l=this._getResultForCurrentState(n,o,c);return l.result?l:await gs(new Promise(d=>{let p=new it,m=A=>{d(A),p.dispose()};p.add(this._diagnosticsCompletionHandler.onDidChange(()=>{let A=this._getResultForCurrentState(n,o,c);(A.result||!A.workInProgress)&&m(A)})),p.add(s.onCancellationRequested(()=>{p.dispose()}))}),s)??l}catch(l){let u=`Error occurred while waiting for diagnostic edit: ${jr.toString(jr.fromUnknown(l))}`;return o.addLog(u),this._logger.trace(u),new AU(o.requestId,void 0)}finally{this._logger.trace("DiagnosticsInlineCompletionProvider runUntilNextEdit complete"+(s.isCancellationRequested?" (cancelled)":""))}}_getResultForCurrentState(n,r,o){let a=this._diagnosticsCompletionHandler.getCurrentState(n),s=new cRe,c=this._createNextEditResult(a,r,s);return c.result&&s.populate(o),c}_createNextEditResult(n,r,o){let{item:a,telemetry:s}=n;return a&&this._hasRecentlyBeenAccepted(a)?(o.addDroppedReason(`${a.type}:recently-accepted`),this._logger.trace("recently accepted"),new AU(r.requestId,void 0,n.workInProgress)):(s.droppedReasons.forEach(c=>o.addDroppedReason(c)),o.setDiagnosticRunTelemetry(s),a?(o.setType(a.type),r.setDiagnosticsResult(a.getRootedLineEdit()),this._logger.trace("created next edit result"),new AU(r.requestId,{edit:a.toOffsetEdit(),displayLocation:a.nextEditDisplayLocation,item:a},n.workInProgress)):(this._logger.trace("no diagnostic edit result"),new AU(r.requestId,void 0,n.workInProgress)))}handleShown(n){}handleAcceptance(n,r){let o=r.result;if(!o)throw new gn("Completion result is undefined when accepted");this._lastAcceptedItem={item:o.item,time:Date.now()},this._lastOutcome="accepted",this._diagnosticsCompletionHandler.handleEndOfLifetime(o.item,{kind:Ktt.InlineCompletionEndOfLifeReasonKind.Accepted})}_hasRecentlyBeenAccepted(n){return!this._lastAcceptedItem||Date.now()-this._lastAcceptedItem.time>=1e3?!1:n.diagnostic.equals(this._lastAcceptedItem.item.diagnostic)||kk.equals(this._lastAcceptedItem.item,n)}handleRejection(n,r){this._lastRejectionTime=Date.now(),this._lastOutcome="rejected";let o=r.result;if(!o)throw new gn("Completion result is undefined when rejected");this._diagnosticsCompletionHandler.handleEndOfLifetime(o.item,{kind:Ktt.InlineCompletionEndOfLifeReasonKind.Rejected})}handleIgnored(n,r,o){this._lastOutcome="ignored";let a=r.result;if(!a)throw new gn("Completion result is undefined when accepted");let s=o instanceof AU?o?.result?.item:void 0;this._diagnosticsCompletionHandler.handleEndOfLifetime(a.item,{kind:Ktt.InlineCompletionEndOfLifeReasonKind.Ignored,supersededBy:s,userTypingDisagreed:!1})}};fU=S([b(2,j),b(3,Z)],fU);var bU=O(Lt()),ml=require("vscode");Xa();dn();yr();En();Ar();Ue();sr();Be();var $Pr=O(require("vscode")),tHt;(o=>{let t=new Map;t.set("typescript",new Set(["abstract","any","as","asserts","async","await","bigint","boolean","break","case","catch","class","const","continue","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","of","package","private","protected","public","readonly","require","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield"])),t.set("typescriptreact",new Set(["abstract","any","as","asserts","async","await","bigint","boolean","break","case","catch","class","const","continue","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","of","package","private","protected","public","readonly","require","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield"])),t.set("javascript",new Set(["async","await","break","case","catch","class","const","continue","constructor","debugger","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","interface","is","let","new","null","require","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","var","void","while","with","yield"])),t.set("javascriptreact",new Set(["async","await","break","case","catch","class","const","continue","constructor","debugger","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","interface","is","let","new","null","require","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","var","void","while","with","yield"])),t.set("python",new Set(["False","None","True","and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal","not","or","pass","raise","return","try","while","with","yield"])),t.set("java",new Set(["abstract","assert","boolean","break","byte","case","catch","char","class","const","continue","default","do","double","else","enum","extends","final","finally","float","for","goto","if","implements","import","instanceof","int","interface","long","native","new","null","package","private","protected","public","return","short","static","strictfp","super","switch","synchronized","this","throw","throws","transient","try","void","volatile","while"])),t.set("go",new Set(["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"])),t.set("csharp",new Set(["abstract","as","base","bool","break","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","else","enum","event","explicit","extern","false","finally","fixed","float","for","foreach","goto","if","implicit","in","int","interface","internal","is","lock","long","namespace","new","null","object","operator","out","override","params","private","protected","public","readonly","ref","return","sbyte","sealed","short","sizeof","stackalloc","static","string","struct","switch","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","virtual","void","volatile","while"])),t.set("cpp",new Set(["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","bool","break","case","catch","char","char8_t","char16_t","char32_t","class","compl","concept","const","consteval","constexpr","constinit","const_cast","continue","co_await","co_return","co_yield","decltype","default","delete","do","double","dynamic_cast","else","enum","explicit","export","extern","false","float","for","friend","goto","if","import","inline","int","long","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","private","protected","public","reflexpr","register","reinterpret_cast","requires","return","short","signed","sizeof","static","static_assert","static_cast","struct","switch","synchronized","template","this","thread_local","throw","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","while","xor","xor_eq"])),t.set("rust",new Set(["as","break","const","continue","crate","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","Self","static","struct","super","trait","true","type","unsafe","use","where","while","async","await","dyn"])),t.set("ruby",new Set(["BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","false","for","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"])),t.set("*",new Set(["abstract","as","async","await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","interface","is","let","new","null","package","private","protected","public","return","static","super","switch","this","throw","true","try","type","typeof","var","void","while","with","yield"])),o.languages=Array.from(t.keys());function n(a,s){let c=t.get(a.languageId),l=[],u=a.lineAt(s),d=u.firstNonWhitespaceCharacterIndex,p=d;for(;d=l||m>=p)}o.isNaturalLanguageDominated=r})(tHt||={});var Ny=require("vscode");Ue();sr();Ot();Be();Xa();Ue();YJ();var jPr;(o=>{o.sameStartLine={kind:"sameStartLine"};function e(a){return{kind:"proximity",lineGap:a}}o.proximity=e;function n(a,s){return{kind:"hybrid",lineGap:a,splitAfterMs:s}}o.hybrid=n;function r(a,s,c){switch(a){case"proximity":return e(s);case"hybrid":return n(s,c);case"sameStartLine":return o.sameStartLine;default:ai(a)}}o.fromConfig=r})(jPr||={});function zPr(t,e,n){if(t.isEmpty()||e.isEmpty())return!1;for(let r of t.replacements)if(!e.replacements.some(a=>r.lineRange.distanceToRange(a.lineRange)<=n))return!1;return!0}var gU=class extends fe{constructor(n,r,o,a){super();this._configurationService=o;this._expService=a;this.idToEntry=new Map,this.history=new yS,this.maxHistorySize=r??gU.MAX_HISTORY_SIZE,this.mergeStrategy=jc(s=>jPr.fromConfig(this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsXtabDiffMergeStrategy,this._expService).read(s),this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsXtabDiffMergeLineGap,this._expService).read(s),this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsXtabDiffMergeSplitAfterMs,this._expService).read(s))),qd(this,n.openDocuments,(s,c)=>{c.add(kA(this,{rootedEdits:s.value,visibleRanges:s.visibleRanges},l=>{l.rootedEdits.changes.length>0&&l.rootedEdits.previous!==void 0?this.handleEdits(s,l.rootedEdits):this.handleVisibleRangesChange(s,l.visibleRanges)}))},s=>s.id).recomputeInitiallyAndOnChange(this._store)}static{this.MAX_HISTORY_SIZE=50}getHistory(){return[...this.history]}handleVisibleRangesChange(n,r){if(r.value.length===0)return;let o=this.idToEntry.get(n.id);if(o!==void 0){if(o.entry.kind==="edit")return;o.removeFromHistory()}let a={docId:n.id,kind:"visibleRanges",visibleRanges:r.value,documentContent:n.value.get()},s=this.history.push(a);this.idToEntry.set(n.id,{entry:a,removeFromHistory:s,lastEditTimestamp:Sh()}),this.compactHistory()}shouldMerge(n,r,o){let a=this.mergeStrategy.get();switch(a.kind){case"sameStartLine":return!r.isEmpty()&&!n.isEmpty()&&n.replacements[0].lineRange.startLineNumber===r.replacements[0].lineRange.startLineNumber;case"proximity":return zPr(r,n,a.lineGap);case"hybrid":return Sh()-o<=a.splitAfterMs&&zPr(r,n,a.lineGap)}}handleEdits(n,r){nd(r.previous!==void 0,"Document has previous version"),nd(r.changes.length===1,`Expected 1 edit change but got ${r.changes.length}`);let o=r.changes[0];if(o.replacements.length===0)return;let a=this.idToEntry.get(n.id),s=r.previous,c=new Kd(s,o);if(a===void 0){this.pushToHistory(n.id,c);return}if(a.entry.kind==="visibleRanges"){a.removeFromHistory(),this.pushToHistory(n.id,c);return}let l=a.entry.edit,u=Kd.toLineEdit(l),d=Kd.toLineEdit(c);if(this.shouldMerge(u,d,a.lastEditTimestamp)){a.removeFromHistory();let p=l.edit.compose(o),m=new Kd(l.base,p);this.pushToHistory(n.id,m)}else this.pushToHistory(n.id,c)}pushToHistory(n,r){let o={docId:n,kind:"edit",edit:r},a=this.history.push(o);this.idToEntry.set(n,{entry:o,removeFromHistory:a,lastEditTimestamp:Sh()}),this.compactHistory()}compactHistory(){if(this.history.size>this.maxHistorySize){let n=this.history.shift();if(n!==void 0){let r=this.idToEntry.get(n.docId);r!==void 0&&n===r.entry&&this.idToEntry.delete(n.docId)}}}};gU=S([b(2,be),b(3,Fe)],gU);Ue();Be();var Jtt=class{constructor(e){this.timeMs=e}};wr();Ue();es();sr();var Xtt=class extends fe{constructor(n,r=Sh){super();this._workspace=n;this.getNow=r;this._id=0;this._documentHistories=new Map;qd(this,this._workspace.openDocuments,(o,a)=>{let s=this._workspace.getWorkspaceRoot(o.id);if(!s)return;if(!this._workspaceRoot)this._workspaceRoot=s;else if(this._workspaceRoot.toString()!==s.toString())return;let c=new nHt(s,o.id,o.value.get().value,this._id++,o.languageId.get(),()=>this.getTimestamp());this._documentHistories.set(c.docId,c),a.add(kA(this,{value:o.value,selection:o.selection,languageId:o.languageId},l=>{l.languageId.changes.length>0&&(c.languageId=l.languageId.value);for(let u of l.value.changes)c.handleEdit(u);l.selection.changes.length>0&&c.handleSelections(l.selection.value)})),a.add(Fn(()=>{this._documentHistories.delete(o.id)}))},o=>o.id).recomputeInitiallyAndOnChange(this._store)}getTimestamp(){let n=this.getNow();return this._lastTimestamp!==void 0&&n<=this._lastTimestamp&&(n=this._lastTimestamp+1),this._lastTimestamp=n,n}getRecentLog(n=void 0){if(!this._workspaceRoot)return;let r=[];r.push({entry:{documentType:"workspaceRecording@1.0",kind:"header",repoRootUri:this._workspaceRoot.toString(),time:this.getNow(),uuid:st()},sortTime:0});for(let o of this._documentHistories.values())r.push(...o.getDocumentLog(n));return r.sort(ih(o=>o.sortTime,Jy)),r.map(o=>o.entry)}createBookmark(){return new Jtt(this.getNow())}},nHt=class{constructor(e,n,r,o,a,s){this.workspaceUri=e;this.docId=n;this.id=o;this.languageId=a;this.getNow=s;this._edits=[];this.relativePath=(()=>{let e=va(this.workspaceUri.path,this.docId.path);return this.docId.toUri().scheme===Rt.vscodeNotebookCell?`${e}#${this.docId.fragment}`:e})();this._baseValue=new hl(r),this.creationTime=this.getNow(),this._baseValueTime=this.creationTime}handleSelections(e){this._edits.push({kind:"selections",selections:e,instant:this.getNow()})}handleEdit(e){e.isEmpty()||(this._edits.push({kind:"edit",edit:e,instant:this.getNow()}),this.cleanUpHistory())}cleanUpHistory(){let n=this.getNow()-3e5;for(;this._edits.length>0&&this._edits[0].instante.timeMs)break;if(r++,o.kind==="selections"){let a=o.selections.map(s=>[s.start,s.endExclusive]);n.push({entry:{kind:"selectionChanged",id:this.id,selection:a,time:o.instant},sortTime:o.instant})}else n.push({entry:{kind:"changed",id:this.id,v:r,edit:f$e(o.edit),time:o.instant},sortTime:o.instant})}return n}};var iHt=require("vscode");Ar();Ue();var rHt=1e4,qaa=5e3,$aa=5e3,ent=class extends fe{constructor(n){super();this.documentTrigger=n;this.timeout=this._register(new sh);this._nConsecutiveSelectionChanges=0;this.lastEditedTimestamp=Date.now(),this.lineNumberTriggers=new Map}get nConsecutiveSelectionChanges(){return this._nConsecutiveSelectionChanges}incrementSelectionChangeEventCount(){this._nConsecutiveSelectionChanges++}},Upe=class extends fe{constructor(n,r,o,a,s,c){super();this.workspace=n;this.nextEditProvider=r;this._logService=o;this._configurationService=a;this._expService=s;this._workspaceService=c;this._onChangeEmitter=this._register(new lt);this.onChange=this._onChangeEmitter.event;this.docToLastChangeMap=this._register(new dA);this._logger=this._logService.createSubLogger(["NES","Triggerer"]),this.registerListeners()}registerListeners(){this._registerDocumentChangeListener(),this._registerSelectionChangeListener()}_shouldIgnoreDoc(n){return n.uri.scheme==="output"}_registerDocumentChangeListener(){this._register(this._workspaceService.onDidChangeTextDocument(n=>{if(this._shouldIgnoreDoc(n.document))return;this.lastEditTimestamp=Date.now();let r=this._logger.createSubLogger("onDidChangeTextDocument");if(n.reason===iHt.TextDocumentChangeReason.Undo||n.reason===iHt.TextDocumentChangeReason.Redo){r.trace("Return: undo/redo");return}let o=this.workspace.getDocumentByTextDocument(n.document);if(!o){r.trace("Return: ignored document");return}this.docToLastChangeMap.set(o.id,new ent(n.document)),r.trace(`Return: updated last edit timestamp and cleared line triggers for document for ${o.id.uri}`)}))}_registerSelectionChangeListener(){this._register(this._workspaceService.onDidChangeTextEditorSelection(n=>this._handleSelectionChange(n)))}_handleSelectionChange(n){if(this._shouldIgnoreDoc(n.textEditor.document))return;let r=this.lastDocWithSelectionUri===n.textEditor.document.uri.toString();this.lastDocWithSelectionUri=n.textEditor.document.uri.toString();let o=this._logger.createSubLogger("onDidChangeTextEditorSelection");if(n.selections.length!==1){o.trace("Return: multiple selections");return}if(!n.selections[0].isEmpty){o.trace("Return: not empty selection");return}let a=this.workspace.getDocumentByTextDocument(n.textEditor.document);if(!a)return;if(this._isWithinRejectionCooldown()){this.docToLastChangeMap.deleteAndDispose(a.id),o.trace("Return: rejection cooldown");return}let s=this.docToLastChangeMap.get(a.id);if(!s){this._maybeTriggerOnDocumentSwitch(n,r,o)||o.trace("Return: document not tracked - does not have recent changes");return}let c=this._hasRecentEdit(s);if(!c||!this._hasRecentTrigger()){let l=c?"no recent trigger":"no recent edit";this._maybeTriggerOnDocumentSwitch(n,r,o)||o.trace(`Return: ${l}`);return}this._handleTrackedDocSelectionChange(n,a,s,o)}_handleTrackedDocSelectionChange(n,r,o,a){let s=r.toRange(n.textEditor.document,n.selections[0]);if(!s){a.trace("Return: no range");return}let c=s.start.line;if(this._isSameLineCooldownActive(o,c,n.textEditor.document)){a.trace("Return: same line cooldown");return}this._cleanupStaleLineTriggers(o),o.lineNumberTriggers.set(c,Date.now()),o.documentTrigger=n.textEditor.document,a.trace("Return: triggering inline edit"),this._triggerWithDebounce(o)}_isWithinRejectionCooldown(){return Date.now()-this.nextEditProvider.lastRejectionTime<$aa}_hasRecentEdit(n){return Date.now()-n.lastEditedTimestamprHt&&n.lineNumberTriggers.delete(o)}_triggerWithDebounce(n){let r=this._configurationService.getExperimentBasedConfig(H.TeamInternal.InlineEditsDebounceOnSelectionChange,this._expService);if(r===void 0){this._triggerInlineEdit("selectionChange");return}n.nConsecutiveSelectionChanges<2?this._triggerInlineEdit("selectionChange"):n.timeout.value=$We(r,()=>this._triggerInlineEdit("selectionChange")),n.incrementSelectionChangeEventCount()}_maybeTriggerOnDocumentSwitch(n,r,o){let a=o.createSubLogger("editorSwitch"),s=this._configurationService.getExperimentBasedConfig(H.Advanced.InlineEditsTriggerOnEditorChangeAfterSeconds,this._expService);if(s===void 0)return a.trace("document switch disabled"),!1;if(r)return a.trace("Return: document switch didn't happen"),!1;if(this.lastEditTimestamp===void 0)return a.trace("Return: no last edit timestamp"),!1;let c=Date.now(),l=s*1e3;if(c-this.lastEditTimestamp>l)return a.trace("Return: too long since last edit"),!1;let d=c-this.nextEditProvider.lastTriggerTime;if(this.nextEditProvider.lastTriggerTime===0||d>l)return a.trace("Return: no recent NES trigger"),!1;if(this._configurationService.getExperimentBasedConfig(H.TeamInternal.InlineEditsTriggerOnEditorChangeStrategy,this._expService)==="afterAcceptance"&&this.nextEditProvider.lastOutcome!=="accepted")return a.trace("Return: afterAcceptance strategy requires last NES to be accepted"),!1;let m=this.workspace.getDocumentByTextDocument(n.textEditor.document);if(!m)return a.trace("Return: ignored document"),!1;let A=m.toRange(n.textEditor.document,n.selections[0]);if(!A)return a.trace("Return: no range"),!1;let f=A.start.line,g=new ent(n.textEditor.document);return g.lineNumberTriggers.set(f,Date.now()),this.docToLastChangeMap.set(m.id,g),this._triggerInlineEdit("activeDocumentSwitch"),!0}_triggerInlineEdit(n){let r=st();this._logger.trace(`Triggering inline edit: ${n}`),this._onChangeEmitter.fire({data:{uuid:r,reason:n}})}};Upe=S([b(2,Z),b(3,be),b(4,Fe),b(5,Te)],Upe);var hU=class extends fe{constructor(n,r,o,a,s,c,l){super();this._predictorId=n;this.workspace=r;this.diagnosticsBasedProvider=a;this._instantiationService=s;this._configurationService=c;this._expService=l;this.inlineEditsInlineCompletionsEnabled=this._configurationService.getConfigObservable(H.TeamInternal.InlineEditsInlineCompletionsEnabled);this.debugRecorder=this._register(new Xtt(this.workspace)),this._predictor=gPr(this._predictorId,this._instantiationService);let u=this._configurationService.getExperimentBasedConfig(H.TeamInternal.InlineEditsXtabDiffNEntries,this._expService),d=new gU(this.workspace,u,this._configurationService,this._expService);this.nextEditProvider=this._instantiationService.createInstance(mU,this.workspace,this._predictor,o,d,this.debugRecorder),this._triggerer=this._register(this._instantiationService.createInstance(Upe,this.workspace,this.nextEditProvider)),this.onChange=this._triggerer.onChange}};hU=S([b(4,j),b(5,be),b(6,Fe)],hU);function tnt(t){let e=Od("overrideObs",void 0);return Tgt(e,n=>e.read(n)??t.read(n),(n,r)=>{e.set(n,r)})}var zaa="github.copilot.chat.enableEnhancedNotebookNES",qpe=class extends fe{constructor(n,r,o){super();this._logService=n;this._instantiationService=r;let a=this._logService.createSubLogger(["NES","Feature"]),s=this._instantiationService.createInstance(vV);this._register(s.registerProvider()),this._register(s.setContext()),a.trace("Return: void")}};qpe=S([b(0,Z),b(1,j),b(2,Fe)],qpe);var vV=class{constructor(e,n,r,o,a,s){this._vscodeExtensionContext=e;this._configurationService=n;this._authenticationService=r;this._expService=o;this._envService=a;this._instantiationService=s;this._inlineEditsProviderId=tnt(this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsProviderId,this._expService));this._hideInternalInterface=this._configurationService.getConfigObservable(H.TeamInternal.InlineEditsHideInternalInterface);this._enableDiagnosticsProvider=this._configurationService.getExperimentBasedConfigObservable(H.InlineEditsEnableDiagnosticsProvider,this._expService);this._yieldToCopilot=this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsYieldToCopilot,this._expService);this._excludedProviders=this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsExcludedProviders,this._expService).map(e=>e?e.split(",").map(n=>n.trim()).filter(n=>n!==""):[]);this._copilotToken=To(this,this._authenticationService.onDidAuthenticationChange,()=>this._authenticationService.copilotToken);this.inlineEditsEnabled=jc(this,e=>{let n=this._copilotToken.read(e);return!(n===void 0||n.isCompletionsQuotaExceeded)});this._internalActionsEnabled=jc(this,e=>!!this._copilotToken.read(e)?.isInternal&&!this._hideInternalInterface.read(e));this.isInlineEditsLogFileEnabledObservable=this._configurationService.getConfigObservable(H.TeamInternal.InlineEditsLogContextRecorderEnabled);this._workspace=f0e(this,e=>this._instantiationService.createInstance(fk))}setContext(){let e=this._configurationService.getExperimentBasedConfig(H.Advanced.UseAlternativeNESNotebookFormat,this._expService)||this._configurationService.getExperimentBasedConfig(H.UseAlternativeNESNotebookFormat,this._expService);return Ny.commands.executeCommand("setContext",zaa,e),fo(n=>{let r=this.inlineEditsEnabled.read(n);Ny.commands.executeCommand("setContext","github.copilot.inlineEditsEnabled",r)})}registerProvider(){let e=mW(this);return fo(n=>{if(!this.inlineEditsEnabled.read(n))return;let r=n.store.add(this._instantiationService.createInstance(aP)),o=this._inlineEditsProviderId.read(n),a=this._workspace.read(n),s=n.store.add(this._instantiationService.createInstance(E2)),c=new die(a,s),l;this._enableDiagnosticsProvider.read(n)&&(l=n.store.add(this._instantiationService.createInstance(fU,a,s)));let u=n.store.add(this._instantiationService.createInstance(hU,o,a,c,l)),d=zr(this._vscodeExtensionContext.globalStorageUri.fsPath,"logContextRecordings"),p=this.isInlineEditsLogFileEnabledObservable.read(n),m;p?m=n.store.add(this._instantiationService.createInstance(BF,d,r)):BF.cleanupOldRecordings(d);let A=n.store.add(new xpe(this._internalActionsEnabled,this.inlineEditsEnabled,u.debugRecorder,this._inlineEditsProviderId)),f=n.store.add(this._instantiationService.createInstance(oP,a)),g=n.store.add(this._instantiationService.createInstance(UT,u.debugRecorder)),h=this._instantiationService.createInstance(qT,u,r,m,A,f,g),y=e.read(n),v=this._excludedProviders.read(n);y?.modelUnification&&(v=v.slice(0),v.includes("completions")||v.push("completions"),v.includes("github.copilot")||v.push("github.copilot")),n.store.add(Ny.languages.registerInlineCompletionItemProvider("*",h,{displayName:h.displayName,yieldTo:this._yieldToCopilot.read(n)?["github.copilot"]:void 0,debounceDelayMs:0,groupId:"nes",excludes:v})),n.store.add(Ny.commands.registerCommand(BRe,()=>{this._envService.openExternal(K.parse(RRe))})),n.store.add(Ny.commands.registerCommand(oHt,()=>{u.nextEditProvider.clearCache()})),n.store.add(Ny.commands.registerCommand(aHt,()=>{let _=Ny.window.activeNotebookEditor,w=Ny.window.activeTextEditor?.document;if(!_||!w||!ow(w.uri))return;let x=u.workspace.getDocumentByTextDocument(w);if(!_.selection||!x)return;let I=new YI(x.id.uri,w.version,void 0);I.recordingBookmark=u.debugRecorder.createBookmark(),Ny.commands.executeCommand(wpe,{logContext:I})})),n.store.add(Ny.commands.registerCommand(sHt,()=>{g.startCapture("manual")})),n.store.add(Ny.commands.registerCommand(cHt,()=>{g.confirmCapture()})),n.store.add(Ny.commands.registerCommand(lHt,()=>{g.abortCapture()})),n.store.add(Ny.commands.registerCommand(uHt,()=>{g.submitCaptures()}))})}};vV=S([b(0,ut),b(1,be),b(2,at),b(3,Fe),b(4,Zt),b(5,j)],vV);var BRe="github.copilot.debug.inlineEdit.learnMore",RRe="https://aka.ms/vscode-nes",oHt="github.copilot.debug.inlineEdit.clearCache",aHt="github.copilot.debug.inlineEdit.reportNotebookNESIssue",sHt="github.copilot.nes.captureExpected.start",cHt="github.copilot.nes.captureExpected.confirm",lHt="github.copilot.nes.captureExpected.abort",uHt="github.copilot.nes.captureExpected.submit";var nnt=require("vscode");function GPr(t,e,n,r,o=!0){if(n.isEmpty&&t.line+1===n.start.line&&n.start.character===0&&e.lineAt(t.line).text.length===t.character&&(r.endsWith(` `)||r.includes(` `)&&e.lineAt(n.end.line).text.length===n.end.character)){let d=new nnt.Range(t,t),p=e.getText(new nnt.Range(t,n.start));return{range:d,newText:p+r}}if(o&&n.start.line!==n.end.line){let d=e.getText(n),p=0,m=Math.min(d.length,r.length);for(;p=0){let f=A+1;r=r.substring(f);let g=e.positionAt(e.offsetAt(n.start)+f);n=new nnt.Range(g,n.end)}}if(n.start.line!==n.end.line||n.start.line!==t.line)return;let a=e.offsetAt(t),s=new dt(e.offsetAt(n.start),e.offsetAt(n.end)),c=s.substring(e.getText()),l=a-s.start;if(!(l<0||!(c.substring(0,l)===r.substring(0,l)))&&jaa(c,r))return{range:n,newText:r}}function jaa(t,e){for(let n=0,r=0;n=e.length)return!1;t[n]===e[r]&&n++}return!0}function HPr(t,e){let n=!1,r=0,o=new Promise((s,c)=>{t.forEach((l,u)=>{l.then(d=>{if(n)return;n=!0;let p=Array(t.length).fill(void 0);p[u]=d,s(p)},d=>{e(d),r++,r===t.length&&(n=!0,c(new Error("All promises passed to raceAndAll were rejected")))})})}),a=Promise.all(t);return{first:o,all:a}}var Gaa={title:bU.t("Learn More"),command:BRe,tooltip:RRe},DRe=class extends ml.InlineCompletionList{constructor(n,r,o,a){super(r===void 0?[]:[r]);this.requestUuid=n;this.commands=o;this.telemetryBuilder=a;this.enableForwardStability=!0}},rnt=class{constructor(e,n,r,o){this.suggestion=e;this.documentId=n;this.document=r;this.requestUuid=o}},dHt=class extends rnt{constructor(){super(...arguments);this.source="provider"}},pHt=class extends rnt{constructor(){super(...arguments);this.source="diagnostics"}};function $pe(t){return t.source==="provider"}var WPr=bU.t("Go To Inline Suggestion"),qT=class extends fe{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v){super();this.model=n;this.logger=r;this.logContextRecorder=o;this.inlineEditDebugComponent=a;this.telemetrySender=s;this.expectedEditCaptureController=c;this._instantiationService=l;this._telemetryService=u;this._diffService=d;this._configurationService=p;this._logService=m;this._expService=A;this._gitExtensionService=f;this._notebookService=g;this._workspaceService=h;this._requestLogger=y;this._modelService=v;this.displayName="Inline Suggestion";this.onDidChange=this.model.onChange;this.handleDidPartiallyAcceptCompletionItem=void 0;this.handleDidRejectCompletionItem=void 0;this._isModelPickerEnabled=this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsModelPickerEnabled,this._expService);this._onDidChangeModelInfo=this._register(new lt);this.onDidChangeModelInfo=this._onDidChangeModelInfo.event;this._onDidChangeProviderOptions=this._register(new lt);this.onDidChangeProviderOptions=this._onDidChangeProviderOptions.event;this.setProviderOptionValue=async(n,r)=>{n===qT._aggressivenessOptionId&&await this._configurationService.setConfig(H.Advanced.InlineEditsAggressiveness,r)};this._logger=this._logService.createSubLogger(["NES","Provider"]),this._displayNextEditorNES=this._configurationService.getExperimentBasedConfig(H.Advanced.UseAlternativeNESNotebookFormat,this._expService),this._renameSymbolSuggestions=this._configurationService.getExperimentBasedConfigObservable(H.Advanced.InlineEditsRenameSymbolSuggestions,this._expService),this._inlineCompletionsAdvanced=this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsInlineCompletionsAdvanced,this._expService),this.setCurrentModelId=x=>this._modelService.setCurrentModelId(x);let _=To(this,this._modelService.onModelListUpdated,()=>this._modelService.modelInfo);this._register(fo(x=>{this.modelInfo=this._isModelPickerEnabled.read(x)?_.read(x):void 0,this._onDidChangeModelInfo.fire()}));let w=this._configurationService.getExperimentBasedConfigObservable(H.Advanced.InlineEditsAggressiveness,this._expService);this._register(fo(x=>{let E=w.read(x);this.providerOptions=[{id:qT._aggressivenessOptionId,label:bU.t("Eagerness"),values:[{id:"auto",label:bU.t("Auto")},{id:"low",label:bU.t("Low")},{id:"medium",label:bU.t("Medium")},{id:"high",label:bU.t("High")}],currentValueId:E}],this._onDidChangeProviderOptions.fire()}))}static{this._aggressivenessOptionId="eagerness"}_isCompletionsEnabled(n){let r=this._configurationService.getConfig(H.Enable),o=new Map(Object.entries(r));return o.has("*")||o.set("*",!1),o.has(n.languageId)?o.get(n.languageId):o.get("*")}async provideInlineCompletionItems(n,r,o,a){let s=`NES | ${dr(n.uri.fsPath)} (v${n.version})`,c=new Zd(s,void 0);nd(o.changeHint===void 0||ARe.is(o.changeHint),"Expected changeHint to be of type TriggerNes or undefined");let l=o.changeHint,u={enforceCacheDelay:!0,...o,changeHint:l};return this._requestLogger.captureInvocation(c,()=>this._provideInlineCompletionItems(n,r,u,a))}async _provideInlineCompletionItems(n,r,o,a){let s=this._logger.createSubLogger(["provideInlineCompletionItems",uie(o.requestUuid)]);if(this.expectedEditCaptureController.isCaptureActive){s.trace("Return: capture mode active");return}let c=this._isCompletionsEnabled(n),l=this._configurationService.getExperimentBasedConfig(H.TeamInternal.InlineEditsUnification,this._expService),u=this._configurationService.getExperimentBasedConfig(H.InlineEditsEnabled,this._expService,{languageId:n.languageId}),d=l&&c&&!u;if(!u&&!d){s.trace("Return: inline edits disabled");return}if(this._configurationService.getExperimentBasedConfig(H.TeamInternal.InlineEditsIgnoreWhenSuggestVisible,this._expService)&&o.selectedCompletionInfo&&!l){s.trace("Return: suggest widget is showing, not providing NES");return}let m=this.model.workspace.getDocumentByTextDocument(n);if(!m){s.trace("Return: document not found in workspace");return}let A=(ow(n.uri)?Jo(n.uri,ml.workspace.notebookDocuments)?.version:void 0)||n.version,f=new YI(m.id.uri,A,o);f.recordingBookmark=this.model.debugRecorder.createBookmark(),this.logger.addLive(f);let g=new tpe(this._gitExtensionService,this._notebookService,this._workspaceService,this.model.nextEditProvider.ID,m,this.model.debugRecorder,f.recordingBookmark);g.setOpportunityId(o.requestUuid),g.setConfigIsDiagnosticsNESEnabled(!!this.model.diagnosticsBasedProvider),g.setIsNaturalLanguageDominated(tHt.isNaturalLanguageDominated(n,r));let h=new Oi(a),y;try{s.trace("invoking next edit provider");let{first:v,all:_}=HPr([this.model.nextEditProvider.getNextEdit(m.id,o,f,a,g.nesBuilder).then(J=>({kind:"llm",val:J})),(this.model.diagnosticsBasedProvider?.runUntilNextEdit(m.id,o,f,50,h.token,g.diagnosticsBuilder)??gs(new Promise(()=>{}),h.token)).then(J=>({kind:"diagnostics",val:J}))],_p),[w,x]=await v,E;if(w!==void 0)if(w.val.result!==void 0||this.model.diagnosticsBasedProvider===void 0)E=w;else{s.trace("giving some more time to diagnostics provider");let J=MR(1250-(Date.now()-o.requestIssuedDateTime),0,1250);vo(J).then(()=>h.cancel()),[,E]=await _}else if(x!==void 0)x.val!==void 0&&x.val.result!==void 0?E=x:[E]=await _;else throw new gn("At least one of LLM NES or Diagnostics NES must be defined");h.cancel();let I=new DRe(o.requestUuid,void 0,[],g),k=E.kind==="llm"&&(!!E.val.result?.isFromCursorJump||!!E.val.result?.jumpToPosition),T=itt("nes",{isFromCursorJump:k});if(a.isCancellationRequested)return s.trace("Return: lost race to cancellation"),this.telemetrySender.scheduleSendingEnhancedTelemetry({requestId:f.requestId,result:void 0},g),I;if(E.kind==="diagnostics"&&E.val&&E.val.result)y=new pHt(E.val,m.id,n,o.requestUuid);else if(E.kind==="llm")y=new dHt(E.val,m.id,n,o.requestUuid);else return this.telemetrySender.scheduleSendingEnhancedTelemetry({requestId:f.requestId,result:void 0},g),I;if(y.source==="provider"&&y.suggestion.result?.jumpToPosition!==void 0){s.trace("next edit suggestion only has jumpToPosition"),this.telemetrySender.scheduleSendingEnhancedTelemetry(y.suggestion,g);let J=y.suggestion.result.jumpToPosition,Ae=new ml.Position(J.lineNumber-1,J.column-1),G=y.suggestion.result.targetDocumentId,U={insertText:void 0,info:y,wasShown:!1,telemetryBuilder:g,jumpToPosition:Ae,...G?{uri:ml.Uri.parse(G.uri)}:{},correlationId:T};return new DRe(o.requestUuid,U,[],g)}let D=y.suggestion.result;if(!D||!D.edit)return s.trace("no next edit suggestion"),this.telemetrySender.scheduleSendingEnhancedTelemetry(y.suggestion,g),I;s.trace(`using next edit suggestion from ${y.source}`);let M=!1,q,$=$pe(y)?y.suggestion.result?.targetDocumentId:void 0,L=m;if($&&$!==m.id){let J=this._workspaceService.textDocuments.find(G=>G.uri.toString()===$.uri),Ae=J?this.model.workspace.getDocumentByTextDocument(J):void 0;if(Ae)L=Ae;else return s.trace("no next edit suggestion: cross-file target document not found in workspace"),this.telemetrySender.scheduleSendingEnhancedTelemetry(y.suggestion,g),I}let F=L.fromOffsetRange(D.edit.replaceRange),[te,oe]=F.length?F[0]:[void 0,void 0];if(Waa(n,r,D.edit.newText,F,g),g.setIsActiveDocument(ml.window.activeTextEditor?.document===te),!te)s.trace("no next edit suggestion");else if(Haa(n,D.edit.newText))s.trace("no next edit suggestion, edits contain Notebook Cell Markers");else if(ow(te.uri)&&this._displayNextEditorNES&&te!==n)q=d?void 0:this.createNextEditorEditCompletionItem(r,{document:te,insertText:D.edit.newText,range:oe});else if(te===n){let Ae=this.model.inlineEditsInlineCompletionsEnabled.get()?GPr(r,n,oe,D.edit.newText,this._inlineCompletionsAdvanced.get()):void 0;M=!!Ae,q=d&&!M?void 0:this.createCompletionItem(m,n,Ae?.range??oe,D,Ae?.newText)}else q=d?void 0:{range:oe,insertText:D.edit.newText,command:D.action,uri:te.uri};if(!q)return this.telemetrySender.scheduleSendingEnhancedTelemetry(y.suggestion,g),I;let Y=[];this.inlineEditDebugComponent&&Y.push(...this.inlineEditDebugComponent.getCommands(f)),g.setPickedNESType(y.source==="diagnostics"?"diagnostics":"llm"),f.setPickedNESType(y.source==="diagnostics"?"diagnostics":"llm"),g.setPostProcessingOutcome({edit:D.edit,displayLocation:D.displayLocation,isInlineCompletion:M}),g.setHadLlmNES(y.source==="provider"),g.setHadDiagnosticsNES(y.source==="diagnostics"),_.then(([J,Ae])=>{g.setHadLlmNES(!!J?.val),g.setHadDiagnosticsNES(!!Ae?.val)}),this.telemetrySender.scheduleSendingEnhancedTelemetry(y.suggestion,g);let ge=(n.languageId==="typescript"||n.languageId==="typescriptreact")&&this._renameSymbolSuggestions.get(),re={...q,info:y,telemetryBuilder:g,action:Gaa,isInlineEdit:!M,showInlineEditMenu:!(l&&M),wasShown:!1,supportsRename:ge,correlationId:T};return new DRe(o.requestUuid,re,Y,g)}catch(v){s.trace(`error: ${v}`),f.setError(v);try{this.telemetrySender.sendTelemetry(y?.suggestion,g)}finally{g.dispose()}throw v}finally{f.markCompleted(),h.dispose(),this.logger.add(f)}}createNextEditorEditCompletionItem(n,r){let o=new ml.Range(n,n),a={range:o,label:WPr,kind:ml.InlineCompletionDisplayLocationKind.Label},s={preserveFocus:!1,selection:new ml.Range(r.range.start,r.range.start)},c={command:"vscode.open",title:WPr,arguments:[r.document.uri,s]};return{range:o,insertText:r.insertText,showRange:o,command:c,displayLocation:a,isEditInAnotherDocument:!0}}createCompletionItem(n,r,o,a,s){if(!a.edit)return;let c=a.displayLocation&&n.fromRange(r,wTe(a.displayLocation.range)),l=a.displayLocation&&c?{range:c,label:a.displayLocation.label,kind:ml.InlineCompletionDisplayLocationKind.Code}:void 0;return{range:o,insertText:s??a.edit.newText,displayLocation:l,command:a.action}}handleDidShowCompletionItem(n,r){n.wasShown=!0,n.telemetryBuilder.setAsShown();let o=n.info;this.logContextRecorder?.handleShown(o.suggestion),$pe(o)?this.model.nextEditProvider.handleShown(o.suggestion):this.model.diagnosticsBasedProvider?.handleShown(o.suggestion)}handleListEndOfLifetime(n,r){this._logger.createSubLogger(["handleListEndOfLifetime",uie(n.requestUuid)]).trace(`List ${n.requestUuid} disposed, reason: ${ml.InlineCompletionsDisposeReasonKind[r.kind]}`);let a=n.telemetryBuilder,s=ml.InlineCompletionsDisposeReasonKind[r.kind];a.setDisposalReason(s),this.telemetrySender.sendTelemetryForBuilder(a)}handleEndOfLifetime(n,r){let o=this._logger.createSubLogger(["handleEndOfLifetime",uie(n.info.requestUuid)]);switch(o.trace(`reason: ${ml.InlineCompletionEndOfLifeReasonKind[r.kind]}`),r.kind){case ml.InlineCompletionEndOfLifeReasonKind.Accepted:{this._handleAcceptance(n);break}case ml.InlineCompletionEndOfLifeReasonKind.Rejected:{if(this._handleDidRejectCompletionItem(n),this.expectedEditCaptureController.isEnabled&&this.expectedEditCaptureController.captureOnReject){let a=$pe(n.info)?n.info.suggestion.source.log.endpointInfo:void 0,s={requestUuid:n.info.requestUuid,providerInfo:n.info.source,modelName:a?.modelName,endpointUrl:a?.url,suggestionText:n.insertText?.toString(),suggestionRange:n.range?[n.range.start.line,n.range.start.character,n.range.end.line,n.range.end.character]:void 0,documentPath:n.info.documentId.path};this.expectedEditCaptureController.startCapture("rejection",s)}break}case ml.InlineCompletionEndOfLifeReasonKind.Ignored:{let a=r.supersededBy?r.supersededBy:void 0;o.trace(`Superseded by: ${a?.info.requestUuid||"none"}, was shown: ${n.wasShown}`),a&&this._telemetryService.sendMSFTTelemetryEvent("supersededInlineEdit",{opportunityId:n.info.requestUuid,supersededByOpportunityId:a.info.requestUuid}),this._handleDidIgnoreCompletionItem(n,a);break}}}_handleAcceptance(n){this.logContextRecorder?.handleAcceptance(n.info.suggestion),n.telemetryBuilder.setAcceptance("accepted"),n.telemetryBuilder.setStatus("accepted");let r=n.info;$pe(r)?(this.model.nextEditProvider.handleAcceptance(r.documentId,r.suggestion),n.isEditInAnotherDocument||this._trackSurvivalRate(r)):this.model.diagnosticsBasedProvider?.handleAcceptance(r.documentId,r.suggestion)}async _trackSurvivalRate(n){let r=n.suggestion.result;if(!r||!r.edit)return;let o=r.documentBeforeEdits.value,a=r.edit.toEdit().apply(o),s=this._instantiationService.createInstance(sie,n.document),c=Cn.empty,l=await iie(o,a,this._diffService),u=s.getEdits();c=c.compose(u),this._instantiationService.createInstance(wD,n.document,r.documentBeforeEdits.value,l,c,{includeArc:!0},d=>{this._telemetryService.sendTelemetryEvent("reportInlineEditSurvivalRate",{microsoft:!0,github:{eventNamePrefix:"copilot-nes/"}},{opportunityId:n.requestUuid},{survivalRateFourGram:d.fourGram,survivalRateNoRevert:d.noRevert,didBranchChange:d.didBranchChange?1:0,timeDelayMs:d.timeDelayMs,arc:d.arc})})}_handleDidRejectCompletionItem(n){this.logContextRecorder?.handleRejection(n.info.suggestion),n.telemetryBuilder.setAcceptance("rejected"),n.telemetryBuilder.setStatus("rejected");let r=n.info;$pe(r)?this.model.nextEditProvider.handleRejection(r.documentId,r.suggestion):this.model.diagnosticsBasedProvider?.handleRejection(r.documentId,r.suggestion)}_handleDidIgnoreCompletionItem(n,r){r&&n.telemetryBuilder.setSupersededBy(r.info.requestUuid);let o=n.info,a=r?r.info.suggestion:void 0;$pe(o)?this.model.nextEditProvider.handleIgnored(o.documentId,o.suggestion,a):this.model.diagnosticsBasedProvider?.handleIgnored(o.documentId,o.suggestion,a)}};qT=S([b(6,j),b(7,Ee),b(8,ny),b(9,be),b(10,Z),b(11,Fe),b(12,is),b(13,wi),b(14,Te),b(15,Fr),b(16,bpe)],qT);function Haa(t,e){return ow(t.uri)&&e.includes("%% vscode.cell [id=")}function Waa(t,e,n,r,o){let a=ow(t.uri)?Jo(t.uri,ml.workspace.notebookDocuments):void 0,s=a?qv(t.uri,a):void 0;if(!s||!a||!r.length)return;let c=n.match(/%% vscode.cell \[id=/g)?.length||0,l=n.indexOf("#%% vscode.cell [id="),u=n.includes(` `),d=r[0][0].eol===ml.EndOfLine.CRLF?`\r `:` `,p=n.includes(`\r `)?`\r `:n.includes(` `)?` `:d,m=ml.window.visibleTextEditors.find(_=>_.document===r[0][0]),A=m&&m.visibleRanges.some(_=>_.contains(r[0][1])),f=Zbn(a),g=`(${e.line}:${e.character})`,h=`(->${r[0][1].start.line}:${r[0][1].start.character})`,y=_=>_===s?"*":_.document===r[0][0]?"+":"",v=a.getCells().filter(_=>_.kind===ml.NotebookCellKind.Code).map(_=>`${y(_)}${_.document.lineCount}${_===s?g:""}${_.document===r[0][0]?h:""}`).join(",");o.setNotebookCellMarkerIndex(l).setNotebookCellMarkerCount(c).setIsMultilineEdit(u).setIsEolDifferent(d!==p).setIsNextEditorVisible(!!m).setIsNextEditorRangeVisible(!!A).setNotebookCellLines(v).setNotebookId(f).setIsNESForOtherEditor(r[0][0]!==t)}var DF=class extends fe{constructor(n,r,o,a,s,c,l){super();this._vscodeExtensionContext=n;this._instantiationService=r;this._copilotInlineCompletionItemProviderService=o;this._configurationService=a;this._expService=s;this._authenticationService=c;this._envService=l;this._inlineEditsProviderId=tnt(this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsProviderId,this._expService));this._hideInternalInterface=this._configurationService.getConfigObservable(H.TeamInternal.InlineEditsHideInternalInterface);this._enableDiagnosticsProvider=this._configurationService.getExperimentBasedConfigObservable(H.InlineEditsEnableDiagnosticsProvider,this._expService);this._excludedProviders=this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsExcludedProviders,this._expService).map(n=>n?n.split(",").map(r=>r.trim()).filter(r=>r!==""):[]);this._copilotToken=To(this,this._authenticationService.onDidAuthenticationChange,()=>this._authenticationService.copilotToken);this.inlineEditsEnabled=jc(this,n=>{let r=this._copilotToken.read(n);return!(r===void 0||r.isCompletionsQuotaExceeded)});this._internalActionsEnabled=jc(this,n=>!!this._copilotToken.read(n)?.isInternal&&!this._hideInternalInterface.read(n));this.isInlineEditsLogFileEnabledObservable=this._configurationService.getConfigObservable(H.TeamInternal.InlineEditsLogContextRecorderEnabled);this._workspace=f0e(this,n=>this._instantiationService.createInstance(fk));let u=a.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsJointCompletionsProviderEnabled,s);this._register(fo(d=>{if(!u.read(d)){d.store.add(r.createInstance(qpe)),d.store.add(r.createInstance(gpe));return}r.createInstance(vV).setContext();let A=mW(this);d.store.add(fo(f=>{let g=A.read(f),h=this._excludedProviders.read(f).slice(),y;if(!h.includes(DF.NES_GROUP_ID)&&this.inlineEditsEnabled.read(f)){let w=f.store.add(this._instantiationService.createInstance(aP)),x=this._inlineEditsProviderId.read(f),E=this._workspace.read(f),I=f.store.add(this._instantiationService.createInstance(E2)),k=new die(E,I),T;this._enableDiagnosticsProvider.read(f)&&(T=f.store.add(this._instantiationService.createInstance(fU,E,I)));let D=f.store.add(this._instantiationService.createInstance(hU,x,E,k,T)),M=(0,VPr.join)(this._vscodeExtensionContext.globalStorageUri.fsPath,"logContextRecordings"),q=this.isInlineEditsLogFileEnabledObservable.read(f),$;q?$=f.store.add(this._instantiationService.createInstance(BF,M,w)):BF.cleanupOldRecordings(M);let L=f.store.add(new xpe(this._internalActionsEnabled,this.inlineEditsEnabled,D.debugRecorder,this._inlineEditsProviderId)),F=f.store.add(this._instantiationService.createInstance(oP,E)),te=f.store.add(this._instantiationService.createInstance(UT,D.debugRecorder));y=this._instantiationService.createInstance(qT,D,w,$,L,F,te),f.store.add(Yl.commands.registerCommand(BRe,()=>{this._envService.openExternal(K.parse(RRe))})),f.store.add(Yl.commands.registerCommand(oHt,()=>{D.nextEditProvider.clearCache()})),f.store.add(Yl.commands.registerCommand(aHt,()=>{let oe=Yl.window.activeNotebookEditor,Y=Yl.window.activeTextEditor?.document;if(!oe||!Y||!ow(Y.uri))return;let ge=D.workspace.getDocumentByTextDocument(Y);if(!oe.selection||!ge)return;let J=new YI(ge.id.uri,Y.version,void 0);J.recordingBookmark=D.debugRecorder.createBookmark(),Yl.commands.executeCommand(wpe,{logContext:J})})),f.store.add(Yl.commands.registerCommand(sHt,()=>{te.startCapture("manual")})),f.store.add(Yl.commands.registerCommand(cHt,()=>{te.confirmCapture()})),f.store.add(Yl.commands.registerCommand(lHt,()=>{te.abortCapture()})),f.store.add(Yl.commands.registerCommand(uHt,()=>{te.submitCaptures()}))}let v;{let w=this._configurationService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsEnableGhCompletionsProvider,this._expService).read(f),x=g?.extensionUnification??!1,E=h.includes(DF.COMPLETIONS_GROUP_ID)&&this.inlineEditsEnabled.read(f);if((!(g?.modelUnification??!1)||g?.codeUnification||x||w||this._copilotToken.read(f)?.isNoAuthUser)&&!E&&(v=this._copilotInlineCompletionItemProviderService.getOrCreateProvider()),Yl.commands.executeCommand("setContext","github.copilot.extensionUnification.activated",x),x&&v){let k=this._copilotInlineCompletionItemProviderService.getOrCreateInstantiationService();f.store.add(k.invokeFunction(htt))}}let _=f.store.add(this._instantiationService.createInstance(yU,v,y));g?.modelUnification&&(h.includes("github.copilot")||h.push("github.copilot")),f.store.add(Yl.languages.registerInlineCompletionItemProvider("*",_,{displayName:y?.displayName,debounceDelayMs:0,groupId:"nes",excludes:h}))}))}))}static{this.NES_GROUP_ID="nes"}static{this.COMPLETIONS_GROUP_ID="completions"}};DF=S([b(0,ut),b(1,j),b(2,sU),b(3,be),b(4,Fe),b(5,at),b(6,Zt)],DF);function mHt(t){return{...t,items:t.items.map(e=>({...e,source:"completions"})),source:"completions"}}function int(t){return{...t,items:t.items.map(e=>({...e,source:"inlineEdits"})),source:"inlineEdits"}}var yU=class extends fe{constructor(n,r,o,a,s){super();this._completionsProvider=n;this._inlineEditProvider=r;this._configService=o;this._expService=a;this._requestsInFlight=new Set;this._completionsRequestsInFlight=new Set;this.onDidChangeModelInfo=this._inlineEditProvider?.onDidChangeModelInfo;this.setCurrentModelId=this._inlineEditProvider?.setCurrentModelId?.bind(this._inlineEditProvider);this.onDidChangeProviderOptions=this._inlineEditProvider?.onDidChangeProviderOptions;this.setProviderOptionValue=this._inlineEditProvider?.setProviderOptionValue?.bind(this._inlineEditProvider);this.lastNesSuggestion=null;this.provideInlineCompletionItemsInvocationCount=0;this.handleDidRejectCompletionItem=void 0;this._logger=s.createSubLogger(["NES","JointCompletionsProvider"]),this._inlineEditProvider?.onDidChange&&(this._onDidChangeEmitter=this._register(new Yl.EventEmitter),this.onDidChange=this._onDidChangeEmitter.event,this._register(this._inlineEditProvider.onDidChange(c=>{let l=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsJointCompletionsProviderTriggerChangeStrategy,this._expService);switch(l){case"alwaysTrigger":break;case"noTriggerOnRequestInFlight":if(this._isRequestInFlight){this._logger.trace("Skipping onDidChange event firing because request is in flight");return}break;case"noTriggerOnCompletionsRequestInFlight":if(this._isCompletionsRequestInFlight){this._logger.trace("Skipping onDidChange event firing because completions request is in flight");return}break;default:ai(l)}this._logger.trace("Firing onDidChange event"),this._onDidChangeEmitter.fire(c)}))),R7(n?.onDidChange===void 0,"CompletionsProvider does not implement onDidChange")}get _isRequestInFlight(){return this._requestsInFlight.size>0}get _isCompletionsRequestInFlight(){return this._completionsRequestsInFlight.size>0}get modelInfo(){return this._inlineEditProvider?.modelInfo}get providerOptions(){return this._inlineEditProvider?.providerOptions}async provideInlineCompletionItems(n,r,o,a){let s=this._logger.createSubLogger([uie(o.requestUuid),"provideInlineCompletionItems"]),c=this._configService.getExperimentBasedConfig(H.TeamInternal.InlineEditsJointCompletionsProviderStrategy,this._expService);switch(c){case"regular":return this.provideInlineCompletionItemsRegular(n,r,o,a,s);case"cursorEndOfLine":return this.provideInlineCompletionItemsCursorEndOfLine(n,r,o,a,s);default:ai(c)}}async provideInlineCompletionItemsCursorEndOfLine(n,r,o,a,s){let c=new Gi;this._requestsInFlight.add(a);let l=a.onCancellationRequested(()=>{this._requestsInFlight.delete(a)});try{if(this._completionsProvider===void 0&&this._inlineEditProvider===void 0){s.trace("Return: neither completions nor NES provider available");return}else if(this._completionsProvider===void 0&&this._inlineEditProvider!==void 0){s.trace("only NES provider is available, invoking it");let u=await this._invokeNESProvider(s,n,r,!1,o,a,c);return u?int(u):void 0}else if(this._completionsProvider!==void 0&&this._inlineEditProvider===void 0){s.trace("only completions provider is available, invoking it");let u=await this._invokeCompletionsProvider(s,n,r,o,a,c);return u?mHt(u):void 0}else{let u=n.lineAt(r.line).text;if(ILn(u,r.character)){s.trace("cursor is at end of line, invoking ghost-text provider only");let m=await this._invokeCompletionsProvider(s,n,r,o,a,c);return m?mHt(m):void 0}let p=await this._invokeNESProvider(s,n,r,!1,o,a,c);return p?int(p):void 0}}finally{a.isCancellationRequested||(this._logger.trace("request in flight: false -- due to provider finishing"),this._requestsInFlight.delete(a)),l.dispose()}}async provideInlineCompletionItemsRegular(n,r,o,a,s){let c=++this.provideInlineCompletionItemsInvocationCount,l=new Oi(a),u=new Oi(a);this._requestsInFlight.add(a);let d=a.onCancellationRequested(()=>{s.trace(`invocation #${c}: request in flight: false -- due to cancellation`),this._requestsInFlight.delete(a)});s.trace(`invocation #${c} started; request in flight: true`);let p=null;try{let m=new hl(n.getText()),A=n.version;this.lastNesSuggestion&&this.lastNesSuggestion.docUri.toString()!==n.uri.toString()&&(s.trace("last NES suggestion is not for the current document, ignoring"),this.lastNesSuggestion=null);let f=await this._provideInlineCompletionItemsRegular({document:n,docSnapshot:m},r,this.lastNesSuggestion,o,s,{coreToken:a,completionsCts:l,nesCts:u});if(a.isCancellationRequested||!f||f.source!=="inlineEdits"||f.items.length===0)return f;let g=f.items[0];if(!g.range||typeof g.insertText!="string")return f;if(g.uri&&g.uri.toString()!==n.uri.toString())return s.trace(`The NES suggestion is for a different document (${g.uri.toString()} vs ${n.uri.toString()}), not saving as last NES suggestion`),f;let h=ZPr(m,g.range,g.insertText);return p={docUri:n.uri,docVersionId:A,docWithNesEditApplied:new hl(h),completionItem:g},f}finally{a.isCancellationRequested||(s.trace(`invocation #${c}: request in flight: false -- due to provider finishing`),this._requestsInFlight.delete(a)),d.dispose(),c===this.provideInlineCompletionItemsInvocationCount?(this.lastNesSuggestion=p,this.lastNesSuggestion?s.trace(`Set the last NES suggestion for document ${this.lastNesSuggestion.docUri.toString()}`):s.trace("Cleared the last NES suggestion")):s.trace("Not setting the last NES suggestion because a newer invocation exists"),l.dispose(),u.dispose()}}async _provideInlineCompletionItemsRegular({document:n,docSnapshot:r},o,a,s,c,l){let u=new Gi;if(this._completionsProvider===void 0&&this._inlineEditProvider===void 0){c.trace("Return: neither completions nor NES provider available");return}c.trace("requesting completions and/or NES");let d=s&&s.changeHint!==void 0;if(!a||!a.completionItem.wasShown){c.trace(`defaulting to yielding to completions; last NES suggestion is ${a?"not shown":"not available"}`);let h=d?void 0:this._invokeCompletionsProvider(c,n,o,s,l.completionsCts.token,u),y=this._invokeNESProvider(c,n,o,!0,s,l.nesCts.token,u);return this._returnCompletionsOrOtherwiseNES(h,y,r,u,c,l)}c.trace("last NES suggestion is for the current document, checking if it agrees with the current suggestion");let p=a.docVersionId!==n.version,m=this._invokeNESProvider(c,n,o,p,s,l.nesCts.token,u);if(!m){c.trace("no NES provider");let h=d?void 0:this._invokeCompletionsProvider(c,n,o,s,l.completionsCts.token,u);return this._returnCompletionsOrOtherwiseNES(h,m,r,u,c,l)}let A=10;{c.trace(`giving the NES provider ${A}ms to return what it has in its cache`);let h=await gs(au(m,A),l.coreToken);if(h&&this.doesNesSuggestionAgree(r,a.docWithNesEditApplied,h.items.at(0))){c.trace("last NES suggestion agrees with the current suggestion, using NES");let y=int(h);return c.trace(`Return: returning NES result in ${u.elapsed()}ms`),y}if(l.coreToken.isCancellationRequested){c.trace("suggestions request was cancelled"),zpe(this._completionsProvider,void 0,{kind:Yl.InlineCompletionsDisposeReasonKind.TokenCancellation}),zpe(this._inlineEditProvider,m,{kind:Yl.InlineCompletionsDisposeReasonKind.TokenCancellation}),l.completionsCts.cancel(),l.nesCts.cancel();return}}c.trace(`the NES provider did not return in ${A}ms so we are triggering the completions provider too`);let f=d?void 0:this._invokeCompletionsProvider(c,n,o,s,l.completionsCts.token,u),g=await gs(Promise.race(er([f?.then(h=>({type:"completions",res:h})),m?.then(h=>({type:"nes",res:h}))])),l.coreToken);if(g===void 0){c.trace("suggestions request was cancelled"),zpe(this._completionsProvider,f,{kind:Yl.InlineCompletionsDisposeReasonKind.TokenCancellation}),zpe(this._inlineEditProvider,m,{kind:Yl.InlineCompletionsDisposeReasonKind.TokenCancellation}),l.completionsCts.cancel(),l.nesCts.cancel();return}return g.type==="nes"&&g.res&&this.doesNesSuggestionAgree(r,a.docWithNesEditApplied,g.res.items.at(0))?(c.trace("last NES suggestion agrees with the current suggestion, using NES"),this._returnNES(g.res,{kind:Yl.InlineCompletionsDisposeReasonKind.NotTaken},f,u,c,l)):(c.trace("falling back to the default because completions came first or NES disagreed"),this._returnCompletionsOrOtherwiseNES(f,m,r,u,c,l))}_invokeNESProvider(n,r,o,a,s,c,l){let u=s.changeHint===void 0||ARe.is(s.changeHint)?s.changeHint:void 0,d={...s,enforceCacheDelay:a,changeHint:u},p;return this._inlineEditProvider?(n.trace("- requesting NES provideInlineCompletionItems"),p=this._inlineEditProvider.provideInlineCompletionItems(r,o,d,c),p.then(m=>{n.trace(`got NES response in ${l.elapsed()}ms -- ${m===void 0?"undefined":`with ${m.items.length} items`}`)}).catch(m=>{n.trace(`NES provider errored after ${l.elapsed()}ms -- ${jr.toString(jr.fromUnknown(m))}`)})):(n.trace("- no NES provider"),p=void 0),p}_invokeCompletionsProvider(n,r,o,a,s,c){let l;if(this._completionsProvider){this._completionsRequestsInFlight.add(s);let u=s.onCancellationRequested(()=>this._completionsRequestsInFlight.delete(s)),d=()=>{this._completionsRequestsInFlight.delete(s),u.dispose()};try{n.trace("- requesting completions provideInlineCompletionItems"),l=this._completionsProvider.provideInlineCompletionItems(r,o,a,s),l.then(p=>{n.trace(`got completions response in ${c.elapsed()}ms -- ${p===void 0?"undefined":`with ${p.items.length} items`}`)}).catch(p=>{n.trace(`completions provider errored after ${c.elapsed()}ms -- ${jr.toString(jr.fromUnknown(p))}`)}).finally(()=>{d()})}catch(p){throw d(),n.trace(`completions provider threw synchronously after ${c.elapsed()}ms -- ${jr.toString(jr.fromUnknown(p))}`),p}}else n.trace("- no completions provider"),l=void 0;return l}async _returnCompletionsOrOtherwiseNES(n,r,o,a,s,c){s.trace("waiting for completions and/or NES responses");let l=n?await n:void 0;if(s.trace("completions response received"),l&&l.items.length>0){let d=yU.retainOnlyMeaningfulEdits(o,l);if(d.items.length===0)s.trace("all completions edits are no-op, ignoring completions response");else return s.trace("using completions response, cancelling NES provider"),this._returnCompletions(d,{kind:Yl.InlineCompletionsDisposeReasonKind.LostRace},r,a,s,c)}let u=r?await r:void 0;if(s.trace("NES response received"),u&&u.items.length>0){let d=yU.retainOnlyMeaningfulEdits(o,u);if(d.items.length===0)s.trace("all NES edits are no-op, ignoring NES response");else return s.trace("using NES response"),this._returnNES(d,{kind:Yl.InlineCompletionsDisposeReasonKind.NotTaken},n,a,s,c)}return this._returnCompletions(l,{kind:Yl.InlineCompletionsDisposeReasonKind.NotTaken},r,a,s,c)}_returnCompletions(n,r,o,a,s,c){if(zpe(this._inlineEditProvider,o,r),c.nesCts.cancel(),n===void 0){s.trace(`Return: no completions to return in ${a.elapsed()}ms`);return}let l=mHt(n);return s.trace(`Return: use completions response in ${a.elapsed()}ms`),l}_returnNES(n,r,o,a,s,c){zpe(this._completionsProvider,o,r),c.completionsCts.cancel();let l=int(n);return s.trace(`Return: returning NES result in ${a.elapsed()}ms`),l}doesNesSuggestionAgree(n,r,o){return o===void 0||o.range===void 0||typeof o.insertText!="string"?!1:ZPr(n,o.range,o.insertText)===r.getValue()}static retainOnlyMeaningfulEdits(n,r){function o(s){return s.range===void 0||typeof s.insertText!="string"?!0:n.getValueOfRange(new zt(s.range.start.line+1,s.range.start.character+1,s.range.end.line+1,s.range.end.character+1))!==s.insertText}let a=r.items.filter(o);return a.length===r.items.length?r:{...r,items:a}}handleDidShowCompletionItem(n,r){switch(n.source){case"completions":this._completionsProvider?.handleDidShowCompletionItem?.(n);break;case"inlineEdits":this._inlineEditProvider?.handleDidShowCompletionItem?.(n,r);break;default:ai(n)}}handleDidPartiallyAcceptCompletionItem(n,r){switch(n.source){case"completions":this._completionsProvider?.handleDidPartiallyAcceptCompletionItem?.(n,r);break;case"inlineEdits":R7(this._inlineEditProvider?.handleDidPartiallyAcceptCompletionItem===void 0,"InlineEditProvider does not implement handleDidPartiallyAcceptCompletionItem");break;default:ai(n)}}handleEndOfLifetime(n,r){switch(n.source){case"completions":this._completionsProvider?.handleEndOfLifetime?.(n,r);break;case"inlineEdits":this._inlineEditProvider?.handleEndOfLifetime?.(n,r);break;default:ai(n)}}handleListEndOfLifetime(n,r){switch(n.source){case"completions":this._completionsProvider?.handleListEndOfLifetime?.(n,r);break;case"inlineEdits":this._inlineEditProvider?.handleListEndOfLifetime?.(n,r);break;default:ai(n)}}};yU=S([b(2,be),b(3,Fe),b(4,Z)],yU);function ZPr(t,e,n){let r=new zt(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1),o=t.getTransformer().getOffsetRange(r);return new jo(o,n).toEdit().apply(t.getValue())}async function zpe(t,e,n){if(e===void 0)return;let r=await e;if(r!==void 0){for(let o of r.items)t?.handleEndOfLifetime?.(o,{kind:Yl.InlineCompletionEndOfLifeReasonKind.Ignored,userTypingDisagreed:!1});t?.handleListEndOfLifetime?.(r,n)}}var AHt=O(Lt()),Ly=O(require("vscode"));Fd();Ue();var jpe=class extends fe{constructor(e,n,r){super();let o=this._register(new it);Zaa(o,n,e),Vaa(e,r,o)}};jpe=S([b(0,_D),b(1,Ee),b(2,be)],jpe);function Zaa(t,e,n){function r(a){return n.getLastFailureFor(a)||Bv(a.children,([,c])=>r(c))}t.add(Ly.commands.registerCommand("github.copilot.tests.fixTestFailure.fromInline",a=>{let s=r(a);s&&o({message:s.task.messages[0],test:s.snapshot,source:"testResultsPanel"})})),t.add(Ly.commands.registerCommand("github.copilot.tests.fixTestFailure",o));async function o(a){if(!a.test.uri)return;e.sendMSFTTelemetryEvent("intent.fixTestFailure.actioned",{source:a.source??"testResultsPanel"});let s=await Ly.workspace.openTextDocument(a.test.uri);await Ly.window.showTextDocument(s,{preserveFocus:!1,preview:!0,selection:a.test.range?new Ly.Range(a.test.range.start,a.test.range.start):void 0}),await Ly.commands.executeCommand("vscode.editorChat.start",{message:"/fix the #testFailure",autoSend:!0})}}function Vaa(t,e,n){n.add(Ly.languages.registerCodeActionsProvider("*",{provideCodeActions(r,o,a,s){if(!e.getConfig(H.EnableCodeActions))return;let l=t.getFailureAtPosition(r.uri,o.start);if(!l)return;let u=new Ly.CodeAction(AHt.t("Fix test failure"),Ly.CodeActionKind.QuickFix);return u.isAI=!0,u.command={title:AHt.t("Fix test failure"),command:"github.copilot.tests.fixTestFailure",arguments:[{message:l.task.messages[0],test:l.snapshot,source:"sparkles"}]},[u]}}))}var vU=O(require("vscode"));Ue();var Gpe=class extends fe{constructor(n,r,o,a,s){super();this._logService=n;this._authenticationService=r;this._endpointProvider=o;this._toolsService=a;this._telemetryService=s;this.id="extensionStateCommand";this._register(vU.commands.registerCommand("github.copilot.debug.extensionState",async()=>{await this._logExtensionState()}))}async _logExtensionState(){let n=["[ExtensionState] ===============================================================","[ExtensionState] INCLUDE THIS INFORMATION IF YOU ARE OPENING AN ISSUE","[ExtensionState] ==============================================================="],r=!!this._authenticationService.anyGitHubSession,o=!!this._authenticationService.permissiveGitHubSession,a=!!this._authenticationService.copilotToken;n.push(` Auth: anyGitHubSession=${r}, repoGitHubSession=${o}, copilotToken=${a}`);let s=this._authenticationService.anyGitHubSession;s?n.push(` Username: ${s.account.label}`):n.push(" Username: (not signed in) - check the GitHub Authentication output channel for more details");let c=vU.workspace.getConfiguration("http").get("proxySupport","override"),l=vU.workspace.getConfiguration("http").get("proxy",""),u=l?"true":"false";n.push(` Proxy: http.proxySupport=${c}, http.proxy=${l?"(configured)":"(not configured)"}`);let d="false",p=0,m="false",A=0,f="false",g=0;if(s){try{let y=await this._endpointProvider.getAllChatEndpoints();p=y.length,d=String(y.length>0),n.push(` Language models loaded: ${y.length>0} (count: ${y.length})`)}catch(y){n.push(` Language models loaded: false (error: ${y})`)}try{let y=await vU.lm.selectChatModels({vendor:"copilot"});A=y.length,m=String(y.length>0),n.push(` Copilot chat provider registered: ${y.length>0} (models: ${y.length})`)}catch(y){n.push(` Copilot chat provider registered: false (error: ${y})`)}let h=vU.lm.embeddingModels.filter(y=>y.startsWith("copilot."));f=String(h.length>0),n.push(` Copilot embeddings model registered: ${h.length>0} (models: [${h.join(", ")}])`),g=this._toolsService.tools.length,n.push(` Tools loaded: ${g>0} (count: ${g})`)}n.push("[ExtensionState] ==============================================================="),this._logService.info(n.join(` `)),this._telemetryService.sendMSFTTelemetryEvent("extensionState",{hasAnySession:String(r),hasPermissiveSession:String(o),hasCopilotToken:String(a),proxySupport:c,proxyConfigured:u,languageModelsLoaded:d,copilotProviderRegistered:m,copilotEmbeddingsRegistered:f},{languageModelCount:p,copilotModelCount:A,toolCount:g})}};Gpe=S([b(0,Z),b(1,at),b(2,tt),b(3,Xn),b(4,Ee)],Gpe);var k8r=O(require("dns")),S8r=O(require("http")),T8r=O(require("https")),WF=O(require("os")),$Yt=O(require("path")),HF=O(require("tls")),B8r=O(require("util")),ms=O(require("vscode"));var Yaa=O(require("http")),Kaa=O(require("https")),KPr=require("stream");var _U=class t{constructor(e,n=()=>{},r){this._envService=e;this._reportEvent=n;this._userAgentLibraryUpdate=r}static{this.ID="node-http"}getUserAgentLibrary(){return t.ID}async fetch(e,n){let r={...n.headers};r["User-Agent"]||(r["User-Agent"]=`GitHubCopilotChat/${this._envService.getVersion()}`),r[ete]=this._userAgentLibraryUpdate?this._userAgentLibraryUpdate(this.getUserAgentLibrary()):this.getUserAgentLibrary();let o=n.body;if(n.json){if(n.body)throw new Error("Illegal arguments! Cannot pass in both 'body' and 'json'!");r["Content-Type"]="application/json",o=JSON.stringify(n.json)}let a=n.method||"GET";if(a!=="GET"&&a!=="POST"&&a!=="PUT")throw new Error("Illegal arguments! 'method' must be 'GET', 'POST', or 'PUT'!");let s=n.signal??new AbortController().signal;if(s&&!(s instanceof AbortSignal))throw new Error("Illegal arguments! 'signal' must be an instance of AbortSignal!");let c=st(),l=mz(e);try{let u=await this._fetch(e,a,r,o,s,c,l);return this._reportEvent({internalId:c,timestamp:Date.now(),outcome:"success",phase:"requestResponse",fetcher:t.ID,hostname:l,statusCode:u.status}),u}catch(u){u.fetcherId=t.ID;let d=u&&!YPr(u)?"error":"cancel";throw this._reportEvent({internalId:c,timestamp:Date.now(),outcome:d,phase:"requestResponse",fetcher:t.ID,hostname:l,reason:u}),u}}async fetchWithPagination(e,n){let r=[],o=n.pageSize??20,a=n.startPage??1,s=!1;do{let c=n.buildUrl(e,o,a),l=await this.fetch(c,n);if(!l.ok)return r;let u=await l.json(),d=n.getItemsFromResponse(u);r.push(...d),s=d.length===o,a++}while(s);return r}_fetch(e,n,r,o,a,s,c){return new Promise((l,u)=>{let p=(e.startsWith("https:")?Kaa:Yaa).request(e,{method:n,headers:r},m=>{if(a.aborted){m.destroy(),p.destroy(),u(fHt(a));return}let A=new gHt(p,m,a);l(new wR(m.statusCode||0,m.statusMessage||"",A.headers,A.body(),t.ID,this._reportEvent,s,c))});p.setTimeout(60*1e3),p.on("error",u),o&&p.write(o),p.end()})}async disconnectAll(){}makeAbortController(){return new AbortController}isAbortError(e){return YPr(e)}isInternetDisconnectedError(e){return!1}isFetcherError(e){return e&&["EADDRINUSE","ECONNREFUSED","ECONNRESET","ENOTFOUND","EPIPE","ETIMEDOUT"].includes(e.code)}isNetworkProcessCrashedError(e){return!1}getUserMessageForFetcherError(e){return`Please check your firewall rules and network connection then try again. Error Code: ${zf(e)}.`}};function fHt(t){return t.reason}function YPr(t){return t&&t.name==="AbortError"}var gHt=class{constructor(e,n,r){this.req=e;this.res=n;this.signal=r;this.headers=new DS(n.headers)}text(){return new Promise((e,n)=>{let r=[];this.res.on("data",o=>r.push(o)),this.res.on("end",()=>e(Buffer.concat(r).toString())),this.res.on("error",n),this.signal.addEventListener("abort",()=>{this.res.destroy(),this.req.destroy(),n(fHt(this.signal))})})}async json(){let e=await this.text();return JSON.parse(e)}body(){return this.signal.addEventListener("abort",()=>{this.res.emit("error",fHt(this.signal)),this.res.destroy(),this.req.destroy()}),KPr.Readable.toWeb(this.res)}};var UYt=O(v8r());iu();var Pme=class{constructor(e,n,r,o,a){this._fetchImpl=e;this._envService=n;this._fetcherId=r;this._reportEvent=o;this.userAgentLibraryUpdate=a}async fetch(e,n){let r={...n.headers};r["User-Agent"]||(r["User-Agent"]=`GitHubCopilotChat/${this._envService.getVersion()}`),r[ete]=this.userAgentLibraryUpdate?this.userAgentLibraryUpdate(this.getUserAgentLibrary()):this.getUserAgentLibrary();let o=n.body;if(n.json){if(n.body)throw new Error("Illegal arguments! Cannot pass in both 'body' and 'json'!");r["Content-Type"]="application/json",o=JSON.stringify(n.json)}let a=n.method||"GET";if(a!=="GET"&&a!=="POST"&&a!=="PUT")throw new Error("Illegal arguments! 'method' must be 'GET', 'POST', or 'PUT'!");let s=n.signal??new AbortController().signal;if(s&&!(s instanceof AbortSignal))throw new Error("Illegal arguments! 'signal' must be an instance of AbortSignal!");let c=st(),l=mz(e);try{let u=await this._fetch(e,a,r,o,s,c,l);return this._reportEvent({internalId:c,timestamp:Date.now(),outcome:"success",phase:"requestResponse",fetcher:this._fetcherId,hostname:l,statusCode:u.status}),u}catch(u){u.fetcherId=this._fetcherId;let d=u&&!Tve(u)?"error":"cancel";throw this._reportEvent({internalId:c,timestamp:Date.now(),outcome:d,phase:"requestResponse",fetcher:this._fetcherId,hostname:l,reason:u}),u}}async fetchWithPagination(e,n){let r=[],o=n.pageSize??20,a=n.startPage??1,s=!1;do{let c=n.buildUrl(e,o,a),l=await this.fetch(c,n);if(!l.ok)return r;let u=await l.json(),d=n.getItemsFromResponse(u);r.push(...d),s=d.length===o,a++}while(s);return r}async _fetch(e,n,r,o,a,s,c){let l=await this._fetchImpl(e,{method:n,headers:r,body:o,signal:a});return new wR(l.status,l.statusText,l.headers,l.body,this._fetcherId,this._reportEvent,s,c)}async disconnectAll(){}makeAbortController(){return new AbortController}isAbortError(e){return e&&e.name==="AbortError"}isNetworkProcessCrashedError(e){return!1}getUserMessageForFetcherError(e){return`Please check your firewall rules and network connection then try again. Error Code: ${zf(e)}.`}};var XV=class t extends Pme{static{this.ID="node-fetch"}constructor(e,n=()=>{},r){super(uCa(),e,t.ID,n,r)}getUserAgentLibrary(){return t.ID}isInternetDisconnectedError(e){return!1}isFetcherError(e){let n=e?.code||e?.cause?.code;return n&&["EADDRINUSE","ECONNREFUSED","ECONNRESET","ENOTFOUND","EPIPE","ETIMEDOUT"].includes(n)}};function uCa(){let t=globalThis.__vscodePatchedFetch||globalThis.fetch;return function(e,n){return t(e,{dispatcher:dCa.value,...n})}}var dCa=new Wr(()=>new UYt.Agent({allowH2:!0}));function C8r(t,e){let n=new UYt.Agent,r=n.dispatch,o=new DS({}),a,s;n.dispatch=function(l,u){let d={...u,onUpgrade(p,m,A){return a=p,m&&(o=DS.fromMap(_8r(m))),u.onUpgrade?.(p,m,A)},onHeaders(p,m,A,f){return a=p,s=f,m&&(o=DS.fromMap(_8r(m))),u.onHeaders?.(p,m,A,f)??!0}};return r.call(this,l,d)};let c=new WebSocket(t,{headers:e?.headers,dispatcher:n});return c.addEventListener("close",()=>{n.destroy().catch(()=>{})}),{webSocket:c,get responseHeaders(){let l=c.responseHeaders;return l?new DS(l):o},get responseStatusCode(){return c.responseStatusCode??a},get responseStatusText(){return c.responseStatusText??s}}}function _8r(t){let e=new Map;for(let n=0;n+1{},r){let o=pCa();return o?new t(o.fetch,e,n,r):null}constructor(e,n,r,o){super(e,n,t.ID,r,o)}getUserAgentLibrary(){return t.ID}isInternetDisconnectedError(e){return["net::ERR_INTERNET_DISCONNECTED","net::ERR_NETWORK_IO_SUSPENDED"].includes(e?.message)}isFetcherError(e){return e&&e.message&&e.message.startsWith("net::")}isNetworkProcessCrashedError(e){return e?.chromiumDetails?.network_process_crashed===!0}};function pCa(){try{return require("electron").net}catch{}}Ar();Ue();var mCa={"electron-fetch":H.Shared.DebugUseElectronFetcher,"node-fetch":H.Shared.DebugUseNodeFetchFetcher,"node-http":H.Shared.DebugUseNodeFetcher};async function x8r(t,e,n,r,o,a,s,c){if(n.retryFallbacks&&t.length>1){let u,d=new Set,p;for(let m of t){let A=await w8r(m,e,n,a);if(m===t[0]&&(u=A),!A.ok){let f=m.getUserAgentLibrary();"response"in A?p=`${f}: ${A.response.status} ${A.response.statusText}`:p=`${f}: ${zf(A.err,!0)}`,d.add(f);continue}if(m!==t[0]){let f=await w8r(t[0],e,n,a);if(f.ok)return{response:f.response};a.info(`FetcherService: using ${m.getUserAgentLibrary()} from now on`),s?.sendTelemetryEvent("fetcherFallback",{github:!0,microsoft:!0},{newFetcher:m.getUserAgentLibrary(),knownBadFetchers:Array.from(d).join(","),lastError:p},{knownBadFetchersCount:d.size});let g=t.slice();return g.splice(g.indexOf(m),1),g.unshift(m),{response:A.response,updatedFetchers:g,updatedKnownBadFetchers:d}}return{response:A.response}}if("response"in u)return{response:u.response};throw u.err}let l=t[0];if(n.useFetcher)if(r.has(n.useFetcher))a.trace(`FetcherService: not using requested fetcher ${n.useFetcher} as it is known to be failing, using ${l.getUserAgentLibrary()} instead.`);else{let u=mCa[n.useFetcher];if(u&&o.inspectConfig(u)?.globalValue===!1)a.trace(`FetcherService: not using requested fetcher ${n.useFetcher} as it is disabled in user settings, using ${l.getUserAgentLibrary()} instead.`);else{let d=t.find(p=>p.getUserAgentLibrary()===n.useFetcher);d?(l=d,a.trace(`FetcherService: using ${n.useFetcher} as requested.`)):a.info(`FetcherService: could not find requested fetcher ${n.useFetcher}, using ${l.getUserAgentLibrary()} instead.`)}}try{return{response:await l.fetch(e,n)}}catch(u){if(l.isNetworkProcessCrashedError(u)){let p=l.getUserAgentLibrary();a.info(`FetcherService: ${p} hit network process crash error (${u?.message}), retrying after disconnect...`);try{await l.disconnectAll();let m=await l.fetch(e,n);return a.info(`FetcherService: ${p} retry after crash succeeded.`),s?.sendTelemetryEvent("fetcherCrashRetry",{github:!0,microsoft:!0},{fetcher:p,outcome:"recovered",error:zf(u,!0)}),{response:m}}catch(m){a.info(`FetcherService: ${p} retry also failed (${m?.message}), checking for demotion...`),s?.sendTelemetryEvent("fetcherCrashRetry",{github:!0,microsoft:!0},{fetcher:p,outcome:"failed",error:zf(m,!0)}),u=m}}if((c?o.getExperimentBasedConfig(H.TeamInternal.FallbackNodeFetchOnNetworkProcessCrash,c):!1)&&l.isNetworkProcessCrashedError(u)){let p=l.getUserAgentLibrary();a.info(`FetcherService: ${p} network process crashed. Permanently demoting to avoid future use.`);let m=new Set(r);m.add(p);let A=t.filter(f=>f!==l);A.length>0&&(A.push(l),a.info(`FetcherService: now using ${A[0].getUserAgentLibrary()} as primary fetcher.`)),u._fetcherDemotion={updatedFetchers:A.length>0?A:void 0,updatedKnownBadFetchers:m}}throw u}}async function w8r(t,e,n,r){try{let o=await t.fetch(e,n);if(!o.ok)return r.info(`FetcherService: ${t.getUserAgentLibrary()} failed with status: ${o.status} ${o.statusText}`),{ok:!1,response:o};if(!n.expectJSON)return r.debug(`FetcherService: ${t.getUserAgentLibrary()} succeeded (not JSON)`),{ok:o.ok,response:o};let a=await o.text();try{return JSON.parse(a),r.debug(`FetcherService: ${t.getUserAgentLibrary()} succeeded (JSON)`),{ok:!0,response:wR.fromText(o.status,o.statusText,o.headers,a,o.fetcher)}}catch(s){return r.info(`FetcherService: ${t.getUserAgentLibrary()} failed to parse JSON: ${s.message}`),{ok:!1,err:s,response:wR.fromText(o.status,o.statusText,o.headers,a,o.fetcher)}}}catch(o){return r.info(`FetcherService: ${t.getUserAgentLibrary()} failed with error: ${o.message}`),{ok:!1,err:o}}}var SP=class extends fe{constructor(n,r,o,a){super();this._logService=r;this._envService=o;this._configurationService=a;this._knownBadFetchers=new Set;this._onDidFetch=this._register(new lt);this.onDidFetch=this._onDidFetch.event;this._onDidCompleteFetch=this._register(new lt);this.onDidCompleteFetch=this._onDidCompleteFetch.event;this._availableFetchers=n?[n]:void 0}async fetchWithPagination(n,r){let o=[],a=r.pageSize??20,s=r.startPage??1,c=!1;do{let l=r.buildUrl(n,a,s),u=await this.fetch(l,r);if(!u.ok)return o;let d=await u.json(),p=r.getItemsFromResponse(d);o.push(...p),c=p.length===a,s++}while(c);return o}setExperimentationService(n){this._experimentationService=n}setTelemetryService(n){this._telemetryService=n}_getAvailableFetchers(){return this._availableFetchers||(this._experimentationService?this._logService.debug("FetcherService: Using experimentation service to determine fetcher configuration."):this._logService.info("FetcherService: Experimentation service not available yet, using default fetcher configuration."),this._availableFetchers=this._getFetchers(this._configurationService,this._experimentationService,this._envService)),this._availableFetchers}_getFetchers(n,r,o){let a=A=>this._onDidFetch.fire(A),s=tY(n,r,H.Shared.DebugUseElectronFetcher,H.TeamInternal.DebugExpUseElectronFetcher),c=eY.create(o,a),l=!(s&&c)&&tY(n,r,H.Shared.DebugUseNodeFetcher,H.TeamInternal.DebugExpUseNodeFetcher),u=!(s&&c)&&!l&&tY(n,r,H.Shared.DebugUseNodeFetchFetcher,H.TeamInternal.DebugExpUseNodeFetchFetcher),d=[];c&&d.push(c),s&&(c?this._logService.info("Using the Electron fetcher."):this._logService.info("Can't use the Electron fetcher in this environment."));let p=new XV(o,a);u?(this._logService.info("Using the Node fetch fetcher."),d.unshift(p)):d.push(p);let m=new _U(o,a);return l||!(s&&c)&&!u?(this._logService.info("Using the Node fetcher."),d.unshift(m)):d.push(m),d}getUserAgentLibrary(){return this._getAvailableFetchers()[0].getUserAgentLibrary()}createWebSocket(n,r){return r?.headers&&(delete r.headers["Request-Hmac"],r.headers["Copilot-Integration-Id"]="vscode-chat"),C8r(n,r)}async fetch(n,r){let o=Date.now();try{let{response:a,updatedFetchers:s,updatedKnownBadFetchers:c}=await x8r(this._getAvailableFetchers(),n,r,this._knownBadFetchers,this._configurationService,this._logService,this._telemetryService,this._experimentationService);return s&&(this._availableFetchers=s),c&&(this._knownBadFetchers=c),r.callSite!==d9&&this._onDidCompleteFetch.fire({callSite:r.callSite,hostname:mz(n),latencyMs:Date.now()-o,statusCode:a.status,success:a.ok}),a}catch(a){let s=a?._fetcherDemotion;throw s&&(s.updatedFetchers&&(this._availableFetchers=s.updatedFetchers),s.updatedKnownBadFetchers&&(this._knownBadFetchers=s.updatedKnownBadFetchers)),r.callSite!==d9&&this._onDidCompleteFetch.fire({callSite:r.callSite,hostname:mz(n),latencyMs:Date.now()-o,statusCode:void 0,success:!1}),a}}disconnectAll(){return this._getAvailableFetchers()[0].disconnectAll()}makeAbortController(){return this._getAvailableFetchers()[0].makeAbortController()}isAbortError(n){return this._getAvailableFetchers()[0].isAbortError(n)}isInternetDisconnectedError(n){return this._getAvailableFetchers()[0].isInternetDisconnectedError(n)}isFetcherError(n){return!!n?.fetcherId||this._getAvailableFetchers().some(r=>r.isFetcherError(n))}isNetworkProcessCrashedError(n){return this._getAvailableFetchers().some(r=>r.isNetworkProcessCrashedError(n))}getUserMessageForFetcherError(n){return(this._getAvailableFetchers().find(o=>o.isFetcherError(n))??this._getAvailableFetchers()[0]).getUserMessageForFetcherError(n)}};SP=S([b(1,Z),b(2,Zt),b(3,be)],SP);function tY(t,e,n,r){if(!e)return t.getConfig(n);let o=t.inspectConfig(n);if(o?.globalValue!==void 0)return o.globalValue;let a=t.getExperimentBasedConfig(r,e);return a!==void 0?a:t.getConfig(n)}wr();dn();Ue();Be();var Nme=class{constructor(e,n,r,o,a,s,c,l){this._context=e;this.envService=n;this.configurationService=r;this.experimentationService=o;this.authService=a;this.capiClientService=s;this.fetcherService=c;this.logService=l;let u=async()=>{let d=await ms.workspace.openTextDocument({language:"markdown"}),p=await ms.window.showTextDocument(d),m=tY(this.configurationService,this.experimentationService,H.Shared.DebugUseElectronFetcher,H.TeamInternal.DebugExpUseElectronFetcher),A=tY(this.configurationService,this.experimentationService,H.Shared.DebugUseNodeFetcher,H.TeamInternal.DebugExpUseNodeFetcher),f=tY(this.configurationService,this.experimentationService,H.Shared.DebugUseNodeFetchFetcher,H.TeamInternal.DebugExpUseNodeFetchFetcher),g=ms.extensions.getExtension(CA),h=require($Yt.join(ms.env.appRoot,"product.json"));await il(p,`## GitHub Copilot Chat - Extension: ${this.envService.getVersion()} (${this.envService.getBuildType()}) - VS Code: ${ms.version} (${h.commit||"out-of-source"}) - OS: ${WF.platform()} ${WF.release()} ${WF.arch()}${ms.env.remoteName?` - Remote Name: ${ms.env.remoteName}`:""}${ms.env.remoteName&&g?` - Extension Kind: ${ms.ExtensionKind[g.extensionKind]}`:""} - GitHub Account: ${this.authService.anyGitHubSession?.account.label||"Signed Out"} ## Network User Settings: \`\`\`json${_Ca()} "github.copilot.advanced.debug.useElectronFetcher": ${m}, "github.copilot.advanced.debug.useNodeFetcher": ${A}, "github.copilot.advanced.debug.useNodeFetchFetcher": ${f} \`\`\`${CCa()} `);let y=fCa("@vscode/proxy-agent"),v=this.configurationService.getNonExtensionConfig("http.systemCertificatesNode"),_=y?.loadSystemCertificates?await gCa(y.loadSystemCertificates,v,this.logService):void 0,w=[this.capiClientService.dotcomAPIURL,this.capiClientService.capiPingURL,this.capiClientService.proxyBaseURL+"/_ping"],x=this.capiClientService.dotcomAPIURL!=="https://api.github.com",E=10,I=eY.create(this.envService),k=!!I&&m,T=!k&&A,D=!k&&!T&&f,M=!k&&!D,q=this.fetcherService.getUserAgentLibrary(),$=new _U(this.envService),L={"Electron fetch":{fetcher:I,current:k},"Node.js https":{fetcher:$,current:T||M},"Node.js fetch":{fetcher:new XV(this.envService),current:D}},F=B8r.promisify(k8r.lookup);for(let Y of w){let ge=await this.getAuthHeaders(x,Y),re=new URL(Y).hostname;await il(p,` Connecting to ${Y}: `);for(let Ae of[4,6]){await il(p,`- DNS ipv${Ae} Lookup: `);let G=Date.now();try{let U=await Promise.race([F(re,{family:Ae}),vo(E*1e3)]);U?await il(p,`${U.address} (${Date.now()-G} ms) `):await il(p,`timed out after ${E} seconds `)}catch(U){await il(p,`Error (${Date.now()-G} ms): ${U?.message} `)}}let J;if(y?.resolveProxyURL){await il(p,"- Proxy URL: ");let Ae=Date.now();try{let G=await Promise.race([y.resolveProxyURL(Y),ACa(E*1e3)]);G==="timeout"?await il(p,`timed out after ${E} seconds `):(await il(p,`${G||"None"} (${Date.now()-Ae} ms) `),J=G)}catch(G){await il(p,`Error (${Date.now()-Ae} ms): ${G?.message} `)}}if(y?.loadSystemCertificates&&J?.startsWith("https:")){let Ae=HF.__vscodeOriginal;if(Ae){await il(p,"- Proxy TLS: "),_||await il(p,"(failed to load system certificates) ");let G=Date.now();try{let U=await Promise.race([hCa(Ae,J,[...HF.rootCertificates,..._||[]]),vo(E*1e3)]);U?await il(p,`${U} (${Date.now()-G} ms) `):await il(p,`timed out after ${E} seconds `)}catch(U){await il(p,`Error (${Date.now()-G} ms): ${U?.message} `)}}}if(J){let Ae=J.startsWith("https:")?T8r.__vscodeOriginal:S8r.__vscodeOriginal;if(Ae){await il(p,"- Proxy Connection: ");let G=Date.now();try{let U=await Promise.race([bCa(Ae,J,Y),vo(E*1e3)]);if(U){let ie=Object.keys(U.headers).map(ze=>` ${ze}: ${U.headers[ze]}`),xe=`${U.statusCode} ${U.statusMessage}${ie.join("")}`;await il(p,`${xe} (${Date.now()-G} ms) `)}else await il(p,`timed out after ${E} seconds `)}catch(U){await il(p,`Error (${Date.now()-G} ms): ${U?.message} `)}}}for(let[Ae,G]of Object.entries(L))if(await il(p,`- ${Ae}${G.current?" (configured)":G.fetcher?.getUserAgentLibrary()===q?" (active)":""}: `),G.fetcher){let U=Date.now();try{let ie=await Promise.race([G.fetcher.fetch(Y,{headers:ge,callSite:"diagnostics-fetcher-probe"}),vo(E*1e3)]);ie?await il(p,`HTTP ${ie.status} (${Date.now()-U} ms) `):await il(p,`timed out after ${E} seconds `)}catch(ie){await il(p,`Error (${Date.now()-U} ms): ${KFe(ie)} `)}}else await il(p,`Unavailable `)}let te=Object.values(L).find(Y=>Y.current)?.fetcher||$,oe=[{url:"https://mobile.events.data.microsoft.com",fetcher:te},{url:"https://dc.services.visualstudio.com",fetcher:te},{url:"https://copilot-telemetry.githubusercontent.com/_ping",fetcher:$},{url:ms.Uri.parse(this.capiClientService.copilotTelemetryURL).with({path:"/_ping"}).toString(),fetcher:$},{url:"https://default.exp-tas.com",fetcher:$}];await il(p,` `);for(let{url:Y,fetcher:ge}of oe){let re=await this.getAuthHeaders(x,Y);await il(p,`Connecting to ${Y}: `);let J=Date.now();try{let Ae=await Promise.race([ge.fetch(Y,{headers:re,callSite:"diagnostics-secondary-probe"}),vo(E*1e3)]);Ae?await il(p,`HTTP ${Ae.status} (${Date.now()-J} ms) `):await il(p,`timed out after ${E} seconds `)}catch(Ae){await il(p,`Error (${Date.now()-J} ms): ${KFe(Ae)} `)}}return await il(p,` Number of system certificates: ${_?.length??"failed to load"} `),await il(p,` ## Documentation In corporate networks: [Troubleshooting firewall settings for GitHub Copilot](https://docs.github.com/en/copilot/troubleshooting-github-copilot/troubleshooting-firewall-settings-for-github-copilot).`),d.getText()};this._context.subscriptions.push(ms.commands.registerCommand("github.copilot.debug.collectDiagnostics",u)),this._context.subscriptions.push(ms.commands.registerCommand("github.copilot.debug.collectDiagnostics.internal",u)),this._context.subscriptions.push(ms.commands.registerCommand("github.copilot.debug.showOutputChannel.internal",()=>_W.show())),this._context.subscriptions.push(ms.commands.registerCommand("github.copilot.debug.showNodeSystemCertificatesErrors",async()=>{let d={};try{let m=HF.getCACertificates("system");d.certificateCount=Array.isArray(m)?m.length:"unavailable"}catch(m){d.certificateCount=`Error: ${m?.message}`}if(typeof HF.getSystemCACertificatesErrors=="function")try{let m=HF.getSystemCACertificatesErrors();if(m&&typeof m=="object"){let A=new Map;for(let[f,g]of Object.entries(m))if(Array.isArray(g))for(let h of g){let y=h.errorCode??"missing code",v=`${f}: ${h.errorMessage??"missing message"}`,_=`${v} (${y})`,w=A.get(_);w?w.count++:A.set(_,{error:v,code:y,count:1})}d.errorSummary=[...A.values()].sort((f,g)=>g.count-f.count)}d.errors=m}catch(m){d.errors=`Error: ${m?.message}`}else d.errors="tls.getSystemCACertificatesErrors is not available";let p=await ms.workspace.openTextDocument({language:"json",content:JSON.stringify(d,null,2)});await ms.window.showTextDocument(p)})),this._context.subscriptions.push(new qYt(this.fetcherService,this.configurationService,this.experimentationService))}async getAuthHeaders(e,n){let r={};if(e){let o="";if(n===this.capiClientService.dotcomAPIURL)o=this.authService.anyGitHubSession?.accessToken||"";else try{o=(await this.authService.getCopilotToken()).token}catch{o=""}r.Authorization=`Bearer ${o}`}return r}};Nme=S([b(0,ut),b(1,Zt),b(2,be),b(3,Fe),b(4,at),b(5,Mr),b(6,nr),b(7,Z)],Nme);async function il(t,e){await t.edit(n=>{n.insert(t.document.lineAt(t.document.lineCount-1).range.end,e)})}function ACa(t){return new Promise(e=>setTimeout(()=>e("timeout"),t))}function fCa(t){let e=ms.env.appRoot;try{return require(`${e}/node_modules.asar/${t}`)}catch{}try{return require(`${e}/node_modules/${t}`)}catch{}}async function gCa(t,e,n){try{let r=await t({log:{trace(o,...a){n.trace(o)},debug(o,...a){n.debug(o)},info(o,...a){n.info(o)},warn(o,...a){n.warn(o)},error(o,...a){n.error(typeof o=="string"?o:String(o))}},loadSystemCertificatesFromNode:()=>e});return Array.isArray(r)?r:void 0}catch(r){n.error(r);return}}async function hCa(t,e,n){return new Promise((r,o)=>{let a=new URL(e),s=t.connect({host:a.hostname,port:parseInt(a.port,10),servername:a.hostname,ca:n},()=>{s.end(),r("Succeeded")});s.on("error",o)})}async function bCa(t,e,n,r=!1){return new Promise((o,a)=>{let s=new URL(e),c=new URL(n),l=`${c.hostname}:${c.port||(c.protocol==="https:"?443:80)}`,u={method:"CONNECT",host:s.hostname,port:s.port,path:l,headers:{Host:l},rejectUnauthorized:!1},d=t.request(u);d.on("connect",(p,m,A)=>{let f=["proxy-authenticate","proxy-agent","server","via"].reduce((g,h)=>{let y=p.headers[h];if(y){let v=r&&!["proxy-agent","server"].includes(h);g[h]=v?Array.isArray(y)?y.map(I8r):I8r(y):y}return g},{});m.end(),o({statusCode:p.statusCode,statusMessage:p.statusMessage,headers:f})}),d.on("error",a),d.end()})}var yCa=["http.proxy","http.noProxy","http.proxyAuthorization","http.proxyStrictSSL","http.proxySupport","http.electronFetch","http.fetchAdditionalSupport","http.proxyKerberosServicePrincipal","http.systemCertificates","http.systemCertificatesNode","http.experimental.systemCertificatesV2","http.useLocalProxyConfiguration"],vCa=["http.systemCertificatesNode"];function _Ca(){let t=ms.workspace.getConfiguration();return yCa.map(e=>{let n=t.inspect(e),r=t.get(e,n?.defaultValue);return vCa.includes(e)||r!==n?.defaultValue&&!(Array.isArray(r)&&Array.isArray(n?.defaultValue)&&r.length===0&&n?.defaultValue.length===0)?` "${e}": ${JSON.stringify(r)},`:""}).join("")}function CCa(){let t=[],e=["http_proxy","https_proxy","ftp_proxy","all_proxy","no_proxy"];for(let n in process.env)e.includes(n.toLowerCase())&&t.push(` - ${n}=${process.env[n]}`);return t.length?` Environment Variables:${t.join("")}`:""}var Lme=class{constructor(e){e.invokeFunction(wCa)}};Lme=S([b(0,j)],Lme);function wCa(t){let e=t.get(ut),n=t.get(Zt),r=t.get(Z),o=t.get(be),a=t.get(Fe);if(!ms.env.isTelemetryEnabled||e.extensionMode!==ms.ExtensionMode.Production||$c||!o.getExperimentBasedConfig(H.TeamInternal.DebugCollectFetcherTelemetry,a))return;let s=Date.now(),c=e.globalState.get("lastCollectFetcherTelemetryTime",0);if(s-c<5*60*1e3){r.debug("Send fetcher telemetry: Skipped.");return}(async()=>{await e.globalState.update("lastCollectFetcherTelemetryTime",s),r.debug("Send fetcher telemetry: Exclude other windows.");let l=st();if(await e.globalState.update("lastCollectFetcherTelemetryUUID",l),await vo(5e3),e.globalState.get("lastCollectFetcherTelemetryUUID")!==l){r.debug("Send fetcher telemetry: Other window won.");return}r.debug("Send fetcher telemetry: This window won.");let u=[eY.create(n),new XV(n),new _U(n)].filter(A=>A);Jye(u);let d={};for(let A of u){let f=A.getUserAgentLibrary(),g=f.replace(/-/g,""),h=Date.now();try{let y=await E8r(A,n,e,"GitHub.copilot-chat/fetcherTelemetryProbe",{});d[g]=`Status: ${y.status}`,r.debug(`Fetcher telemetry probe: ${f} ${d[g]} (${Date.now()-h}ms)`)}catch(y){d[g]=`Error: ${zf(y,!0)}`,r.debug(`Fetcher telemetry probe: ${f} ${d[g]} (${Date.now()-h}ms)`)}}let p=st(),m=e.extension.extensionKind===ms.ExtensionKind.UI?"local":"remote";for(let A of u){let f=Date.now();try{let g={requestGroupId:p,clientLibrary:A.getUserAgentLibrary(),extensionKind:m,remoteName:ms.env.remoteName??"none",...d},h=await E8r(A,n,e,"GitHub.copilot-chat/fetcherTelemetry",g);r.debug(`Fetcher telemetry: Succeeded in ${Date.now()-f}ms using ${A.getUserAgentLibrary()} with status ${h.status} (${h.statusText}).`)}catch{r.debug(`Fetcher telemetry: Failed in ${Date.now()-f}ms using ${A.getUserAgentLibrary()}.`)}}})().catch(l=>{r.error(l)})}async function E8r(t,e,n,r,o){let a="https://mobile.events.data.microsoft.com/OneCollector/1.0?cors=true&content-type=application/x-json-stream",s=require($Yt.join(ms.env.appRoot,"product.json")),c=s.commit||"",l=n.extension.packageJSON.ariaKey??"",u=`o:${l.split("-")[0]}`,d="1DS-Web-JS-4.3.10",p=new Date(Date.now()-10).toISOString(),m={name:r,time:p,ver:"4.0",iKey:u,ext:{sdk:{ver:d},web:{consentDetails:'{"GPC_DataSharingOptIn":false}'}},data:{baseData:{name:r,properties:{...o,"abexp.assignmentcontext":"","common.os":WF.platform(),"common.nodeArch":WF.arch(),"common.platformversion":WF.release(),"common.telemetryclientversion":"1.5.0","common.extname":CA,"common.extversion":e.getVersion(),"common.vscodemachineid":e.machineId,"common.vscodesessionid":e.sessionId,"common.vscodecommithash":c,"common.sqmid":"","common.devDeviceId":e.devDeviceId,"common.vscodeversion":e.vscodeVersion,"common.vscodereleasedate":s.date||"unknown","common.isnewappinstall":ms.env.isNewAppInstall,"common.product":e.uiKind,"common.uikind":e.uiKind,"common.remotename":e.remoteName??"none",version:"PostChannel=4.3.10"}}}},A=JSON.stringify(m),f={"Client-Id":"NO_AUTH","client-version":d,apikey:l,"upload-time":String(Date.now()),"time-delta-to-apply-millis":"use-collector-delta","cache-control":"no-cache, no-store","content-type":"application/x-json-stream","User-Agent":`GitHubCopilotChat/${e.getVersion()}`,[ete]:t.getUserAgentLibrary()};t.getUserAgentLibrary()===_U.ID&&(f["content-length"]=String(Buffer.byteLength(A)));let g=await t.fetch(a,{method:"POST",headers:f,body:A,callSite:"diagnostics-telemetry-probe"});return await g.text(),g}var xCa=/(^|\b)[\p{L}\p{Nd}]+((=""?[^"]+""?)|(([.:=/"_-]+[\p{L}\p{Nd}]+)+))(\b|$)/giu;function I8r(t){return(t||"").replace(xCa,e=>ECa(e))}function ECa(t){return/^net::[A-Z_]+$/.test(t)||["dev-container","attached-container","k8s-container","ssh-remote"].includes(t)?t:t.replace(/\p{Lu}|\p{Ll}|\p{Nd}/gu,e=>/\p{Lu}/u.test(e)?"A":/\p{Ll}/u.test(e)?"a":"0")}var qYt=class extends fe{constructor(n,r,o){super();this._fetcherService=n;this._configurationService=r;this._experimentationService=o;this._events=[];this._fetchSubscription=this._register(new sh);this._statusBarItem=this._register(ms.window.createStatusBarItem("copilot.networkStatus",ms.StatusBarAlignment.Right,-1e3)),this._statusBarItem.name="Copilot Network Status",this._register(r.onDidChangeConfiguration(a=>{a.affectsConfiguration(H.TeamInternal.DebugShowNetworkStatus.fullyQualifiedId)&&this._update()})),this._update()}_isEnabled(){return this._configurationService.getExperimentBasedConfig(H.TeamInternal.DebugShowNetworkStatus,this._experimentationService)}_onEvent(n){this._events.push(n);let r=Date.now()-5*60*1e3;for(;this._events.length>0&&this._events[0].timestampthis._onEvent(l));else if(!n){this._fetchSubscription.value=void 0,this._events.length=0,this._statusBarItem.hide();return}let r=new Map;for(let l of this._events)r.set(l.internalId,l);let o=[...r.values()],a=o.filter(l=>l.outcome==="error");this._statusBarItem.text=`Copilot Network: ${a.length} errors / ${o.length} total`;let s=new Map;for(let l of o){let u=s.get(l.hostname);u||(u={total:0,errors:0,cancellations:0},s.set(l.hostname,u)),u.total++,l.outcome==="error"?u.errors++:l.outcome==="cancel"&&u.cancellations++}let c=new ms.MarkdownString;c.appendMarkdown(`| Hostname | Errors | Cancellations | Total | `),c.appendMarkdown(`|:--|--:|--:|--:| `);for(let[l,{total:u,errors:d,cancellations:p}]of[...s].sort((m,A)=>A[1].total-m[1].total))c.appendMarkdown(`| ${l} | ${d} | ${p} | ${u} | `);c.appendMarkdown(` **${a.length}** of **${o.length}** network requests failed in the last 5 minutes`),this._statusBarItem.tooltip=c,this._statusBarItem.show()}};var $5r=require("http"),oq=O(require("os")),NP=O(require("path"));var s5r=O(require("events"),1),lv=O(require("fs"),1),Bit=require("node:events"),QKt=O(require("node:stream"),1),c5r=require("node:string_decoder"),UKt=O(require("node:path"),1),pY=O(require("node:fs"),1),Dit=require("path"),d5r=require("events"),Iit=O(require("assert"),1),tq=require("buffer"),L8r=O(require("zlib"),1),p5r=O(require("zlib"),1),dY=require("node:path"),b5r=require("node:path"),l2e=O(require("fs"),1),JT=O(require("fs"),1),vKt=O(require("path"),1),w5r=require("node:path"),SKt=O(require("path"),1),ZKt=O(require("node:fs"),1),B5r=O(require("node:assert"),1),VKt=require("node:crypto"),Js=O(require("node:fs"),1),OA=O(require("node:path"),1),YKt=O(require("fs"),1),p2e=O(require("node:fs"),1),Gme=O(require("node:path"),1),SC=O(require("node:fs"),1),L5r=O(require("node:fs/promises"),1),u2e=O(require("node:path"),1),KKt=require("node:path"),kC=O(require("node:fs"),1),XKt=O(require("node:path"),1),ICa=Object.defineProperty,kCa=(t,e)=>{for(var n in e)ICa(t,n,{get:e[n],enumerable:!0})},R8r=typeof process=="object"&&process?process:{stdout:null,stderr:null},SCa=t=>!!t&&typeof t=="object"&&(t instanceof gY||t instanceof QKt.default||TCa(t)||BCa(t)),TCa=t=>!!t&&typeof t=="object"&&t instanceof Bit.EventEmitter&&typeof t.pipe=="function"&&t.pipe!==QKt.default.Writable.prototype.pipe,BCa=t=>!!t&&typeof t=="object"&&t instanceof Bit.EventEmitter&&typeof t.write=="function"&&typeof t.end=="function",ZF=Symbol("EOF"),VF=Symbol("maybeEmitEnd"),WU=Symbol("emittedEnd"),tit=Symbol("emittingEnd"),qDe=Symbol("emittedError"),nit=Symbol("closed"),D8r=Symbol("read"),rit=Symbol("flush"),P8r=Symbol("flushChunk"),VT=Symbol("encoding"),Mme=Symbol("decoder"),Lg=Symbol("flowing"),$De=Symbol("paused"),Ume=Symbol("resume"),Mg=Symbol("buffer"),cv=Symbol("pipes"),Fg=Symbol("bufferLength"),zYt=Symbol("bufferPush"),iit=Symbol("bufferShift"),Qy=Symbol("objectMode"),eA=Symbol("destroyed"),jYt=Symbol("error"),GYt=Symbol("emitData"),N8r=Symbol("emitEnd"),HYt=Symbol("emitEnd2"),TP=Symbol("async"),WYt=Symbol("abort"),oit=Symbol("aborted"),zDe=Symbol("signal"),nY=Symbol("dataListeners"),Ox=Symbol("discarded"),jDe=t=>Promise.resolve().then(t),RCa=t=>t(),DCa=t=>t==="end"||t==="finish"||t==="prefinish",PCa=t=>t instanceof ArrayBuffer||!!t&&typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,NCa=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),l5r=class{src;dest;opts;ondrain;constructor(t,e,n){this.src=t,this.dest=e,this.opts=n,this.ondrain=()=>t[Ume](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},LCa=class extends l5r{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,e,n){super(t,e,n),this.proxyErrors=r=>this.dest.emit("error",r),t.on("error",this.proxyErrors)}},MCa=t=>!!t.objectMode,FCa=t=>!t.objectMode&&!!t.encoding&&t.encoding!=="buffer",gY=class extends Bit.EventEmitter{[Lg]=!1;[$De]=!1;[cv]=[];[Mg]=[];[Qy];[VT];[TP];[Mme];[ZF]=!1;[WU]=!1;[tit]=!1;[nit]=!1;[qDe]=null;[Fg]=0;[eA]=!1;[zDe];[oit]=!1;[nY]=0;[Ox]=!1;writable=!0;readable=!0;constructor(...t){let e=t[0]||{};if(super(),e.objectMode&&typeof e.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");MCa(e)?(this[Qy]=!0,this[VT]=null):FCa(e)?(this[VT]=e.encoding,this[Qy]=!1):(this[Qy]=!1,this[VT]=null),this[TP]=!!e.async,this[Mme]=this[VT]?new c5r.StringDecoder(this[VT]):null,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[Mg]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[cv]});let{signal:n}=e;n&&(this[zDe]=n,n.aborted?this[WYt]():n.addEventListener("abort",()=>this[WYt]()))}get bufferLength(){return this[Fg]}get encoding(){return this[VT]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[Qy]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[TP]}set async(t){this[TP]=this[TP]||!!t}[WYt](){this[oit]=!0,this.emit("abort",this[zDe]?.reason),this.destroy(this[zDe]?.reason)}get aborted(){return this[oit]}set aborted(t){}write(t,e,n){if(this[oit])return!1;if(this[ZF])throw new Error("write after end");if(this[eA])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof e=="function"&&(n=e,e="utf8"),e||(e="utf8");let r=this[TP]?jDe:RCa;if(!this[Qy]&&!Buffer.isBuffer(t)){if(NCa(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(PCa(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[Qy]?(this[Lg]&&this[Fg]!==0&&this[rit](!0),this[Lg]?this.emit("data",t):this[zYt](t),this[Fg]!==0&&this.emit("readable"),n&&r(n),this[Lg]):t.length?(typeof t=="string"&&!(e===this[VT]&&!this[Mme]?.lastNeed)&&(t=Buffer.from(t,e)),Buffer.isBuffer(t)&&this[VT]&&(t=this[Mme].write(t)),this[Lg]&&this[Fg]!==0&&this[rit](!0),this[Lg]?this.emit("data",t):this[zYt](t),this[Fg]!==0&&this.emit("readable"),n&&r(n),this[Lg]):(this[Fg]!==0&&this.emit("readable"),n&&r(n),this[Lg])}read(t){if(this[eA])return null;if(this[Ox]=!1,this[Fg]===0||t===0||t&&t>this[Fg])return this[VF](),null;this[Qy]&&(t=null),this[Mg].length>1&&!this[Qy]&&(this[Mg]=[this[VT]?this[Mg].join(""):Buffer.concat(this[Mg],this[Fg])]);let e=this[D8r](t||null,this[Mg][0]);return this[VF](),e}[D8r](t,e){if(this[Qy])this[iit]();else{let n=e;t===n.length||t===null?this[iit]():typeof n=="string"?(this[Mg][0]=n.slice(t),e=n.slice(0,t),this[Fg]-=t):(this[Mg][0]=n.subarray(t),e=n.subarray(0,t),this[Fg]-=t)}return this.emit("data",e),!this[Mg].length&&!this[ZF]&&this.emit("drain"),e}end(t,e,n){return typeof t=="function"&&(n=t,t=void 0),typeof e=="function"&&(n=e,e="utf8"),t!==void 0&&this.write(t,e),n&&this.once("end",n),this[ZF]=!0,this.writable=!1,(this[Lg]||!this[$De])&&this[VF](),this}[Ume](){this[eA]||(!this[nY]&&!this[cv].length&&(this[Ox]=!0),this[$De]=!1,this[Lg]=!0,this.emit("resume"),this[Mg].length?this[rit]():this[ZF]?this[VF]():this.emit("drain"))}resume(){return this[Ume]()}pause(){this[Lg]=!1,this[$De]=!0,this[Ox]=!1}get destroyed(){return this[eA]}get flowing(){return this[Lg]}get paused(){return this[$De]}[zYt](t){this[Qy]?this[Fg]+=1:this[Fg]+=t.length,this[Mg].push(t)}[iit](){return this[Qy]?this[Fg]-=1:this[Fg]-=this[Mg][0].length,this[Mg].shift()}[rit](t=!1){do;while(this[P8r](this[iit]())&&this[Mg].length);!t&&!this[Mg].length&&!this[ZF]&&this.emit("drain")}[P8r](t){return this.emit("data",t),this[Lg]}pipe(t,e){if(this[eA])return t;this[Ox]=!1;let n=this[WU];return e=e||{},t===R8r.stdout||t===R8r.stderr?e.end=!1:e.end=e.end!==!1,e.proxyErrors=!!e.proxyErrors,n?e.end&&t.end():(this[cv].push(e.proxyErrors?new LCa(this,t,e):new l5r(this,t,e)),this[TP]?jDe(()=>this[Ume]()):this[Ume]()),t}unpipe(t){let e=this[cv].find(n=>n.dest===t);e&&(this[cv].length===1?(this[Lg]&&this[nY]===0&&(this[Lg]=!1),this[cv]=[]):this[cv].splice(this[cv].indexOf(e),1),e.unpipe())}addListener(t,e){return this.on(t,e)}on(t,e){let n=super.on(t,e);if(t==="data")this[Ox]=!1,this[nY]++,!this[cv].length&&!this[Lg]&&this[Ume]();else if(t==="readable"&&this[Fg]!==0)super.emit("readable");else if(DCa(t)&&this[WU])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[qDe]){let r=e;this[TP]?jDe(()=>r.call(this,this[qDe])):r.call(this,this[qDe])}return n}removeListener(t,e){return this.off(t,e)}off(t,e){let n=super.off(t,e);return t==="data"&&(this[nY]=this.listeners("data").length,this[nY]===0&&!this[Ox]&&!this[cv].length&&(this[Lg]=!1)),n}removeAllListeners(t){let e=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[nY]=0,!this[Ox]&&!this[cv].length&&(this[Lg]=!1)),e}get emittedEnd(){return this[WU]}[VF](){!this[tit]&&!this[WU]&&!this[eA]&&this[Mg].length===0&&this[ZF]&&(this[tit]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[nit]&&this.emit("close"),this[tit]=!1)}emit(t,...e){let n=e[0];if(t!=="error"&&t!=="close"&&t!==eA&&this[eA])return!1;if(t==="data")return!this[Qy]&&!n?!1:this[TP]?(jDe(()=>this[GYt](n)),!0):this[GYt](n);if(t==="end")return this[N8r]();if(t==="close"){if(this[nit]=!0,!this[WU]&&!this[eA])return!1;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[qDe]=n,super.emit(jYt,n);let o=!this[zDe]||this.listeners("error").length?super.emit("error",n):!1;return this[VF](),o}else if(t==="resume"){let o=super.emit("resume");return this[VF](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let r=super.emit(t,...e);return this[VF](),r}[GYt](t){for(let n of this[cv])n.dest.write(t)===!1&&this.pause();let e=this[Ox]?!1:super.emit("data",t);return this[VF](),e}[N8r](){return this[WU]?!1:(this[WU]=!0,this.readable=!1,this[TP]?(jDe(()=>this[HYt]()),!0):this[HYt]())}[HYt](){if(this[Mme]){let e=this[Mme].end();if(e){for(let n of this[cv])n.dest.write(e);this[Ox]||super.emit("data",e)}}for(let e of this[cv])e.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[Qy]||(t.dataLength=0);let e=this.promise();return this.on("data",n=>{t.push(n),this[Qy]||(t.dataLength+=n.length)}),await e,t}async concat(){if(this[Qy])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[VT]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,e)=>{this.on(eA,()=>e(new Error("stream destroyed"))),this.on("error",n=>e(n)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[Ox]=!1;let t=!1,e=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return e();let n=this.read();if(n!==null)return Promise.resolve({done:!1,value:n});if(this[ZF])return e();let r,o,a=u=>{this.off("data",s),this.off("end",c),this.off(eA,l),e(),o(u)},s=u=>{this.off("error",a),this.off("end",c),this.off(eA,l),this.pause(),r({value:u,done:!!this[ZF]})},c=()=>{this.off("error",a),this.off("data",s),this.off(eA,l),e(),r({done:!0,value:void 0})},l=()=>a(new Error("stream destroyed"));return new Promise((u,d)=>{o=d,r=u,this.once(eA,l),this.once("error",a),this.once("end",c),this.once("data",s)})},throw:e,return:e,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[Ox]=!1;let t=!1,e=()=>(this.pause(),this.off(jYt,e),this.off(eA,e),this.off("end",e),t=!0,{done:!0,value:void 0}),n=()=>{if(t)return e();let r=this.read();return r===null?e():{done:!1,value:r}};return this.once("end",e),this.once(jYt,e),this.once(eA,e),{next:n,throw:e,return:e,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(t){if(this[eA])return t?this.emit("error",t):this.emit(eA),this;this[eA]=!0,this[Ox]=!0,this[Mg].length=0,this[Fg]=0;let e=this;return typeof e.close=="function"&&!this[nit]&&e.close(),t?this.emit("error",t):this.emit(eA),this}static get isStream(){return SCa}},QCa=lv.default.writev,rq=Symbol("_autoClose"),eB=Symbol("_close"),GDe=Symbol("_ended"),fl=Symbol("_fd"),ZYt=Symbol("_finished"),XF=Symbol("_flags"),VYt=Symbol("_flush"),gKt=Symbol("_handleChunk"),hKt=Symbol("_makeBuf"),t2e=Symbol("_mode"),ait=Symbol("_needDrain"),jme=Symbol("_onerror"),Hme=Symbol("_onopen"),YYt=Symbol("_onread"),qme=Symbol("_onwrite"),iq=Symbol("_open"),XT=Symbol("_path"),KU=Symbol("_pos"),BP=Symbol("_queue"),$me=Symbol("_read"),KYt=Symbol("_readSize"),JF=Symbol("_reading"),HDe=Symbol("_remain"),JYt=Symbol("_size"),fit=Symbol("_write"),rY=Symbol("_writing"),git=Symbol("_defaultFlag"),mY=Symbol("_errored"),OKt=class extends gY{[mY]=!1;[fl];[XT];[KYt];[JF]=!1;[JYt];[HDe];[rq];constructor(t,e){if(e=e||{},super(e),this.readable=!0,this.writable=!1,typeof t!="string")throw new TypeError("path must be a string");this[mY]=!1,this[fl]=typeof e.fd=="number"?e.fd:void 0,this[XT]=t,this[KYt]=e.readSize||16*1024*1024,this[JF]=!1,this[JYt]=typeof e.size=="number"?e.size:1/0,this[HDe]=this[JYt],this[rq]=typeof e.autoClose=="boolean"?e.autoClose:!0,typeof this[fl]=="number"?this[$me]():this[iq]()}get fd(){return this[fl]}get path(){return this[XT]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[iq](){lv.default.open(this[XT],"r",(t,e)=>this[Hme](t,e))}[Hme](t,e){t?this[jme](t):(this[fl]=e,this.emit("open",e),this[$me]())}[hKt](){return Buffer.allocUnsafe(Math.min(this[KYt],this[HDe]))}[$me](){if(!this[JF]){this[JF]=!0;let t=this[hKt]();if(t.length===0)return process.nextTick(()=>this[YYt](null,0,t));lv.default.read(this[fl],t,0,t.length,null,(e,n,r)=>this[YYt](e,n,r))}}[YYt](t,e,n){this[JF]=!1,t?this[jme](t):this[gKt](e,n)&&this[$me]()}[eB](){if(this[rq]&&typeof this[fl]=="number"){let t=this[fl];this[fl]=void 0,lv.default.close(t,e=>e?this.emit("error",e):this.emit("close"))}}[jme](t){this[JF]=!0,this[eB](),this.emit("error",t)}[gKt](t,e){let n=!1;return this[HDe]-=t,t>0&&(n=super.write(tthis[Hme](t,e))}[Hme](t,e){this[git]&&this[XF]==="r+"&&t&&t.code==="ENOENT"?(this[XF]="w",this[iq]()):t?this[jme](t):(this[fl]=e,this.emit("open",e),this[rY]||this[VYt]())}end(t,e){return t&&this.write(t,e),this[GDe]=!0,!this[rY]&&!this[BP].length&&typeof this[fl]=="number"&&this[qme](null,0),this}write(t,e){return typeof t=="string"&&(t=Buffer.from(t,e)),this[GDe]?(this.emit("error",new Error("write() after end()")),!1):this[fl]===void 0||this[rY]||this[BP].length?(this[BP].push(t),this[ait]=!0,!1):(this[rY]=!0,this[fit](t),!0)}[fit](t){lv.default.write(this[fl],t,0,t.length,this[KU],(e,n)=>this[qme](e,n))}[qme](t,e){t?this[jme](t):(this[KU]!==void 0&&typeof e=="number"&&(this[KU]+=e),this[BP].length?this[VYt]():(this[rY]=!1,this[GDe]&&!this[ZYt]?(this[ZYt]=!0,this[eB](),this.emit("finish")):this[ait]&&(this[ait]=!1,this.emit("drain"))))}[VYt](){if(this[BP].length===0)this[GDe]&&this[qme](null,0);else if(this[BP].length===1)this[fit](this[BP].pop());else{let t=this[BP];this[BP]=[],QCa(this[fl],t,this[KU],(e,n)=>this[qme](e,n))}}[eB](){if(this[rq]&&typeof this[fl]=="number"){let t=this[fl];this[fl]=void 0,lv.default.close(t,e=>e?this.emit("error",e):this.emit("close"))}}},u5r=class extends Rit{[iq](){let t;if(this[git]&&this[XF]==="r+")try{t=lv.default.openSync(this[XT],this[XF],this[t2e])}catch(e){if(e?.code==="ENOENT")return this[XF]="w",this[iq]();throw e}else t=lv.default.openSync(this[XT],this[XF],this[t2e]);this[Hme](null,t)}[eB](){if(this[rq]&&typeof this[fl]=="number"){let t=this[fl];this[fl]=void 0,lv.default.closeSync(t),this.emit("close")}}[fit](t){let e=!0;try{this[qme](null,lv.default.writeSync(this[fl],t,0,t.length,this[KU])),e=!1}finally{if(e)try{this[eB]()}catch{}}}},UCa=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"],["onentry","onReadEntry"]]),qCa=t=>!!t.sync&&!!t.file,$Ca=t=>!t.sync&&!!t.file,zCa=t=>!!t.sync&&!t.file,jCa=t=>!t.sync&&!t.file,GCa=t=>!!t.file,HCa=t=>UCa.get(t)||t,qKt=(t={})=>{if(!t)return{};let e={};for(let[n,r]of Object.entries(t)){let o=HCa(n);e[o]=r}return e.chmod===void 0&&e.noChmod===!1&&(e.chmod=!0),delete e.noChmod,e},d2e=(t,e,n,r,o)=>Object.assign((a=[],s,c)=>{Array.isArray(a)&&(s=a,a={}),typeof s=="function"&&(c=s,s=void 0),s?s=Array.from(s):s=[];let l=qKt(a);if(o?.(l,s),qCa(l)){if(typeof c=="function")throw new TypeError("callback not supported for sync tar functions");return t(l,s)}else if($Ca(l)){let u=e(l,s),d=c||void 0;return d?u.then(()=>d(),d):u}else if(zCa(l)){if(typeof c=="function")throw new TypeError("callback not supported for sync tar functions");return n(l,s)}else if(jCa(l)){if(typeof c=="function")throw new TypeError("callback only supported with file option");return r(l,s)}else throw new Error("impossible options??")},{syncFile:t,asyncFile:e,syncNoFile:n,asyncNoFile:r,validate:o}),WCa=p5r.default.constants||{ZLIB_VERNUM:4736},PP=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},WCa)),ZCa=tq.Buffer.concat,M8r=Object.getOwnPropertyDescriptor(tq.Buffer,"concat"),VCa=t=>t,XYt=M8r?.writable===!0||M8r?.set!==void 0?t=>{tq.Buffer.concat=t?VCa:ZCa}:t=>{},AY=Symbol("_superWrite"),sit=class extends Error{code;errno;constructor(t,e){super("zlib: "+t.message,{cause:t}),this.code=t.code,this.errno=t.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+t.message,Error.captureStackTrace(this,e??this.constructor)}get name(){return"ZlibError"}},eKt=Symbol("flushFlag"),$Kt=class extends gY{#e=!1;#t=!1;#r;#n;#o;#i;#l;get sawError(){return this.#e}get handle(){return this.#i}get flushFlag(){return this.#r}constructor(t,e){if(!t||typeof t!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(t),this.#r=t.flush??0,this.#n=t.finishFlush??0,this.#o=t.fullFlushFlag??0,typeof L8r[e]!="function")throw new TypeError("Compression method not supported: "+e);try{this.#i=new L8r[e](t)}catch(n){throw new sit(n,this.constructor)}this.#l=n=>{this.#e||(this.#e=!0,this.close(),this.emit("error",n))},this.#i?.on("error",n=>this.#l(new sit(n))),this.once("end",()=>this.close)}close(){this.#i&&(this.#i.close(),this.#i=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,Iit.default)(this.#i,"zlib binding closed"),this.#i.reset?.()}flush(t){this.ended||(typeof t!="number"&&(t=this.#o),this.write(Object.assign(tq.Buffer.alloc(0),{[eKt]:t})))}end(t,e,n){return typeof t=="function"&&(n=t,e=void 0,t=void 0),typeof e=="function"&&(n=e,e=void 0),t&&(e?this.write(t,e):this.write(t)),this.flush(this.#n),this.#t=!0,super.end(n)}get ended(){return this.#t}[AY](t){return super.write(t)}write(t,e,n){if(typeof e=="function"&&(n=e,e="utf8"),typeof t=="string"&&(t=tq.Buffer.from(t,e)),this.#e)return;(0,Iit.default)(this.#i,"zlib binding closed");let r=this.#i._handle,o=r.close;r.close=()=>{};let a=this.#i.close;this.#i.close=()=>{},XYt(!0);let s;try{let l=typeof t[eKt]=="number"?t[eKt]:this.#r;s=this.#i._processChunk(t,l),XYt(!1)}catch(l){XYt(!1),this.#l(new sit(l,this.write))}finally{this.#i&&(this.#i._handle=r,r.close=o,this.#i.close=a,this.#i.removeAllListeners("error"))}this.#i&&this.#i.on("error",l=>this.#l(new sit(l,this.write)));let c;if(s)if(Array.isArray(s)&&s.length>0){let l=s[0];c=this[AY](tq.Buffer.from(l));for(let u=1;u{typeof r=="function"&&(o=r,r=this.flushFlag),this.flush(r),o?.()};try{this.handle.params(t,e)}finally{this.handle.flush=n}this.handle&&(this.#e=t,this.#t=e)}}}},YCa=class extends m5r{#e;constructor(t){super(t,"Gzip"),this.#e=t&&!!t.portable}[AY](t){return this.#e?(this.#e=!1,t[9]=255,super[AY](t)):super[AY](t)}},KCa=class extends m5r{constructor(t){super(t,"Unzip")}},A5r=class extends $Kt{constructor(t,e){t=t||{},t.flush=t.flush||PP.BROTLI_OPERATION_PROCESS,t.finishFlush=t.finishFlush||PP.BROTLI_OPERATION_FINISH,t.fullFlushFlag=PP.BROTLI_OPERATION_FLUSH,super(t,e)}},JCa=class extends A5r{constructor(t){super(t,"BrotliCompress")}},XCa=class extends A5r{constructor(t){super(t,"BrotliDecompress")}},f5r=class extends $Kt{constructor(t,e){t=t||{},t.flush=t.flush||PP.ZSTD_e_continue,t.finishFlush=t.finishFlush||PP.ZSTD_e_end,t.fullFlushFlag=PP.ZSTD_e_flush,super(t,e)}},ewa=class extends f5r{constructor(t){super(t,"ZstdCompress")}},twa=class extends f5r{constructor(t){super(t,"ZstdDecompress")}},nwa=(t,e)=>{if(Number.isSafeInteger(t))t<0?iwa(t,e):rwa(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},rwa=(t,e)=>{e[0]=128;for(var n=e.length;n>1;n--)e[n-1]=t&255,t=Math.floor(t/256)},iwa=(t,e)=>{e[0]=255;var n=!1;t=t*-1;for(var r=e.length;r>1;r--){var o=t&255;t=Math.floor(t/256),n?e[r-1]=g5r(o):o===0?e[r-1]=0:(n=!0,e[r-1]=h5r(o))}},owa=t=>{let e=t[0],n=e===128?swa(t.subarray(1,t.length)):e===255?awa(t):null;if(n===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(n))throw Error("parsed number outside of javascript safe integer range");return n},awa=t=>{for(var e=t.length,n=0,r=!1,o=e-1;o>-1;o--){var a=Number(t[o]),s;r?s=g5r(a):a===0?s=a:(r=!0,s=h5r(a)),s!==0&&(n-=s*Math.pow(256,e-o-1))}return n},swa=t=>{for(var e=t.length,n=0,r=e-1;r>-1;r--){var o=Number(t[r]);o!==0&&(n+=o*Math.pow(256,e-r-1))}return n},g5r=t=>(255^t)&255,h5r=t=>(255^t)+1&255,cwa={};kCa(cwa,{code:()=>zKt,isCode:()=>hit,isName:()=>lwa,name:()=>Pit});var hit=t=>Pit.has(t),lwa=t=>zKt.has(t),Pit=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),zKt=new Map(Array.from(Pit).map(t=>[t[1],t[0]])),fY=class{cksumValid=!1;needPax=!1;nullBlock=!1;block;path;mode;uid;gid;size;cksum;#e="Unsupported";linkpath;uname;gname;devmaj=0;devmin=0;atime;ctime;mtime;charset;comment;constructor(t,e=0,n,r){Buffer.isBuffer(t)?this.decode(t,e||0,n,r):t&&this.#t(t)}decode(t,e,n,r){if(e||(e=0),!t||!(t.length>=e+512))throw new Error("need 512 bytes for header");this.path=n?.path??iY(t,e,100),this.mode=n?.mode??r?.mode??JU(t,e+100,8),this.uid=n?.uid??r?.uid??JU(t,e+108,8),this.gid=n?.gid??r?.gid??JU(t,e+116,8),this.size=n?.size??r?.size??JU(t,e+124,12),this.mtime=n?.mtime??r?.mtime??tKt(t,e+136,12),this.cksum=JU(t,e+148,12),r&&this.#t(r,!0),n&&this.#t(n);let o=iY(t,e+156,1);if(hit(o)&&(this.#e=o||"0"),this.#e==="0"&&this.path.slice(-1)==="/"&&(this.#e="5"),this.#e==="5"&&(this.size=0),this.linkpath=iY(t,e+157,100),t.subarray(e+257,e+265).toString()==="ustar\x0000")if(this.uname=n?.uname??r?.uname??iY(t,e+265,32),this.gname=n?.gname??r?.gname??iY(t,e+297,32),this.devmaj=n?.devmaj??r?.devmaj??JU(t,e+329,8)??0,this.devmin=n?.devmin??r?.devmin??JU(t,e+337,8)??0,t[e+475]!==0){let s=iY(t,e+345,155);this.path=s+"/"+this.path}else{let s=iY(t,e+345,130);s&&(this.path=s+"/"+this.path),this.atime=n?.atime??r?.atime??tKt(t,e+476,12),this.ctime=n?.ctime??r?.ctime??tKt(t,e+488,12)}let a=256;for(let s=e;s!(r==null||n==="path"&&e||n==="linkpath"&&e||n==="global"))))}encode(t,e=0){if(t||(t=this.block=Buffer.alloc(512)),this.#e==="Unsupported"&&(this.#e="0"),!(t.length>=e+512))throw new Error("need 512 bytes for header");let n=this.ctime||this.atime?130:155,r=uwa(this.path||"",n),o=r[0],a=r[1];this.needPax=!!r[2],this.needPax=oY(t,e,100,o)||this.needPax,this.needPax=XU(t,e+100,8,this.mode)||this.needPax,this.needPax=XU(t,e+108,8,this.uid)||this.needPax,this.needPax=XU(t,e+116,8,this.gid)||this.needPax,this.needPax=XU(t,e+124,12,this.size)||this.needPax,this.needPax=nKt(t,e+136,12,this.mtime)||this.needPax,t[e+156]=this.#e.charCodeAt(0),this.needPax=oY(t,e+157,100,this.linkpath)||this.needPax,t.write("ustar\x0000",e+257,8),this.needPax=oY(t,e+265,32,this.uname)||this.needPax,this.needPax=oY(t,e+297,32,this.gname)||this.needPax,this.needPax=XU(t,e+329,8,this.devmaj)||this.needPax,this.needPax=XU(t,e+337,8,this.devmin)||this.needPax,this.needPax=oY(t,e+345,n,a)||this.needPax,t[e+475]!==0?this.needPax=oY(t,e+345,155,a)||this.needPax:(this.needPax=oY(t,e+345,130,a)||this.needPax,this.needPax=nKt(t,e+476,12,this.atime)||this.needPax,this.needPax=nKt(t,e+488,12,this.ctime)||this.needPax);let s=256;for(let c=e;c{let n=t,r="",o,a=dY.posix.parse(t).root||".";if(Buffer.byteLength(n)<100)o=[n,r,!1];else{r=dY.posix.dirname(n),n=dY.posix.basename(n);do Buffer.byteLength(n)<=100&&Buffer.byteLength(r)<=e?o=[n,r,!1]:Buffer.byteLength(n)>100&&Buffer.byteLength(r)<=e?o=[n.slice(0,99),r,!0]:(n=dY.posix.join(dY.posix.basename(r),n),r=dY.posix.dirname(r));while(r!==a&&o===void 0);o||(o=[t.slice(0,99),"",!0])}return o},iY=(t,e,n)=>t.subarray(e,e+n).toString("utf8").replace(/\0.*/,""),tKt=(t,e,n)=>dwa(JU(t,e,n)),dwa=t=>t===void 0?void 0:new Date(t*1e3),JU=(t,e,n)=>Number(t[e])&128?owa(t.subarray(e,e+n)):mwa(t,e,n),pwa=t=>isNaN(t)?void 0:t,mwa=(t,e,n)=>pwa(parseInt(t.subarray(e,e+n).toString("utf8").replace(/\0.*$/,"").trim(),8)),Awa={12:8589934591,8:2097151},XU=(t,e,n,r)=>r===void 0?!1:r>Awa[n]||r<0?(nwa(r,t.subarray(e,e+n)),!0):(fwa(t,e,n,r),!1),fwa=(t,e,n,r)=>t.write(gwa(r,n),e,n,"ascii"),gwa=(t,e)=>hwa(Math.floor(t).toString(8),e),hwa=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",nKt=(t,e,n,r)=>r===void 0?!1:XU(t,e,n,r.getTime()/1e3),bwa=new Array(156).join("\0"),oY=(t,e,n,r)=>r===void 0?!1:(t.write(r+bwa,e,n,"utf8"),r.length!==Buffer.byteLength(r)||r.length>n),kit=class y5r{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(e,n=!1){this.atime=e.atime,this.charset=e.charset,this.comment=e.comment,this.ctime=e.ctime,this.dev=e.dev,this.gid=e.gid,this.global=n,this.gname=e.gname,this.ino=e.ino,this.linkpath=e.linkpath,this.mtime=e.mtime,this.nlink=e.nlink,this.path=e.path,this.size=e.size,this.uid=e.uid,this.uname=e.uname}encode(){let e=this.encodeBody();if(e==="")return Buffer.allocUnsafe(0);let n=Buffer.byteLength(e),r=512*Math.ceil(1+n/512),o=Buffer.allocUnsafe(r);for(let a=0;a<512;a++)o[a]=0;new fY({path:("PaxHeader/"+(0,b5r.basename)(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:n,mtime:this.mtime,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(o),o.write(e,512,n,"utf8");for(let a=n+512;a=Math.pow(10,s)&&(s+=1),s+a+o}static parse(e,n,r=!1){return new y5r(ywa(vwa(e),n),r)}},ywa=(t,e)=>e?Object.assign({},e,t):t,vwa=t=>t.replace(/\n$/,"").split(` `).reduce(_wa,Object.create(null)),_wa=(t,e)=>{let n=parseInt(e,10);if(n!==Buffer.byteLength(e)+1)return t;e=e.slice((n+" ").length);let r=e.split("="),o=r.shift();if(!o)return t;let a=o.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),s=r.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(Number(s)*1e3):/^[0-9]+$/.test(s)?+s:s,t},Cwa=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Va=Cwa!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/"),v5r=class extends gY{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(t,e,n){switch(super({}),this.pause(),this.extended=e,this.globalExtended=n,this.header=t,this.remain=t.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=t.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!t.path)throw new Error("no path provided for tar.ReadEntry");this.path=Va(t.path),this.mode=t.mode,this.mode&&(this.mode=this.mode&4095),this.uid=t.uid,this.gid=t.gid,this.uname=t.uname,this.gname=t.gname,this.size=this.remain,this.mtime=t.mtime,this.atime=t.atime,this.ctime=t.ctime,this.linkpath=t.linkpath?Va(t.linkpath):void 0,this.uname=t.uname,this.gname=t.gname,e&&this.#e(e),n&&this.#e(n,!0)}write(t){let e=t.length;if(e>this.blockRemain)throw new Error("writing more to entry than is appropriate");let n=this.remain,r=this.blockRemain;return this.remain=Math.max(0,n-e),this.blockRemain=Math.max(0,r-e),this.ignore?!0:n>=e?super.write(t):super.write(t.subarray(0,n))}#e(t,e=!1){t.path&&(t.path=Va(t.path)),t.linkpath&&(t.linkpath=Va(t.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(t).filter(([n,r])=>!(r==null||n==="path"&&e))))}},Nit=(t,e,n,r={})=>{t.file&&(r.file=t.file),t.cwd&&(r.cwd=t.cwd),r.code=n instanceof Error&&n.code||e,r.tarCode=e,!t.strict&&r.recoverable!==!1?(n instanceof Error&&(r=Object.assign(n,r),n=n.message),t.emit("warn",e,n,r)):n instanceof Error?t.emit("error",Object.assign(n,r)):t.emit("error",Object.assign(new Error(`${e}: ${n}`),r))},wwa=1024*1024,bKt=Buffer.from([31,139]),yKt=Buffer.from([40,181,47,253]),xwa=Math.max(bKt.length,yKt.length),Ok=Symbol("state"),aY=Symbol("writeEntry"),YF=Symbol("readEntry"),rKt=Symbol("nextEntry"),F8r=Symbol("processEntry"),RP=Symbol("extendedHeader"),WDe=Symbol("globalExtendedHeader"),ZU=Symbol("meta"),Q8r=Symbol("emitMeta"),Zu=Symbol("buffer"),KF=Symbol("queue"),VU=Symbol("ended"),iKt=Symbol("emittedEnd"),sY=Symbol("emit"),QA=Symbol("unzip"),cit=Symbol("consumeChunk"),lit=Symbol("consumeChunkSub"),oKt=Symbol("consumeBody"),O8r=Symbol("consumeMeta"),U8r=Symbol("consumeHeader"),ZDe=Symbol("consuming"),aKt=Symbol("bufferConcat"),uit=Symbol("maybeEnd"),Fme=Symbol("writing"),YU=Symbol("aborted"),dit=Symbol("onDone"),cY=Symbol("sawValidEntry"),pit=Symbol("sawNullBlock"),mit=Symbol("sawEOF"),q8r=Symbol("closeStream"),Ewa=()=>!0,c2e=class extends d5r.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[KF]=[];[Zu];[YF];[aY];[Ok]="begin";[ZU]="";[RP];[WDe];[VU]=!1;[QA];[YU]=!1;[cY];[pit]=!1;[mit]=!1;[Fme]=!1;[ZDe]=!1;[iKt]=!1;constructor(t={}){super(),this.file=t.file||"",this.on(dit,()=>{(this[Ok]==="begin"||this[cY]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),t.ondone?this.on(dit,t.ondone):this.on(dit,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!t.strict,this.maxMetaEntrySize=t.maxMetaEntrySize||wwa,this.filter=typeof t.filter=="function"?t.filter:Ewa;let e=t.file&&(t.file.endsWith(".tar.br")||t.file.endsWith(".tbr"));this.brotli=!(t.gzip||t.zstd)&&t.brotli!==void 0?t.brotli:e?void 0:!1;let n=t.file&&(t.file.endsWith(".tar.zst")||t.file.endsWith(".tzst"));this.zstd=!(t.gzip||t.brotli)&&t.zstd!==void 0?t.zstd:n?!0:void 0,this.on("end",()=>this[q8r]()),typeof t.onwarn=="function"&&this.on("warn",t.onwarn),typeof t.onReadEntry=="function"&&this.on("entry",t.onReadEntry)}warn(t,e,n={}){Nit(this,t,e,n)}[U8r](t,e){this[cY]===void 0&&(this[cY]=!1);let n;try{n=new fY(t,e,this[RP],this[WDe])}catch(r){return this.warn("TAR_ENTRY_INVALID",r)}if(n.nullBlock)this[pit]?(this[mit]=!0,this[Ok]==="begin"&&(this[Ok]="header"),this[sY]("eof")):(this[pit]=!0,this[sY]("nullBlock"));else if(this[pit]=!1,!n.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:n});else if(!n.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:n});else{let r=n.type;if(/^(Symbolic)?Link$/.test(r)&&!n.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:n});else if(!/^(Symbolic)?Link$/.test(r)&&!/^(Global)?ExtendedHeader$/.test(r)&&n.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:n});else{let o=this[aY]=new v5r(n,this[RP],this[WDe]);if(!this[cY])if(o.remain){let a=()=>{o.invalid||(this[cY]=!0)};o.on("end",a)}else this[cY]=!0;o.meta?o.size>this.maxMetaEntrySize?(o.ignore=!0,this[sY]("ignoredEntry",o),this[Ok]="ignore",o.resume()):o.size>0&&(this[ZU]="",o.on("data",a=>this[ZU]+=a),this[Ok]="meta"):(this[RP]=void 0,o.ignore=o.ignore||!this.filter(o.path,o),o.ignore?(this[sY]("ignoredEntry",o),this[Ok]=o.remain?"ignore":"header",o.resume()):(o.remain?this[Ok]="body":(this[Ok]="header",o.end()),this[YF]?this[KF].push(o):(this[KF].push(o),this[rKt]())))}}}[q8r](){queueMicrotask(()=>this.emit("close"))}[F8r](t){let e=!0;if(!t)this[YF]=void 0,e=!1;else if(Array.isArray(t)){let[n,...r]=t;this.emit(n,...r)}else this[YF]=t,this.emit("entry",t),t.emittedEnd||(t.on("end",()=>this[rKt]()),e=!1);return e}[rKt](){do;while(this[F8r](this[KF].shift()));if(!this[KF].length){let t=this[YF];!t||t.flowing||t.size===t.remain?this[Fme]||this.emit("drain"):t.once("drain",()=>this.emit("drain"))}}[oKt](t,e){let n=this[aY];if(!n)throw new Error("attempt to consume body without entry??");let r=n.blockRemain??0,o=r>=t.length&&e===0?t:t.subarray(e,e+r);return n.write(o),n.blockRemain||(this[Ok]="header",this[aY]=void 0,n.end()),o.length}[O8r](t,e){let n=this[aY],r=this[oKt](t,e);return!this[aY]&&n&&this[Q8r](n),r}[sY](t,e,n){!this[KF].length&&!this[YF]?this.emit(t,e,n):this[KF].push([t,e,n])}[Q8r](t){switch(this[sY]("meta",this[ZU]),t.type){case"ExtendedHeader":case"OldExtendedHeader":this[RP]=kit.parse(this[ZU],this[RP],!1);break;case"GlobalExtendedHeader":this[WDe]=kit.parse(this[ZU],this[WDe],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let e=this[RP]??Object.create(null);this[RP]=e,e.path=this[ZU].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let e=this[RP]||Object.create(null);this[RP]=e,e.linkpath=this[ZU].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+t.type)}}abort(t){this[YU]=!0,this.emit("abort",t),this.warn("TAR_ABORT",t,{recoverable:!1})}write(t,e,n){if(typeof e=="function"&&(n=e,e=void 0),typeof t=="string"&&(t=Buffer.from(t,typeof e=="string"?e:"utf8")),this[YU])return n?.(),!1;if((this[QA]===void 0||this.brotli===void 0&&this[QA]===!1)&&t){if(this[Zu]&&(t=Buffer.concat([this[Zu],t]),this[Zu]=void 0),t.lengththis[cit](l)),this[QA].on("error",l=>this.abort(l)),this[QA].on("end",()=>{this[VU]=!0,this[cit]()}),this[Fme]=!0;let c=!!this[QA][s?"end":"write"](t);return this[Fme]=!1,n?.(),c}}this[Fme]=!0,this[QA]?this[QA].write(t):this[cit](t),this[Fme]=!1;let r=this[KF].length?!1:this[YF]?this[YF].flowing:!0;return!r&&!this[KF].length&&this[YF]?.once("drain",()=>this.emit("drain")),n?.(),r}[aKt](t){t&&!this[YU]&&(this[Zu]=this[Zu]?Buffer.concat([this[Zu],t]):t)}[uit](){if(this[VU]&&!this[iKt]&&!this[YU]&&!this[ZDe]){this[iKt]=!0;let t=this[aY];if(t&&t.blockRemain){let e=this[Zu]?this[Zu].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${t.blockRemain} more bytes, only ${e} available)`,{entry:t}),this[Zu]&&t.write(this[Zu]),t.end()}this[sY](dit)}}[cit](t){if(this[ZDe]&&t)this[aKt](t);else if(!t&&!this[Zu])this[uit]();else if(t){if(this[ZDe]=!0,this[Zu]){this[aKt](t);let e=this[Zu];this[Zu]=void 0,this[lit](e)}else this[lit](t);for(;this[Zu]&&this[Zu]?.length>=512&&!this[YU]&&!this[mit];){let e=this[Zu];this[Zu]=void 0,this[lit](e)}this[ZDe]=!1}(!this[Zu]||this[VU])&&this[uit]()}[lit](t){let e=0,n=t.length;for(;e+512<=n&&!this[YU]&&!this[mit];)switch(this[Ok]){case"begin":case"header":this[U8r](t,e),e+=512;break;case"ignore":case"body":e+=this[oKt](t,e);break;case"meta":e+=this[O8r](t,e);break;default:throw new Error("invalid state: "+this[Ok])}e{let e=t.length-1,n=-1;for(;e>-1&&t.charAt(e)==="/";)n=e,e--;return n===-1?t:t.slice(0,n)},Iwa=t=>{let e=t.onReadEntry;t.onReadEntry=e?n=>{e(n),n.resume()}:n=>n.resume()},_5r=(t,e)=>{let n=new Map(e.map(a=>[n2e(a),!0])),r=t.filter,o=(a,s="")=>{let c=s||(0,Dit.parse)(a).root||".",l;if(a===c)l=!1;else{let u=n.get(a);u!==void 0?l=u:l=o((0,Dit.dirname)(a),c)}return n.set(a,l),l};t.filter=r?(a,s)=>r(a,s)&&o(n2e(a)):a=>o(n2e(a))},kwa=t=>{let e=new c2e(t),n=t.file,r;try{r=pY.default.openSync(n,"r");let o=pY.default.fstatSync(r),a=t.maxReadSize||16*1024*1024;if(o.size{let n=new c2e(t),r=t.maxReadSize||16*1024*1024,o=t.file;return new Promise((a,s)=>{n.on("error",s),n.on("end",a),pY.default.stat(o,(c,l)=>{if(c)s(c);else{let u=new OKt(o,{readSize:r,size:l.size});u.on("error",s),u.pipe(n)}})})},Lit=d2e(kwa,Swa,t=>new c2e(t),t=>new c2e(t),(t,e)=>{e?.length&&_5r(t,e),t.noResume||Iwa(t)}),C5r=(t,e,n)=>(t&=4095,n&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t),{isAbsolute:Twa,parse:$8r}=w5r.win32,jKt=t=>{let e="",n=$8r(t);for(;Twa(t)||n.root;){let r=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":n.root;t=t.slice(r.length),e+=r,n=$8r(t)}return[e,t]},Mit=["|","<",">","?",":"],GKt=Mit.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),Bwa=new Map(Mit.map((t,e)=>[t,GKt[e]])),Rwa=new Map(GKt.map((t,e)=>[t,Mit[e]])),z8r=t=>Mit.reduce((e,n)=>e.split(n).join(Bwa.get(n)),t),Dwa=t=>GKt.reduce((e,n)=>e.split(n).join(Rwa.get(n)),t),x5r=(t,e)=>e?(t=Va(t).replace(/^\.(\/|$)/,""),n2e(e)+"/"+t):Va(t),Pwa=16*1024*1024,j8r=Symbol("process"),G8r=Symbol("file"),H8r=Symbol("directory"),_Kt=Symbol("symlink"),W8r=Symbol("hardlink"),VDe=Symbol("header"),bit=Symbol("read"),CKt=Symbol("lstat"),yit=Symbol("onlstat"),wKt=Symbol("onread"),xKt=Symbol("onreadlink"),EKt=Symbol("openfile"),IKt=Symbol("onopenfile"),eq=Symbol("close"),Sit=Symbol("mode"),kKt=Symbol("awaitDrain"),sKt=Symbol("ondrain"),DP=Symbol("prefix"),E5r=class extends gY{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#e=!1;constructor(t,e={}){let n=qKt(e);super(),this.path=Va(t),this.portable=!!n.portable,this.maxReadSize=n.maxReadSize||Pwa,this.linkCache=n.linkCache||new Map,this.statCache=n.statCache||new Map,this.preservePaths=!!n.preservePaths,this.cwd=Va(n.cwd||process.cwd()),this.strict=!!n.strict,this.noPax=!!n.noPax,this.noMtime=!!n.noMtime,this.mtime=n.mtime,this.prefix=n.prefix?Va(n.prefix):void 0,this.onWriteEntry=n.onWriteEntry,typeof n.onwarn=="function"&&this.on("warn",n.onwarn);let r=!1;if(!this.preservePaths){let[a,s]=jKt(this.path);a&&typeof s=="string"&&(this.path=s,r=a)}this.win32=!!n.win32||process.platform==="win32",this.win32&&(this.path=Dwa(this.path.replace(/\\/g,"/")),t=t.replace(/\\/g,"/")),this.absolute=Va(n.absolute||vKt.default.resolve(this.cwd,t)),this.path===""&&(this.path="./"),r&&this.warn("TAR_ENTRY_INFO",`stripping ${r} from absolute path`,{entry:this,path:r+this.path});let o=this.statCache.get(this.absolute);o?this[yit](o):this[CKt]()}warn(t,e,n={}){return Nit(this,t,e,n)}emit(t,...e){return t==="error"&&(this.#e=!0),super.emit(t,...e)}[CKt](){JT.default.lstat(this.absolute,(t,e)=>{if(t)return this.emit("error",t);this[yit](e)})}[yit](t){this.statCache.set(this.absolute,t),this.stat=t,t.isFile()||(t.size=0),this.type=Mwa(t),this.emit("stat",t),this[j8r]()}[j8r](){switch(this.type){case"File":return this[G8r]();case"Directory":return this[H8r]();case"SymbolicLink":return this[_Kt]();default:return this.end()}}[Sit](t){return C5r(t,this.type==="Directory",this.portable)}[DP](t){return x5r(t,this.prefix)}[VDe](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new fY({path:this[DP](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[DP](this.linkpath):this.linkpath,mode:this[Sit](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new kit({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[DP](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[DP](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let t=this.header?.block;if(!t)throw new Error("failed to encode header");super.write(t)}[H8r](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[VDe](),this.end()}[_Kt](){JT.default.readlink(this.absolute,(t,e)=>{if(t)return this.emit("error",t);this[xKt](e)})}[xKt](t){this.linkpath=Va(t),this[VDe](),this.end()}[W8r](t){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=Va(vKt.default.relative(this.cwd,t)),this.stat.size=0,this[VDe](),this.end()}[G8r](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let t=`${this.stat.dev}:${this.stat.ino}`,e=this.linkCache.get(t);if(e?.indexOf(this.cwd)===0)return this[W8r](e);this.linkCache.set(t,this.absolute)}if(this[VDe](),this.stat.size===0)return this.end();this[EKt]()}[EKt](){JT.default.open(this.absolute,"r",(t,e)=>{if(t)return this.emit("error",t);this[IKt](e)})}[IKt](t){if(this.fd=t,this.#e)return this[eq]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let e=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(e),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[bit]()}[bit](){let{fd:t,buf:e,offset:n,length:r,pos:o}=this;if(t===void 0||e===void 0)throw new Error("cannot read file without first opening");JT.default.read(t,e,n,r,o,(a,s)=>{if(a)return this[eq](()=>this.emit("error",a));this[wKt](s)})}[eq](t=()=>{}){this.fd!==void 0&&JT.default.close(this.fd,t)}[wKt](t){if(t<=0&&this.remain>0){let n=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[eq](()=>this.emit("error",n))}if(t>this.remain){let n=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[eq](()=>this.emit("error",n))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(t===this.remain)for(let n=t;nthis[sKt]())}[kKt](t){this.once("drain",t)}write(t,e,n){if(typeof e=="function"&&(n=e,e=void 0),typeof t=="string"&&(t=Buffer.from(t,typeof e=="string"?e:"utf8")),this.blockRemaint?this.emit("error",t):this.end());if(!this.buf)throw new Error("buffer lost somehow in ONDRAIN");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[bit]()}},Nwa=class extends E5r{sync=!0;[CKt](){this[yit](JT.default.lstatSync(this.absolute))}[_Kt](){this[xKt](JT.default.readlinkSync(this.absolute))}[EKt](){this[IKt](JT.default.openSync(this.absolute,"r"))}[bit](){let t=!0;try{let{fd:e,buf:n,offset:r,length:o,pos:a}=this;if(e===void 0||n===void 0)throw new Error("fd and buf must be set in READ method");let s=JT.default.readSync(e,n,r,o,a);this[wKt](s),t=!1}finally{if(t)try{this[eq](()=>{})}catch{}}}[kKt](t){t()}[eq](t=()=>{}){this.fd!==void 0&&JT.default.closeSync(this.fd),t()}},Lwa=class extends gY{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(t,e,n={}){return Nit(this,t,e,n)}constructor(t,e={}){let n=qKt(e);super(),this.preservePaths=!!n.preservePaths,this.portable=!!n.portable,this.strict=!!n.strict,this.noPax=!!n.noPax,this.noMtime=!!n.noMtime,this.onWriteEntry=n.onWriteEntry,this.readEntry=t;let{type:r}=t;if(r==="Unsupported")throw new Error("writing entry that should be ignored");this.type=r,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=n.prefix,this.path=Va(t.path),this.mode=t.mode!==void 0?this[Sit](t.mode):void 0,this.uid=this.portable?void 0:t.uid,this.gid=this.portable?void 0:t.gid,this.uname=this.portable?void 0:t.uname,this.gname=this.portable?void 0:t.gname,this.size=t.size,this.mtime=this.noMtime?void 0:n.mtime||t.mtime,this.atime=this.portable?void 0:t.atime,this.ctime=this.portable?void 0:t.ctime,this.linkpath=t.linkpath!==void 0?Va(t.linkpath):void 0,typeof n.onwarn=="function"&&this.on("warn",n.onwarn);let o=!1;if(!this.preservePaths){let[s,c]=jKt(this.path);s&&typeof c=="string"&&(this.path=c,o=s)}this.remain=t.size,this.blockRemain=t.startBlockSize,this.onWriteEntry?.(this),this.header=new fY({path:this[DP](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[DP](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new kit({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[DP](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[DP](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let a=this.header?.block;if(!a)throw new Error("failed to encode header");super.write(a),t.pipe(this)}[DP](t){return x5r(t,this.prefix)}[Sit](t){return C5r(t,this.type==="Directory",this.portable)}write(t,e,n){typeof e=="function"&&(n=e,e=void 0),typeof t=="string"&&(t=Buffer.from(t,typeof e=="string"?e:"utf8"));let r=t.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(t,n)}end(t,e,n){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof t=="function"&&(n=t,e=void 0,t=void 0),typeof e=="function"&&(n=e,e=void 0),typeof t=="string"&&(t=Buffer.from(t,e??"utf8")),n&&this.once("finish",n),t?super.end(t,n):super.end(n),this}},Mwa=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported",Fwa=class zme{tail;head;length=0;static create(e=[]){return new zme(e)}constructor(e=[]){for(let n of e)this.push(n)}*[Symbol.iterator](){for(let e=this.head;e;e=e.next)yield e.value}removeNode(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");let n=e.next,r=e.prev;return n&&(n.prev=r),r&&(r.next=n),e===this.head&&(this.head=n),e===this.tail&&(this.tail=r),this.length--,e.next=void 0,e.prev=void 0,e.list=void 0,n}unshiftNode(e){if(e===this.head)return;e.list&&e.list.removeNode(e);let n=this.head;e.list=this,e.next=n,n&&(n.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}pushNode(e){if(e===this.tail)return;e.list&&e.list.removeNode(e);let n=this.tail;e.list=this,e.prev=n,n&&(n.next=e),this.tail=e,this.head||(this.head=e),this.length++}push(...e){for(let n=0,r=e.length;n1)r=n;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o;a++)r=e(r,o.value,a),o=o.next;return r}reduceReverse(e,n){let r,o=this.tail;if(arguments.length>1)r=n;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(let a=this.length-1;o;a--)r=e(r,o.value,a),o=o.prev;return r}toArray(){let e=new Array(this.length);for(let n=0,r=this.head;r;n++)e[n]=r.value,r=r.next;return e}toArrayReverse(){let e=new Array(this.length);for(let n=0,r=this.tail;r;n++)e[n]=r.value,r=r.prev;return e}slice(e=0,n=this.length){n<0&&(n+=this.length),e<0&&(e+=this.length);let r=new zme;if(nthis.length&&(n=this.length);let o=this.head,a=0;for(a=0;o&&athis.length&&(n=this.length);let o=this.length,a=this.tail;for(;a&&o>n;o--)a=a.prev;for(;a&&o>e;o--,a=a.prev)r.push(a.value);return r}splice(e,n=0,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);let o=this.head;for(let s=0;o&&s1)throw new TypeError("gzip, brotli, zstd are mutually exclusive");if(t.gzip&&(typeof t.gzip!="object"&&(t.gzip={}),this.portable&&(t.gzip.portable=!0),this.zip=new YCa(t.gzip)),t.brotli&&(typeof t.brotli!="object"&&(t.brotli={}),this.zip=new JCa(t.brotli)),t.zstd&&(typeof t.zstd!="object"&&(t.zstd={}),this.zip=new ewa(t.zstd)),!this.zip)throw new Error("impossible");let e=this.zip;e.on("data",n=>super.write(n)),e.on("end",()=>super.end()),e.on("drain",()=>this[dKt]()),this.on("resume",()=>e.resume())}else this.on("drain",this[dKt]);this.noDirRecurse=!!t.noDirRecurse,this.follow=!!t.follow,this.noMtime=!!t.noMtime,t.mtime&&(this.mtime=t.mtime),this.filter=typeof t.filter=="function"?t.filter:()=>!0,this[YT]=new Fwa,this[KT]=0,this.jobs=Number(t.jobs)||4,this[KDe]=!1,this[YDe]=!1}[I5r](t){return super.write(t)}add(t){return this.write(t),this}end(t,e,n){return typeof t=="function"&&(n=t,t=void 0),typeof e=="function"&&(n=e,e=void 0),t&&this.add(t),this[YDe]=!0,this[uY](),n&&n(),this}write(t){if(this[YDe])throw new Error("write after end");return t instanceof v5r?this[Y8r](t):this[_it](t),this.flowing}[Y8r](t){let e=Va(SKt.default.resolve(this.cwd,t.path));if(!this.filter(t.path,t))t.resume();else{let n=new Z8r(t.path,e);n.entry=new Lwa(t,this[uKt](n)),n.entry.on("end",()=>this[lKt](n)),this[KT]+=1,this[YT].push(n)}this[uY]()}[_it](t){let e=Va(SKt.default.resolve(this.cwd,t));this[YT].push(new Z8r(t,e)),this[uY]()}[TKt](t){t.pending=!0,this[KT]+=1;let e=this.follow?"stat":"lstat";l2e.default[e](t.absolute,(n,r)=>{t.pending=!1,this[KT]-=1,n?this.emit("error",n):this[vit](t,r)})}[vit](t,e){this.statCache.set(t.absolute,e),t.stat=e,this.filter(t.path,e)?e.isFile()&&e.nlink>1&&t===this[lY]&&!this.linkCache.get(`${e.dev}:${e.ino}`)&&!this.sync&&this[cKt](t):t.ignore=!0,this[uY]()}[BKt](t){t.pending=!0,this[KT]+=1,l2e.default.readdir(t.absolute,(e,n)=>{if(t.pending=!1,this[KT]-=1,e)return this.emit("error",e);this[Cit](t,n)})}[Cit](t,e){this.readdirCache.set(t.absolute,e),t.readdir=e,this[uY]()}[uY](){if(!this[KDe]){this[KDe]=!0;for(let t=this[YT].head;t&&this[KT]this.warn(e,n,r),noPax:this.noPax,cwd:this.cwd,absolute:t.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[K8r](t){this[KT]+=1;try{return new this[xit](t.path,this[uKt](t)).on("end",()=>this[lKt](t)).on("error",e=>this.emit("error",e))}catch(e){this.emit("error",e)}}[dKt](){this[lY]&&this[lY].entry&&this[lY].entry.resume()}[wit](t){t.piped=!0,t.readdir&&t.readdir.forEach(r=>{let o=t.path,a=o==="./"?"":o.replace(/\/*$/,"/");this[_it](a+r)});let e=t.entry,n=this.zip;if(!e)throw new Error("cannot pipe without source");n?e.on("data",r=>{n.write(r)||e.pause()}):e.on("data",r=>{super.write(r)||e.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(t,e,n={}){Nit(this,t,e,n)}},WKt=class extends Fit{sync=!0;constructor(t){super(t),this[xit]=Nwa}pause(){}resume(){}[TKt](t){let e=this.follow?"statSync":"lstatSync";this[vit](t,l2e.default[e](t.absolute))}[BKt](t){this[Cit](t,l2e.default.readdirSync(t.absolute))}[wit](t){let e=t.entry,n=this.zip;if(t.readdir&&t.readdir.forEach(r=>{let o=t.path,a=o==="./"?"":o.replace(/\/*$/,"/");this[_it](a+r)}),!e)throw new Error("Cannot pipe without source");n?e.on("data",r=>{n.write(r)}):e.on("data",r=>{super[I5r](r)})}},qwa=(t,e)=>{let n=new WKt(t),r=new u5r(t.file,{mode:t.mode||438});n.pipe(r),k5r(n,e)},$wa=(t,e)=>{let n=new Fit(t),r=new Rit(t.file,{mode:t.mode||438});n.pipe(r);let o=new Promise((a,s)=>{r.on("error",s),r.on("close",a),n.on("error",s)});return S5r(n,e),o},k5r=(t,e)=>{e.forEach(n=>{n.charAt(0)==="@"?Lit({file:UKt.default.resolve(t.cwd,n.slice(1)),sync:!0,noResume:!0,onReadEntry:r=>t.add(r)}):t.add(n)}),t.end()},S5r=async(t,e)=>{for(let n=0;n{t.add(o)}}):t.add(r)}t.end()},zwa=(t,e)=>{let n=new WKt(t);return k5r(n,e),n},jwa=(t,e)=>{let n=new Fit(t);return S5r(n,e),n},T5r=d2e(qwa,$wa,zwa,jwa,(t,e)=>{if(!e?.length)throw new TypeError("no paths specified to add to archive")}),Gwa=process.env.__FAKE_PLATFORM__||process.platform,Hwa=Gwa==="win32",{O_CREAT:Wwa,O_TRUNC:Zwa,O_WRONLY:Vwa}=YKt.default.constants,R5r=Number(process.env.__FAKE_FS_O_FILENAME__)||YKt.default.constants.UV_FS_O_FILEMAP||0,Ywa=Hwa&&!!R5r,Kwa=512*1024,Jwa=R5r|Zwa|Wwa|Vwa,D5r=Ywa?t=>t"w",RKt=(t,e,n)=>{try{return p2e.default.lchownSync(t,e,n)}catch(r){if(r?.code!=="ENOENT")throw r}},Tit=(t,e,n,r)=>{p2e.default.lchown(t,e,n,o=>{r(o&&o?.code!=="ENOENT"?o:null)})},Xwa=(t,e,n,r,o)=>{if(e.isDirectory())P5r(Gme.default.resolve(t,e.name),n,r,a=>{if(a)return o(a);let s=Gme.default.resolve(t,e.name);Tit(s,n,r,o)});else{let a=Gme.default.resolve(t,e.name);Tit(a,n,r,o)}},P5r=(t,e,n,r)=>{p2e.default.readdir(t,{withFileTypes:!0},(o,a)=>{if(o){if(o.code==="ENOENT")return r();if(o.code!=="ENOTDIR"&&o.code!=="ENOTSUP")return r(o)}if(o||!a.length)return Tit(t,e,n,r);let s=a.length,c=null,l=u=>{if(!c){if(u)return r(c=u);if(--s===0)return Tit(t,e,n,r)}};for(let u of a)Xwa(t,u,e,n,l)})},exa=(t,e,n,r)=>{e.isDirectory()&&N5r(Gme.default.resolve(t,e.name),n,r),RKt(Gme.default.resolve(t,e.name),n,r)},N5r=(t,e,n)=>{let r;try{r=p2e.default.readdirSync(t,{withFileTypes:!0})}catch(o){let a=o;if(a?.code==="ENOENT")return;if(a?.code==="ENOTDIR"||a?.code==="ENOTSUP")return RKt(t,e,n);throw a}for(let o of r)exa(t,o,e,n);return RKt(t,e,n)},M5r=class extends Error{path;code;syscall="chdir";constructor(t,e){super(`${e}: Cannot cd into '${t}'`),this.path=t,this.code=e}get name(){return"CwdError"}},Qit=class extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(t,e){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"),this.symlink=t,this.path=e}get name(){return"SymlinkError"}},txa=(t,e)=>{SC.default.stat(t,(n,r)=>{(n||!r.isDirectory())&&(n=new M5r(t,n?.code||"ENOTDIR")),e(n)})},nxa=(t,e,n)=>{t=Va(t);let r=e.umask??18,o=e.mode|448,a=(o&r)!==0,s=e.uid,c=e.gid,l=typeof s=="number"&&typeof c=="number"&&(s!==e.processUid||c!==e.processGid),u=e.preserve,d=e.unlink,p=Va(e.cwd),m=(f,g)=>{f?n(f):g&&l?P5r(g,s,c,h=>m(h)):a?SC.default.chmod(t,o,n):n()};if(t===p)return txa(t,m);if(u)return L5r.default.mkdir(t,{mode:o,recursive:!0}).then(f=>m(null,f??void 0),m);let A=Va(u2e.default.relative(p,t)).split("/");DKt(p,A,o,d,p,void 0,m)},DKt=(t,e,n,r,o,a,s)=>{if(!e.length)return s(null,a);let c=e.shift(),l=Va(u2e.default.resolve(t+"/"+c));SC.default.mkdir(l,n,F5r(l,e,n,r,o,a,s))},F5r=(t,e,n,r,o,a,s)=>c=>{c?SC.default.lstat(t,(l,u)=>{if(l)l.path=l.path&&Va(l.path),s(l);else if(u.isDirectory())DKt(t,e,n,r,o,a,s);else if(r)SC.default.unlink(t,d=>{if(d)return s(d);SC.default.mkdir(t,n,F5r(t,e,n,r,o,a,s))});else{if(u.isSymbolicLink())return s(new Qit(t,t+"/"+e.join("/")));s(c)}}):(a=a||t,DKt(t,e,n,r,o,a,s))},rxa=t=>{let e=!1,n;try{e=SC.default.statSync(t).isDirectory()}catch(r){n=r?.code}finally{if(!e)throw new M5r(t,n??"ENOTDIR")}},ixa=(t,e)=>{t=Va(t);let n=e.umask??18,r=e.mode|448,o=(r&n)!==0,a=e.uid,s=e.gid,c=typeof a=="number"&&typeof s=="number"&&(a!==e.processUid||s!==e.processGid),l=e.preserve,u=e.unlink,d=Va(e.cwd),p=f=>{f&&c&&N5r(f,a,s),o&&SC.default.chmodSync(t,r)};if(t===d)return rxa(d),p();if(l)return p(SC.default.mkdirSync(t,{mode:r,recursive:!0})??void 0);let m=Va(u2e.default.relative(d,t)).split("/"),A;for(let f=m.shift(),g=d;f&&(g+="/"+f);f=m.shift()){g=Va(u2e.default.resolve(g));try{SC.default.mkdirSync(g,r),A=A||g}catch{let h=SC.default.lstatSync(g);if(h.isDirectory())continue;if(u){SC.default.unlinkSync(g),SC.default.mkdirSync(g,r),A=A||g;continue}else if(h.isSymbolicLink())return new Qit(g,g+"/"+m.join("/"))}}return p(A)},pKt=Object.create(null),J8r=1e4,Qme=new Set,oxa=t=>{Qme.has(t)?Qme.delete(t):pKt[t]=t.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"),Qme.add(t);let e=pKt[t],n=Qme.size-J8r;if(n>J8r/10){for(let r of Qme)if(Qme.delete(r),delete pKt[r],--n<=0)break}return e},axa=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,sxa=axa==="win32",cxa=t=>t.split("/").slice(0,-1).reduce((e,n)=>{let r=e[e.length-1];return r!==void 0&&(n=(0,KKt.join)(r,n)),e.push(n||"/"),e},[]),lxa=class{#e=new Map;#t=new Map;#r=new Set;reserve(t,e){t=sxa?["win32 parallelization disabled"]:t.map(r=>n2e((0,KKt.join)(oxa(r))));let n=new Set(t.map(r=>cxa(r)).reduce((r,o)=>r.concat(o)));this.#t.set(e,{dirs:n,paths:t});for(let r of t){let o=this.#e.get(r);o?o.push(e):this.#e.set(r,[e])}for(let r of n){let o=this.#e.get(r);if(!o)this.#e.set(r,[new Set([e])]);else{let a=o[o.length-1];a instanceof Set?a.add(e):o.push(new Set([e]))}}return this.#o(e)}#n(t){let e=this.#t.get(t);if(!e)throw new Error("function does not have any path reservations");return{paths:e.paths.map(n=>this.#e.get(n)),dirs:[...e.dirs].map(n=>this.#e.get(n))}}check(t){let{paths:e,dirs:n}=this.#n(t);return e.every(r=>r&&r[0]===t)&&n.every(r=>r&&r[0]instanceof Set&&r[0].has(t))}#o(t){return this.#r.has(t)||!this.check(t)?!1:(this.#r.add(t),t(()=>this.#i(t)),!0)}#i(t){if(!this.#r.has(t))return!1;let e=this.#t.get(t);if(!e)throw new Error("invalid reservation");let{paths:n,dirs:r}=e,o=new Set;for(let a of n){let s=this.#e.get(a);if(!s||s?.[0]!==t)continue;let c=s[1];if(!c){this.#e.delete(a);continue}if(s.shift(),typeof c=="function")o.add(c);else for(let l of c)o.add(l)}for(let a of r){let s=this.#e.get(a),c=s?.[0];if(!(!s||!(c instanceof Set)))if(c.size===1&&s.length===1){this.#e.delete(a);continue}else if(c.size===1){s.shift();let l=s[0];typeof l=="function"&&o.add(l)}else c.delete(t)}return this.#r.delete(t),o.forEach(a=>this.#o(a)),!0}},uxa=()=>process.umask(),X8r=Symbol("onEntry"),PKt=Symbol("checkFs"),e5r=Symbol("checkFs2"),NKt=Symbol("isReusable"),Uk=Symbol("makeFs"),LKt=Symbol("file"),MKt=Symbol("directory"),Eit=Symbol("link"),t5r=Symbol("symlink"),n5r=Symbol("hardlink"),e2e=Symbol("ensureNoSymlink"),r5r=Symbol("unsupported"),i5r=Symbol("checkPath"),mKt=Symbol("stripAbsolutePath"),nq=Symbol("mkdir"),Qg=Symbol("onError"),Ait=Symbol("pending"),o5r=Symbol("pend"),Ome=Symbol("unpend"),AKt=Symbol("ended"),fKt=Symbol("maybeClose"),FKt=Symbol("skip"),r2e=Symbol("doChown"),i2e=Symbol("uid"),o2e=Symbol("gid"),a2e=Symbol("checkedCwd"),dxa=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,s2e=dxa==="win32",pxa=1024,mxa=(t,e)=>{if(!s2e)return Js.default.unlink(t,e);let n=t+".DELETE."+(0,VKt.randomBytes)(16).toString("hex");Js.default.rename(t,n,r=>{if(r)return e(r);Js.default.unlink(n,e)})},Axa=t=>{if(!s2e)return Js.default.unlinkSync(t);let e=t+".DELETE."+(0,VKt.randomBytes)(16).toString("hex");Js.default.renameSync(t,e),Js.default.unlinkSync(e)},a5r=(t,e,n)=>t!==void 0&&t===t>>>0?t:e!==void 0&&e===e>>>0?e:n,JKt=class extends c2e{[AKt]=!1;[a2e]=!1;[Ait]=0;reservations=new lxa;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(t={}){if(t.ondone=()=>{this[AKt]=!0,this[fKt]()},super(t),this.transform=t.transform,this.chmod=!!t.chmod,typeof t.uid=="number"||typeof t.gid=="number"){if(typeof t.uid!="number"||typeof t.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(t.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=t.uid,this.gid=t.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;t.preserveOwner===void 0&&typeof t.uid!="number"?this.preserveOwner=!!(process.getuid&&process.getuid()===0):this.preserveOwner=!!t.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof t.maxDepth=="number"?t.maxDepth:pxa,this.forceChown=t.forceChown===!0,this.win32=!!t.win32||s2e,this.newer=!!t.newer,this.keep=!!t.keep,this.noMtime=!!t.noMtime,this.preservePaths=!!t.preservePaths,this.unlink=!!t.unlink,this.cwd=Va(OA.default.resolve(t.cwd||process.cwd())),this.strip=Number(t.strip)||0,this.processUmask=this.chmod?typeof t.processUmask=="number"?t.processUmask:uxa():0,this.umask=typeof t.umask=="number"?t.umask:this.processUmask,this.dmode=t.dmode||511&~this.umask,this.fmode=t.fmode||438&~this.umask,this.on("entry",e=>this[X8r](e))}warn(t,e,n={}){return(t==="TAR_BAD_ARCHIVE"||t==="TAR_ABORT")&&(n.recoverable=!1),super.warn(t,e,n)}[fKt](){this[AKt]&&this[Ait]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[mKt](t,e){let n=t[e],{type:r}=t;if(!n||this.preservePaths)return!0;let[o,a]=jKt(n),s=a.replace(/\\/g,"/").split("/");if(s.includes("..")||s2e&&/^[a-z]:\.\.$/i.test(s[0]??"")){if(e==="path"||r==="Link")return this.warn("TAR_ENTRY_ERROR",`${e} contains '..'`,{entry:t,[e]:n}),!1;{let c=OA.default.posix.dirname(t.path),l=OA.default.posix.normalize(OA.default.posix.join(c,s.join("/")));if(l.startsWith("../")||l==="..")return this.warn("TAR_ENTRY_ERROR",`${e} escapes extraction directory`,{entry:t,[e]:n}),!1}}return o&&(t[e]=String(a),this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute ${e}`,{entry:t,[e]:n})),!0}[i5r](t){let e=Va(t.path),n=e.split("/");if(this.strip){if(n.length=this.strip)t.linkpath=r.slice(this.strip).join("/");else return!1}n.splice(0,this.strip),t.path=n.join("/")}if(isFinite(this.maxDepth)&&n.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:t,path:e,depth:n.length,maxDepth:this.maxDepth}),!1;if(!this[mKt](t,"path")||!this[mKt](t,"linkpath"))return!1;if(OA.default.isAbsolute(t.path)?t.absolute=Va(OA.default.resolve(t.path)):t.absolute=Va(OA.default.resolve(this.cwd,t.path)),!this.preservePaths&&typeof t.absolute=="string"&&t.absolute.indexOf(this.cwd+"/")!==0&&t.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:t,path:Va(t.path),resolvedPath:t.absolute,cwd:this.cwd}),!1;if(t.absolute===this.cwd&&t.type!=="Directory"&&t.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=OA.default.win32.parse(String(t.absolute));t.absolute=r+z8r(String(t.absolute).slice(r.length));let{root:o}=OA.default.win32.parse(t.path);t.path=o+z8r(t.path.slice(o.length))}return!0}[X8r](t){if(!this[i5r](t))return t.resume();switch(B5r.default.equal(typeof t.absolute,"string"),t.type){case"Directory":case"GNUDumpDir":t.mode&&(t.mode=t.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[PKt](t);default:return this[r5r](t)}}[Qg](t,e){t.name==="CwdError"?this.emit("error",t):(this.warn("TAR_ENTRY_ERROR",t,{entry:e}),this[Ome](),e.resume())}[nq](t,e,n){nxa(Va(t),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:e},n)}[r2e](t){return this.forceChown||this.preserveOwner&&(typeof t.uid=="number"&&t.uid!==this.processUid||typeof t.gid=="number"&&t.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[i2e](t){return a5r(this.uid,t.uid,this.processUid)}[o2e](t){return a5r(this.gid,t.gid,this.processGid)}[LKt](t,e){let n=typeof t.mode=="number"?t.mode&4095:this.fmode,r=new Rit(String(t.absolute),{flags:D5r(t.size),mode:n,autoClose:!1});r.on("error",c=>{r.fd&&Js.default.close(r.fd,()=>{}),r.write=()=>!0,this[Qg](c,t),e()});let o=1,a=c=>{if(c){r.fd&&Js.default.close(r.fd,()=>{}),this[Qg](c,t),e();return}--o===0&&r.fd!==void 0&&Js.default.close(r.fd,l=>{l?this[Qg](l,t):this[Ome](),e()})};r.on("finish",()=>{let c=String(t.absolute),l=r.fd;if(typeof l=="number"&&t.mtime&&!this.noMtime){o++;let u=t.atime||new Date,d=t.mtime;Js.default.futimes(l,u,d,p=>p?Js.default.utimes(c,u,d,m=>a(m&&p)):a())}if(typeof l=="number"&&this[r2e](t)){o++;let u=this[i2e](t),d=this[o2e](t);typeof u=="number"&&typeof d=="number"&&Js.default.fchown(l,u,d,p=>p?Js.default.chown(c,u,d,m=>a(m&&p)):a())}a()});let s=this.transform&&this.transform(t)||t;s!==t&&(s.on("error",c=>{this[Qg](c,t),e()}),t.pipe(s)),s.pipe(r)}[MKt](t,e){let n=typeof t.mode=="number"?t.mode&4095:this.dmode;this[nq](String(t.absolute),n,r=>{if(r){this[Qg](r,t),e();return}let o=1,a=()=>{--o===0&&(e(),this[Ome](),t.resume())};t.mtime&&!this.noMtime&&(o++,Js.default.utimes(String(t.absolute),t.atime||new Date,t.mtime,a)),this[r2e](t)&&(o++,Js.default.chown(String(t.absolute),Number(this[i2e](t)),Number(this[o2e](t)),a)),a()})}[r5r](t){t.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${t.type}`,{entry:t}),t.resume()}[t5r](t,e){let n=Va(OA.default.relative(this.cwd,OA.default.resolve(OA.default.dirname(String(t.absolute)),String(t.linkpath)))).split("/");this[e2e](t,this.cwd,n,()=>this[Eit](t,String(t.linkpath),"symlink",e),r=>{this[Qg](r,t),e()})}[n5r](t,e){let n=Va(OA.default.resolve(this.cwd,String(t.linkpath))),r=Va(String(t.linkpath)).split("/");this[e2e](t,this.cwd,r,()=>this[Eit](t,n,"link",e),o=>{this[Qg](o,t),e()})}[e2e](t,e,n,r,o){let a=n.shift();if(this.preservePaths||a===void 0)return r();let s=OA.default.resolve(e,a);Js.default.lstat(s,(c,l)=>{if(c)return r();if(l?.isSymbolicLink())return o(new Qit(s,OA.default.resolve(s,n.join("/"))));this[e2e](t,s,n,r,o)})}[o5r](){this[Ait]++}[Ome](){this[Ait]--,this[fKt]()}[FKt](t){this[Ome](),t.resume()}[NKt](t,e){return t.type==="File"&&!this.unlink&&e.isFile()&&e.nlink<=1&&!s2e}[PKt](t){this[o5r]();let e=[t.path];t.linkpath&&e.push(t.linkpath),this.reservations.reserve(e,n=>this[e5r](t,n))}[e5r](t,e){let n=s=>{e(s)},r=()=>{this[nq](this.cwd,this.dmode,s=>{if(s){this[Qg](s,t),n();return}this[a2e]=!0,o()})},o=()=>{if(t.absolute!==this.cwd){let s=Va(OA.default.dirname(String(t.absolute)));if(s!==this.cwd)return this[nq](s,this.dmode,c=>{if(c){this[Qg](c,t),n();return}a()})}a()},a=()=>{Js.default.lstat(String(t.absolute),(s,c)=>{if(c&&(this.keep||this.newer&&c.mtime>(t.mtime??c.mtime))){this[FKt](t),n();return}if(s||this[NKt](t,c))return this[Uk](null,t,n);if(c.isDirectory()){if(t.type==="Directory"){let l=this.chmod&&t.mode&&(c.mode&4095)!==t.mode,u=d=>this[Uk](d??null,t,n);return l?Js.default.chmod(String(t.absolute),Number(t.mode),u):u()}if(t.absolute!==this.cwd)return Js.default.rmdir(String(t.absolute),l=>this[Uk](l??null,t,n))}if(t.absolute===this.cwd)return this[Uk](null,t,n);mxa(String(t.absolute),l=>this[Uk](l??null,t,n))})};this[a2e]?o():r()}[Uk](t,e,n){if(t){this[Qg](t,e),n();return}switch(e.type){case"File":case"OldFile":case"ContiguousFile":return this[LKt](e,n);case"Link":return this[n5r](e,n);case"SymbolicLink":return this[t5r](e,n);case"Directory":case"GNUDumpDir":return this[MKt](e,n)}}[Eit](t,e,n,r){Js.default[n](e,String(t.absolute),o=>{o?this[Qg](o,t):(this[Ome](),t.resume()),r()})}},JDe=t=>{try{return[null,t()]}catch(e){return[e,null]}},Q5r=class extends JKt{sync=!0;[Uk](t,e){return super[Uk](t,e,()=>{})}[PKt](t){if(!this[a2e]){let o=this[nq](this.cwd,this.dmode);if(o)return this[Qg](o,t);this[a2e]=!0}if(t.absolute!==this.cwd){let o=Va(OA.default.dirname(String(t.absolute)));if(o!==this.cwd){let a=this[nq](o,this.dmode);if(a)return this[Qg](a,t)}}let[e,n]=JDe(()=>Js.default.lstatSync(String(t.absolute)));if(n&&(this.keep||this.newer&&n.mtime>(t.mtime??n.mtime)))return this[FKt](t);if(e||this[NKt](t,n))return this[Uk](null,t);if(n.isDirectory()){if(t.type==="Directory"){let a=this.chmod&&t.mode&&(n.mode&4095)!==t.mode,[s]=a?JDe(()=>{Js.default.chmodSync(String(t.absolute),Number(t.mode))}):[];return this[Uk](s,t)}let[o]=JDe(()=>Js.default.rmdirSync(String(t.absolute)));this[Uk](o,t)}let[r]=t.absolute===this.cwd?[]:JDe(()=>Axa(String(t.absolute)));this[Uk](r,t)}[LKt](t,e){let n=typeof t.mode=="number"?t.mode&4095:this.fmode,r=s=>{let c;try{Js.default.closeSync(o)}catch(l){c=l}(s||c)&&this[Qg](s||c,t),e()},o;try{o=Js.default.openSync(String(t.absolute),D5r(t.size),n)}catch(s){return r(s)}let a=this.transform&&this.transform(t)||t;a!==t&&(a.on("error",s=>this[Qg](s,t)),t.pipe(a)),a.on("data",s=>{try{Js.default.writeSync(o,s,0,s.length)}catch(c){r(c)}}),a.on("end",()=>{let s=null;if(t.mtime&&!this.noMtime){let c=t.atime||new Date,l=t.mtime;try{Js.default.futimesSync(o,c,l)}catch(u){try{Js.default.utimesSync(String(t.absolute),c,l)}catch{s=u}}}if(this[r2e](t)){let c=this[i2e](t),l=this[o2e](t);try{Js.default.fchownSync(o,Number(c),Number(l))}catch(u){try{Js.default.chownSync(String(t.absolute),Number(c),Number(l))}catch{s=s||u}}}r(s)})}[MKt](t,e){let n=typeof t.mode=="number"?t.mode&4095:this.dmode,r=this[nq](String(t.absolute),n);if(r){this[Qg](r,t),e();return}if(t.mtime&&!this.noMtime)try{Js.default.utimesSync(String(t.absolute),t.atime||new Date,t.mtime)}catch{}if(this[r2e](t))try{Js.default.chownSync(String(t.absolute),Number(this[i2e](t)),Number(this[o2e](t)))}catch{}e(),t.resume()}[nq](t,e){try{return ixa(Va(t),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:e})}catch(n){return n}}[e2e](t,e,n,r,o){if(this.preservePaths||!n.length)return r();let a=e;for(let s of n){a=OA.default.resolve(a,s);let[c,l]=JDe(()=>Js.default.lstatSync(a));if(c)return r();if(l.isSymbolicLink())return o(new Qit(a,OA.default.resolve(e,n.join("/"))))}r()}[Eit](t,e,n,r){let o=`${n}Sync`;try{Js.default[o](e,String(t.absolute)),r(),t.resume()}catch(a){return this[Qg](a,t)}}},fxa=t=>{let e=new Q5r(t),n=t.file,r=ZKt.default.statSync(n),o=t.maxReadSize||16*1024*1024;new OCa(n,{readSize:o,size:r.size}).pipe(e)},gxa=(t,e)=>{let n=new JKt(t),r=t.maxReadSize||16*1024*1024,o=t.file;return new Promise((a,s)=>{n.on("error",s),n.on("close",a),ZKt.default.stat(o,(c,l)=>{if(c)s(c);else{let u=new OKt(o,{readSize:r,size:l.size});u.on("error",s),u.pipe(n)}})})},yfu=d2e(fxa,gxa,t=>new Q5r(t),t=>new JKt(t),(t,e)=>{e?.length&&_5r(t,e)}),hxa=(t,e)=>{let n=new WKt(t),r=!0,o,a;try{try{o=kC.default.openSync(t.file,"r+")}catch(l){if(l?.code==="ENOENT")o=kC.default.openSync(t.file,"w+");else throw l}let s=kC.default.fstatSync(o),c=Buffer.alloc(512);e:for(a=0;as.size)break;a+=u,t.mtimeCache&&l.mtime&&t.mtimeCache.set(String(l.path),l.mtime)}r=!1,bxa(t,n,a,o,e)}finally{if(r)try{kC.default.closeSync(o)}catch{}}},bxa=(t,e,n,r,o)=>{let a=new u5r(t.file,{fd:r,start:n});e.pipe(a),vxa(e,o)},yxa=(t,e)=>{e=Array.from(e);let n=new Fit(t),r=(o,a,s)=>{let c=(m,A)=>{m?kC.default.close(o,f=>s(m)):s(null,A)},l=0;if(a===0)return c(null,0);let u=0,d=Buffer.alloc(512),p=(m,A)=>{if(m||typeof A>"u")return c(m);if(u+=A,u<512&&A)return kC.default.read(o,d,u,d.length-u,l+u,p);if(l===0&&d[0]===31&&d[1]===139)return c(new Error("cannot append to compressed archives"));if(u<512)return c(null,l);let f=new fY(d);if(!f.cksumValid)return c(null,l);let g=512*Math.ceil((f.size??0)/512);if(l+g+512>a||(l+=g+512,l>=a))return c(null,l);t.mtimeCache&&f.mtime&&t.mtimeCache.set(String(f.path),f.mtime),u=0,kC.default.read(o,d,0,512,l,p)};kC.default.read(o,d,0,512,l,p)};return new Promise((o,a)=>{n.on("error",a);let s="r+",c=(l,u)=>{if(l&&l.code==="ENOENT"&&s==="r+")return s="w+",kC.default.open(t.file,s,c);if(l||!u)return a(l);kC.default.fstat(u,(d,p)=>{if(d)return kC.default.close(u,()=>a(d));r(u,p.size,(m,A)=>{if(m)return a(m);let f=new Rit(t.file,{fd:u,start:A});n.pipe(f),f.on("error",a),f.on("close",o),_xa(n,e)})})};kC.default.open(t.file,s,c)})},vxa=(t,e)=>{e.forEach(n=>{n.charAt(0)==="@"?Lit({file:XKt.default.resolve(t.cwd,n.slice(1)),sync:!0,noResume:!0,onReadEntry:r=>t.add(r)}):t.add(n)}),t.end()},_xa=async(t,e)=>{for(let n=0;nt.add(o)}):t.add(r)}t.end()},XDe=d2e(hxa,yxa,()=>{throw new TypeError("file is required")},()=>{throw new TypeError("file is required")},(t,e)=>{if(!GCa(t))throw new TypeError("file is required");if(t.gzip||t.brotli||t.zstd||t.file.endsWith(".br")||t.file.endsWith(".tbr"))throw new TypeError("cannot append to compressed archives");if(!e?.length)throw new TypeError("no paths specified to add/replace")}),vfu=d2e(XDe.syncFile,XDe.asyncFile,XDe.syncNoFile,XDe.asyncNoFile,(t,e=[])=>{XDe.validate?.(t,e),Cxa(t)}),Cxa=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(n,r)=>e(n,r)&&!((t.mtimeCache?.get(n)??r.mtime??0)>(r.mtime??0)):(n,r)=>!((t.mtimeCache?.get(n)??r.mtime??0)>(r.mtime??0))};var tn=O(require("vscode"));Xa();Ue();vi();pa();Be();async function xxa(t){return t.kind===2?await t.toJSON():t.toJSON()}async function O5r(t,e,n){let r=[];for(let o of e)try{r.push(await xxa(o))}catch(a){r.push({id:o.id,kind:"error",error:a?.toString()||"Unknown error",timestamp:new Date().toISOString()})}return{prompt:t,promptId:n?.promptId,hasSeen:n?.hasSeen,logCount:r.length,logs:r}}function U5r(t,e){let n=t.reduce((r,o)=>r+o.logCount,0);return{exportedAt:new Date().toISOString(),totalPrompts:t.length,totalLogEntries:n,prompts:t,mcpServers:e}}function q5r(t){return JSON.stringify(t,null,2)}var z5r="vscode.copilot.chat.showRequestHtmlItem",Exa="github.copilot.chat.debug.exportLogItem",Ixa="github.copilot.chat.debug.exportPromptArchive";function kxa(t){return t.map(e=>e instanceof tn.McpStdioServerDefinition?{type:"stdio",label:e.label,command:e.command,args:e.args,cwd:e.cwd?.toString(),version:e.version}:{type:"http",label:e.label,uri:e.uri.with({authority:"[authority]",query:"",fragment:""}).toString(),version:e.version})}var Sxa="github.copilot.chat.debug.exportPromptLogsAsJson",Txa="github.copilot.chat.debug.exportAllPromptLogsAsJson",Bxa="github.copilot.chat.debug.saveCurrentMarkdown",Rxa="github.copilot.chat.debug.showRawRequestBody",Wme=class extends fe{constructor(n,r){super();this.id="requestLogTree";this.chatRequestProvider=this._register(n.createInstance(m2e)),this._register(tn.window.registerTreeDataProvider("copilot-chat",this.chatRequestProvider));let o,a=c=>!c||!c.children?[]:c.children.map(u=>{if(u instanceof Yme||u instanceof Zme||u instanceof Vme)return u.info}).filter(zo),s=async c=>{let l=a(c);if(l.length!==0)return O5r(c.token.label,l,{promptId:c.id})};this._register(tn.commands.registerCommand(z5r,async c=>{o||(o=this._register(new eJt));let l=r.getRequests().find(d=>d.kind===0&&d.id===c);if(!l)return;let u=await o.addRouter(l);await tn.commands.executeCommand("simpleBrowser.show",u)})),this._register(tn.commands.registerCommand(Exa,async c=>{if(!c||!c.id)return;let l;if(c instanceof tB){tn.window.showWarningMessage("Cannot export chat prompt item. Please select a specific request, tool call, or element.");return}else if(c instanceof Yme||c instanceof Zme||c instanceof Vme)l=c.info;else{tn.window.showErrorMessage("Unable to determine log entry ID for this item.");return}if(l.kind===0){tn.window.showWarningMessage("Element entries cannot be exported as markdown. They contain HTML content that can be viewed in the browser.");return}let u;switch(l.kind){case 1:{u=`${l.entry.debugName.replace(/\W/g,"_")}_${l.id}.copilotmd`;break}case 2:{u=`tool_${l.name.replace(/\W/g,"_")}_${l.id}.copilotmd`;break}}if(!u)return;let d=await tn.window.showSaveDialog({defaultUri:tn.Uri.file(NP.join(oq.homedir(),u)),filters:{"Copilot Markdown":["copilotmd"],Markdown:["md"],"All Files":["*"]},title:"Export Log Entry"});if(d)try{let p=tn.Uri.parse(hA.buildUri({kind:"request",id:l.id})),A=(await tn.workspace.openTextDocument(p)).getText();await tn.workspace.fs.writeFile(d,Buffer.from(A,"utf8"));let f="Open File";await tn.window.showInformationMessage(`Successfully exported to ${d.fsPath}`,f)===f&&await tn.commands.executeCommand("vscode.open",d)}catch(p){tn.window.showErrorMessage(`Failed to export log entry: ${p}`)}})),this._register(tn.commands.registerCommand(Bxa,async(...c)=>{let l,u=c?.[0];if(u instanceof tn.Uri)l=u;else if(u&&typeof u=="object"){let f=u.resource;f instanceof tn.Uri&&(l=f)}if(l??=tn.window.activeTextEditor?.document.uri,!l){tn.window.showWarningMessage("No document is active to save.");return}if(l.scheme!==hA.chatRequestScheme){tn.window.showWarningMessage("This command only works for Copilot request documents.");return}let d=hA.parseUri(l.toString()),m=`${d&&d.data.kind==="request"?d.data.id:"latestrequest"}.md`,A=await tn.window.showSaveDialog({defaultUri:tn.Uri.file(NP.join(oq.homedir(),m)),filters:{Markdown:["md"],"Copilot Markdown":["copilotmd"],"All Files":["*"]},title:"Save Markdown As"});if(A)try{let f=await tn.workspace.openTextDocument(l);await tn.workspace.fs.writeFile(A,Buffer.from(f.getText(),"utf8"));let g="Open File";await tn.window.showInformationMessage(`Successfully saved to ${A.fsPath}`,g)===g&&await tn.commands.executeCommand("vscode.open",A)}catch(f){tn.window.showErrorMessage(`Failed to save markdown: ${f}`)}})),this._register(tn.commands.registerCommand(Ixa,async c=>{let l=a(c);if(l.length===0){tn.window.showInformationMessage("No exportable entries found in this prompt.");return}let d=`${c.token.label.replace(/\W/g,"_").substring(0,50)}_exports.tar.gz`,p=await tn.window.showSaveDialog({defaultUri:tn.Uri.file(NP.join(oq.homedir(),d)),filters:{"Tar Archive":["tar.gz","tgz"],"All Files":["*"]},title:"Export Prompt Archive"});if(p)try{let m=NP.join(oq.tmpdir(),`vscode-copilot-export-${Date.now()}-${Math.random().toString(36).substring(2,10)}`);await tn.workspace.fs.createDirectory(tn.Uri.file(m));let A=[];for(let f of l){let g;switch(f.kind){case 1:{g=`${f.entry.debugName.replace(/\W/g,"_")}_${f.id}.copilotmd`;break}case 2:{g=`tool_${f.name.replace(/\W/g,"_")}_${f.id}.copilotmd`;break}default:continue}let h=tn.Uri.parse(hA.buildUri({kind:"request",id:f.id})),v=(await tn.workspace.openTextDocument(h)).getText(),_=NP.join(m,g);await tn.workspace.fs.writeFile(tn.Uri.file(_),Buffer.from(v,"utf8")),A.push(_)}if(A.length>0){await T5r({gzip:!0,file:p.fsPath,cwd:m},A.map(h=>NP.basename(h)));for(let h of A)await tn.workspace.fs.delete(tn.Uri.file(h));await tn.workspace.fs.delete(tn.Uri.file(m));let f="Reveal in Explorer";await tn.window.showInformationMessage(`Successfully exported ${A.length} entries to ${p.fsPath}`,f)===f&&await tn.commands.executeCommand("revealFileInOS",p)}else tn.window.showWarningMessage("No valid entries could be exported.")}catch(m){tn.window.showErrorMessage(`Failed to export prompt archive: ${m}`)}})),this._register(tn.commands.registerCommand(Sxa,async c=>{let l=await s(c);if(!l){tn.window.showWarningMessage("No exportable entries found for this prompt.");return}let d=`${c.token.label.replace(/\W/g,"_").substring(0,50)}_logs.chatreplay.json`,p=await tn.window.showSaveDialog({defaultUri:tn.Uri.file(NP.join(oq.homedir(),d)),filters:{JSON:["json"],"All Files":["*"]},title:"Export Prompt Logs as JSON"});if(p)try{let m=JSON.stringify(l,null,2);await tn.workspace.fs.writeFile(p,Buffer.from(m,"utf8"));let A="Reveal in Explorer",f="Open File",g=await tn.window.showInformationMessage(`Successfully exported prompt with ${l.logCount} log entries to ${p.fsPath}`,A,f);g===A?await tn.commands.executeCommand("revealFileInOS",p):g===f&&await tn.commands.executeCommand("vscode.open",p)}catch(m){tn.window.showErrorMessage(`Failed to export prompt logs as JSON: ${m}`)}})),this._register(tn.commands.registerCommand(Txa,async c=>{let l=await this.chatRequestProvider.getChildren();if(!l||l.length===0){tn.window.showInformationMessage("No chat prompts found to export.");return}let u=l.filter(p=>p instanceof tB);if(u.length===0){tn.window.showInformationMessage("No chat prompts found to export.");return}let d;if(c&&typeof c=="string")d=tn.Uri.file(c);else{let m=`copilot_all_prompts_${new Date().toISOString().replace(/[:.]/g,"-").substring(0,19)}.chatreplay.json`,A=await tn.window.showSaveDialog({defaultUri:tn.Uri.file(NP.join(oq.homedir(),m)),filters:{JSON:["json"],"All Files":["*"]},title:"Export All Prompt Logs as JSON"});if(!A)return;d=A}try{let p=[];for(let f of u)if(f instanceof tB){let g=await s(f);g&&p.push(g)}let m=U5r(p,kxa(tn.lm.mcpServerDefinitions??[])),A=q5r(m);if(await tn.workspace.fs.writeFile(d,Buffer.from(A,"utf8")),!c){let f="Reveal in Explorer",g="Open File",h=await tn.window.showInformationMessage(`Successfully exported ${m.totalPrompts} prompts with ${m.totalLogEntries} log entries to ${d.fsPath}`,f,g);h===f?await tn.commands.executeCommand("revealFileInOS",d):h===g&&await tn.commands.executeCommand("vscode.open",d)}}catch(p){tn.window.showErrorMessage(`Failed to export all prompt logs as JSON: ${p}`)}})),this._register(tn.commands.registerCommand(Rxa,async c=>{let l=c?.id;l&&await tn.commands.executeCommand("vscode.open",tn.Uri.parse(hA.buildUri({kind:"request",id:l},"rawrequest")))})),this._register(tn.commands.registerCommand("github.copilot.debug.showOutputChannel",async()=>{_W.show()}))}};Wme=S([b(0,j),b(1,Fr)],Wme);var eJt=class extends fe{constructor(){super();this.routers=new Tm(10);let n=(0,$5r.createServer)((r,o)=>{for(let[a,s]of this.routers)if(s.route(r,o)){this.routers.get(a);return}o.statusCode=404,o.end("Not Found")});this.port=new Promise((r,o)=>{n.listen(0,"127.0.0.1",()=>r(n.address().port)).on("error",o)}),this._register(Fn(()=>n.close()))}async addRouter(n){let r=this.routers.get(n.id);if(r)return r.address;let o=await this.port,a=n.trace.serveRouter(`http://127.0.0.1:${o}`);return this.routers.set(n.id,a),a.address}},m2e=class extends fe{constructor(n,r){super();this.requestLogger=n;this._onDidChangeTreeData=new tn.EventEmitter;this.onDidChangeTreeData=this._onDidChangeTreeData.event;this.filters=this._register(r.createInstance(A2e)),this._register(new tJt(this.filters)),this._register(this.requestLogger.onDidChangeRequests(()=>this._onDidChangeTreeData.fire())),this._register(this.filters.onDidChangeFilters(()=>this._onDidChangeTreeData.fire()))}getTreeItem(n){return n}getChildren(n){if(n instanceof tB)return n.children;if(n)return[];{let r=[],o=new Map;for(let a of this.requestLogger.getRequests()){if(!a.token){if(a.kind===1&&a.entry.type==="MarkdownContentRequest"&&a.entry.isVisible&&!a.entry.isVisible())continue;r.push(this.logToTreeItem(a));continue}let s=o.get(a.token);if(s||(s=tB.create(a,a.token),o.set(a.token,s),r.push(s)),a.kind===1&&a.entry.type==="MarkdownContentRequest"&&a.entry.debugName===a.token.label){a.entry.isVisible&&!a.entry.isVisible()||s.setMainEntry(a);continue}if(a.kind===1&&a.entry.type==="MarkdownContentRequest"&&a.entry.isVisible&&!a.entry.isVisible())continue;let c=this.logToTreeItem(a);s.children.find(u=>u.id===c.id)||s.children.push(c)}return Xne(r,a=>{if(this.filters.itemIncluded(a))return a instanceof tB?a.withFilteredChildren(s=>this.filters.itemIncluded(s)):a})}}logToTreeItem(n){switch(n.kind){case 1:return new Yme(n);case 0:return new Vme(n);case 2:return new Zme(n);default:ai(n)}}};m2e=S([b(0,Fr),b(1,j)],m2e);var tB=class t extends tn.TreeItem{constructor(n){super(n.label,tn.TreeItemCollapsibleState.Expanded);this.token=n;this.contextValue="chatprompt";this.children=[];n.icon&&(this.iconPath=new tn.ThemeIcon(n.icon))}static{this.ids=new WeakMap}static create(n,r){let o=t.ids.get(n);if(o)return o;let a=new t(r);return a.id=n.id+"-prompt",t.ids.set(n,a),a}setMainEntry(n){if(n.entry.type!=="MarkdownContentRequest")return;let r=j0t(n.entry);r!==void 0&&(this.iconPath=new tn.ThemeIcon(r.id)),this.command={command:"vscode.open",title:"",arguments:[tn.Uri.parse(hA.buildUri({kind:"request",id:n.id}))]}}withFilteredChildren(n){let r=new t(this.token);return r.children=this.children.filter(n),r.id=this.id,r.iconPath=this.iconPath,r.command=this.command,r.collapsibleState=r.children.length>0?tn.TreeItemCollapsibleState.Expanded:tn.TreeItemCollapsibleState.None,r}},Zme=class extends tn.TreeItem{constructor(n){super(n.name,tn.TreeItemCollapsibleState.None);this.info=n;this.contextValue="toolcall";this.id=`${n.id}_${n.time}`,this.description=n.args===void 0?"":typeof n.args=="string"?n.args:JSON.stringify(n.args),this.command={command:"vscode.open",title:"",arguments:[tn.Uri.parse(hA.buildUri({kind:"request",id:n.id}))]},this.iconPath=new tn.ThemeIcon("tools")}},Vme=class extends tn.TreeItem{constructor(n){super(`<${n.name}/>`,tn.TreeItemCollapsibleState.None);this.info=n;this.id=n.id,this.description=`${n.tokens} tokens`,this.command={command:z5r,title:"",arguments:[n.id]},this.iconPath=new tn.ThemeIcon("code")}},Yme=class extends tn.TreeItem{constructor(n){super(n.entry.debugName,tn.TreeItemCollapsibleState.None);this.info=n;this.contextValue="request";if(this.id=n.id,n.entry.type==="MarkdownContentRequest"){let r=j0t(n.entry);this.iconPath=r===void 0?void 0:new tn.ThemeIcon(r.id);let o=new Date(n.entry.startTimeMs).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});this.description=o}else{let o=`${(n.entry.endTime.getTime()-n.entry.startTime.getTime()).toLocaleString("en-US")}ms`,a=n.entry.startTime.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),s=n.entry.type==="ChatMLSuccess"&&n.entry.usage?`${n.entry.usage.prompt_tokens.toLocaleString("en-US")}tks`:"",c=s?`[${s}] `:"";this.description=`${c}[${o}] [${a}]`,this.iconPath=n.entry.type==="ChatMLSuccess"?void 0:new tn.ThemeIcon("error"),this.tooltip=`${n.entry.type==="ChatMLCancelation"?"cancelled":n.entry.result.type} ${n.entry.chatEndpoint.model} ${o} ${a}`,s&&(this.tooltip+=` ${s}`)}this.command={command:"vscode.open",title:"",arguments:[tn.Uri.parse(hA.buildUri({kind:"request",id:n.id}))]},this.iconPath??=new tn.ThemeIcon("copilot")}},A2e=class extends fe{constructor(n){super();this.vscodeExtensionContext=n;this._elementsShown=!0;this._toolsShown=!0;this._nesRequestsShown=!0;this._ghostRequestsShown=!0;this._onDidChangeFilters=new tn.EventEmitter;this.onDidChangeFilters=this._onDidChangeFilters.event;this.setElementsShown(!n.workspaceState.get(this.getStorageKey("elements"))),this.setToolsShown(!n.workspaceState.get(this.getStorageKey("tools"))),this.setNesRequestsShown(!n.workspaceState.get(this.getStorageKey("nesRequests"))),this.setGhostRequestsShown(!n.workspaceState.get(this.getStorageKey("ghostRequests")))}getStorageKey(n){return`github.copilot.chat.debug.${n}Hidden`}setElementsShown(n){this._elementsShown=n,this.setShown("elements",this._elementsShown)}setToolsShown(n){this._toolsShown=n,this.setShown("tools",this._toolsShown)}setNesRequestsShown(n){this._nesRequestsShown=n,this.setShown("nesRequests",this._nesRequestsShown)}setGhostRequestsShown(n){this._ghostRequestsShown=n,this.setShown("ghostRequests",this._ghostRequestsShown)}itemIncluded(n){if(n instanceof tB)return this.isNesRequest(n)?this._nesRequestsShown:this.isGhostRequest(n)?this._ghostRequestsShown:!0;if(n instanceof Vme)return this._elementsShown;if(n instanceof Zme)return this._toolsShown;if(n instanceof Yme){if(this.isNesRequest(n))return this._nesRequestsShown;if(this.isGhostRequest(n))return this._ghostRequestsShown}return!0}isGhostRequest(n){let r;return n instanceof tB?(nd(typeof n.label=="string","ChatPromptItem label must be a string"),r=n.label.toLowerCase()):r=n.info.entry.debugName.toLowerCase(),r==="ghost"||r.startsWith("ghost |")}isNesRequest(n){let r;return n instanceof tB?(nd(typeof n.label=="string","ChatPromptItem label must be a string"),r=n.label.toLowerCase()):r=n.info.entry.debugName.toLowerCase(),r.startsWith("nes |")||r==="xtabprovider"||r.startsWith("nes.")}setShown(n,r){tn.commands.executeCommand("setContext",`github.copilot.chat.debug.${n}Hidden`,!r),this.vscodeExtensionContext.workspaceState.update(this.getStorageKey(n),!r),this._onDidChangeFilters.fire()}};A2e=S([b(0,ut)],A2e);var tJt=class extends fe{constructor(e){super(),this._register(tn.commands.registerCommand("github.copilot.chat.debug.showElements",()=>e.setElementsShown(!0))),this._register(tn.commands.registerCommand("github.copilot.chat.debug.hideElements",()=>e.setElementsShown(!1))),this._register(tn.commands.registerCommand("github.copilot.chat.debug.showTools",()=>e.setToolsShown(!0))),this._register(tn.commands.registerCommand("github.copilot.chat.debug.hideTools",()=>e.setToolsShown(!1))),this._register(tn.commands.registerCommand("github.copilot.chat.debug.showNesRequests",()=>e.setNesRequestsShown(!0))),this._register(tn.commands.registerCommand("github.copilot.chat.debug.hideNesRequests",()=>e.setNesRequestsShown(!1))),this._register(tn.commands.registerCommand("github.copilot.chat.debug.showGhostRequests",()=>e.setGhostRequestsShown(!0))),this._register(tn.commands.registerCommand("github.copilot.chat.debug.hideGhostRequests",()=>e.setGhostRequestsShown(!1)))}};var Sf=O(require("vscode"));Fd();dn();yr();Ue();Cp();Be();$s();Be();var aq=O(Ye());var eQ=O(require("vscode"));En();var Oit=class{constructor(e){this._inputBarrier=e;this._isDisposed=!1;this.picks=[];this._inputBarrier.then(()=>{!this._inner&&!this._isDisposed&&(this.getPick().show(),this.reset())})}async pick(){await this._inputBarrier;let e=this.getPick();return e.busy=!1,e}async input(){await this._inputBarrier;let e=this.getInput();return e.busy=!1,e}reset(){this._inner&&(this._inner.type==="pick"?this._inner.value.items=[]:this._inner.value.value="",this._inner.value.title="\u{1F914}",this._inner.value.placeholder="Thinking...",this._inner.value.busy=!0)}dispose(){this._inner?.value.dispose(),this._isDisposed=!0}getInput(){if(this._inner?.type!=="input"){this._inner?.value.dispose();let e=eQ.window.createInputBox();e.ignoreFocusOut=!0,this._inner={type:"input",value:e}}return this._inner.value}getPick(){if(this._inner?.type!=="pick"){this._inner?.value.dispose();let e=eQ.window.createQuickPick();e.ignoreFocusOut=!0,this._inner={type:"pick",value:e}}return this._inner.value}},TC=class{static{this.ID="getInput"}static{this.description="Prompts the user for a short string input."}static{this.schema={type:"object",properties:{id:{type:"string",description:"An alphanumeric identifier for the input."},title:{type:"string",description:"The title of the input box."},placeholder:{type:"string",description:"The placeholder text for the input box."},value:{type:"string",description:"The default value of the input box."}},required:["title","id"]}}static async invoke(e,n){let r=await e.input();r.title=n.title,r.placeholder=n.placeholder,n.value&&(r.value=n.value),r.ignoreFocusOut=!0;let o=await new Promise(a=>{r.onDidAccept(()=>{let s=r.value;a(s)}),r.onDidHide(()=>{a(void 0)}),r.show()});if(e.reset(),o===void 0)throw new Jn;return e.picks.push({id:n.id,title:n.title,choice:o}),new eQ.LanguageModelToolResult([new eQ.LanguageModelTextPart(`${n.title}: ${o}`)])}},tQ=class{static{this.ID="getChoice"}static{this.description="Prompts the user to select from a list of choices. It returns the label or labels of the choices that were selected"}static{this.schema={type:"object",properties:{title:{type:"string",description:"The title of the pick box."},placeholder:{type:"string",description:"The placeholder text for the pick box."},canPickMany:{type:"boolean",description:"If true, the user can select multiple choices."},choices:{type:"array",items:{type:"object",properties:{label:{type:"string",description:"The primary label of the choice of the choice."},description:{type:"string",description:"A brief extra description."}}},minItems:1}},required:["title","choices"]}}static async invoke(e,n){let r=await e.pick();r.title=n.title,r.placeholder=n.placeholder,r.items=n.choices,r.canSelectMany=n.canPickMany??!1,r.ignoreFocusOut=!0;let o=await new Promise(a=>{r.onDidAccept(()=>{let s=n.canPickMany?r.selectedItems.map(c=>c.label):r.selectedItems[0]?.label;a(s)}),r.onDidHide(()=>{a(void 0)}),r.show()});if(e.reset(),o===void 0)throw new Jn;return Array.isArray(o)&&(o="- "+o.join(` - `)),new eQ.LanguageModelToolResult([new eQ.LanguageModelTextPart(`${n.title}: ${o}`)])}};var Dxa={pip:(t,e)=>`uvx ${t.replaceAll("-","_")}`+(e?`==${e}`:""),npm:(t,e)=>`npx ${t}`+(e?`@${e}`:""),docker:(t,e)=>`docker run -i --rm ${t}`,nuget:(t,e)=>`dnx ${t}`+(e?`@${e}`:"")+" --yes"},Uit=class extends aq.PromptElement{async render(){let{packageType:e,packageName:n,packageVersion:r,pickRef:o,packageReadme:a}=this.props,{history:s,toolCallRounds:c=[],toolCallResults:l={}}=this.props.promptContext;for(let p of c)for(let m of p.toolCalls)l[m.id]||(m.name===TC.ID?l[m.id]=await TC.invoke(o,JSON.parse(m.arguments)):m.name===tQ.ID&&(l[m.id]=await tQ.invoke(o,JSON.parse(m.arguments))));let u=a?.includes('"mcpServers":'),d=Dxa[e](n,r);return vscpp(vscppf,null,vscpp(Zi,{flexGrow:1,passPriority:!0,historyPriority:700,history:s},vscpp(Xt,null,vscpp(z,{name:"instructions"},"You are an expert in reading documentation and extracting relevant results.",vscpp("br",null),"A developer is setting up a Model Context Protocol (MCP) server based on a ",e," package. Your task is to create a configuration for the server matching the provided JSON schema.",vscpp("br",null),u?vscpp(nJt,{command:d,packageVersion:r}):vscpp(rJt,{command:d,packageVersion:r}),vscpp("br",null),vscpp("br",null),"When using a tool, follow the JSON schema very carefully and make sure to include all required fields. DO NOT write out a JSON codeblock with the tool inputs.",vscpp("br",null)),vscpp(z,{name:"example"},vscpp(z,{name:"request"},"User: I want to run the npm package `@modelcontextprotocol/server-redis` as an MCP server. This is its readme:",vscpp("br",null),vscpp("br",null),Pxa),vscpp(z,{name:"response"},u&&vscpp(vscppf,null,"The readme has an example confirmation I'll work off of:",vscpp("br",null),"$",j5r),vscpp("br",null),"Based on ",u?"this example":"the documentation",", I need the following information to run the MCP server:",vscpp("br",null),"- Redis hostname",vscpp("br",null),"- Redis port number",vscpp("br",null),"- Redis password (optional)",vscpp("br",null),vscpp("br",null),"I will now ask for this information.",vscpp("br",null),"[[`",TC.ID,'` called requesting Redis hostname]]: "redis.example.com"',vscpp("br",null),"[[`",TC.ID,'` called requesting Redis port number]]: "3000"',vscpp("br",null),"[[`",TC.ID,'` called requesting Redis port password]]: ""',vscpp("br",null),vscpp("br",null),!u&&vscpp(vscppf,null,"Based on this data, the command needed to run the MCP server is `npx @modelcontextprotocol/server-redis redis://example.com:6379`"),"Based on this data, the command needed to run the MCP server is `npx @modelcontextprotocol/server-redis redis://example.com:6379`",vscpp("br",null),vscpp("br",null),"Here is the JSON object that matches the provided schema:",vscpp("br",null),Nxa)))),vscpp(aq.UserMessage,{flexGrow:3},"I want to run the ",e," package `",n,"` as an MCP server. This is its readme:",vscpp("br",null),vscpp(z,{name:"readme"},this.props.packageReadme),"The schema for the final JSON object is:",vscpp("br",null),vscpp(z,{name:"schema",flexGrow:1},vscpp(aq.TextChunk,{breakOnWhitespace:!0},JSON.stringify(this.props.targetSchema,null,2)))),vscpp(Hc,{priority:899,flexGrow:2,promptContext:this.props.promptContext,toolCallRounds:c,toolCallResults:l,toolCallMode:1}))}},nJt=class extends aq.PromptElement{render(){let[e,...n]=this.props.command.split(" ");return vscpp(vscppf,null,"Think step by step:",vscpp("br",null),"1. Read the documentation for the MCP server and find the section that discusses setting up a configuration with `mcpServers`. If there are multiple such examples, find the one that works best when run as `",`{"command":"${e}", "args": ["${n.join('", "')}", ...], , "env": { ... } }`,". State this configuration in your response.",vscpp("br",null),"2. Determine what placeholders are used in that example that the user would need to fill, such as configuration options, credentials, or API keys.",vscpp("br",null),"3. Call the tool `",TC.ID,"` a maximum of 5 times to gather the placeholder information. You may make multiple calls using this tool in parallel, but the maximum number of questions must be 5.",vscpp("br",null),"4. Transform that example configuration entry, replacing or adding any additional information the user gave you, into a JSON object matching the provided schema.",vscpp("br",null),this.props.packageVersion&&vscpp(vscppf,null,"The package version is ",this.props.packageVersion,", make sure your command runs the correct version, using the form `",this.props.command,"`.",vscpp("br",null)),"5. Return the resulting JSON object in a markdown code block wrapped with triple backticks (```)",vscpp("br",null))}},rJt=class extends aq.PromptElement{render(){return vscpp(vscppf,null,"The MCP server the developer is asking about can be run using the command ",this.props.command,", but it may need additional arguments or environment variables to function.",vscpp("br",null),vscpp("br",null),"Think step by step:",vscpp("br",null),"1. Read the documentation for the MCP server and determine what information you would need to run it on the command line.",vscpp("br",null),"2. Call the tool `",TC.ID,"` a maximum of 5 times to gather the necessary information. You may make multiple calls using this tool in parallel, but the maximum number of questions must be 5.",vscpp("br",null),"3. Use that information to construct a set of arguments and environment variables to run the server. ",vscpp("br",null),this.props.packageVersion&&vscpp(vscppf,null,"The package version is ",this.props.packageVersion,", make sure your command runs the correct version, using the form `",this.props.command,"`.",vscpp("br",null)),"4. Translate the command, arguments and environment variables into a JSON object that matches the provided schema.",vscpp("br",null),"5. Return the resulting JSON object in a markdown code block wrapped with triple backticks (```)",vscpp("br",null),vscpp("br",null),"Follow these rules when constructing your arguments and environment variables:",vscpp("br",null),"1. Prefer to use environment variables over arguments when possible, especially for sensitive information. Command-line arguments are not secure.",vscpp("br",null),"2. Look carefully in the readme for instructions for how to run the MCP server in `stdio` mode. If there are additional arguments needed to run the MCP server in `stdio` mode, then you MUST include them in your output.",vscpp("br",null),"4. Briefly summarize how the above instructions were followed in your response.",vscpp("br",null))}},j5r=`\`\`\`json { "mcpServers": { "redis": { "command": "npx", "args": [ "@modelcontextprotocol/server-redis", "redis://localhost:6379" ] } } } \`\`\``,Pxa=` # Redis A Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools. ## Components ### Tools - **set** - Set a Redis key-value pair with optional expiration - Input: - \`key\` (string): Redis key - \`value\` (string): Value to store - \`expireSeconds\` (number, optional): Expiration time in seconds - **get** - Get value by key from Redis - Input: \`key\` (string): Redis key to retrieve - **delete** - Delete one or more keys from Redis - Input: \`key\` (string | string[]): Key or array of keys to delete - **list** - List Redis keys matching a pattern - Input: \`pattern\` (string, optional): Pattern to match keys (default: *) ## Usage with Claude Desktop To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your \`claude_desktop_config.json\`: ### Docker * when running docker on macos, use host.docker.internal if the server is running on the host network (eg localhost) * Redis URL can be specified as an argument, defaults to "redis://localhost:6379" \`\`\`json { "mcpServers": { "redis": { "command": "docker", "args": [ "run", "-i", "--rm", "mcp/redis", "redis://host.docker.internal:6379"] } } } \`\`\` ### NPX ${j5r} `,Nxa=` \`\`\`json { "name": "redis", "command": "npx", "args": [ "@modelcontextprotocol/server-redis", "redis://redis.example.com:3000" ] } \`\`\` `;var sq=class extends dl{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f){super(n,r,s,o,a,c,l,u,d,p,m,A,f);this.instantiationService=r;this.endpointProvider=s}static{this.ID="mcpToolSetupLoop"}async getEndpoint(){return await this.endpointProvider.getChatEndpoint("copilot-fast")}async buildPrompt(n,r,o){let a=await this.getEndpoint();return await en.create(this.instantiationService,a,Uit,{promptContext:n,...this.options.props}).render(r,o)}async getAvailableTools(){return this.options.conversation.turns.length>5?[]:[{description:TC.description,name:TC.ID,inputSchema:TC.schema,source:void 0,tags:[]},{description:tQ.description,name:tQ.ID,inputSchema:tQ.schema,source:void 0,tags:[]}]}async fetch(n,r){return(await this.getEndpoint()).makeChatRequest2({...n,debugName:sq.ID,location:7,requestOptions:{...n.requestOptions,temperature:0}},r)}};sq=S([b(1,j),b(2,Z),b(3,Fr),b(4,tt),b(5,$d),b(6,Ee),b(7,be),b(8,Fe),b(9,Fm),b(10,kp),b(11,yt),b(12,On)],sq);var LP=O(require("fs/promises")),zit=O(require("os")),W5r=O(require("path")),Kme=require("vscode");oX();pa();var H5r=O(require("child_process")),qit=class{async executeWithTimeout(e,n,r,o,a,s){return await Lxa(e,n,r,o,a,s)}},G5r=1e4;async function Lxa(t,e,n,r=6e4,o=!0,a){return await new Promise((s,c)=>{let l=[],u=[],d=!1,p=H5r.spawn(t,e,{stdio:"pipe",env:{...process.env},cwd:n});p.stdout.setEncoding("utf8"),p.stderr.setEncoding("utf8"),p.stdout.on("data",f=>l.push(f)),p.stderr.on("data",f=>u.push(f));let m=setTimeout(()=>{d||(d=!0,p.kill("SIGTERM"),setTimeout(()=>{p.killed||p.kill("SIGKILL")},G5r),c(new Error(`Process timed out after ${r}ms`)))},r),A=a?.onCancellationRequested(()=>{d||(d=!0,clearTimeout(m),p.kill("SIGTERM"),setTimeout(()=>{p.killed||p.kill("SIGKILL")},G5r),c(new Error("Process cancelled")))});p.on("error",f=>{d||(d=!0,clearTimeout(m),A?.dispose(),c(f))}),p.on("close",f=>{d||(d=!0,clearTimeout(m),A?.dispose(),o&&f!==0?c(new Error(`Process ${p.pid} (${t}) failed with code ${f}. stdout: ${l.join("")} stderr: ${u.join("")}`)):s({stdout:l.join(""),stderr:u.join(""),exitCode:f??-1}))})})}var Mxa="https://modelcontextprotocol.io/schemas/draft/2025-07-09/server.json",$it=class{constructor(e,n,r=new qit,o={command:"dotnet",args:[]},a="https://api.nuget.org/v3/index.json"){this.logService=e;this.fetcherService=n;this.commandExecutor=r;this.dotnet=o;this.source=a}async getNuGetPackageMetadata(e){let n=zit.homedir(),r;try{r=await this.getDotnetVersion(n)}catch(c){if((c.hasOwnProperty("code")?String(c.code):void 0)==="ENOENT")return{state:"error",error:Kme.l10n.t("The '{0}' command was not found. .NET SDK 10 or newer must be installed and available in PATH.",this.dotnet.command),errorType:"MissingCommand",helpUri:"https://aka.ms/vscode-mcp-install/dotnet",helpUriLabel:Kme.l10n.t("Install .NET SDK")};throw c}if(parseInt(r.split(".")[0])<10)return{state:"error",error:Kme.l10n.t("The installed .NET SDK must be version 10 or newer. Found {0}.",r),errorType:"BadCommandVersion",helpUri:"https://aka.ms/vscode-mcp-install/dotnet",helpUriLabel:Kme.l10n.t("Update .NET SDK")};let a=await this.getLatestPackageVersion(n,e);if(!a)return{state:"error",errorType:"NotFound",error:Kme.l10n.t("Package {0} does not exist on NuGet.org.",e)};let s=await this.getPackageReadmeFromNuGetOrgAsync(a.id,a.version);return{state:"ok",publisher:a.owners??"unknown",name:a.id,version:a.version,readme:s,getMcpServer:async c=>{await c;let l=await this.getServerManifest(a.id,a.version);return Fxa(l,"nuget")}}}async getServerManifest(e,n){this.logService.info(`Reading .mcp/server.json from NuGet package ${e}@${n}.`);let r=Pmn(zit.tmpdir(),"vscode-nuget-mcp");try{await LP.mkdir(r,{recursive:!0});let o=r,a=await this.getGlobalPackagesPath(e,n,o);return!a||!await this.createToolManifest(e,n,o)||!await this.installLocalTool(e,n,o)?void 0:await this.readServerManifest(a,e,n)}catch(o){this.logService.warn(` Failed to install NuGet package ${e}@${n}. Proceeding without server.json. Error: ${o}`)}finally{try{await LP.rm(r,{recursive:!0,force:!0})}catch(o){this.logService.warn(`Failed to clean up temporary .NET tool install directory ${r}. Error: ${o}`)}}}async getDotnetVersion(e){let n=this.dotnet.args.concat(["--version"]),r=await this.commandExecutor.executeWithTimeout(this.dotnet.command,n,e),o=r.stdout.trim();if(r.exitCode!==0||!o)throw this.logService.warn(`Failed to check for .NET version while checking if a NuGet MCP server exists. stdout: ${r.stdout} stderr: ${r.stderr}`),new Error(`Failed to check for .NET version using '${this.dotnet.command} --version'.`);return o}async getLatestPackageVersion(e,n){let r=this.dotnet.args.concat(["package","search",n,"--source",this.source,"--prerelease","--format","json"]),o=await this.commandExecutor.executeWithTimeout(this.dotnet.command,r,e),a=JSON.parse(o.stdout.trim());for(let s of a.searchResult??[])for(let c of s.packages??[])if(c.id.toUpperCase()===n.toUpperCase())return{id:c.id,version:c.latestVersion,owners:c.owners}}async getPackageReadmeFromNuGetOrgAsync(e,n){try{let r=URL.parse(this.source);if(r?.protocol!=="https:"||!r.pathname.endsWith(".json")){this.logService.warn(`NuGet package source is not an HTTPS V3 source URL. Cannot fetch a readme for ${e}@${n}.`);return}let o=await this.fetcherService.fetch(this.source,{method:"GET",callSite:"mcp-nuget-service-index"});if(o.status!==200){this.logService.warn(`Unable to read the service index for NuGet.org while fetching readme for ${e}@${n}. HTTP status: ${o.status}`);return}let s=(await o.json()).resources?.find(u=>u["@type"]==="ReadmeUriTemplate/6.13.0")?.["@id"];if(!s){this.logService.warn(`No readme URL template found for ${e}@${n} on NuGet.org.`);return}let c=s.replace("{lower_id}",encodeURIComponent(e.toLowerCase())).replace("{lower_version}",encodeURIComponent(n.toLowerCase())),l=await this.fetcherService.fetch(c,{method:"GET",callSite:"mcp-nuget-readme"});if(l.status===200)return l.text();l.status===404?this.logService.info(`No package readme exists for ${e}@${n} on NuGet.org.`):this.logService.warn(`Failed to read package readme for ${e}@${n} from NuGet.org. HTTP status: ${l.status}`)}catch(r){this.logService.warn(`Failed to read package readme for ${e}@${n} from NuGet.org. Error: ${r}`)}}async getGlobalPackagesPath(e,n,r){let o=this.dotnet.args.concat(["nuget","locals","global-packages","--list","--force-english-output"]),a=await this.commandExecutor.executeWithTimeout(this.dotnet.command,o,r);if(a.exitCode!==0){this.logService.warn(`Failed to discover the NuGet global packages folder. Proceeding without server.json for ${e}@${n}. stdout: ${a.stdout} stderr: ${a.stderr}`);return}return a.stdout.trim().split(" ",2).at(-1)?.trim()}async createToolManifest(e,n,r){let o=this.dotnet.args.concat(["new","tool-manifest"]),a=await this.commandExecutor.executeWithTimeout(this.dotnet.command,o,r);return a.exitCode!==0?(this.logService.warn(`Failed to create tool manifest.Proceeding without server.json for ${e}@${n}. stdout: ${a.stdout} stderr: ${a.stderr}`),!1):!0}async installLocalTool(e,n,r){let o=this.dotnet.args.concat(["tool","install",`${e}@${n}`,"--source",this.source,"--local","--create-manifest-if-needed"]),a=await this.commandExecutor.executeWithTimeout(this.dotnet.command,o,r);return a.exitCode!==0?(this.logService.warn(`Failed to install local tool ${e} @${n}. Proceeding without server.json for ${e}@${n}. stdout: ${a.stdout} stderr: ${a.stderr}`),!1):!0}prepareServerJson(e,n,r){if(e?.packages)for(let o of e.packages){if(!o)continue;(o.registryType??o.registry_type??o.registry_name)==="nuget"&&(o.name&&o.name!==n&&(this.logService.warn(`Package name mismatch in NuGet.mcp / server.json: expected ${n}, found ${o.name}.`),o.name=n),o.identifier&&o.identifier!==n&&(this.logService.warn(`Package identifier mismatch in NuGet.mcp / server.json: expected ${n}, found ${o.identifier}.`),o.identifier=n),o.version!==r&&(this.logService.warn(`Package version mismatch in NuGet.mcp / server.json: expected ${r}, found ${o.version}.`),o.version=r))}return(e.$schema===Mxa||!e.$schema)&&(e.$schema=jit.SCHEMA),e.name||(e.name=n),e.description||(e.description=n),e.version||(e.version=r),e}async readServerManifest(e,n,r){let o=W5r.default.join(e,n.toLowerCase(),r.toLowerCase(),".mcp","server.json");try{await LP.access(o,LP.constants.R_OK)}catch{this.logService.info(`No server.json found at ${o}. Proceeding without server.json for ${n}@${r}.`);return}let a=await LP.readFile(o,"utf8"),s;try{s=JSON.parse(a)}catch{this.logService.warn(`Invalid JSON in NuGet package server.json at ${o}. Proceeding without server.json for ${n}@${r}.`);return}if(s===null||typeof s!="object"||Array.isArray(s)){this.logService.warn(`Invalid JSON in NuGet package server.json at ${o}. Proceeding without server.json for ${n}@${r}.`);return}return this.prepareServerJson(s,n,r)}};function Fxa(t,e){let n=t;if(!n||typeof n!="object"||typeof n.$schema!="string")return;n.$schema!==jit.SCHEMA&&(n={server:n});let r=V5r.SERIALIZER.toRawGalleryMcpServer(n);return r?new iJt().getMcpServerConfigurationFromManifest(r,e).mcpServerConfiguration:void 0}var jit;(o=>{o.VERSION="v0-2025-07-09",o.SCHEMA="https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json";class n{toRawGalleryMcpServer(s){if(!s||typeof s!="object")return;let c=s;if(c.$schema&&c.$schema!==o.SCHEMA)return;function l(f){return{...f,isRequired:f.is_required,isSecret:f.is_secret}}function u(f){let g={};for(let[h,y]of Object.entries(f))g[h]=l(y);return g}function d(f){return f.type==="positional"?{...f,valueHint:f.value_hint,isRepeated:f.is_repeated,isRequired:f.is_required,isSecret:f.is_secret,variables:f.variables?u(f.variables):void 0}:{...f,isRepeated:f.is_repeated,isRequired:f.is_required,isSecret:f.is_secret,variables:f.variables?u(f.variables):void 0}}function p(f){return{...f,isRequired:f.is_required,isSecret:f.is_secret,variables:f.variables?u(f.variables):void 0}}function m(f){switch(f.type){case"stdio":return{type:"stdio"};case"streamable-http":return{type:"streamable-http",url:f.url,headers:f.headers?.map(p)};case"sse":return{type:"sse",url:f.url,headers:f.headers?.map(p)};default:return{type:"stdio"}}}function A(f){switch(f){case"npm":return"npm";case"docker":case"docker-hub":case"oci":return"oci";case"pypi":return"pypi";case"nuget":return"nuget";case"mcpb":return"mcpb";default:return"npm"}}return{packages:c.packages?.map(f=>({identifier:f.identifier??f.name,registryType:A(f.registry_type??f.registry_name),version:f.version,fileSha256:f.file_sha256,registryBaseUrl:f.registry_base_url,transport:f.transport?m(f.transport):{type:"stdio"},packageArguments:f.package_arguments?.map(d),runtimeHint:f.runtime_hint,runtimeArguments:f.runtime_arguments?.map(d),environmentVariables:f.environment_variables?.map(p)})),remotes:c.remotes?.map(f=>({type:(f.type??f.transport_type??f.transport)==="sse"?"sse":"streamable-http",url:f.url,headers:f.headers?.map(p)}))}}}o.SERIALIZER=new n})(jit||={});var Z5r;(o=>{o.VERSION="v0.1",o.SCHEMA="https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json";class n{toRawGalleryMcpServer(s){if(!s||typeof s!="object")return;let c=s;if(!(!c.server||!Bm(c.server))&&!(c.server.$schema&&c.server.$schema!==o.SCHEMA))return{packages:c.server.packages,remotes:c.server.remotes}}}o.SERIALIZER=new n})(Z5r||={});var V5r;(r=>{r.VERSION="v0";class e{constructor(){this.galleryMcpServerDataSerializers=[];this.galleryMcpServerDataSerializers.push(Z5r.SERIALIZER),this.galleryMcpServerDataSerializers.push(jit.SERIALIZER)}toRawGalleryMcpServer(a){for(let s of this.galleryMcpServerDataSerializers){let c=s.toRawGalleryMcpServer(a);if(c)return c}}}r.SERIALIZER=new e})(V5r||={});var iJt=class{getMcpServerConfigurationFromManifest(e,n){if(n==="remote"&&e.remotes?.length){let{inputs:l,variables:u}=this.processKeyValueInputs(e.remotes[0].headers??[]);return{mcpServerConfiguration:{config:{type:"http",url:e.remotes[0].url,headers:Object.keys(l).length?l:void 0},inputs:u.length?u:void 0},notices:[]}}let r=e.packages?.find(l=>l.registryType===n)??e.packages?.[0];if(!r)throw new Error("No server package found");let o=[],a=[],s={},c=[];if(r.registryType==="oci"&&(o.push("run"),o.push("-i"),o.push("--rm")),r.runtimeArguments?.length){let l=this.processArguments(r.runtimeArguments??[]);o.push(...l.args),a.push(...l.variables),c.push(...l.notices)}if(r.environmentVariables?.length){let{inputs:l,variables:u,notices:d}=this.processKeyValueInputs(r.environmentVariables??[]);a.push(...u),c.push(...d);for(let[p,m]of Object.entries(l))s[p]=m,r.registryType==="oci"&&(o.push("-e"),o.push(p))}switch(r.registryType){case"npm":o.push(r.version?`${r.identifier}@${r.version}`:r.identifier);break;case"pypi":o.push(r.version?`${r.identifier}==${r.version}`:r.identifier);break;case"oci":o.push(r.version?`${r.identifier}:${r.version}`:r.identifier);break;case"nuget":o.push(r.version?`${r.identifier}@${r.version}`:r.identifier),o.push("--yes"),r.packageArguments?.length&&o.push("--");break}if(r.packageArguments?.length){let l=this.processArguments(r.packageArguments);o.push(...l.args),a.push(...l.variables),c.push(...l.notices)}return{notices:c,mcpServerConfiguration:{config:{type:"stdio",command:this.getCommandName(r.registryType),args:o.length?o:void 0,env:Object.keys(s).length?s:void 0},inputs:a.length?a:void 0}}}getCommandName(e){switch(e){case"npm":return"npx";case"oci":return"docker";case"pypi":return"uvx";case"nuget":return"dnx"}return e}getVariables(e){let n=[];for(let[r,o]of Object.entries(e))n.push({id:r,type:o.choices?"pickString":"promptString",description:o.description??"",password:!!o.isSecret,default:o.default,options:o.choices});return n}processKeyValueInputs(e){let n=[],r={},o=[];for(let a of e){let s=a.variables?this.getVariables(a.variables):[],c=a.value||"";if(s.length){for(let l of s)c=c.replace(`{${l.id}}`,`\${input:${l.id}}`);o.push(...s)}else!c&&(a.description||a.choices||a.default!==void 0)&&(o.push({id:a.name,type:a.choices?"pickString":"promptString",description:a.description??"",password:!!a.isSecret,default:a.default,options:a.choices}),c=`\${input:${a.name}}`);r[a.name]=c}return{inputs:r,variables:o,notices:n}}processArguments(e){let n=[],r=[],o=[];for(let a of e){let s=a.variables?this.getVariables(a.variables):[];if(a.type==="positional"){let c=a.value;if(c){for(let l of s)c=c.replace(`{${l.id}}`,`\${input:${l.id}}`);n.push(c),s.length&&r.push(...s)}else a.valueHint&&(a.description||a.default!==void 0)?(r.push({id:a.valueHint,type:"promptString",description:a.description??"",password:!1,default:a.default}),n.push(`\${input:${a.valueHint}}`)):n.push(a.valueHint??"")}else if(a.type==="named"){if(!a.name){o.push(`Named argument is missing a name. ${JSON.stringify(a)}`);continue}if(n.push(a.name),a.value){let c=a.value;for(let l of s)c=c.replace(`{${l.id}}`,`\${input:${l.id}}`);n.push(c),s.length&&r.push(...s)}else if(a.description||a.default!==void 0){let c=a.name.replace(/^--?/,"");r.push({id:c,type:"promptString",description:a.description??"",password:!1,default:a.default}),n.push(`\${input:${c}}`)}}}return{args:n,variables:r,notices:o}}};var cq=class extends fe{constructor(n,r,o,a){super();this.telemetryService=n;this.logService=r;this.fetcherService=o;this.instantiationService=a;this._register(Fn(()=>this.pendingSetup?.cts.dispose(!0))),this._register(Sf.commands.registerCommand("github.copilot.chat.mcp.setup.flow",async s=>{let c="Failed",l;try{if(this.pendingSetup?.pendingArgs.name.toUpperCase()!==s.name.toUpperCase()){c="NameMismatch",Sf.window.showErrorMessage(Sf.l10n.t("Failed to generate MCP server configuration with a matching package name. Expected '{0}' but got '{1}' from generated configuration.",s.name,this.pendingSetup?.pendingArgs.name??""));return}return this.pendingSetup.canPrompt.complete(void 0),l=await this.pendingSetup.done,c="Done",l}finally{this.telemetryService.sendMSFTTelemetryEvent("mcp.setup.flow",{finalState:c,configurationType:l?.type,packageType:this.pendingSetup?.validateArgs.type,packageName:await this.lowerHash(this.pendingSetup?.pendingArgs.name||s.name),packageVersion:this.pendingSetup?.pendingArgs.version},{durationMs:this.pendingSetup?.stopwatch.elapsed()??-1})}})),this._register(Sf.commands.registerCommand("github.copilot.chat.mcp.setup.validatePackage",async s=>{let c=new Gi,l=await cq.validatePackageRegistry(s,this.logService,this.fetcherService);return l.state==="ok"&&this.enqueuePendingSetup(s,l,c),this.telemetryService.sendMSFTTelemetryEvent("mcp.setup.validatePackage",l.state==="ok"?{state:l.state,packageType:s.type,packageName:await this.lowerHash(l.name||s.name),packageVersion:l.version}:{state:l.state,packageType:s.type,packageName:await this.lowerHash(s.name),errorType:l.errorType},{durationMs:c.elapsed()}),l.state==="ok"?{state:"ok",publisher:l.publisher,name:l.name,version:l.version}:{state:"error",error:l.error,helpUri:l.helpUri,helpUriLabel:l.helpUriLabel,errorType:l.errorType}})),this._register(Sf.commands.registerCommand("github.copilot.chat.mcp.setup.check",()=>1))}async lowerHash(n){return n?await d0(n.toLowerCase()):void 0}async enqueuePendingSetup(n,r,o){let a=new Oi,s=new no,c=new Oit(gs(s.p,a.token)),l=(async()=>{if(r.getMcpServer){let y;try{y=await r.getMcpServer(s.p)}catch(v){this.logService.warn(`Unable to fetch MCP server configuration for ${n.type} package ${r.name}@${r.version}. Configuration will be generated from the package README. Error: ${v}`)}if(y)return{type:"mapped",name:r.name,server:y.config,inputs:y.inputs}}let u=`Generate an MCP configuration for ${n.name}`,p=await this.instantiationService.createInstance(sq,{toolCallLimit:100,conversation:new Yv(st(),[new h0(void 0,{type:"user",message:u})]),request:{attempt:0,enableCommandDetection:!1,isParticipantDetected:!1,location:fA.Panel,command:void 0,location2:void 0,model:(await Sf.lm.selectChatModels())[0],prompt:u,references:[],toolInvocationToken:st(),toolReferences:[],tools:new Map,id:"1",sessionId:"",sessionResource:Sf.Uri.parse("chat:/1"),hasHooksEnabled:!1},props:{targetSchema:n.targetConfig,packageName:r.name,packageVersion:r.version,packageType:n.type,pickRef:c,packageReadme:r.readme||""}}).run(void 0,a.token);if(p.response.type!=="success"){Sf.window.showErrorMessage(Sf.l10n.t("Failed to generate MCP configuration for {0}: {1}",n.name,p.response.reason));return}let{name:m,...A}=Bv(xh(p.response.value),y=>{try{let v=JSON.parse(y.code);if(v&&typeof v=="object"&&v.hasOwnProperty("mcpServers")){let[_,w]=Object.entries(v.mcpServers)[0];return{...w,name:_}}return v}catch{return}}),f=[],g,h=AX(A,y=>{if(typeof y=="string"){let v=c.picks.find(_=>_.choice===y);if(v){f.push({id:v.id,type:"promptString",description:v.title}),g??={};let _="${input:"+v.id+"}";return g[_]=y,_}}});return{type:"assisted",name:m,server:h,inputs:f,inputValues:g}})().finally(()=>{a.dispose(),c.dispose()});this.pendingSetup?.cts.dispose(!0),this.pendingSetup={cts:a,canPrompt:s,done:l,validateArgs:n,pendingArgs:r,stopwatch:o}}static async validatePackageRegistry(n,r,o){try{if(n.type==="npm"){let a=await o.fetch(`https://registry.npmjs.org/${encodeURIComponent(n.name)}`,{method:"GET",callSite:"mcp-npm-registry"});if(!a.ok)return{state:"error",errorType:"NotFound",error:Sf.l10n.t("Package {0} not found in npm registry",n.name)};let s=await a.json(),c=s["dist-tags"]?.latest;return{state:"ok",publisher:s.maintainers?.[0]?.name||"unknown",name:n.name,version:c,readme:s.readme}}else if(n.type==="pip"){let a=await o.fetch(`https://pypi.org/pypi/${encodeURIComponent(n.name)}/json`,{method:"GET",callSite:"mcp-pypi-registry"});if(!a.ok)return{state:"error",errorType:"NotFound",error:Sf.l10n.t("Package {0} not found in PyPI registry",n.name)};let s=await a.json(),c=s.info?.author||s.info?.author_email||"unknown",l=s.info?.name||n.name,u=s.info?.version;return{state:"ok",publisher:c,name:l,version:u,readme:s.info?.description}}else{if(n.type==="nuget")return await new $it(r,o).getNuGetPackageMetadata(n.name);if(n.type==="docker"){let[a,s]=n.name.includes("/")?n.name.split("/",2):["library",n.name],c=await o.fetch(`https://hub.docker.com/v2/repositories/${encodeURIComponent(a)}/${encodeURIComponent(s)}`,{method:"GET",callSite:"mcp-docker-registry"});if(!c.ok)return{state:"error",errorType:"NotFound",error:Sf.l10n.t("Docker image {0} not found in Docker Hub registry",n.name)};let l=await c.json();return{state:"ok",publisher:l.namespace||l.user||"unknown",name:n.name,readme:l.full_description||l.description}}}return{state:"error",error:Sf.l10n.t("Unsupported package type: {0}",n.type),errorType:"UnknownPackageType"}}catch(a){return{state:"error",error:Sf.l10n.t("Error querying package: {0}",a.message),errorType:"UnhandledError"}}}};cq=S([b(0,Ee),b(1,Z),b(2,nr),b(3,j)],cq);var Git=O(require("vscode"));Ar();Ue();var Qxa="github.copilot.notebookFollowInSessionEnabled",Jme=class extends fe{constructor(n,r){super();this._configurationService=n;this._notebookService=r;this.followSettingEnabled=this._configurationService.getConfig(H.NotebookFollowCellExecution),this.updateFollowContext(this.followSettingEnabled),this._register(Ko.runAndSubscribe(this._configurationService.onDidChangeConfiguration,o=>{(!o||o.affectsConfiguration(H.NotebookFollowCellExecution.fullyQualifiedId))&&(this.followSettingEnabled=this._configurationService.getConfig(H.NotebookFollowCellExecution),this.updateFollowContext(this.followSettingEnabled))})),this._register(Git.commands.registerCommand("github.copilot.chat.notebook.enableFollowCellExecution",()=>{this.updateFollowContext(!0)})),this._register(Git.commands.registerCommand("github.copilot.chat.notebook.disableFollowCellExecution",()=>{this.updateFollowContext(!1)}))}updateFollowContext(n){Git.commands.executeCommand("setContext",Qxa,n),this._notebookService.setFollowState(n)}};Jme=S([b(0,be),b(1,wi)],Jme);var hY=O(Lt()),uq=require("fs"),l6r=require("net"),Vu=O(require("vscode"));Xa();yr();Ue();sr();Be();var Y5r=O(Lt());Je();var Hit=()=>Y5r.t`The model asked to run a build task, which requires a workspace folder. Please open a folder and retry.`,lq=me("ILaunchConfigService");wr();Ot();Je();sr();So();Be();var Xs=O(Ye());yr();vi();sr();Ot();Be();var X5r=(t,e)=>{let n=xh(t),r=n?n.map(s=>s.code):[t],o=K5r(r,s=>{if(s&&"configurations"in s&&Array.isArray(s.configurations))return s.configurations=s.configurations.map(c=>J5r(c,e)),s;if(s&&"type"in s&&"request"in s)return{configurations:[J5r(s,e)]}}),a=K5r(r,s=>{if(s&&"tasks"in s&&Array.isArray(s.tasks))return s;if(s&&"type"in s&&"label"in s)return{tasks:[s]}});return o&&a?{...o,...a}:o};function K5r(t,e){for(let n of t)try{let r=wE(n),o=e(r);if(o)return o}catch{}}var Oxa=["name","type","request","debugServer","preLaunchTask","postDebugTask","presentation","internalConsoleOptions","suppressMultipleSessionWarning"];function J5r(t,e){"type"in t&&t.type==="python"&&(t.type="debugpy");let n=Uxa(t.type,e);if(!n)return t;for(let r of Object.keys(t))Oxa.includes(r)||r in n||delete t[r];return t}function e6r(t,e){for(let n of e.allAcrossExtensionHosts){let r=n.packageJSON?.contributes?.debuggers;if(!r)continue;let o=r.filter(s=>s.type===t&&!s.deprecated);if(!Array.isArray(o)||o.length===0)continue;let a=o.filter(s=>!!s.configurationAttributes.launch||!!s.configurationAttributes.attach).map(s=>{let c=[s.configurationAttributes.launch?.properties,s.configurationAttributes.attach?.properties].filter(l=>l!==void 0).flat();return Object.entries(c).map(l=>Object.entries(l[1]).map(u=>`${u[0]}: ${u[1].description||u[1].markdownDescription}`).flat()).flat()}).flat();if(a.length)return a}}function Uxa(t,e){for(let n of e.allAcrossExtensionHosts){let r=n.packageJSON?.contributes?.debuggers;if(!r)continue;let o=r.filter(a=>a.type===t&&!a.deprecated);if(!(!Array.isArray(o)||o.length===0))return o.flatMap(a=>[a.configurationAttributes.launch?.properties,a.configurationAttributes.attach?.properties]).filter(a=>a!==void 0).reduce((a,s)=>({...a,...s}),{})}}function qxa(t,e){let n={configurations:[{type:"node",request:"launch",name:"Launch Program",program:"${workspaceFolder}/app/index.js",args:["--serve"]}]},r={configurations:[{type:"cppvsdbg",request:"launch",name:"Launch Program",program:"${workspaceFolder}/${input:executableName}.exe",stopAtEntry:!0}],inputs:[{type:"promptString",id:"executableName",description:"Name of your executable"}]},o=a=>e===1?JSON.stringify(a):`\`\`\`json ${JSON.stringify(a,null,2)} \`\`\``;return t===0?`# Example User: My operating system is macOS. Create a debug configuration to do the following: launch my node app Assistant: ${o(n)} # Example User: My operating system is Windows. Create a debug configuration to do the following: debug my c++ program Assistant: ${o(r)} `:`# Example User: My operating system is macOS. In the working directory \${workspaceFolder}/app, I ran this on the command line: node ./index --serve Assistant: ${o(n)} # Example User: My operating system is Windows. In the working directory \${workspaceFolder}, I ran this on the command line: make test Assistant: ${o(r)} `}var Xme=class extends Xs.PromptElement{constructor(n,r,o,a,s,c,l,u){super(n);this.workspace=r;this.endpointProvider=o;this.instantiationService=a;this.extensionsService=s;this.fileSystemService=c;this.ignoreService=l;this.envService=u}async prepare(n,r,o){if(o.isCancellationRequested)return{};if(o.isCancellationRequested)return{};let a=await this.getDebuggerType(r,o),[s,c]=await Promise.all([this.getResources(a,r,o),this.getSchema(a,r,o)]);return{resources:s,schema:c}}async getFiles(n,r){let o=new Ji,a=h_.toURIs(this.workspace,n),s=p=>this.fileSystemService.stat(p).then(()=>!0,()=>!1),c=async p=>{if(o.has(p))return!0;let[m,A]=await Promise.all([s(p),this.ignoreService.isCopilotIgnored(p)]);return m&&!A?(o.add(p),!0):!1},l=a.map(async({file:p,relativePath:m})=>{if(!r||await s(p))return c(p);let A=r.value.flatMap(f=>f.tree.files.filter(g=>g.path.endsWith(m))).sort((f,g)=>f.path.length-g.path.length).at(0);if(A)return c(A)}),u=this.workspace.getWorkspaceFolders().at(0),d=a.at(0)??(u&&{file:u,workspaceFolder:u});if(d){for(let p of["launch.json","tasks.json"])l.push(c(K.joinPath(d.workspaceFolder,".vscode",p)));for(let p of["README.md","CONTRIBUTING.md"]){let m=d.workspaceFolder.fsPath;l.push($xa(d.file.fsPath,A=>A.length>=m.length?c(K.joinPath(K.file(A),p)):Promise.resolve(void 0)))}}return await Promise.all(l),[...o]}async getResources(n,r,o){let a=await this.queryModelForRequestedFiles(n,r,o);if(!(!a?.requestedFiles.length||o.isCancellationRequested))return this.getFiles(a.requestedFiles,a.structureMetadata)}async queryModelForRequestedFiles(n,r,o){let a=await this.endpointProvider.getChatEndpoint("copilot-fast"),c=await(this.props.input.type===1?en.create(this.instantiationService,a,aJt,{debuggerType:n,input:this.props.input,os:this.envService.OS}):en.create(this.instantiationService,a,oJt,{debuggerType:n,input:this.props.input,os:this.envService.OS})).render(void 0,o),l=c.metadata.get(Qre),u=await a.makeChatRequest("referenceFiles",c.messages,void 0,o,1);if(u.type!=="success")return;let d;try{d=JSON.parse(u.value)}catch{return}if(Array.isArray(d))return this.props.input.type===0&&(d.push("launch.json"),this.props.input.userQuery||d.push("README.md")),r?.report(new l0("Requesting resources")),{requestedFiles:d,structureMetadata:l}}async getSchema(n,r,o){if(!n)return;let a=e6r(n,this.extensionsService);if(a)return r?.report(new l0("Identified launch config properties")),a}async getDebuggerType(n,r){let o=await this.endpointProvider.getChatEndpoint("copilot-fast"),s=await en.create(this.instantiationService,o,sJt,{debuggerTypes:this.getAllDebuggerTypes(),input:this.props.input,os:this.envService.OS}).render(void 0,r),c=await o.makeChatRequest("debugType",s.messages,void 0,r,1);if(c.type==="success")return/`(.*?)`/.exec(c.value)?.[1]||c.value}getAllDebuggerTypes(){return this.extensionsService.allAcrossExtensionHosts.filter(n=>!!n.packageJSON?.contributes?.debuggers).map(n=>{let r=[];for(let o of n.packageJSON?.contributes?.debuggers)o.type==="*"||o.deprecated||r.push(`- ${o.type}: ${o.label} (${n.id})`);return r}).flat()}render(n,r){let o=this.props.input.type===1?1:0;return vscpp(vscppf,null,vscpp(Xs.SystemMessage,{priority:1e3},o===1?vscpp(vscppf,null,"You are a Visual Studio Code assistant who specializes in debugging and creating launch configurations. Your task is to create a launch configuration for the user's query.",vscpp("br",null)):vscpp(vscppf,null,"You are a Visual Studio Code assistant who specializes in debugging, searching for existing launch configurations, and creating launch configurations. Your task is to find an existing launch configuration that matches the query or to create a launch configuration for the user's query if no match is found. If there's no query, still provide a response, checking for existing configurations in the launch.json file, if any.",vscpp("br",null)),vscpp(lo,null),vscpp(Kr,null)),vscpp(Zi,{historyPriority:600,passPriority:!0,history:this.props.history},vscpp(Xt,{priority:1e3},o===0&&vscpp(vscppf,null,"The user cannot see the context you are given, so you must not mention it. If you want to refer to it, you must include it in your reply.",vscpp("br",null)),"Print out the VS Code `launch.json` file needed to debug the command, formatted as JSON.",vscpp("br",null),"If there are build steps needed before the program can be debugged, be sure to include a `preLaunchTask` property in the launch configuration. If you include a `preLaunchTask` property, ",n.resources?.some(a=>a.path.endsWith("launch.json"))?vscpp(vscppf,null," ","it must either refer to an existing a suitable task in the `tasks.json` file, or you must include a `tasks.json` file in your response that contains that configuration."):vscpp(vscppf,null," ","you MUST also include `tasks.json` file in your response that contains that configuration."),o===0&&vscpp(vscppf,null," ","Include a brief one or two sentence explaination of any such task definition is needed.",vscpp("br",null)),vscpp("br",null),"Pay attention to my operating system and suggest the best tool for the platform I'm working on. For example, for debugging native code on Windows, you would not suggest the `lldb` type.",vscpp("br",null),"If there are unknowns, such as the path to the program, use the `inputs` field in the launch.json schema to prompt the user with an informative message. Input types may either be `promptString` for free text input or `pickString` with an `options` array for enumerations.",vscpp("br",null),"Do not give any other explanation.",vscpp("br",null),"If there are unknowns, such as the path to the program, use the `inputs` field in the launch.json schema to prompt the user with an informative message. Input types may either be `promptString` for free text input or `pickString` with an `options` array for enumerations. Do not include a default value for the input field.",vscpp("br",null),"Always include the following properties in the launch.json file:",vscpp("br",null),"- type: the type of debugger to use for this launch configuration. Every installed debug extension introduces a type: node for the built-in Node debugger, for example, or php and go for the PHP and Go extensions.",vscpp("br",null),"- request: the request type of this launch configuration. Currently, launch and attach are supported.",vscpp("br",null),"- name: the reader-friendly name to appear in the Debug launch configuration dropdown.",vscpp("br",null),"If a result is not a valid answer, but it still relates to Visual Studio Code, please still respond.",vscpp("br",null),"Please do not guess a response and instead just respond with a polite apology if you are unsure.",vscpp("br",null),"If you believe the given context given to you is incorrect or not relevant you may ignore it.",vscpp("br",null),qxa(this.props.input.type,o),vscpp("br",null))),vscpp(Xs.UserMessage,{priority:700},n.docSearchResults&&n.docSearchResults.length>0&&vscpp(vscppf,null,"Below is a list of information from the Visual Studio Code documentation which might be relevant to the question. ",vscpp("br",null)),n.docSearchResults&&n.docSearchResults.map(a=>{a?.title&&a.contents&&(Xs.TextChunk,a?.title?.trim(),a.path,a.contents)})),vscpp(Xs.UserMessage,{priority:850},n.schema&&vscpp(vscppf,null,"Below is a list of properties that the launch config might include. ",vscpp("br",null),n.schema.map(a=>vscpp(Xs.TextChunk,null,a,vscpp("br",null))),")",vscpp("br",null))),vscpp(Xs.UserMessage,{priority:700,flexGrow:1},this.props.input.type===0?vscpp(vscppf,null,"If a program property is included in the launch config, and its path does not exist in the workspace or there are multiple files that could work, use the `inputs` field in the launch.json schema to prompt the user with an informative message.",vscpp("br",null),vscpp(h_,{maxSize:1e3})):vscpp(eAe,{input:this.props.input})),vscpp(Xs.UserMessage,{priority:800},n.resources&&n.resources.length>0&&vscpp(vscppf,null,"Below is a list of file contents from the workspace that might be useful in building the launch config. ",vscpp("br",null)),n.resources&&n.resources.map(a=>{let s=this.workspace.getWorkspaceFolder(a),c=s?a.path.substring(s.path.length+1):dr(a.path);return vscpp(Eh,{variableName:c,variableValue:a})})),vscpp(Xs.UserMessage,{priority:850},this.props.input.type===0&&n.resources?.some(a=>a.path.endsWith("launch.json"))&&vscpp(vscppf,null,this.props.input.userQuery?vscpp(vscppf,null,'Search in that provided launch.json file for an existing configuration based on the query "',this.props.input.userQuery,'". Pay particular attention to the name of the launch configuration and compare it to the query. If a match is found, include that configuration. Do not include the whole launch.json context. End the response with HAS_MATCH.',vscpp("br",null)):vscpp(vscppf,null,"Scan any provided documentation to determine which configuration in the provided launch.json file is recommended, if any. Show some, not all, of the launch configurations that are available. End the response with HAS_CONFIG_NO_QUERY.",vscpp("br",null)),"If no match is found, include the new configuration that was generated. End the response with GENERATED_CONFIG.",vscpp("br",null))),o===1?vscpp(Xs.UserMessage,{priority:850},vscpp(z,{name:"example"},"In this example, we're debugging a simple Python file, so we only need a launch.json:",vscpp("br",null),vscpp(z,{name:"request"},"In the working directory, I ran this on the command line: `python main.py`",vscpp("br",null)),vscpp(z,{name:"response"},"launch.json:",vscpp("br",null),"```json",vscpp("br",null),JSON.stringify({type:"python",request:"launch",name:"Launch Program",program:"${workspaceFolder}/main.py"},null," "),vscpp("br",null),"```",vscpp("br",null))),vscpp(z,{name:"example"},"In this example, generate both a launch.json and tasks.json because the program needs to be built before it can be debugged:",vscpp("br",null),vscpp(z,{name:"request"},"In the working directory, I ran this on the command line: `./my-program.exe`",vscpp("br",null)),vscpp(z,{name:"response"},"launch.json:",vscpp("br",null),"```json",vscpp("br",null),JSON.stringify({configurations:[{type:"cppvsdbg",request:"launch",name:"Launch Program",program:"${workspaceFolder}/my-program.exe",preLaunchTask:"build"}]},null," "),vscpp("br",null),"```",vscpp("br",null),"tasks.json:",vscpp("br",null),"```json",vscpp("br",null),JSON.stringify({tasks:[{type:"shell",label:"build",command:"make",args:["build"]}]},null," "),vscpp("br",null),"```",vscpp("br",null)))):vscpp(Xs.UserMessage,{priority:850},vscpp(z,{name:"example"},"In this example, we're debugging a simple Python file, so we only need a launch.json:",vscpp("br",null),vscpp(z,{name:"request"},`Here's a description of the app I want to debug: "python file"`,vscpp("br",null),"In my workspace I have the files main.py, tox.ini, and README.md.",vscpp("br",null)),vscpp(z,{name:"response"},"Here is your `launch.json` configuration:",vscpp("br",null),"```json",vscpp("br",null),JSON.stringify({type:"python",request:"launch",name:"Launch Program",program:"${workspaceFolder}/main.py"},null," "),vscpp("br",null),"```",vscpp("br",null))),vscpp(z,{name:"example"},"In this example, generate both a launch.json and tasks.json because the program needs to be built before it can be debugged:",vscpp("br",null),vscpp(z,{name:"request"},`Here's a description of the app I want to debug: "my-program"`,vscpp("br",null),"In my workspace I have the files Makefile, my-program.cpp.",vscpp("br",null)),vscpp(z,{name:"response"},"Here is your `launch.json` configuration:",vscpp("br",null),"```json",vscpp("br",null),JSON.stringify({configurations:[{type:"cppvsdbg",request:"launch",name:"Launch Program",program:"${workspaceFolder}/my-program.exe",preLaunchTask:"build"}]},null," "),vscpp("br",null),"```",vscpp("br",null),"It looks like you build your project using your Makefile, so let's add a `tasks.json` to do that before each debug session:",vscpp("br",null),"```json",vscpp("br",null),JSON.stringify({tasks:[{type:"shell",label:"build",command:"make",args:["build"]}]},null," "),vscpp("br",null),"```",vscpp("br",null)))),vscpp(tAe,{priority:900,input:this.props.input,os:this.envService.OS}))}};Xme=S([b(1,Te),b(2,tt),b(3,j),b(4,EA),b(5,yt),b(6,Dt),b(7,Zt)],Xme);var eAe=class extends Xs.PromptElement{constructor(n,r,o){super(n);this.instantiationService=r;this.workspaceService=o}async render(n,r,o,a){let s=r.tokenBudget/2,c=this.props.input.relativeCwd?this.workspaceService.getWorkspaceFolder(K.file(this.props.input.absoluteCwd)):void 0;if(c){let l=await this.instantiationService.invokeFunction(u=>J3(u,c,{maxLength:s},a??Yt.None));return vscpp(vscppf,null,"My workspace folder (`$","{","workspaceFolder","}","`) has the following structure:",vscpp("br",null),vscpp("br",null),vscpp("meta",{value:new Qre([{label:"",tree:l}]),local:!0}),l.tree)}return vscpp(h_,{maxSize:s})}};eAe=S([b(1,j),b(2,Te)],eAe);var oJt=class extends Xs.PromptElement{render(e,n){return vscpp(vscppf,null,vscpp(Xs.SystemMessage,{priority:10},"You are a Visual Studio Code assistant who specializes in debugging and creating launch configurations. Your job is to return an array of file names that may contain useful information to translate a user query into a VS Code debug configuration.",vscpp("br",null),"The user will give you a file tree. Make sure to fully qualify paths you return from the tree, including their parent directories:",vscpp("br",null),"Do not give any other explanation and return only a JSON array of strings. Avoid wrapping the whole response in triple backticks. Do not include any other information in your response.",vscpp("br",null),vscpp(Xs.TextChunk,{priority:8},"# Example 1",vscpp("br",null),"## User: ",vscpp("br",null),"I am working in a workspace that has the following structure: ",` \`\`\` src/ index.js app.js package.json \`\`\` `,"I want to: Create node app launch configuration",vscpp("br",null),"## Response:",vscpp("br",null),JSON.stringify(["package.json","src/index.js","src/app.js"]),vscpp("br",null),vscpp("br",null),"# Example 2",vscpp("br",null),"## User: ",vscpp("br",null),"I am working in a workspace that has the following structure: ",` \`\`\` src/ main.rs lib.rs Cargo.toml \`\`\` `,"I want to: Launch a rust app with lldb",vscpp("br",null),"## Response:",vscpp("br",null),JSON.stringify(["Cargo.toml","src/main.rs"]),vscpp("br",null),vscpp("br",null),"# Example 3",vscpp("br",null),"## User: ",vscpp("br",null),"I want to: Launch a go app",vscpp("br",null),"## Response:",vscpp("br",null),JSON.stringify(["main.go","go.mod"]),vscpp("br",null),vscpp("br",null))),vscpp(Xs.UserMessage,{priority:7},vscpp(h_,{maxSize:1e3})),vscpp(tAe,{priority:4,...this.props}))}},aJt=class extends Xs.PromptElement{render(e,n){return vscpp(vscppf,null,vscpp(Xs.SystemMessage,{priority:10},"You are a Visual Studio Code assistant who specializes in debugging and creating launch configurations. Your job is to return an array of file names that may contain useful information to translate a command line invocation into a VS Code debug configuration and build task.",vscpp("br",null),"For example, when running a command `make tests`, you should ask for the `Makefile` because it contains information about how the tests are run.",vscpp("br",null),"The user will give you a file tree. Make sure to fully qualify paths you return from the tree, including their parent directories:",vscpp("br",null),"Do not give any other explanation and return only a JSON array of strings. Avoid wrapping the whole response in triple backticks. Do not include any other information in your response.",vscpp("br",null),vscpp(Xs.TextChunk,{priority:8},"# Example",vscpp("br",null),"## User: ",vscpp("br",null),"I am working in a workspace that has the following structure: ","\n```\nmyapp/\n package.json\n```\n","I ran this on the command line: `npm run start`",vscpp("br",null),"## Response:",vscpp("br",null),JSON.stringify(["myapp/package.json"]),vscpp("br",null),vscpp("br",null),"# Example",vscpp("br",null),"## User: ",vscpp("br",null),"I ran this on the command line: cargo run",vscpp("br",null),"## Response:",vscpp("br",null),JSON.stringify(["Cargo.toml"]),vscpp("br",null),vscpp("br",null))),vscpp(Xs.UserMessage,{priority:7,flexGrow:1},vscpp(eAe,{input:this.props.input})),vscpp(tAe,{priority:4,...this.props}))}},tAe=class extends Xs.PromptElement{render(){return this.props.input.type===0&&this.props.input.userQuery?vscpp(Xs.UserMessage,null,"Here's a description of the app I want to debug: ",this.props.input.userQuery,this.props.debuggerType?` and the debugging type: ${this.props.debuggerType}`:""):this.props.input.type===0?this.props.debuggerType?vscpp(Xs.UserMessage,null,"I want to use the $",this.props.debuggerType," debug type for my configuration."):vscpp(Xs.UserMessage,null,"Find an existing launch config for my app or create one based on my project stucture and workspace"):vscpp(Xs.UserMessage,null,"My operating system is ",this.props.os,".",vscpp("br",null),"In the working directory `",(this.props.input.relativeCwd||this.props.input.absoluteCwd).replaceAll("\\","/"),"`, I ran this on the command line:",vscpp("br",null),"```\n"+this.props.input.args.map(e=>e.replaceAll(` `,"\\n")).join(` \\ `)+"\n```")}},sJt=class extends Xs.PromptElement{render(e,n){let r=this.props.input.type===1;return vscpp(vscppf,null,vscpp(Xs.SystemMessage,{priority:10},"You are a Visual Studio Code assistant. Your job is to assist users in using Visual Studio Code by providing knowledge to accomplish their task. Please do not guess a response and instead just respond with a polite apology if you are unsure.",vscpp("br",null),"You are a debugging expert. Your job is to return the debug type to use for launch config for the given use case.",vscpp("br",null),"Pay attention to my operating system and suggest the best tool for the platform I'm working on. For example, for debugging native code on Windows, you would not suggest the `lldb` type.",vscpp("br",null),this.props.input.type===1&&vscpp(vscppf,null,"The command I give you is used to run code that I'm working on. Although the command itself might not directly be my program, you should suggest a tool to debug the likely language I'm working in.",vscpp("br",null)),"The user will list the debug types they have installed, but this is not a complete list of debug types available. You may suggest a type outside of that list if it's a better fit.",vscpp("br",null),vscpp("br",null),vscpp(Xs.TextChunk,{priority:8},"# Example 1",vscpp("br",null),"## User: ",vscpp("br",null),r?"npx mocha":"Node.js",vscpp("br",null),"## Response:",vscpp("br",null),"`node`",vscpp("br",null),vscpp("br",null),"# Example 2",vscpp("br",null),"## User: ",vscpp("br",null),r?"python3 example.py":"Python",vscpp("br",null),"## Response:",vscpp("br",null),"`debugpy`",vscpp("br",null),vscpp("br",null),"# Example 3",vscpp("br",null),"## User: ",vscpp("br",null),r?"mvn test -Dtest=TestCircle":"Java",vscpp("br",null),"## Response:",vscpp("br",null),"`java`",vscpp("br",null),vscpp("br",null)),"Suggest the right debug type for my use case. Print ONLY the debug type. NEVER print any other explanation.",vscpp("br",null)),vscpp(Yd,{flexGrow:1,priority:7,embeddedInsideUserMessage:!1}),vscpp(tAe,{...this.props,priority:6}),vscpp(Xs.UserMessage,{priority:5,flexGrow:1},vscpp(Xs.TextChunk,null,"Here are the debug types I have installed:"),vscpp(Xs.TextChunk,{flexGrow:1,breakOnWhitespace:!0},this.props.debuggerTypes.join(` `))))}};async function $xa(t,e){for(;;){let n=await e(t);if(n!==void 0)return n;let r=nu(t);if(r===t)return;t=r}}var Wit=me("IDebugCommandToConfigConverter"),nAe=class{constructor(e,n,r,o,a){this.endpointProvider=e;this.instantiationService=n;this.workspace=r;this.telemetry=o;this.extensionsService=a}async convert(e,n,r){let o=zxa(e,this.workspace),a=await this.endpointProvider.getChatEndpoint("copilot-base"),c=await en.create(this.instantiationService,a,Xme,{input:{type:1,relativeCwd:o?.path,absoluteCwd:e,args:n},history:[]}).render(void 0,r),l=await a.makeChatRequest("debugCommandToConfig",c.messages,void 0,r,6);if(l.type!=="success")return{ok:!1,config:void 0,text:l.reason,workspaceFolder:o?.folder};let u=X5r(l.value,this.extensionsService);return this.telemetry.sendMSFTTelemetryEvent("onboardDebug.configGenerated",{configType:u?.configurations[0].type},{ok:u?1:0}),{ok:!0,config:u,text:l.value,workspaceFolder:o?.folder}}};nAe=S([b(0,tt),b(1,j),b(2,Te),b(3,Ee),b(4,EA)],nAe);function zxa(t,e){let n;for(let r of e.getWorkspaceFolders()){let o=va(r.fsPath,t),a=td(o)?1/0:em(o,"..");(!n||ao&&o.type===e.type))return!0}return!1}tryMatchExistingConfig(e,n){let r=this.readStoredConfigs(),o=r.findIndex(a=>a.cwd===e&&ru(a.args,n));if(o!==-1)return r[o]}readStoredConfigs(){return this.context.workspaceState.get(t6r,[])}saveConfigInLRU(e){let n=this.readStoredConfigs().slice(),r=n.indexOf(e);for(r>=1&&n.splice(r,1),n.unshift(e);n.length>Gxa;)n.pop();this.context.workspaceState.update(t6r,n)}};rAe=S([b(1,Ee),b(2,ut),b(3,Wit),b(4,EA),b(5,Te),b(6,lq)],rAe);var n6r=require("stream"),Zit=class extends n6r.Transform{constructor(n){super();this.prefix=[];this.splitSuffix=Buffer.alloc(0);if(typeof n=="string"&&n.length===1)this.splitter=n.charCodeAt(0);else if(typeof n=="number")this.splitter=n;else throw new Error("not implemented here")}_transform(n,r,o){let a=0;for(;athis.handleData(n)),this.ended=new Promise(n=>this.stream.on("end",()=>{this.didEnd=!0,n()}))}registerMethod(e,n){this.methods.set(e,n)}async callMethod(e,n){let r=this.idCounter++,o={id:r,method:e,params:n},a=new Promise((s,c)=>{this.pendingRequests.set(r,{resolve:s,reject:c})});return this.stream.write(JSON.stringify(o)+r6r),Promise.race([a,this.ended])}dispose(){this.didEnd=!0,this.stream.end();for(let{reject:e}of this.pendingRequests.values())e(new Error("RPC connection closed"));this.pendingRequests.clear()}async handleData(e){let n=JSON.parse(e.toString());if("method"in n){let{id:r,method:o,params:a}=n,s={id:r};try{if(this.methods.has(o)){let c=await this.methods.get(o)(a);s.result=c}else throw new Error(`Method not found: ${o}`)}catch(c){s.error={code:-1,message:String(c.stack||c)}}this.didEnd||this.stream.write(JSON.stringify(s)+r6r)}else{let{id:r,result:o,error:a}=n,s=this.pendingRequests.get(r);this.pendingRequests.delete(r),a!==void 0?s?.reject(new Error(a.message)):s?.resolve(o)}}};var i6r=O(Lt()),o6r=O(require("util")),iAe=class t{constructor(e){this.rpc=e}static{this.COPILOT_LABEL="Copilot"}get ended(){return this.rpc.ended}output(e,n){return this.rpc.callMethod("output",{category:e,output:n})}exit(e,n){return this.rpc.callMethod("exit",{code:e,error:n})}question(e,n,r=!1){return this.rpc.callMethod("question",{message:cJt("blue",t.COPILOT_LABEL,e),defaultValue:n,singleKey:r})}confirm(e,n){return this.rpc.callMethod("confirm",{message:cJt("blue",t.COPILOT_LABEL,e),defaultValue:n})}printLabel(e,n){return this.output("stdout",cJt(e,t.COPILOT_LABEL,n)+`\r `)}printJson(e){return this.output("stdout",(o6r.inspect(e,{colors:!0})+` `).replaceAll(` `,`\r `))}getFollowupKeys(e){let n=["enter","r","s","v","q"].map(a=>`\x1B[0m\x1B[1m${a}\x1B[0m\x1B[2m`),r=i6r.t("press {0} to re-run, {1} to regenerate, {2} to save config, {3} to view it, {4} to quit",...n),o=" ".repeat(e)+"\x1B[2m"+r+`\x1B[0m\r `;return this.rpc.callMethod("question",{message:o,singleKey:!0})}};function cJt(t,e,n){let r=o=>{switch(o){case"red":return"\x1B[31m";case"green":return"\x1B[32m";case"blue":return"\x1B[34m";case"cyan":return"\x1B[36m";default:return""}};return`\x1B[1m\x1B[7m${r(t)} ${e} \x1B[0m ${r(t)}${n}\x1B[0m`}var Yit=O(Lt()),Kit=O(require("vscode"));Ue();var a6r="__copilotTrackedSession",lJt=(t,e,n,r,o,a)=>{let s=st(),c=new it,l=!1,u=new Set;async function d(m,A){if(c.isDisposed)return;let f;m!==0?(f="red",A??=Yit.t("Debug session errored")):(f="blue",A??=Yit.t("Session ended")),r.printLabel(f,A),c.dispose(),p()}async function p(){switch(o?"Q":await r.getFollowupKeys(iAe.COPILOT_LABEL.length+3)){case"Enter":lJt(t,e,n,r,o,a);break;case"R":a({forceNew:!0});break;case"S":await t.add(e?.uri,{configurations:[n]}),e&&await t.show(e.uri,n.name),r.exit(0);break;case"V":await r.printJson(n),p();break;case"Q":default:r.exit(0)}}r.ended.then(()=>{c.isDisposed||u.forEach(m=>Kit.debug.stopDebugging(m))}),c.add(Kit.debug.registerDebugAdapterTrackerFactory("*",{createDebugAdapterTracker(m){if(m.configuration[a6r]!==s&&(!m.parentSession||!u.has(m.parentSession)))return;let A=!l;return l=!0,u.add(m),{onWillStartSession(){A&&r.printLabel("blue",Yit.t("Debug session starting..."))},onDidSendMessage(f){f.type==="event"&&f.event==="output"&&f.body.output&&r.output(f.body.category,f.body.output)},onExit(f,g){A&&d(f??0,g)},onWillStopSession(){A&&d(0)}}}})),Kit.debug.startDebugging(e,{...n,[a6r]:s}).then(m=>{m||d(1)})};var s6r=`#--------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. #--------------------------------------------------------------------------------------------- function Show-Help { Write-Host "Usage: copilot-debug [--print] [--no-cache] [--save] [--help] " Write-Host "" Write-Host "Options:" Write-Host " --print Print the generated configuration without running it" Write-Host " --no-cache Generate a new configuration without checking the cache." Write-Host " --save Save the configuration to your launch.json." Write-Host " --once Exit after the debug session ends." Write-Host " --help Print this help." } $flagConfig = @{ "--print" = $false "--no-cache" = $false "--help" = $false "--save" = $false "--once" = $false } $cmdArgs = $args while ($cmdArgs.Length -gt 0 -and $flagConfig.ContainsKey($cmdArgs[0])) { $flagConfig[$cmdArgs[0]] = $true $cmdArgs = $cmdArgs[1..$cmdArgs.Length] } if ($cmdArgs.Length -eq 0 -or $flagConfig["--help"]) { Show-Help exit $([int]$flagConfig["--help"]) } $pipeName = "copilot-dbg.$([System.Diagnostics.Process]::GetCurrentProcess().Id)-$([System.Guid]::NewGuid().ToString('N')).sock" $callbackUrl = "__CALLBACK_URL_PLACEHOLDER__" $remoteCommand = "__REMOTE_COMMAND_PLACEHOLDER__" $listener = [System.IO.Pipes.NamedPipeServerStream]::new($pipeName, [System.IO.Pipes.PipeDirection]::InOut, 1, [System.IO.Pipes.PipeTransmissionMode]::Byte, [System.IO.Pipes.PipeOptions]::Asynchronous) function Watch-Client { param ( [System.IO.Pipes.NamedPipeServerStream]$pipe, [string[]]$cmdArgs ) $reader = [System.IO.StreamReader]::new($pipe) $writer = [System.IO.StreamWriter]::new($pipe) $writer.AutoFlush = $true $request = @{ id = 0 method = "start" params = @{ cwd = (Get-Location).Path args = $cmdArgs forceNew = $flagConfig["--no-cache"] printOnly = $flagConfig["--print"] save = $flagConfig["--save"] once = $flagConfig["--once"] } } $writer.WriteLine((ConvertTo-Json -Compress $request)) while ($true) { $line = $reader.ReadLine() if ($null -eq $line) { break } try { $request = ConvertFrom-Json $line } catch { Write-Error "Failed to parse line: $line" continue } switch ($request.method) { "output" { $category = $request.params.category $output = $request.params.output if ($category -eq 'stderr') { [Console]::Error.Write($output) } elseif ($category -eq 'stdout') { [Console]::Out.Write($output) } elseif ($category -ne 'telemetry' -and $output) { Write-Host $output } $response = @{ id = $request.id result = $null } $writer.WriteLine((ConvertTo-Json -Compress $response)) } "question" { $defaultValue = $request.params.defaultValue $message = $request.params.message if ($request.params.singleKey) { Write-Host $message $answer = [Console]::ReadKey($true).Key.ToString() } else { $answer = Read-Host "$message$(if ($defaultValue) { " [$defaultValue]" } else { '' }) " } $response = @{ id = $request.id result = $answer } $writer.WriteLine((ConvertTo-Json -Compress $response)) } "confirm" { $message = $request.params.message $defaultValue = $request.params.defaultValue $answer = Read-Host "$message [$(if ($defaultValue) { 'Y/n' } else { 'y/N' })] " $response = @{ id = $request.id result = if ($answer -eq '') { $defaultValue } else { $answer.ToLower().Substring(0, 1) -eq 'y' } } $writer.WriteLine((ConvertTo-Json -Compress $response)) } "exit" { $code = $request.params.code $err = $request.params.error if ($err) { Write-Host "$err" } $response = @{ id = $request.id result = $null } $writer.WriteLine((ConvertTo-Json -Compress $response)) Exit $code } } } } if ($remoteCommand -eq "") { Start-Process -FilePath "cmd.exe" -ArgumentList "/c start \`"\`" \`"$callbackUrl/$pipeName\`"" -NoNewWindow } else { $fullCommand = "$remoteCommand\`"$callbackUrl/$pipeName\`"" Start-Process -FilePath "cmd.exe" -ArgumentList "/c $fullCommand" -NoNewWindow } $listener.WaitForConnection() Watch-Client -pipe $listener -cmdArgs $cmdArgs `;var c6r="copilot-chat.terminalToDebugging.registered",nQ="copilot-debug",uJt="copilotDebugCommand.js",oAe=class extends fe{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f){super();this.context=n;this.logService=r;this.instantiationService=o;this.configurationService=a;this.launchConfigService=s;this.authService=c;this.telemetryService=l;this.tasksService=u;this.terminalService=d;this._octoKitService=p;this._gitService=m;this._gitExtensionService=A;this.fileSystemService=f;this._register(Vu.window.registerUriHandler(this)),this._register(this.configurationService.onDidChangeConfiguration(v=>{v.affectsConfiguration(H.TerminalToDebuggerEnabled.fullyQualifiedId)&&(this.registerSerializer=this.registerSerializer.then(()=>this.registerEnvironment()))})),this._register(Vu.commands.registerCommand("github.copilot.chat.startCopilotDebugCommand",async()=>{let v=Vu.window.createTerminal();v.show(!1),v.sendText("copilot-debug ",!1)})),this.registerSerializer=this.registerEnvironment(),this.chatSessionsUriHandler=new Une(this._octoKitService,this._gitService,this._gitExtensionService,this.context,this.logService,this.fileSystemService,this.telemetryService),this.chatSessionsUriHandler.openPendingSession().catch(v=>{this.logService.error("Failed to check for pending chat sessions from debug command contribution:",v)});let g=new Vu.RelativePattern(this.context.globalStorageUri,".pendingSession"),h=Vu.workspace.createFileSystemWatcher(g);this._register(h);let y=async()=>{this.logService.info("Detected creation of pending session file from debug command contribution."),this.chatSessionsUriHandler.openPendingSession().catch(v=>{this.logService.error("Failed to open pending chat session after pending session file creation:",v)})};this._register(h.onDidCreate(async()=>{await y()})),this._register(h.onDidChange(async()=>{await y()}))}async ensureTask(n,r,o){return n?this.tasksService.hasTask(n,r)?!0:(o.printJson(r),await o.confirm(hY.t`The model indicates the above task should be run before debugging. Do you want to save+run it?`,!0)?(r.presentation??={},r.presentation.reveal="silent",await this.tasksService.ensureTask(n,r),!0):!1):(o.printLabel("red",Hit()),!1)}handleUri(n){if(this.chatSessionsUriHandler.canHandleUri(n))return this.chatSessionsUriHandler.handleUri(n);let r=process.platform==="win32"?"\\\\.\\pipe\\"+n.path.slice(1):n.path,o=new Oi,s=new URLSearchParams(n.query).get("referrer");this.telemetryService.sendMSFTTelemetryEvent("uriHandler",{referrer:s||"unknown"});let c=(0,l6r.connect)(r,()=>{this.logService.info(`Got a debug connection on ${r}`);let l=new Vit(c),u=new iAe(l),{launchConfigService:d,authService:p}=this,m=(f,g)=>u.exit(f,g),A=this.instantiationService.createInstance(rAe,{ensureTask:(f,g)=>this.ensureTask(f||Vu.workspace.workspaceFolders?.[0].uri,g,u),isGenerating:()=>u.printLabel("blue",hY.t("Generating debug configuration...")),prompt:async(f,g)=>u.question(f,g).then(h=>h||g)});l.registerMethod("start",async function f(g){p.copilotToken||await p.getGitHubSession("any",{createIfNone:{detail:hY.t("Sign in to GitHub to use Copilot debug.")}});let h=await A.start(g,o.token);switch(h.kind){case 0:await u.printLabel("red",hY.t`Could not create a launch configuration: ${h.text}`),await m(1);break;case 1:g.printOnly?(await u.output("stdout",JSON.stringify(h.config,void 0,2).replaceAll(` `,`\r `)),await m(0)):g.save?u.confirm(hY.t("Configuration saved, debug now?"),!0).then(y=>{y&&Vu.debug.startDebugging(h.folder&&Vu.workspace.getWorkspaceFolder(h.folder),h.config),m(0)}):lJt(d,h.folder&&Vu.workspace.getWorkspaceFolder(h.folder),{...h.config,internalConsoleOptions:"neverOpen"},u,g.once,y=>f({...g,...y}));break;case 3:m(1);break;case 2:u.confirm(hY.t`We generated a "${h.debugType}" debug configuration, but you don't have an extension installed for that. Do you want to look for one?`,!0).then(y=>{y&&Vu.commands.executeCommand("workbench.extensions.search",`@category:debuggers ${h.debugType}`),m(0)});break;default:ai(h)}})});c.on("error",l=>{this.logService.error(`Error connecting to debug client on ${r}: ${l}`),o.dispose(!0)}),c.on("end",()=>{o.dispose(!0)})}getVersionNonce(){return this.context.extensionMode!==Vu.ExtensionMode.Production?String(Date.now()):(Vu.extensions.getExtension(CA)?.packageJSON.version??String(Date.now()))+"/"+Vu.env.remoteName}async registerEnvironment(){let n=this.configurationService.getConfig(H.TerminalToDebuggerEnabled);if(!this.context.globalStorageUri)return;let o=zr(this.context.globalStorageUri.fsPath,"debugCommand"),a=this.context.globalState.get(c6r),s=this.getVersionNonce();n?a?a.version!==s?(this.terminalService.contributePath("copilot-debug",o,{command:nQ}),await this.fillStoragePath(o)):n&&this.terminalService.contributePath("copilot-debug",o,{command:nQ}):(this.terminalService.contributePath("copilot-debug",o,{command:nQ}),await this.fillStoragePath(o)):a&&(this.terminalService.removePathContribution("copilot-debug"),await uq.promises.rm(a.location,{recursive:!0,force:!0})),this.context.globalState.update(c6r,n?{location:o,version:s}:void 0)}async fillStoragePath(n){let r=Vu.Uri.from({scheme:Vu.env.uriScheme,authority:CA}),o="";if(Vu.env.remoteName&&(o=(Vu.env.appName.includes("Insider")?"code-insiders":"code")+" --openExternal "),await uq.promises.mkdir(n,{recursive:!0}),process.platform==="win32"){let a=zr(n,`${nQ}.ps1`);await uq.promises.writeFile(a,s6r.replaceAll("__CALLBACK_URL_PLACEHOLDER__",r).replaceAll("__REMOTE_COMMAND_PLACEHOLDER__",o)),await uq.promises.writeFile(zr(n,`${nQ}.bat`),Vxa(a))}else{let a=zr(n,nQ);await uq.promises.writeFile(a,Zxa(o,n,r)),await uq.promises.chmod(a,488)}await uq.promises.copyFile(zr(__dirname,uJt),zr(n,uJt))}};oAe=S([b(0,ut),b(1,Z),b(2,j),b(3,be),b(4,lq),b(5,at),b(6,Ee),b(7,lI),b(8,Vd),b(9,Ua),b(10,ei),b(11,is),b(12,yt)],oAe);var Zxa=(t,e,n)=>`#!/bin/sh unset NODE_OPTIONS ELECTRON_RUN_AS_NODE=1 "${process.execPath}" "${zr(e,uJt)}" "${n}" "${t}" "$@"`,Vxa=t=>`@echo off powershell -ExecutionPolicy Bypass -File "${t}" %* `;var iQ=O(require("vscode"));Ue();Je();wr();Ue();sr();Ot();var rQ=O(Ye());Je();Be();var Yxa=/\s*(?:. )?([a-z0-9_-]+)\s*/,Jit=me("ILanguageToolsProvider"),aAe=class{constructor(e,n){this.endpointProvider=e;this.instantiationService=n}async getToolsForLanguages(e,n){let r=await this.endpointProvider.getChatEndpoint("copilot-base"),a=await en.create(this.instantiationService,r,dJt,{languages:e}).render(void 0,n),s=await r.makeChatRequest("debugCommandIdentifier",a.messages,void 0,n,6);return s.type!=="success"?{ok:!1,commands:[]}:{ok:!0,commands:s.value.split(` `).map(c=>Yxa.exec(c)?.[1]).filter(c=>!!c)}}};aAe=S([b(0,tt),b(1,j)],aAe);var dJt=class extends rQ.PromptElement{render(e,n){return vscpp(vscppf,null,vscpp(rQ.SystemMessage,{priority:10},"You are an AI programming assistant that is specialized for usage of command-line tools developers use to build software.",vscpp("br",null),"I'm working on software in the given following languages. Please list the names of common command-line tools I might use to build and test my software.",vscpp("br",null),"Do NOT list tools that don't run my code, such as those used only for linting. For example, if I ask for JavaScript, the list should include tools like node, npx, and mocha, but not eslint.",vscpp("br",null),"Be thorough! Try to give a list of *at least* 10 such tools.",vscpp("br",null),"Print these tools out as a list, separated by commas. Do NOT print any additional explanation or context.",vscpp("br",null),vscpp(rQ.TextChunk,{priority:8},"# Example",vscpp("br",null),"## User: ",vscpp("br",null),"- python",vscpp("br",null),"- rust",vscpp("br",null),"## Response:",vscpp("br",null),"- python",vscpp("br",null),"- pip",vscpp("br",null),"- cargo",vscpp("br",null),"- rustc",vscpp("br",null))),vscpp(rQ.UserMessage,{priority:9},vscpp(rQ.TextChunk,{breakOnWhitespace:!0,flexGrow:1},"The languages I'm working in are:",vscpp("br",null),this.props.languages.join(` -`))))}};var Xit=me("IDebuggableCommandIdentifier"),sAe=class extends fe{constructor(n,r,o,a,s){super();this.configurationService=n;this.context=r;this.languageToolsProvider=a;this.fileSystemService=s;this.recentlySeenLanguages=new Set;this._register(o.onDidOpenTextDocument(c=>{Xxa.includes(c.languageId)||this.recentlySeenLanguages.add(c.languageId)}))}async isDebuggable(n,r,o){if(!this.isGloballyEnabled())return!1;let a=Kxa(r).toLowerCase();return this.getSpecificTreatment(a)??this.isWellKnownCommand(a)??await this.isWorkspaceLocal(n,a)??await this.isModelSuggestedCommand(a,o)??!1}isGloballyEnabled(){return this.configurationService.getConfig(H.TerminalToDebuggerEnabled)}async isWorkspaceLocal(n,r){let o=td(r)?K.file(r):n&&K.joinPath(n,r);if(o)try{return await this.fileSystemService.stat(o),!0}catch{}}async isModelSuggestedCommand(n,r){let o=this.loadModelKnownCommands();for(let l of o.languages)this.recentlySeenLanguages.delete(l);if(o.commands.some(l=>this.commandIncludes(n,l)))return!0;if(!this.recentlySeenLanguages.size)return!1;let a=[...this.recentlySeenLanguages];this.recentlySeenLanguages.clear();let{commands:s,ok:c}=await this.languageToolsProvider.getToolsForLanguages(a,r);return c&&this.storeModelKnownCommands({languages:o.languages.concat(a),commands:IFe(o.commands.concat(s))}),s.some(l=>this.commandIncludes(n,l))}isWellKnownCommand(n){return Jxa.some(r=>this.commandIncludes(n,r))||void 0}getSpecificTreatment(n){let r=this.configurationService.getConfig(H.Advanced.TerminalToDebuggerPatterns);for(let o of r){if(o.startsWith("!")&&this.commandIncludes(n,o))return!1;if(this.commandIncludes(n,o))return!0}}commandIncludes(n,r){let o=n.indexOf(r);return o>=0&&(o===0||n[o-1]===" ")&&(o+r.length===n.length||n[o+r.length]===" ")}loadModelKnownCommands(){return this.context.globalState.get(u6r,{languages:[],commands:[]})}storeModelKnownCommands(n){return this.context.globalState.update(u6r,n)}};sAe=S([b(0,be),b(1,ut),b(2,Te),b(3,Jit),b(4,yt)],sAe);var u6r="chat.debuggableCommands";function Kxa(t){let n=/\s*([^\s]+)/.exec(t);return n?n[1]:t}var Jxa=["abap","ant","automake","autotools","ava","babel","bcp","behat","behave","biber","bibtex","bmake","boot","broccoli-sass","browserify","build_runner","bundler","busted","cabal","cargo","cargo-bench","cargo-fuzz","cargo-make","cargo-run","cargo-test","cargo-watch","carthage","carton","clang","clippy-driver","clj","clojure","cmake","cocoapods","codeception","common_test","composer","conan","coverage","cpan","cpanm","csc","ct_run","ctest","cucumber","cuda-gdb","cuda-memcheck","cypress","dart","dart-sass","dart2js","dartanalyzer","dartdevc","db2cli","ddemangle","devenv","devtools","dfix","dialyzer","dmd","doctest","dotnet","dotnet-script","dotnet-test-nunit","dotnet-test-xunit","dpp","dscanner","dsymutil","dub","dune","dustmite","dvilualatex","dvipdf","dvipdfmx","dvips","erl","erlang","erlc","esbuild","escript","eunit","eyeglass","fastlane","fennel","flutter","forever","fpc","fsharpc","fsi","g","gaiden","gcc","gcov","gdb","gdc","ghc","ghcid","gmake","gmaven","go","gpars","gradle","grape","griffon","grinder","grip","groovy","groovyc","grunt","grunt-sass","gulp","gulp-sass","hdevtools","hlint","hspec","irb","isql","jasmine","java","javac","jazzy","jdeps","jest","jlink","julia","junit","kaocha","karma","kobalt","kotest","kotlin-dsl","kotlinc","kscript","latexmk","lazbuild","lcov","ld","ldc2","ldoc","leiningen","lldb","lua","luacheck","luajit","lualatex","luarocks","luaunit","make","markdown","markdown-it","markdown-pdf","marked","matlab","maven","mbuild","mcc","md2pdf","mdbook","merlin","mex","midje","minitest","mlint","mmake","mocha","mockk","mono","moonscript","msbuild","mssql-cli","mstest","multimarkdown","mysql","ncu","ninja","nmake","node","node-sass","nose","npm","npx","nrepl","nsight","nsys","nunit-console","nvcc","ocamlbuild","ocamlc","ocamldebug","ocamlfind","ocamlopt","ocamlrun","opam","otest","otool","paket","panda","pandoc","parcel","pdflatex","perl","perl6","perlbrew","pgbench","phing","php","php-cs-fixer","phpcs","phpdbg","phpstan","phpunit","pip","pipenv","plackup","playwright","pm2","pmake","powershell","ppc386","ppcrossarm","ppcrossavr","ppcrossmips","ppcrossppc","ppcrosssparc","ppcrosswin32","ppcrossx64","protractor","prove","pry","psql","psysh","pub","pwsh","pytest","python","qmake","quickcheck","rails","rake","rakudo","rdmd","react-scripts","rebar3","relx","remake","rollup","rspec","rubocop","ruby","runghc","rustc","rustup","sass","sassc","scons","showdown","sinatra","speclj","spek","spock","spring-boot","sqlcmd","sqlite3","sqsh","stack","svelte-kit","swift","swiftc","test","test-runner","testng","testthat","tools","torch","tox","ts-node","tsc","unittest","utop","valgrind","vbc","virtualenv","vite","vstest","vue-cli-service","vue-test-utils","webdev","webpack","x","xcodebuild","xctest","xelatex","xunit","yarn","zef","zig"],Xxa=["abap","bat","bibtex","c","clojure","code-refactoring","coffeescript","cpp","csharp","css","cuda-cpp","d","dart","diff","dockercompose","dockerfile","erlang","fsharp","git-commit","git-rebase","github-issues","go","graphql","groovy","haml","handlebars","haskell","html","ini","jade","java","javascript","javascriptreact","json","jsonc","julia","kotlin","latex","less","log","lua","makefile","markdown","matlab","objective-c","objective-cpp","ocaml","pascal","perl","perl6","php","pip-requirements","plaintext","powershell","pug","python","r","razor","ruby","rust","sass","scss","shaderlab","shellscript","slim","snippets","sql","stylus","svelte","swift","tex","text","toml","typescript","typescriptreact","vb","vue","vue-html","xml","xsl","yaml","zig"];var eEa="copilot-chat.terminalToDebugging",tEa="copilot-chat.terminalToDebuggingSuccess",cAe=class extends fe{constructor(n){super();this.debuggableCommandIdentifier=n;this.lastExecutionFor=new Map;this._register(iQ.window.registerTerminalQuickFixProvider(eEa,this)),this._register(iQ.window.registerTerminalQuickFixProvider(tEa,this)),this._register(iQ.window.onDidCloseTerminal(r=>{this.lastExecutionFor.delete(r)})),this._register(iQ.window.onDidStartTerminalShellExecution(r=>{this.lastExecutionFor.set(r.terminal,r)})),this._register(iQ.commands.registerCommand("github.copilot.chat.rerunWithCopilotDebug",()=>{let r=iQ.window.activeTerminal,o=r&&this.lastExecutionFor.get(r);o&&r.sendText(`${nQ} ${o.execution.commandLine.value}`,!0)}))}async provideTerminalQuickFixes(n,r){let a=iQ.window.activeTerminal?.shellIntegration?.cwd;if(await this.debuggableCommandIdentifier.isDebuggable(a,n.commandLine,r))return{terminalCommand:`${nQ} ${n.commandLine}`,shouldExecute:!1}}};cAe=S([b(0,Xit)],cAe);var h6r=O(require("os")),qk=O(require("vscode"));$s();var A6r=require("fs"),f6r=require("node:sqlite"),g6r=require("path");Je();M9();var d6r=1,p6r=7*24*60*60*1e3,m6r=100,Oy={operation_name:$e.OPERATION_NAME,provider_name:$e.PROVIDER_NAME,agent_name:$e.AGENT_NAME,conversation_id:$e.CONVERSATION_ID,request_model:$e.REQUEST_MODEL,response_model:$e.RESPONSE_MODEL,input_tokens:$e.USAGE_INPUT_TOKENS,output_tokens:$e.USAGE_OUTPUT_TOKENS,cached_tokens:$e.USAGE_CACHE_READ_INPUT_TOKENS,reasoning_tokens:$e.USAGE_REASONING_TOKENS,tool_name:$e.TOOL_NAME,tool_call_id:$e.TOOL_CALL_ID,tool_type:$e.TOOL_TYPE,chat_session_id:Vn.CHAT_SESSION_ID,turn_index:Vn.TURN_INDEX,ttft_ms:Vn.TIME_TO_FIRST_TOKEN},tot=me("IOTelSqliteStore"),eot=class{constructor(e){this._db=null;this._insertSpanStmt=null;this._insertAttrStmt=null;this._insertEventStmt=null;this._beginTx=null;this._commitTx=null;this._rollbackTx=null;this._dbPath=e}get dbPath(){return this._dbPath}insertSpan(e){this._ensureDb();try{this._beginTx.run(),this._insertSpanStmt.run(e.spanId,e.traceId,e.parentSpanId??null,e.name,e.startTime,e.endTime,e.status.code,e.status.message??null,this._attr(e,Oy.operation_name),this._attr(e,Oy.provider_name),this._attr(e,Oy.agent_name),this._attr(e,Oy.conversation_id),this._attr(e,Oy.request_model),this._attr(e,Oy.response_model),this._attr(e,Oy.input_tokens),this._attr(e,Oy.output_tokens),this._attr(e,Oy.cached_tokens),this._attr(e,Oy.reasoning_tokens),this._attr(e,Oy.tool_name),this._attr(e,Oy.tool_call_id),this._attr(e,Oy.tool_type),this._attr(e,Oy.chat_session_id),this._attr(e,Oy.turn_index),this._attr(e,Oy.ttft_ms));for(let[n,r]of Object.entries(e.attributes)){let o=Array.isArray(r)?JSON.stringify(r):String(r);this._insertAttrStmt.run(e.spanId,n,o)}for(let n of e.events){let r=n.attributes?JSON.stringify(n.attributes):null;this._insertEventStmt.run(e.spanId,n.name,n.timestamp,r)}this._commitTx.run()}catch(n){try{this._rollbackTx.run()}catch{}throw n}}getSpansByTraceId(e){return this._ensureDb().prepare("SELECT * FROM spans WHERE trace_id = ? ORDER BY start_time_ms").all(e)}getSpansByConversationId(e){return this._ensureDb().prepare("SELECT * FROM spans WHERE conversation_id = ? OR chat_session_id = ? ORDER BY start_time_ms").all(e,e)}getSpanAttributes(e){return this._ensureDb().prepare("SELECT key, value FROM span_attributes WHERE span_id = ?").all(e)}getSpanAttribute(e,n){return this._ensureDb().prepare("SELECT value FROM span_attributes WHERE span_id = ? AND key = ?").get(e,n)?.value??null}getSpanEvents(e){return this._ensureDb().prepare("SELECT * FROM span_events WHERE span_id = ? ORDER BY timestamp_ms").all(e)}getTraceIds(e){let n=this._ensureDb();return e?n.prepare("SELECT DISTINCT trace_id FROM spans WHERE conversation_id = ? OR chat_session_id = ?").all(e,e).map(o=>o.trace_id):n.prepare("SELECT DISTINCT trace_id FROM spans").all().map(r=>r.trace_id)}getSessions(e){let n=e?"SELECT * FROM sessions ORDER BY started_at DESC LIMIT ?":"SELECT * FROM sessions ORDER BY started_at DESC";return e?this._ensureDb().prepare(n).all(e):this._ensureDb().prepare(n).all()}getSessionsSince(e){return this._ensureDb().prepare("SELECT * FROM sessions WHERE started_at >= ? ORDER BY started_at DESC").all(e)}cleanup(e=p6r){let n=Date.now()-e,r=this._ensureDb().prepare("DELETE FROM spans WHERE start_time_ms < ?").run(n);return Number(r.changes)}checkpoint(){this._ensureDb().exec("PRAGMA wal_checkpoint(TRUNCATE)")}close(){this._db&&(this._db.close(),this._db=null,this._insertSpanStmt=null,this._insertAttrStmt=null,this._insertEventStmt=null,this._beginTx=null,this._commitTx=null,this._rollbackTx=null)}_attr(e,n){let r=e.attributes[n];return r===void 0?null:Array.isArray(r)?JSON.stringify(r):typeof r=="boolean"?r?1:0:r}_ensureDb(){if(this._db)return this._db;(0,A6r.mkdirSync)((0,g6r.dirname)(this._dbPath),{recursive:!0});let e=new f6r.DatabaseSync(this._dbPath);try{e.exec("PRAGMA journal_mode = WAL"),e.exec("PRAGMA busy_timeout = 3000"),e.exec("PRAGMA foreign_keys = ON"),this._db=e,this._ensureSchema(),this._prepareStatements(e),this._cleanupOnStartup(e)}catch(n){throw e.close(),this._db=null,n}return this._db}_prepareStatements(e){this._insertSpanStmt=e.prepare(` INSERT OR REPLACE INTO spans ( span_id, trace_id, parent_span_id, name, start_time_ms, end_time_ms, status_code, status_message, operation_name, provider_name, agent_name, conversation_id, request_model, response_model, input_tokens, output_tokens, cached_tokens, reasoning_tokens, tool_name, tool_call_id, tool_type, chat_session_id, turn_index, ttft_ms ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) `),this._insertAttrStmt=e.prepare("INSERT OR REPLACE INTO span_attributes (span_id, key, value) VALUES (?, ?, ?)"),this._insertEventStmt=e.prepare("INSERT INTO span_events (span_id, name, timestamp_ms, attributes) VALUES (?, ?, ?, ?)"),this._beginTx=e.prepare("BEGIN"),this._commitTx=e.prepare("COMMIT"),this._rollbackTx=e.prepare("ROLLBACK")}_ensureSchema(){let e=this._db;((()=>{try{return e.prepare("SELECT version FROM schema_version LIMIT 1").get()}catch{return}})()?.version??0)>=d6r||e.exec(` CREATE TABLE IF NOT EXISTS schema_version (version INTEGER PRIMARY KEY); INSERT OR REPLACE INTO schema_version (version) VALUES (${d6r}); CREATE TABLE IF NOT EXISTS spans ( span_id TEXT PRIMARY KEY, trace_id TEXT NOT NULL, parent_span_id TEXT, name TEXT NOT NULL, start_time_ms INTEGER NOT NULL, end_time_ms INTEGER NOT NULL, status_code INTEGER NOT NULL DEFAULT 0, status_message TEXT, operation_name TEXT, provider_name TEXT, agent_name TEXT, conversation_id TEXT, request_model TEXT, response_model TEXT, input_tokens INTEGER, output_tokens INTEGER, cached_tokens INTEGER, reasoning_tokens INTEGER, tool_name TEXT, tool_call_id TEXT, tool_type TEXT, chat_session_id TEXT, turn_index INTEGER, ttft_ms REAL ); CREATE TABLE IF NOT EXISTS span_attributes ( span_id TEXT NOT NULL REFERENCES spans(span_id) ON DELETE CASCADE, key TEXT NOT NULL, value TEXT, PRIMARY KEY (span_id, key) ); CREATE TABLE IF NOT EXISTS span_events ( id INTEGER PRIMARY KEY AUTOINCREMENT, span_id TEXT NOT NULL REFERENCES spans(span_id) ON DELETE CASCADE, name TEXT NOT NULL, timestamp_ms INTEGER NOT NULL, attributes TEXT ); CREATE INDEX IF NOT EXISTS idx_spans_trace ON spans(trace_id); CREATE INDEX IF NOT EXISTS idx_spans_conversation ON spans(conversation_id); CREATE INDEX IF NOT EXISTS idx_spans_chat_session ON spans(chat_session_id); CREATE INDEX IF NOT EXISTS idx_spans_operation ON spans(operation_name); CREATE INDEX IF NOT EXISTS idx_spans_start_time ON spans(start_time_ms); CREATE INDEX IF NOT EXISTS idx_span_events_span ON span_events(span_id); -- Session view: derives session boundaries from span data. -- No separate sessions table needed \u2014 invoke_agent spans define session lifecycle. CREATE VIEW IF NOT EXISTS sessions AS SELECT COALESCE(conversation_id, chat_session_id) AS session_id, agent_name, response_model AS model, MIN(start_time_ms) AS started_at, MAX(end_time_ms) AS ended_at, MAX(end_time_ms) - MIN(start_time_ms) AS duration_ms, COUNT(*) AS span_count, SUM(CASE WHEN operation_name = 'chat' THEN 1 ELSE 0 END) AS llm_calls, SUM(CASE WHEN operation_name = 'execute_tool' THEN 1 ELSE 0 END) AS tool_calls, SUM(CASE WHEN operation_name = 'chat' THEN input_tokens ELSE 0 END) AS total_input_tokens, SUM(CASE WHEN operation_name = 'chat' THEN output_tokens ELSE 0 END) AS total_output_tokens, SUM(CASE WHEN operation_name = 'chat' THEN cached_tokens ELSE 0 END) AS total_cached_tokens FROM spans WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL GROUP BY COALESCE(conversation_id, chat_session_id); `)}_cleanupOnStartup(e){let n=Date.now()-p6r;e.prepare("DELETE FROM spans WHERE start_time_ms < ?").run(n);let r=e.prepare(` SELECT MIN(max_start) AS cutoff_ms FROM ( SELECT MAX(start_time_ms) AS max_start FROM spans WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL GROUP BY COALESCE(conversation_id, chat_session_id) ORDER BY max_start DESC LIMIT ? ) `).get(m6r);r?.cutoff_ms&&e.prepare(` DELETE FROM spans WHERE start_time_ms < ? AND COALESCE(conversation_id, chat_session_id) NOT IN ( SELECT COALESCE(conversation_id, chat_session_id) FROM spans WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL GROUP BY COALESCE(conversation_id, chat_session_id) ORDER BY MAX(start_time_ms) DESC LIMIT ? ) `).run(r.cutoff_ms,m6r)}};Ue();var lAe=class extends fe{constructor(n,r,o){super();this._otelService=n;this._sqliteStore=r;this._logService=o;this._otelService.config.enabled?this._logService.info(`[OTel] Instrumentation enabled \u2014 exporter=${this._otelService.config.exporterType} endpoint=${this._otelService.config.otlpEndpoint} captureContent=${this._otelService.config.captureContent}`):this._logService.trace("[OTel] Instrumentation disabled"),this._register(qk.commands.registerCommand("github.copilot.chat.otel.flush",async()=>{this._otelService.config.enabled&&(this._logService.info("[OTel] Flush requested \u2014 exporting pending traces, metrics, and events"),await this._otelService.flush(),this._logService.info("[OTel] Flush complete"))})),this._register(qk.commands.registerCommand("github.copilot.chat.otel.exportAgentTracesDB",async a=>{let s=this._sqliteStore.dbPath;if(!s)return;let c=qk.Uri.file(s),l;if(a){let u=typeof a=="string"?qk.Uri.file(a):a;l=qk.Uri.joinPath(u,"agent-traces.db")}else{let u=await qk.window.showSaveDialog({defaultUri:qk.Uri.file(h6r.homedir()+"/agent-traces.db"),filters:{"SQLite Database":["db"]},title:"Export Agent Traces DB"});if(!u)return;l=u}await this._otelService.flush(),this._sqliteStore.checkpoint(),await qk.workspace.fs.copy(c,l,{overwrite:!0}),this._logService.info(`[OTel] Exported agent-traces.db to ${l.fsPath}`)}))}dispose(){this._sqliteStore.close(),this._otelService.config.enabled&&this._logService.info("[OTel] Shutting down \u2014 flushing pending traces, metrics, and events"),this._otelService.shutdown().catch(n=>{this._logService.error("[OTel] Error during shutdown:",String(n))}),super.dispose()}};lAe=S([b(0,On),b(1,tot),b(2,Z)],lAe);var Og=O(require("vscode"));Ue();var uAe=class extends fe{constructor(n){super();this.logService=n;this.id="powerStateLogger";this._register(Og.commands.registerCommand("github.copilot.debug.togglePowerSaveBlocker",async()=>{let r=await this._toggleManualPowerSaveBlocker();Og.window.showInformationMessage(r?"Power save blocker is now active":"Power save blocker is now inactive")})),this.logInitialPowerState(),this._register(Og.env.power.onDidSuspend(()=>{this.logService.debug("[Power] System is suspending (going to sleep)")})),this._register(Og.env.power.onDidResume(()=>{this.logService.debug("[Power] System is resuming from sleep")})),this._register(Og.env.power.onDidChangeOnBatteryPower(r=>{this.logService.debug(`[Power] Battery power state changed: ${r?"on battery":"on AC power"}`)})),this._register(Og.env.power.onDidChangeThermalState(r=>{this.logService.debug(`[Power] Thermal state changed: ${r}`)})),this._register(Og.env.power.onDidChangeSpeedLimit(r=>{this.logService.debug(`[Power] CPU speed limit changed: ${r}% ${r<100?"(throttled)":""}`)})),this._register(Og.env.power.onWillShutdown(()=>{this.logService.debug("[Power] System is about to shut down or reboot")})),this._register(Og.env.power.onDidLockScreen(()=>{this.logService.debug("[Power] Screen is being locked")})),this._register(Og.env.power.onDidUnlockScreen(()=>{this.logService.debug("[Power] Screen has been unlocked")}))}async logInitialPowerState(){try{let[n,r,o]=await Promise.all([Og.env.power.isOnBatteryPower(),Og.env.power.getCurrentThermalState(),Og.env.power.getSystemIdleTime()]);this.logService.debug(`[Power] Initial power state: ${n?"on battery":"on AC power"}, thermal state: ${r}, system idle time: ${o}s`)}catch(n){this.logService.debug(`[Power] Failed to retrieve initial power state: ${n}`)}}async _toggleManualPowerSaveBlocker(){if(this._manualBlocker)return this.logService.debug(`[Power] Stopping manual power save blocker, id: ${this._manualBlocker.id}`),this._manualBlocker.dispose(),this._manualBlocker=void 0,!1;try{return typeof Og.env.power?.startPowerSaveBlocker!="function"?(this.logService.debug("[Power] Power save blocker API not available"),!1):(this._manualBlocker=await Og.env.power.startPowerSaveBlocker("prevent-app-suspension"),this.logService.debug(`[Power] Started manual power save blocker, id: ${this._manualBlocker.id}`),!0)}catch(n){return this.logService.warn(`[Power] Failed to start manual power save blocker: ${n}`),!1}}dispose(){this._manualBlocker&&(this._manualBlocker.dispose(),this._manualBlocker=void 0),super.dispose()}};uAe=S([b(0,Z)],uAe);var Uy=O(require("vscode"));Ue();var dAe=class extends fe{constructor(n,r,o,a){super();this._conversationStore=n;this.launchConfigService=r;this.feedbackReporter=o;this.tasksService=a;this._register(Uy.commands.registerCommand("github.copilot.debug.generateSTest",async()=>{if(!this.feedbackReporter.canReport)return;let c=this._conversationStore.lastConversation?.getLatestTurn();if(c){let l=await hGt(c);l&&(Uy.env.clipboard.writeText(l.join(` `)),Uy.window.showInformationMessage("STest copied to clipboard"))}}));let s=async(c,l)=>{let u=c||Uy.workspace.workspaceFolders?.[0].uri;if(!u){Uy.window.showErrorMessage(Hit());return}l.tasks?.length&&await this.tasksService.ensureTask(u,l.tasks[0])};this._register(Uy.commands.registerCommand("github.copilot.createLaunchJsonFileWithContents",async c=>{let l=Uy.workspace.workspaceFolders;if(!l?.length){Uy.window.showErrorMessage("No workspace folder is open.");return}await s(l[0].uri,c),await r.add(l[0].uri,c),await r.show(l[0].uri,c.configurations[0].name)})),this._register(Uy.commands.registerCommand("github.copilot.startDebugging",async(c,l)=>{let u=await this.launchConfigService.resolveConfigurationInputs(c);if(u?.config){await s(void 0,c),await this.launchConfigService.launch(u?.config),l.progress(Uy.l10n.t("Started debugging {0}",u.config.name));return}else{l.markdown(Uy.l10n.t("Could not start debugging. Please try again."));return}}))}};dAe=S([b(0,m1),b(1,lq),b(2,C2),b(3,lI)],dAe);var AJt=O(require("vscode"));Ue();Be();Cp();Be();function mJt(t){return/^[a-z][a-z0-9]*$/.test(t)?"lowercase":/^[a-z][a-zA-Z0-9]*$/.test(t)?"camelCase":/^[a-z]+(_[a-z0-9]+)*$/.test(t)?"snake_case":/^[a-z]+(-[a-z0-9]+)*$/.test(t)?"kebab-case":/^[A-Z][a-z0-9]*$/.test(t)?"Capitalized":/^[A-Z0-9]+(_[A-Z0-9]+)+$/.test(t)?"SCREAMING_SNAKE_CASE":/^[A-Z]+$/.test(t)?"Uppercase":/^[A-Z][a-zA-Z0-9]*$/.test(t)?"PascalCase":/^[A-Z][a-z0-9]*(_[a-z0-9]+)*$/.test(t)?"Capital_snake_case":"Unknown"}function pJt(t){return t.map((e,n)=>n===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()).join("")}function nEa(t){return t.map(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()).join("")}function not(t){return t.map(e=>e.toLowerCase()).join("_")}function rEa(t){return t.map(e=>e.toLowerCase()).join("-")}function b6r(t,e){let n=mJt(t);if(n===e)return t;{let r=iEa(t,n);switch(e){case"camelCase":return pJt(r);case"PascalCase":return nEa(r);case"snake_case":return not(r);case"SCREAMING_SNAKE_CASE":return not(r).toUpperCase();case"Capital_snake_case":return not(r).charAt(0).toUpperCase()+not(r).substring(1);case"kebab-case":return rEa(r);case"Capitalized":return pJt(r).charAt(0).toUpperCase()+pJt(r).substring(1);case"Uppercase":return t.toUpperCase();case"lowercase":return t.toLowerCase();case"Unknown":return t}}}function iEa(t,e){switch(e){case"camelCase":case"PascalCase":return t.split(/(?=[A-Z])/);case"snake_case":case"SCREAMING_SNAKE_CASE":case"Capital_snake_case":case"kebab-case":return t.split(/[-_]/).map(n=>n.toLowerCase());case"Capitalized":case"Uppercase":case"lowercase":case"Unknown":return[t]}}var mAe=O(Ye());oR();Be();var y6r=O(Ye());wr();var dq=class extends y6r.PromptElement{constructor(n,r,o,a,s,c,l,u){super(n);this._languageFeaturesService=r;this._workspaceService=o;this._vscodeExtensionCtxService=a;this._ignoreService=s;this._logService=c;this._parserService=l;this._telemetryService=u}static{this.DEFAULT_TIMEOUT_MS=200}async prepare(){if(await this._ignoreService.isCopilotIgnored(this.props.document.uri))return{k:"ignored"};let n=this._vscodeExtensionCtxService.extensionMode===aw.Test&&!$c?0:this.props.timeoutMs===void 0?dq.DEFAULT_TIMEOUT_MS:this.props.timeoutMs,r=await this.findDefinition(n);return this._logService.debug(`Found ${r.length} implementation(s)/definition(s)`),r.length>0&&this._logService.debug("Implementation(s)/definition(s) found:"+JSON.stringify(r,null," ")),{k:"found",definitions:r}}render(n,r){if(n.k==="ignored")return vscpp("ignoredFiles",{value:[this.props.document.uri]});let{document:o,position:a}=this.props,{definitions:s}=n;if(s.length===0){let c=o.lineAt(a.line);s.push({languageId:o.languageId,uri:o.uri,code:c.text,excerptRange:c.range})}return vscpp(vscppf,null,"Relevant definition",s.length>1?"s":"",": ",vscpp("br",null),vscpp("br",null),s.map(c=>{let d=`${`${$a(c.languageId).lineComment.start} FILEPATH: ${c.uri.path}`} ${c.code}`;return vscpp(hn,{uri:c.uri,languageId:c.languageId,code:d})}))}async findDefinition(n){let{document:r,position:o}=this.props,a=async l=>{try{let u=await this._languageFeaturesService.getImplementations(r.uri,l);if(this._logService.debug(`Found ${u.length} implementations`+JSON.stringify(u,null," ")),u.length>0)return u}catch{}try{let u=await this._languageFeaturesService.getDefinitions(r.uri,l);if(this._logService.debug(`Found ${u.length} definitions`+JSON.stringify(u,null," ")),u.length>0)return u}catch{}return this._logService.debug("No definitions or implementations found"),[]},s=await m_(this._logService,this._telemetryService,r,n*3,()=>a(o),[]),c=er(await Promise.all(s.map(async l=>{let u=u4(l)?l.targetUri:r.uri;return await this._ignoreService.isCopilotIgnored(u)?void 0:l})));return Promise.all(c.map(async l=>{let{uri:u,range:d}=u4(l)?{uri:l.targetUri,range:l.targetRange}:l,p=await this._workspaceService.openTextDocumentAndSnapshot(u),m=p4(p.languageId),A,f;if(m===void 0){let g=p.lineAt(d.start.line);A=g.text,f=g.range}else f=(await q3(this._parserService,this._telemetryService,{document:p,language:$a(r.languageId),wholeRange:d,selection:new vE(d.start,d.end),fileIndentInfo:void 0})).range,A=p.getText(f);return{languageId:p.languageId,uri:p.uri,code:A,excerptRange:f}}))}};dq=S([b(1,og),b(2,Te),b(3,ut),b(4,Dt),b(5,Z),b(6,Ai),b(7,Ee)],dq);var pAe=class extends mAe.PromptElement{constructor(n,r,o){super(n);this.instaService=r;this.endpointProvider=o;let{document:a,range:s}=this.props;this._defAtPos=r.createInstance(new Qe(dq,[{document:a,position:s.start}]))}async prepare(n,r,o){let{document:a,range:s}=this.props,c=await this._defAtPos.prepare();if(!(c.k==="found"&&c.definitions.some(d=>d.excerptRange.contains(this.props.range)))){let d=await this.endpointProvider.getChatEndpoint("copilot-fast"),p={document:a,fileIndentInfo:void 0,language:$a(a.languageId),wholeRange:s,selection:new vE(s.start,s.end)};this._defAroundCursor=this.instaService.createInstance(U3,{documentContext:p,endpointInfo:d})}return{defAtPositionState:c,defAroundCursorState:this._defAroundCursor?await this._defAroundCursor.prepare(n):void 0}}render(n,r){let{document:o,range:a}=this.props,s=o.getText(a),c=oEa(s),l=c?` keeping prefix '${c}'`:"",u=this._defAtPos.render(n.defAtPositionState,r),d=n.defAroundCursorState!==void 0&&this._defAroundCursor?.render(n.defAroundCursorState,r);return vscpp(vscppf,null,vscpp(mAe.SystemMessage,null,"You are a distinguished software engineer.",vscpp("br",null),vscpp(Fc,null),'You must reply with a JSON array of strings of at least four new names, e.g., `["first", "second", "third", "fourth"]`.',vscpp("br",null),"You must respect existing naming conventions",l,"."),d,vscpp(mAe.UserMessage,null,u!==void 0&&vscpp(vscppf,null,u,vscpp("br",null)),"Think of the purpose of `",s,"` in the given code. Think of several names that reflect what `",s,"` is and what it does",l,". Follow existing naming conventions. Reply with a JSON array of strings of at least four new names for `",s,"`."))}};pAe=S([b(1,j),b(2,tt)],pAe);function oEa(t){return t.match(/^([\\.\\$\\_]+)/)?.[0]}var nB=class{constructor(e,n,r,o,a,s,c,l,u){this._instaService=e;this._ignoreService=n;this._telemetryService=r;this._configurationService=o;this._endpointProvider=a;this._simulationTestContext=s;this._authService=c;this._notificationService=l;this._interactionService=u;this.supportsAutomaticTriggerKind=Promise.resolve(this.isEnabled(sve.Automatic))}isEnabled(e){return e===sve.Invoke?!0:this._authService.copilotToken?.isFreeUser||this._authService.copilotToken?.isNoAuthUser?!1:this._configurationService.getConfig(H.AutomaticRenameSuggestions)}async provideNewSymbolNames(e,n,r,o){let a=xr.create(e),s="",c=new Gi,l=a.getText(n);if(!this.isEnabled(r))throw new Error("CopilotFeatureUnavailableOrDisabled");if(await this._ignoreService.isCopilotIgnored(a.uri))throw new Error("CopilotIgnoredDocument");let u=a.languageId,d,p;if(o.isCancellationRequested)s="afterEnablementCheck";else{let m=await this._endpointProvider.getChatEndpoint("copilot-fast");if(d=this.delayBeforeFetchMs,o.isCancellationRequested)s="afterRunParametersFetch";else{let A=new Gi(!1);A.reset();let f=await this._computePrompt(a,n,m,o),g=A.elapsed();if(o.isCancellationRequested)s="afterPromptCompute";else{p=c.elapsed();let h;if(r===sve.Automatic&&(h=d?Math.max(0,d-p):void 0,h!==void 0&&h>0&&await new Promise(y=>setTimeout(y,h))),o.isCancellationRequested)s="afterDelay";else{A.reset(),this._interactionService.startInteraction();let y=await m.makeChatRequest("renameSuggestionsProvider",f.messages,void 0,o,6,void 0,{top_p:void 0,temperature:void 0},!0),v=A.elapsed();switch((y.type==="quotaExceeded"||y.type==="rateLimited"&&this._authService.copilotToken?.isNoAuthUser)&&await this._notificationService.showQuotaExceededDialog({isNoAuthUser:this._authService.copilotToken?.isNoAuthUser??!1}),o.isCancellationRequested&&(s="afterFetchStarted"),y.type){case"success":{let _=y.value,{replyFormat:w,symbolNames:x,redundantCharCount:E}=nB.parseResponse(_);return w==="unknown"&&this._sendInternalTelemetry({languageId:u,reply:_}),this._sendPublicTelemetry({triggerKind:r,languageId:u,cancellationReason:s,fetchResultType:y.type,promptConstructionTime:g,promptTokenCount:f.tokenCount,expectedDelayBeforeFetch:d,actualDelayBeforeFetch:h,timeElapsedBeforeDelay:p,successResponseCharCount:_.length,responseUnusedCharCount:E,fetchTime:v,replyFormat:w,symbolNamesCount:x.length}),nB.preprocessSymbolNames({currentSymbolName:l,newSymbolNames:x,languageId:u}).map(k=>new dbn(k,[pbn.AIGenerated]))}default:return this._sendPublicTelemetry({triggerKind:r,languageId:u,cancellationReason:s,fetchResultType:y.type,promptConstructionTime:g,promptTokenCount:f.tokenCount,expectedDelayBeforeFetch:d,actualDelayBeforeFetch:h,timeElapsedBeforeDelay:p,fetchTime:v}),null}}}}}return this._sendPublicTelemetry({triggerKind:r,languageId:u,cancellationReason:s,expectedDelayBeforeFetch:d,timeElapsedBeforeDelay:p}),null}get delayBeforeFetchMs(){return this._simulationTestContext.isInSimulationTests?0:250}_computePrompt(e,n,r,o){return en.create(this._instaService,r,pAe,{document:e,range:n}).render(void 0,o)}static preprocessSymbolNames({currentSymbolName:e,newSymbolNames:n,languageId:r}){let o=mJt(e),a;switch(o){case"lowercase":r==="python"?a="snake_case":a="camelCase";break;case"Uppercase":case"camelCase":case"PascalCase":case"snake_case":case"SCREAMING_SNAKE_CASE":case"Capital_snake_case":case"kebab-case":case"Capitalized":case"Unknown":a=o;break;default:return o}return a==="Unknown"?n:n.map(s=>b6r(s,a))}static parseResponse(e){let n=nB._parseReplyAsJSONStringArray(e);if(n!==void 0)return n;let r=nB._parseReplyAsList(e);return r!==void 0?r:{replyFormat:"unknown",symbolNames:[],redundantCharCount:e.length}}static _parseReplyAsJSONStringArray(e){let n=/\[.*?\]/gs,r=[...e.matchAll(n)];for(let o=0;otypeof l=="string");if(c.length>0){let l=o===0?"jsonStringArray":"multiJsonStringArray",u=e.length-a[0].length;return{replyFormat:l,redundantCharCount:u,symbolNames:c.map(d=>d.trim())}}}}catch{}}}static _parseReplyAsList(e){let n=/(?:\d+[\.|\)]|[\*\-])\s*(.*)/g,r=e.matchAll(n),o=[];for(let s of r){let c=s[1].trim(),l=["'",'"',"`"];l.includes(c[0])&&(c=c.slice(1)),l.includes(c[c.length-1])&&(c=c.slice(0,-1)),c&&o.push(c)}return o.length===0?void 0:{replyFormat:"list",redundantCharCount:e.length-o.reduce((s,c)=>s+c.length,0),symbolNames:o}}_sendPublicTelemetry({triggerKind:e,languageId:n,cancellationReason:r,fetchResultType:o,timeElapsedBeforeDelay:a,promptConstructionTime:s,promptTokenCount:c,expectedDelayBeforeFetch:l,actualDelayBeforeFetch:u,successResponseCharCount:d,responseUnusedCharCount:p,fetchTime:m,replyFormat:A,symbolNamesCount:f}){this._telemetryService.sendMSFTTelemetryEvent("provideRenameSuggestions",{languageId:n,cancellationReason:r,fetchResultType:o,replyFormat:A,triggerKind:e===sve.Automatic?"automatic":"manual"},{promptConstructionTime:s,promptTokenCount:c,expectedDelayBeforeFetch:l,actualDelayBeforeFetch:u,timeElapsedBeforeFetch:a,fetchTime:m,successResponseCharCount:d,responseUnusedCharCount:p,symbolNamesCount:f})}_sendInternalTelemetry({languageId:e,reply:n}){this._telemetryService.sendMSFTTelemetryEvent("provideRenameSuggestionsIncorrectFormatResponse",{languageId:e,reply:n})}static _determinePrefix(e){return e.match(/^([\\.\\$\\_]+)/)?.[0]}};nB=S([b(0,j),b(1,Dt),b(2,Ee),b(3,be),b(4,tt),b(5,dg),b(6,at),b(7,eC),b(8,tC)],nB);var AAe=class extends fe{constructor(n){super();this.instantiationService=n;"registerNewSymbolNamesProvider"in AJt.languages&&this._register(AJt.languages.registerNewSymbolNamesProvider({language:"*"},this.instantiationService.createInstance(nB)))}};AAe=S([b(0,j)],AAe);var oQ=O(require("vscode"));Ue();var aEa=[I5.prompt,I5.instructions,I5.agent],fAe=class extends fe{constructor(n,r,o,a,s){super();this.logService=r;this.endpointProvider=a;this.languageContextProviderService=s;this.models=["GPT-4.1","GPT-4o"];this._enableCompletionContext=n.getExperimentBasedConfigObservable(H.Advanced.PromptFileContext,o),this._register(fo(c=>{this._enableCompletionContext.read(c)?this.registration=this.register():this.registration&&(this.registration.then(l=>l.dispose()),this.registration=void 0)}))}dispose(){super.dispose(),this.registration&&(this.registration.then(n=>n.dispose()),this.registration=void 0)}async register(){let n=new it;try{let r=this,o={async resolve(c,l){let[u,d]=r.getDocumentAndPosition(c,l);return u===void 0||d===void 0?[]:r.getTokenBudget(u)<=0?[]:r.getContext(u.languageId)}};this.endpointProvider.getAllChatEndpoints().then(c=>{let l=new Set;for(let u of c)u.showInModelPicker&&l.add(u.name);this.models=[...l.keys()]});let a={id:"promptfile-ai-context-provider",selector:aEa,resolver:o},s=await this.getCopilotApi();s&&n.add(s.registerContextProvider(a)),n.add(this.languageContextProviderService.registerContextProvider(a,["nes","completions"]))}catch(r){this.logService.error("Error regsistering prompt file context provider:",r)}return n}getContext(n){switch(n){case I5.prompt:{let r=this.getToolNames().join(", ");return[{name:"This is a prompt file. It uses markdown with a YAML front matter header that only supports a limited set of attributes and values. Do not suggest any other attributes",value:[Uc.name,Uc.description,Uc.argumentHint,Uc.agent,Uc.model,Uc.tools].join(", ")},{name:"`agent` is optional and must be one of the following values",value:"ask, edit or agent"},{name:"`model` is optional and must be one of the following values",value:this.models.join(", ")},{name:"`tools` is optional and must be an array of one or more of the following values. Do not make up any other tool names.",value:r},{name:"Here is an example of a prompt file",value:["","```md","---","agent: agent","description: This prompt is used to generate a new issue template for GitHub repositories.",`model: ${this.models[0]||"GPT-4.1"}`,`tools: [${r}]`,"---","Generate a new issue template for a GitHub repository.","```"].join(` `)}]}case I5.instructions:return[{name:"This is a instructions file. It uses markdown with a YAML front matter header that only supports a limited set of attributes and values. Do not suggest any other properties",value:[Uc.name,Uc.description,Uc.applyTo].join(", ")},{name:"`applyTo` is one or more glob patterns that specify which files the instructions apply to",value:"**"},{name:"Here is an example of an instruction file",value:["","```md","---","description: This file describes the TypeScript code style for the project.","applyTo: **/*.ts, **/*.js","---","For private fields, start the field name with an underscore (_).","```"].join(` `)}];case I5.agent:{let r=this.getToolNames().join(", ");return[{name:"This is a custom agent file. It uses markdown with a YAML front matter header that only supports a limited set of attributes and values. Do not suggest any other attributes",value:[Uc.name,Uc.description,Uc.argumentHint,Uc.target,Uc.model,Uc.tools,Uc.handOffs].join(", ")},{name:"`model` is optional and must be one of the following values",value:this.models.join(", ")},{name:"`tools` is optional and must be an array of one or more of the following values. Do not make up any other tool names.",value:`[${r}]`},{name:"`target` is optional and must be one of the following values",value:"vscode, github-copilot"},{name:"`handoffs` is optional and is a sequence of mappings with `label`, `agent`, `prompt`, `send`, and `model` properties. The `model` property uses the format `Model Name (vendor)` (e.g., `GPT-4.1 (copilot)`)",value:["handoffs:"," - label: Start Implementation"," agent: agent"," prompt: Implement the plan"," send: true"," model: GPT-4.1 (copilot)"].join(` `)},{name:"Here is an example of a custom agent file",value:["","```md","---","description: This custom agent researches and plans new features for VS Code extensions.","model: GPT-4.1",`tools: [${r}]`,"handoffs:"," - label: Start Implementation"," agent: agent"," prompt: Implement the plan"," send: true"," model: GPT-4.1 (copilot)","---","First come up with a plan for the new feature. Write a todo list of tasks to complete the feature.","```"].join(` `)}]}default:return[]}}getToolNames(){return["execute","read","edit","search","web","agent","todo"]}async getCopilotApi(){let n=oQ.extensions.getExtension("GitHub.copilot");if(n!==void 0){this.logService.info("Copilot extension found");try{return(await n.activate()).getContextProviderAPI("v1")}catch(r){r instanceof Error?this.logService.error("Error activating Copilot extension:",r.message):this.logService.error("Error activating Copilot extension: Unknown error.");return}}}getTokenBudget(n){return Math.trunc(8*1024-n.getText().length/4-256)}getDocumentAndPosition(n,r){let o;if(oQ.window.activeTextEditor?.document.uri.toString()===n.documentContext.uri?o=oQ.window.activeTextEditor.document:o=oQ.workspace.textDocuments.find(c=>c.uri.toString()===n.documentContext.uri),o===void 0)return[void 0,void 0];let a=n.documentContext.position,s=a!==void 0?new oQ.Position(a.line,a.character):o.positionAt(n.documentContext.offset);return o.version>n.documentContext.version?(r?.isCancellationRequested,[void 0,void 0]):o.version0&&n.push(`**MCP Servers:** ${e.mcpServers.length}`),n.push("","---"),n.join(` `)}formatUserQuery(e){return`### User ${e.prompt}`}formatLogEntry(e){switch(e.kind){case"element":return[{content:this.formatElementEntry(e),collapsed:!0}];case"request":{if(e.content!==void 0&&e.content.trim())return[{content:e.content,collapsed:!1}];if(v6r(e)&&rot(e.response)){let n=[];if(n.push({content:this.formatRequestMetadataCell(e),collapsed:!0}),e.requestMessages?.messages&&e.requestMessages.messages.length>0){let a=`{ "requestMessages": ${JSON.stringify(e.requestMessages.messages,null,2).replace(/\n/g,` `)} }`;n.push({content:a,collapsed:!0,kind:pq.NotebookCellKind.Code,language:"json"})}let r=_6r(e.response);return r.trim()&&n.push({content:r,collapsed:!1}),n}return[{content:this.formatRequestEntry(e),collapsed:!0}]}case"toolCall":return[{content:this.formatToolCallEntry(e),collapsed:!0}];case"error":return[{content:this.formatErrorEntry(e),collapsed:!0}];default:return}}formatRequestMetadataCell(e){let n=[`#### Request: ${e.name??e.type??"Unknown"}`,""],r=e.metadata;if(r&&(r.model&&n.push(`**Model:** ${r.model}`),r.duration!==void 0&&n.push(`**Duration:** ${r.duration.toLocaleString()}ms`),r.usage)){let o=r.usage;o.prompt_tokens!==void 0&&n.push(`**Prompt Tokens:** ${o.prompt_tokens.toLocaleString()}`),o.completion_tokens!==void 0&&n.push(`**Completion Tokens:** ${o.completion_tokens.toLocaleString()}`)}return n.join(` `)}formatElementEntry(e){let n=[`#### Element: ${e.name??"Unknown"}`,""];if(e.tokens!==void 0&&e.maxTokens!==void 0){let r=(e.tokens/e.maxTokens*100).toFixed(1);n.push(`**Tokens:** ${e.tokens.toLocaleString()} / ${e.maxTokens.toLocaleString()} (${r}%)`)}return n.join(` `)}formatRequestEntry(e){let n=[`#### Request: ${e.name??e.type??"Unknown"}`,""],r=e.metadata;if(r){if(r.model&&n.push(`**Model:** ${r.model}`),r.duration!==void 0&&n.push(`**Duration:** ${r.duration.toLocaleString()}ms`),r.usage){let o=r.usage;o.prompt_tokens!==void 0&&n.push(`**Prompt Tokens:** ${o.prompt_tokens.toLocaleString()}`),o.completion_tokens!==void 0&&n.push(`**Completion Tokens:** ${o.completion_tokens.toLocaleString()}`)}r.startTime&&n.push(`**Start Time:** ${r.startTime}`)}if(e.requestMessages?.messages&&e.requestMessages.messages.length>0){let o=JSON.stringify(e.requestMessages.messages,null,2);n.push("","
","Request Messages","","```json",o,"```","
")}if(e.response&&!rot(e.response)){n.push("");let o=e.response;if(o.type&&n.push(`**Response Type:** ${o.type}`),o.message){let a=Array.isArray(o.message)?o.message.join(` `):o.message;a.length>500?n.push("","
","Response (truncated)","","```",a.substring(0,500)+"...","```","
"):n.push("","
","Response","","```",a,"```","
")}}return n.join(` `)}formatToolCallEntry(e){let r=[`#### Tool Call: ${e.tool??e.name??"Unknown"}`,""];if(e.time&&r.push(`**Time:** ${e.time}`),e.thinking?.text&&r.push("","
","Thinking","","```",e.thinking.text,"```","
"),e.args!==void 0){let o=typeof e.args=="string"?e.args:JSON.stringify(e.args,null,2);r.push("","
","Arguments","","```json",o,"```","
")}if(e.response!==void 0){let o=e.response,a=Array.isArray(o)?o.join(` `):typeof o=="string"?o:JSON.stringify(o,null,2);a.length>1e3?r.push("","
","Response (truncated)","","```",a.substring(0,1e3)+"...","```","
"):r.push("","
","Response","","```",a,"```","
")}return e.edits&&e.edits.length>0&&r.push("",`**Edits:** ${e.edits.length} file(s) modified`),r.join(` `)}formatErrorEntry(e){let n=["#### Error","",`**ID:** ${e.id}`];return e.timestamp&&n.push(`**Timestamp:** ${e.timestamp}`),e.error?n.push("","**Error:**","","```",e.error,"```"):n.push("","An error occurred while processing this log entry."),n.join(` `)}};var C6r=O(Lt());dn();yr();dn();var aQ=class t{constructor(e){this.onCancel=e;this.pendingRequests=[];this.responses=[];this.toolResults=new Map}static getInstance(){return t.instance||(t.instance=new t,t.instance.markDone()),t.instance}static create(e){return t.instance=new t(e),t.instance}replayResponse(e){let n=this.pendingRequests.shift();n?n.settleWith(Promise.resolve(e)):this.responses.push(e)}getResponse(){let e=this.responses.shift();if(e)return Promise.resolve(e);let n=new no;return this.pendingRequests.push(n),n.p}setToolResult(e,n){this.toolResults.set(e,n)}getToolResult(e){return this.toolResults.get(e)}markDone(){for(;this.pendingRequests.length>0;){let e=this.pendingRequests.shift();e&&e.settleWith(Promise.resolve("finished"))}this.responses.push("finished")}cancelReplay(){this.onCancel?.(),this.markDone()}};var gAe=class{constructor(e,n){this.workspaceService=e;this.toolsService=n}async handleRequest(e,n,r,o){let a=aQ.getInstance(),s=await gs(a.getResponse(),o);for(;s&&s!=="finished";)await gs(this.processStep(s,a,r,e.toolInvocationToken),o),s=await gs(a.getResponse(),o);return o.isCancellationRequested&&a.cancelReplay(),{}}async processStep(e,n,r,o){switch(e.kind){case"userQuery":r.markdown(` --- ## User Query: ${e.query} `),r.markdown(`## Response: --- `);break;case"request":r.markdown(` ${e.result}`);break;case"toolCall":{n.setToolResult(e.id,e.results),(await this.toolsService.invokeTool("tool_replay",{toolInvocationToken:o,input:{toolCallId:e.id,toolName:e.toolName,toolCallArgs:e.args}},Yt.None)).content.length===0&&r.markdown(C6r.t("No result from tool")),e.edits&&await Promise.all(e.edits.map(s=>this.makeEdit(s,r)));break}}}async makeEdit(e,n){let r;if(!e.path.startsWith("/")&&!e.path.match(/^[a-zA-Z]:/)){let o=this.workspaceService.getWorkspaceFolders();if(o.length>0)r=Qn.joinPath(o[0],e.path);else throw new Error("No workspace folder available to resolve relative path: "+e.path)}else r=Qn.file(e.path);await this.ensureFileExists(r),n.markdown("\n```\n"),n.codeblockUri(r,!0),await Promise.all(e.edits.replacements.map(o=>this.performReplacement(r,o,n))),n.textEdit(r,!0),n.markdown("\n```\n")}async ensureFileExists(e){try{await this.workspaceService.fs.stat(e);return}catch{let n=Qn.joinPath(e,"..");await this.workspaceService.fs.createDirectory(n),await this.workspaceService.fs.writeFile(e,new Uint8Array)}}async performReplacement(e,n,r){let o=await this.workspaceService.openTextDocument(e),a=new oz,s=new gt(o.positionAt(n.replaceRange.start),o.positionAt(n.replaceRange.endExclusive));a.replace(e,s,n.newText);for(let c of a.entries()){let l=Array.isArray(c[1])?c[1]:[c[1]];for(let u of l)r.textEdit(e,u)}}};gAe=S([b(0,Te),b(1,Xn)],gAe);var w6r=O(require("node:fs")),$k=require("vscode");Ue();function sEa(t){return"prompt"in t&&"logs"in t&&Array.isArray(t.logs)}function aot(t){let e=JSON.parse(t),n=e.prompts&&Array.isArray(e.prompts)?e.prompts:[e],r=n.filter(sEa);r.length!==n.length&&console.warn("Found invalid prompt(s) in replay content. Skipping invalid prompts.");let o=[];for(let c of r)cEa(c,o);let a=0;return t.split(` `).forEach((c,l)=>{if(athis.sendEvent(new dp.TerminatedEvent)),vEa(),this._stopOnEntry&&this.sendEvent(new dp.StoppedEvent("entry",t.THREAD_ID))}catch(o){this.sendErrorResponse(n,3002,`Failed to launch: ${o?.message||String(o)}`)}}disconnectRequest(n){this._replay.markDone(),this.sendResponse(n),this.sendEvent(new dp.TerminatedEvent)}threadsRequest(n){n.body={threads:[new dp.Thread(t.THREAD_ID,"Main Thread")]},this.sendResponse(n)}stackTraceRequest(n,r){let o=[],a=this.currentStep();if(a){let s=new dp.Source(bAe.basename(this._program),this._program);o.push(new dp.StackFrame(1,`#${a.kind} ${a.kind==="userQuery"?a.query:a.id}`,s,a.line,1))}n.body={stackFrames:o,totalFrames:o.length},this.sendResponse(n)}scopesRequest(n,r){let o=this.currentStep();if(!o){n.body={scopes:[]},this.sendResponse(n);return}let a=this._variableHandles.create({step:o});n.body={scopes:[new dp.Scope("Step",a,!1)]},this.sendResponse(n)}variablesRequest(n,r){n.body={variables:[]},this.sendResponse(n)}setBreakPointsRequest(n,r){n.body={breakpoints:(r.breakpoints||[]).map(o=>({verified:!1,line:o.line}))},this.sendResponse(n)}continueRequest(n,r){let o=this.currentStep();o?(this.replayNextResponse(o),this.sendResponse(n)):(this._replay.markDone(),this.sendResponse(n),this.sendEvent(new dp.TerminatedEvent))}nextRequest(n,r){let o=this.currentStep();o?(this.replayNextResponse(o),this.sendResponse(n)):(this._replay.markDone(),this.sendResponse(n),this.sendEvent(new dp.TerminatedEvent))}replayNextResponse(n){this._replay.replayResponse(n),this._currentIndex++,this.sendEvent(new dp.StoppedEvent("next",t.THREAD_ID))}pauseRequest(n,r){this.sendResponse(n),this.sendEvent(new dp.StoppedEvent("pause",t.THREAD_ID))}currentStep(){if(this._currentIndex>=0&&this._currentIndex{let r=n.with({scheme:"chat-replay"});await Kl.commands.executeCommand("vscode.open",r)}))}registerNotebookCellCollapseListener(){this._register(Kl.workspace.onDidOpenNotebookDocument(n=>{n.notebookType===oot&&setTimeout(()=>this.collapseCellsIfNeeded(n),1e3)})),this._register(Kl.workspace.onDidCloseNotebookDocument(n=>{n.notebookType===oot&&this._collapsedNotebooks.delete(n.uri.toString())}))}async collapseCellsIfNeeded(n){let r=n.uri.toString();if(this._collapsedNotebooks.has(r))return;this._collapsedNotebooks.add(r);let o=[];for(let a=0;a0&&await Kl.commands.executeCommand("notebook.cell.collapseCellInput",{ranges:o})}registerStartReplayCommand(){this._register(Kl.commands.registerCommand("github.copilot.chat.replay",async()=>{let n=Kl.window.activeTextEditor;if(!n){Kl.window.showInformationMessage("Open a chat replay file to debug.");return}let r={type:"vscode-chat-replay",name:"Debug Chat Replay",request:"launch",program:n.document.uri.fsPath,stopOnEntry:!0};await Kl.debug.startDebugging(void 0,r)}))}registerEnableWorkspaceEditTracingCommand(){this._register(Kl.commands.registerCommand("github.copilot.chat.replay.enableWorkspaceEditTracing",async()=>{this._instantiationService.invokeFunction(r=>r.get(Fr)).enableWorkspaceEditTracing(),await Kl.commands.executeCommand("setContext","github.copilot.chat.replay.workspaceEditTracing",!0)}))}registerDisableWorkspaceEditTracingCommand(){this._register(Kl.commands.registerCommand("github.copilot.chat.replay.disableWorkspaceEditTracing",async()=>{this._instantiationService.invokeFunction(r=>r.get(Fr)).disableWorkspaceEditTracing(),await Kl.commands.executeCommand("setContext","github.copilot.chat.replay.workspaceEditTracing",!1)}))}};yAe=S([b(0,j)],yAe);var HJt=class{createDebugAdapterDescriptor(e){return new Kl.DebugAdapterInlineImplementation(new _ot(e.workspaceFolder))}},WJt=class{resolveDebugConfiguration(e,n,r){if(!n.type&&!n.request&&!n.name){let o=Kl.window.activeTextEditor;o&&o.document.languageId==="chatReplay"&&(n.type="vscode-chat-replay",n.name="Launch",n.request="launch",n.program="${file}",n.stopOnEntry=!0)}return n.program?n:Kl.window.showInformationMessage("Cannot find a program to debug").then(o=>{})}};var vAe=O(require("vscode"));Ue();var _Ae=class extends fe{constructor(n,r){super();this.telemetryService=n;this.feedbackReporter=r;this._register(vAe.commands.registerCommand("github.copilot.search.markHelpful",()=>{this.sendFeedback("helpful")})),this._register(vAe.commands.registerCommand("github.copilot.search.markUnhelpful",()=>{this.sendFeedback("unhelpful")})),this._register(vAe.commands.registerCommand("github.copilot.search.feedback",()=>{this.sendFeedback("feedback"),vAe.commands.executeCommand("github.copilot.report",`Copilot search feedback: "${Or.latestQuery}"`)}))}sendFeedback(n){this.feedbackReporter.reportSearch(n),vAe.commands.executeCommand("setContext",Or.feedBackSentKey,!0)}};_Ae=S([b(0,Ee),b(1,C2)],_Ae);var O6r=require("vscode");Ue();var fq=require("vscode");Ue();var CAe=class t extends fe{constructor(n){super();this.scheme=n;this._documents=new Map;this._didChangeEmitter=this._register(new fq.EventEmitter);this._register(fq.workspace.registerTextDocumentContentProvider(n,{provideTextDocumentContent:(r,o)=>{let a=this._documents.get(r.toString());return a?a.content:"(document not found)"},onDidChange:this._didChangeEmitter.event}))}static{this.id=0}clear(){this._documents.clear()}createDocument(n="",r="txt"){let o=fq.Uri.parse(`${this.scheme}:///virtual-text-document/${t.id++}.${r}`),a=new Cot(o,()=>this._didChangeEmitter.fire(o));return a.setContent(n),this._documents.set(o.toString(),a),a}createUriForData(n,r="txt"){return this.createDocument(n,r).uri}createDocumentForUri(n){if(n.scheme!==this.scheme)throw new Error(`Invalid scheme: ${n.scheme}`);let r=new Cot(n,()=>this._didChangeEmitter.fire(n));return this._documents.set(n.toString(),r),r}openUri(n){fq.commands.executeCommand("vscode.open",n)}},Cot=class{constructor(e,n){this.uri=e;this._handleChanged=n;this._content=""}get content(){return this._content}setContent(e){this._content=e,this._handleChanged()}};var wAe=class extends fe{constructor(n){super();this._authenticationService=n;this._copilotToken=To(this,this._authenticationService.onDidAuthenticationChange,()=>this._authenticationService.copilotToken);this._isInternal=this._copilotToken.map(n=>!!n?.isInternal);this._register(xS((r,o)=>{let s=o.add(new CAe("ccsettings")).createDocumentForUri(O6r.Uri.parse("ccsettings://root/schema.json")),c=this._getSchema(r);s.setContent(JSON.stringify(c))}))}_getSchema(n){let r={};if(this._isInternal.read(n)){for(let a of qO.configs.values())r[a.fullyQualifiedId]={description:`Recognized Advanced Setting. Ignore the warning "Unknown Configuration Setting", which cannot be surpressed.`,...a.validator?a.validator.toSchema():{}};return{type:"object",properties:r,patternProperties:{"github.copilot(.chat)?.advanced..*":{deprecated:!0,description:`Unknown advanced setting. If you believe this is a supported setting, please file an issue so that it gets registered.`}}}}else return{}}};wAe=S([b(0,at)],wAe);var U6r=O(require("vscode"));Ue();var _Ea="github.copilot.survey.signalUsage",xAe=class extends fe{constructor(n){super();this._surveyService=n;this._register(U6r.commands.registerCommand(_Ea,(r,o)=>{this._surveyService.signalUsage(r,o)}))}};xAe=S([b(0,EI)],xAe);var sQ=O(require("vscode"));Je();var EAe=me("IWorkspaceMutationManager");Ue();var wot="copilot-setup-tests";var IAe=class extends fe{constructor(e){super(),this._register(sQ.workspace.registerTextDocumentContentProvider(wot,{provideTextDocumentContent(n,r){return e.get(n.authority).get(n.path,r)}})),this._register(sQ.commands.registerCommand("github.copilot.tests.applyMutations",n=>{sQ.window.withProgress({location:sQ.ProgressLocation.Notification,cancellable:!0},async(r,o)=>{try{return await e.get(n).apply(r,o)}catch(a){sQ.window.showErrorMessage(`Failed to apply edits: ${a.message}`)}})}))}};IAe=S([b(0,EAe)],IAe);var Ya=O(require("vscode")),iB=require("vscode");Ue();Ot();var ZJt=O(Lt());Be();var b2e=class{constructor(e,n,r){this.promptPathRepresentationService=e;this.fileSystemService=n;this.instantiationService=r}static{this.toolName="create_directory"}async invoke(e,n){let r=this.promptPathRepresentationService.resolveFilePath(e.input.dirPath);if(!r)throw new Error("Invalid directory path");return await this.fileSystemService.createDirectory(r),new Zn([new rn(`Created directory at ${this.promptPathRepresentationService.getFilePath(r)}`)])}async prepareInvocation(e,n){let r=cc(e.input.dirPath,this.promptPathRepresentationService);return{...await this.instantiationService.invokeFunction(I_,[r],void 0,async()=>`Creating the directory: `+Zc("plaintext",r.fsPath),e.forceConfirmationReason),presentation:void 0,invocationMessage:new je(ZJt.t`Creating ${Wn(r)}`),pastTenseMessage:new je(ZJt.t`Created ${Wn(r)}`)}}};b2e=S([b(0,Vt),b(1,yt),b(2,j)],b2e);$n.registerTool(b2e);var yY=O(Lt());fr();So();Be();var y2e=class{constructor(e,n,r,o,a,s,c,l,u,d){this.promptPathRepresentationService=e;this.instantiationService=n;this.workspaceService=r;this.toolsService=o;this.notebookService=a;this.alternativeNotebookContent=s;this.alternativeNotebookEditGenerator=c;this.fileSystemService=l;this.telemetryService=u;this.endpointProvider=d}static{this.toolName="create_file"}static{this.nonDeferred=!0}async invoke(e,n){let r=this.promptPathRepresentationService.resolveFilePath(e.input.filePath);if(!r)throw new Error("Invalid file path");if(!this._promptContext?.stream)throw new Error("Invalid stream");if(!e.input.filePath||e.input.content===void 0)throw new Error("Invalid input: filePath and content are required");let o=await this.fileExists(r),a=this.notebookService.hasSupportedNotebooks(r),s;try{a?s=await this.workspaceService.openNotebookDocumentAndSnapshot(r,this.alternativeNotebookContent.getFormat(this._promptContext?.request?.model)):s=await this.workspaceService.openTextDocumentAndSnapshot(r)}catch{}if(o&&s?.getText())throw a?new Error("File already exists. You must use the edit_notebook_file tool to modify it."):new Error("File already exists. You must use an edit tool to modify it.");let c=s?.languageId??Pb(r).languageId,l=lh(r),u=e.model&&(await this.endpointProvider.getChatEndpoint(e.model)).model;if(a){let d=e.input.content,p=new F4(()=>{},()=>{},m=>d=m.code);p.processMarkdown(e.input.content),p.flush(),d=Ew(e.input.content,c,e.input.filePath),await D$e(r,d,this._promptContext.stream,this.alternativeNotebookEditGenerator,{source:"createFile",requestId:e.chatRequestId,model:e.model?this.endpointProvider.getChatEndpoint(e.model).then(m=>m.model):void 0},n),this._promptContext.stream.notebookEdit(r,!0),this.sendTelemetry(e.chatRequestId,u,l)}else{let d=Ew(e.input.content,c,e.input.filePath);return await qLn(r,s,d,this._promptContext.stream,n,[]),this._promptContext.stream.textEdit(r,!0),this.sendTelemetry(e.chatRequestId,u,l),new Zn([new Ii(await Hi(this.instantiationService,CI,{files:[{operation:"add",uri:r,isNotebook:!1}],diagnosticsTimeout:2e3,toolName:"create_file",requestId:e.chatRequestId,model:e.model},e.tokenizationOptions??{tokenBudget:1e3,countTokens:p=>Promise.resolve(p.length*3/4)},n))])}return new Zn([new rn(`File created at ${this.promptPathRepresentationService.getFilePath(r)}`)])}async fileExists(e){try{return await this.fileSystemService.stat(e),!0}catch{return!1}}async resolveInput(e,n){return this._promptContext=n,e}async prepareInvocation(e,n){let r=cc(e.input.filePath,this.promptPathRepresentationService),o=e.input.content||"";return{...await this.instantiationService.invokeFunction(I_,[r],this._promptContext?.allowedEditUris,async()=>this.instantiationService.invokeFunction(BD,r,"",o),e.forceConfirmationReason),presentation:void 0,invocationMessage:new je(yY.t`Creating ${Wn(r)}`),pastTenseMessage:new je(yY.t`Created ${Wn(r)}`)}}async handleToolStream(e,n){let r,o=e.rawInput;if(o&&typeof o=="object"){let a=o.filePath,s=o.content;if(a&&s!==void 0){let c=cc(a,this.promptPathRepresentationService),l=em(s,` `)+1;r=new je(yY.t`Creating ${Wn(c)} (${l} lines)`)}else if(s!==void 0){let c=em(s,` `)+1;r=new je(yY.t`Creating file (${c} lines)`)}else r=new je(yY.t`Creating file`)}else r=new je(yY.t`Creating file`);return{invocationMessage:r}}sendTelemetry(e,n,r){this.telemetryService.sendMSFTTelemetryEvent("createFileToolInvoked",{requestId:e,model:n,fileExtension:r})}};y2e=S([b(0,Vt),b(1,j),b(2,Te),b(3,Xn),b(4,wi),b(5,ma),b(6,x_),b(7,yt),b(8,Ee),b(9,tt)],y2e);$n.registerTool(y2e);var q6r=O(Lt());Be();var VJt=require("crypto");$s();Be();var gq=O(Ye());var xot=class extends gq.PromptElement{async render(e,n){let{conversation:r,toolCallRounds:o,toolCallResults:a}=this.props.promptContext,s=r?.turns[0]?.request.message,l=(o?.length??0)>=this.props.maxExecutionTurns-1;return vscpp(vscppf,null,vscpp(gq.SystemMessage,{priority:1e3},"You are an AI coding research assistant that runs a series of terminal commands to perform a small execution-focused task.",vscpp("br",null),"You will be given a description of a task, and potentially some commands to run, but you can adapt the commands as necessary to complete the task.",vscpp("br",null),'For example, if you are asked to `make` a project but there is no Makefile, you might instead run "cmake . && make" to successfully build the code. ',vscpp("br",null),vscpp("br",null),vscpp(Kr,null),vscpp("br",null),"Once you have finished, return a message with ONLY: the tag to provide a compact summary of each command that was run.",vscpp("br",null),vscpp("br",null),"Example:",vscpp("br",null),vscpp("br",null),"",vscpp("br",null),"Command: make",vscpp("br",null),"Summary: No Makefile found. ",vscpp("br",null),"Command: cmake . && make",vscpp("br",null),"Summary: Build unsuccessful. Excerpt of build log showing the error:",vscpp("br",null),"...",vscpp("br",null),"",vscpp("br",null)),vscpp(gq.UserMessage,{priority:800},vscpp(D3,{sessionId:r?.sessionId})),vscpp(gq.UserMessage,{priority:900},s),vscpp(Hc,{priority:899,flexGrow:2,promptContext:this.props.promptContext,toolCallRounds:o,toolCallResults:a,toolCallMode:1}),l&&vscpp(gq.UserMessage,{priority:900},"OK, your allotted iterations are finished. Show the ."))}};var hq=class extends dl{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g){super(n,r,s,o,a,l,u,d,p,m,A,f,g);this.instantiationService=r;this.endpointProvider=s;this.toolsService=c}static{this.ID="executionSubagentTool"}createPromptContext(n,r){let o=super.createPromptContext(n,r);return o.tools&&(o.tools={...o.tools,toolReferences:[],subAgentInvocationId:this.options.subAgentInvocationId??(0,VJt.randomUUID)(),subAgentName:"execution"}),o.query=this.options.promptText,o}async getEndpoint(){let n=this._configurationService.getConfig(H.Advanced.ExecutionSubagentModel);if(n)try{let r=await this.endpointProvider.getChatEndpoint(n);return r.supportsToolCalls||(this._logService.warn(`[ExecutionSubagentToolCallingLoop] Configured model ${n} does not support tool calls. Falling back to request's endpoint.`),r=await this.endpointProvider.getChatEndpoint(this.options.request)),r}catch(r){return this._logService.warn(`[ExecutionSubagentToolCallingLoop] Failed to get endpoint for model ${n}: ${r}. Falling back to request's endpoint.`),await this.endpointProvider.getChatEndpoint(this.options.request)}else return await this.endpointProvider.getChatEndpoint(this.options.request)}async buildPrompt(n,r,o){let a=await this.getEndpoint(),s=this._configurationService.getExperimentBasedConfig(H.Advanced.ExecutionSubagentToolCallLimit,this._experimentationService);return await en.create(this.instantiationService,a,xot,{promptContext:n,maxExecutionTurns:s}).render(r,o)}async getAvailableTools(){let n=await this.getEndpoint(),r=this.toolsService.getEnabledTools(this.options.request,n),o=new Set(["run_in_terminal"]);return r.filter(a=>o.has(a.name))}async fetch({messages:n,finishedCb:r,requestOptions:o,enableThinking:a,reasoningEffort:s},c){return(await this.getEndpoint()).makeChatRequest2({debugName:hq.ID,messages:n,finishedCb:r,location:this.options.location,enableThinking:a,reasoningEffort:s,requestOptions:{...o??{},temperature:0},userInitiatedRequest:!1,telemetryProperties:{messageId:(0,VJt.randomUUID)(),messageSource:"chat.editAgent",subType:"subagent/execution",conversationId:this.options.conversation.sessionId}},c)}};hq=S([b(1,j),b(2,Z),b(3,Fr),b(4,tt),b(5,Xn),b(6,$d),b(7,Ee),b(8,be),b(9,Fe),b(10,Fm),b(11,kp),b(12,yt),b(13,On)],hq);var v2e=class{constructor(e,n,r,o){this.instantiationService=e;this.requestLogger=n;this.configurationService=r;this.experimentationService=o}static{this.toolName="execution_subagent"}static{this.nonDeferred=!0}async invoke(e,n){let r=["Execution query: ",`${e.input.query}`,""].join(` `);if(!this._inputContext)throw new Error("ExecutionSubagentTool: _inputContext is not set. Ensure resolveInput is called before invoke.");let o=this._inputContext.request,a=this._inputContext.conversation?.sessionId??st(),s=st(),c=this.configurationService.getExperimentBasedConfig(H.Advanced.ExecutionSubagentToolCallLimit,this.experimentationService),l=this.instantiationService.createInstance(hq,{toolCallLimit:c,conversation:new Yv(a,[new h0(st(),{type:"user",message:r})]),request:o,location:o.location,promptText:e.input.query,subAgentInvocationId:s}),u=this._inputContext?.stream&&Ml.filter(this._inputContext.stream,g=>g instanceof mh||g instanceof cu||g instanceof vR),d=new Zd(`Execution: ${e.input.query.substring(0,50)}${e.input.query.length>50?"...":""}`,"execution",s,"execution"),p=await this.requestLogger.captureInvocation(d,()=>l.run(u,n)),m={query:e.input.query,description:e.input.description,subAgentInvocationId:s,agentName:"execution"},A="";p.response.type==="success"?A=p.toolCallRounds.at(-1)?.response??p.round.response??"":A=`The execution subagent request failed with this message: ${p.response.type}: ${p.response.reason}`;let f=new Gc([new rn(A)]);return f.toolMetadata=m,f.toolResultMessage=new je(q6r.t`Execution complete: ${e.input.description}`),f}prepareInvocation(e,n){return{invocationMessage:e.input.description}}async resolveInput(e,n,r){return this._inputContext=n,e}};v2e=S([b(0,j),b(1,Fr),b(2,be),b(3,Fe)],v2e);$n.registerTool(v2e);var bq=O(Ye());Ot();var _2e=O(Lt());sr();Be();var C2e=class{constructor(e,n,r,o,a){this.instantiationService=e;this.searchService=n;this.workspaceService=r;this.endpointProvider=o;this.telemetryService=a}static{this.toolName="file_search"}static{this.nonDeferred=!0}async invoke(e,n){if(Jd(n),e.input.path)throw new Error('The property "path" is not supported');let o=(e.model&&await this.endpointProvider.getChatEndpoint(e.model))?.family,a=kie(e.input.query,this.workspaceService,o);this.sendSearchToolTelemetry(e,a.folderName);let c=await mG(A=>Promise.resolve(this.searchService.findFiles(a.patterns,{caseInsensitive:!0},A)),n,2e4,"Timeout in searching files, try a more specific search pattern");Jd(n);let l=e.input.maxResults??20,u=c.slice(0,l),d=await Hi(this.instantiationService,w2e,{fileResults:u,totalResults:c.length},e.tokenizationOptions,n),p=new Gc([new Ii(d)]),m=this.formatQueryLabel(a,e.input.query);return p.toolResultMessage=u.length===0?new je(_2e.t`Searched for files matching ${m}, no matches`):u.length===1?new je(_2e.t`Searched for files matching ${m}, 1 match`):new je(_2e.t`Searched for files matching ${m}, ${u.length} matches`),p.toolResultDetails=u,p}async sendSearchToolTelemetry(e,n){let r=e.model&&(await this.endpointProvider.getChatEndpoint(e.model)).model,o=this.workspaceService.getWorkspaceFolders().length>1,a=e.input.query;this.telemetryService.sendMSFTTelemetryEvent("findFilesToolInvoked",{requestId:e.chatRequestId,model:r,isMultiRoot:String(o),queryScopedToFolder:String(!!n),queryStartsWithFolderPath:String(td(a)&&!!this.workspaceService.getWorkspaceFolder(K.file(a))),queryContainsFolderPath:String(O$e(a,this.workspaceService))})}prepareInvocation(e,n){let r=kie(e.input.query,this.workspaceService,void 0),o=this.formatQueryLabel(r,e.input.query);return{invocationMessage:new je(_2e.t`Searching for files matching ${o}`)}}formatQueryLabel(e,n){return e.folderName?e.folderRelativePattern&&e.folderRelativePattern!=="**"?`\`${e.folderName}\` \xB7 \`${e.folderRelativePattern}\``:`\`${e.folderName}\``:`\`${n}\``}async resolveInput(e,n,r){let o=e.query;return!o.startsWith("**/")&&!o.startsWith("/")&&!o.includes(":")&&(o=`**/${o}`),o.endsWith("/")&&(o=`${o}**`),{...e,query:o,maxResults:r===1?Math.max(e.maxResults??0,200):e.maxResults??20}}};C2e=S([b(0,j),b(1,cg),b(2,Te),b(3,tt),b(4,Ee)],C2e);$n.registerTool(C2e);var w2e=class extends bq.PromptElement{constructor(n,r){super(n);this.promptPathRepresentationService=r}render(n,r){return this.props.fileResults.length===0?vscpp(vscppf,null,"No files found"):vscpp(vscppf,null,vscpp(bq.TextChunk,{priority:20},this.props.totalResults===1?"1 total result":`${this.props.totalResults} total results`),this.props.fileResults.map(o=>vscpp(bq.TextChunk,{priority:10},vscpp("references",{value:[new bq.PromptReference(o,void 0,{isFromTool:!0})]}),this.promptPathRepresentationService.getFilePath(o))),this.props.totalResults>this.props.fileResults.length&&vscpp(bq.TextChunk,{priority:20},"..."))}};w2e=S([b(1,Vt)],w2e);var x2e=O(Lt()),T2e=O(Ye());Ue();Ot();Be();es();fr();Ot();var kAe={location:"sameFolder",prefix:"test_",suffixes:[".test",".spec","_test","Test","_spec","_test","Tests",".Tests","Spec"]},SAe={csharp:{suffixes:["Test"],location:"testFolder"},dart:{suffixes:["_test"],location:"testFolder"},go:{suffixes:["_test"],location:"sameFolder"},java:{suffixes:["Test"],location:"testFolder"},javascript:{suffixes:[".test",".spec"],location:"sameFolder"},javascriptreact:{suffixes:[".test",".spec"],location:"sameFolder"},kotlin:{suffixes:["Test"],location:"testFolder"},php:{suffixes:["Test"],location:"testFolder"},powershell:{suffixes:[".Tests"],location:"testFolder"},python:{prefix:"test_",suffixes:["_test"],location:"testFolder"},ruby:{suffixes:["_test","_spec"],location:"testFolder"},rust:{suffixes:[""],location:"testFolder"},swift:{suffixes:["Tests"],location:"testFolder"},typescript:{suffixes:[".test",".spec"],location:"sameFolder"},typescriptreact:{suffixes:[".test",".spec"],location:"sameFolder"}},CEa={cs:"csharp",dart:"dart",go:"go",java:"java",js:"javascriptreact",kt:"kotlin",php:"php",ps1:"powershell",py:"python",rb:"ruby",rs:"rust",swift:"swift",ts:"typescript",tsx:"typescriptreact"},wEa=function(){let t={};for(let[e,n]of Object.entries(CEa))t[e]=SAe[n];return t}(),MP=class{constructor(e,n){this._search=e;this._tabs=n}_findTabMatchingPattern(e){return this._tabs.tabs.find(r=>r.uri&&r.uri.scheme!==Rt.untitled&&hqe(r.uri,e))?.uri}async findTestFileForSourceFile(e,n){if(e.isUntitled)return;let r=Ni(e.uri),o=lh(e.uri),a=SAe[e.languageId]??kAe,s=[];if(a.prefix&&s.push(a.prefix+r),a.suffixes)for(let u of a.suffixes??[]){let d=r.replace(`${o}`,`${u}${o}`);s.push(d)}let c=s.length===1?`**/${s[0]}`:`**/{${s.join(",")}}`,l=this._findTabMatchingPattern(c);return l||(e.languageId==="python"?l=await this._search.findFilesWithExcludes(c,"**/*.pyc",1,n):l=await this._search.findFilesWithDefaultExcludes(c,1,n)),l}async findAnyTestFileForSourceFile(e,n){let r=SAe[e.languageId]??kAe,o=[];if(r.prefix&&o.push(`${r.prefix}*`),r.suffixes){let c=lh(e.uri);for(let l of r.suffixes??[])o.push(`*${l}${c}`)}let a=o.length===1?`**/${o[0]}`:`**/{${o.join(",")}}`,s=this._findTabMatchingPattern(a);return s||(e.languageId==="python"?s=await this._search.findFilesWithExcludes(a,"**/*.pyc",1,n):s=await this._search.findFilesWithDefaultExcludes(a,1,n)),s}async findFileForTestFile(e,n){let r=SAe[e.languageId]??kAe,o=Ni(e.uri),a=[];r.suffixes&&a.splice(0,0,...r.suffixes),r.prefix&&a.splice(0,0,r.prefix);for(let s of a){let c=o.replace(s,"");if(c!==o){let l=`**/${c}`,u=this._findTabMatchingPattern(l);if(u||(u=await this._search.findFilesWithDefaultExcludes(l,1,n)),u)return u}}}};MP=S([b(0,cg),b(1,co)],MP);function yq(t){let e;t instanceof xr&&(e=SAe[t.languageId],t=t.uri);let n=Ni(t),r=lh(t);if(e??=wEa[r.replace(".","")],e){if(e.suffixes&&e.suffixes.some(a=>n.endsWith(a+r))||e.prefix&&n.startsWith(e.prefix))return!0}else if(kAe.suffixes.some(a=>n.endsWith(a+r))||n.startsWith(kAe.prefix))return!0;return!1}function xEa(t){let e=SAe[t.languageId]??kAe,n=Ni(t.uri);if(e.prefix)return e.prefix+n;let r=lh(t.uri),o=e.suffixes&&e.suffixes.length>0?e.suffixes[0]:".test";return n.replace(`${r}`,`${o}${r}`)}function EEa(t){let e=rR(t.uri,"..");if(t.languageId==="java"){let n=e.path;if(n.includes("/src/main/")){let r=n.replace("/src/main/","/src/test/");return e.with({path:r})}}return e}function $6r(t){let e=xEa(t),n=EEa(t);return K.joinPath(n,e).with({scheme:Rt.untitled})}var z6r=O(Ye());Je();var BAe=me("ITestDepsResolver"),TAe=class{constructor(e,n){this._searchService=e;this._fileSystemService=n;this._perLanguageTestDepsFinder=new Map;this._cachedResults=new Map,this._textDecoder=new TextDecoder}async getTestDeps(e){let n=this._cachedResults.get(e);if(n!==void 0)return n;let r=this.getTestDepsFinder(e);if(r===void 0)return[];let o=await r.findTestDeps();return this._cachedResults.set(e,o),o}getTestDepsFinder(e){let n=this._perLanguageTestDepsFinder.get(e);if(n===void 0)switch(e){case"javascript":case"javascriptreact":case"typescript":case"typescriptreact":{n=new YJt(this._searchService,this._fileSystemService,this._textDecoder);break}case"python":{n=new KJt(this._searchService,this._fileSystemService,this._textDecoder);break}case"java":{n=new JJt(this._searchService,this._fileSystemService,this._textDecoder);break}}return n!==void 0&&this._perLanguageTestDepsFinder.set(e,n),n}};TAe=S([b(0,cg),b(1,yt)],TAe);var YJt=class{constructor(e,n,r){this._searchService=e;this._fileSystemService=n;this._textDecoder=r;this._jsTsTestDeps=new Set(["mocha","jest","vitest","chai","ava","jasmine","qunit","tape","cypress","puppeteer","enzyme","testing-library","sinon","supertest","happy-dom","playwright"])}async findTestDeps(){let e=await this._searchService.findFiles("**/package.json",{exclude:["**/node_modules/**"],useExcludeSettings:sL.FilesExclude});return(await Promise.allSettled(e.map(async r=>{let o=await this._fileSystemService.readFile(r),a=JSON.parse(this._textDecoder.decode(o)),s=a.dependencies||{},c=a.devDependencies||{};return[s,c].flatMap(u=>Object.keys(u).filter(d=>this._jsTsTestDeps.has(d)))}))).flatMap(r=>r.status==="fulfilled"?r.value:[])}},KJt=class{constructor(e,n,r){this._searchService=e;this._fileSystemService=n;this._textDecoder=r;this._pyTestDeps=["pytest","nose","unittest","tox","doctest","hypothesis","mock","coverage","behave","robotframework"]}async findTestDeps(){let e=new Set,n=["pyproject.toml","setup.py","requirements.txt","tox.ini"],r=await this._searchService.findFiles(`**/{${n.join(",")}}`);return await Promise.all(r.map(async o=>{let a=await this._fileSystemService.readFile(o),s=this._textDecoder.decode(a);o.path.endsWith("pyproject.toml")?this._getPyProjectTomlDeps(s).forEach(l=>e.add(l)):o.path.endsWith("setup.py")?this._getSetupPyDeps(s).forEach(l=>e.add(l)):o.path.endsWith("requirements.txt")?this._getRequirementsTxtDeps(s).forEach(l=>e.add(l)):o.path.endsWith("tox.ini")&&e.add("tox")})),Array.from(e)}_getPyProjectTomlDeps(e){return this._pyTestDeps.filter(n=>e.includes(n))}_getSetupPyDeps(e){return this._pyTestDeps.filter(n=>e.includes(n))}_getRequirementsTxtDeps(e){return this._pyTestDeps.filter(n=>e.includes(n))}},JJt=class{constructor(e,n,r){this._searchService=e;this._fileSystemService=n;this._textDecoder=r;this._javaTestDeps=["junit","testng","mockito","assertj","hamcrest","powermock","spock","cucumber","arquillian","selenium","rest-assured","wiremock","pitest"]}async findTestDeps(){let e=new Set,n=["pom.xml","build.gradle","build.gradle.kts"],r=await this._searchService.findFiles(`**/{${n.join(",")}}`);return await Promise.all(r.map(async o=>{let a=await this._fileSystemService.readFile(o),s=this._textDecoder.decode(a);this._javaTestDeps.filter(c=>s.includes(c)).forEach(c=>e.add(c))})),Array.from(e)}};var FP=class extends z6r.PromptElement{constructor(n,r){super(n);this.testDepsResolver=r}async render(n,r){let{languageId:o}=this.props,a=await this.testDepsResolver.getTestDeps(o);return a.length>0&&vscpp(z,{name:"testDependencies",priority:this.props.priority},"The project has the following testing dependencies: ",a.join(", "),".")}};FP=S([b(1,BAe)],FP);var E2e=class extends fe{constructor(n,r,o,a){super();this.instantiationService=n;this.workspaceService=r;this.promptPathRepresentationService=o;this.ignoreService=a;this._testFileFinder=this.instantiationService.createInstance(MP)}static{this.toolName="test_search"}async invoke(n,r){let o,a=[],s=[],c=[],l=[],u;if(await Promise.all(n.input.filePaths.map(async A=>{let f=this.promptPathRepresentationService.resolveFilePath(A);if(!f)throw new Error(`Invalid input path ${A}`);if(await this.ignoreService.isCopilotIgnored(f))return;let g=await this.workspaceService.openTextDocumentAndSnapshot(f);if(a.push(g.uri),o===void 0&&(o=g.languageId),!r.isCancellationRequested)if(yq(g)){let h=await this._testFileFinder.findFileForTestFile(g,r);if(h&&!await this.ignoreService.isCopilotIgnored(h)){let y=await this.workspaceService.openTextDocumentAndSnapshot(h);l.push({srcFile:h,testFile:g.uri,document:y})}}else{let h=await this._testFileFinder.findTestFileForSourceFile(g,r);if(h){let y=await this.workspaceService.openTextDocumentAndSnapshot(h);s.push({srcFile:g.uri,testFile:h,document:y})}}})),Jd(r),s.length===0&&u){let A=await this._testFileFinder.findAnyTestFileForSourceFile(u,r);if(A&&!await this.ignoreService.isCopilotIgnored(A)){let f=await this.workspaceService.openTextDocumentAndSnapshot(A);c.push({srcFile:u.uri,testFile:A,document:f})}}let d=s.length+l.length+c.length,p={languageId:o,testFiles:s,srcFiles:l,anyTestFiles:c},m=new Gc([new Ii(await Hi(this.instantiationService,I2e,p,n.tokenizationOptions,r))]);return m.toolResultMessage=d===0?new je(x2e.t`Checked ${this.formatURIs(a)} for test related files, none found`):d===1?new je(x2e.t`Checked ${this.formatURIs(a)}, 1 file found`):new je(x2e.t`Checked ${this.formatURIs(a)}, ${d} files found`),m}prepareInvocation(n,r){if(!n.input.filePaths?.length)throw new Error("Invalid input");let o=n.input.filePaths.map(a=>cc(a,this.promptPathRepresentationService));if(o.some(a=>a===void 0))throw new Error("Invalid input");return{invocationMessage:new je(x2e.t`Checking ${this.formatURIs(o)}`)}}formatURIs(n){return n.map(r=>Wn(r)).join(", ")}async provideInput(n){let r=new Set,o=[],a=[];function s(c,l){r.has(c)||(r.add(c),o.push(c),a.push(l&&[l.start.line,l.start.character,l.end.line,l.end.character]))}for(let c of n.chatVariables)K.isUri(c.value)?s(this.promptPathRepresentationService.getFilePath(c.value),void 0):go(c.value)&&s(this.promptPathRepresentationService.getFilePath(c.value.uri),c.value.range);if(n.workingSet)for(let c of n.workingSet)s(this.promptPathRepresentationService.getFilePath(c.document.uri),c.range);return o.length,{filePaths:o,ranges:a}}};E2e=S([b(0,j),b(1,Te),b(2,Vt),b(3,Dt)],E2e);$n.registerTool(E2e);var I2e=class extends T2e.PromptElement{constructor(n,r){super(n);this.parserService=r}async render(n,r){if(this.props.testFiles.length===0&&this.props.srcFiles.length===0&&this.props.anyTestFiles.length===0)return vscpp(vscppf,null,"No test related files found.");let o=Math.min(r.tokenBudget,32e3),a=[...this.props.testFiles,...this.props.anyTestFiles,...this.props.srcFiles].map(l=>({document:l.document,formattingOptions:void 0,selection:void 0})),s=await F2n(this.parserService,a,o),c=0;return vscpp(vscppf,null,vscpp(FP,{languageId:this.props.languageId}),"The following files are useful when writing tests: ",vscpp("br",null),this.props.testFiles.map(l=>vscpp(S2e,{info:l,projectedDoc:s[c++]})),this.props.anyTestFiles.map(l=>vscpp(XJt,{info:l,projectedDoc:s[c++]})),this.props.srcFiles.map(l=>vscpp(k2e,{info:l,projectedDoc:s[c++]})))}};I2e=S([b(1,Ai)],I2e);var k2e=class extends T2e.PromptElement{constructor(n,r){super(n);this.promptPathRepresentationService=r}render(n,r){let o=this.props.info.document;return vscpp(z,{name:"relatedSource"},"The test file ",this.promptPathRepresentationService.getFilePath(this.props.info.testFile)," contains tests for the following file:",vscpp("br",null),vscpp(hn,{code:this.props.projectedDoc.text,uri:o.uri,languageId:o.languageId,includeFilepath:!0}),vscpp("br",null))}};k2e=S([b(1,Vt)],k2e);var S2e=class extends T2e.PromptElement{constructor(n,r){super(n);this.promptPathRepresentationService=r}render(n,r){let o=this.props.info.document;return vscpp(z,{name:"relatedTest"},"Tests for ",this.promptPathRepresentationService.getFilePath(this.props.info.srcFile)," can go into the following existing file:",vscpp("br",null),vscpp(hn,{code:this.props.projectedDoc.text,uri:o.uri,languageId:o.languageId,includeFilepath:!0}),vscpp("br",null))}};S2e=S([b(1,Vt)],S2e);var XJt=class extends T2e.PromptElement{constructor(e){super(e)}render(e,n){return vscpp(z,{name:"sampleTest"},"This is a sample test file:",vscpp("br",null),vscpp(hn,{code:this.props.projectedDoc.text,uri:this.props.info.document.uri,languageId:this.props.info.document.languageId,includeFilepath:!0}),vscpp("br",null))}};var cQ=O(Lt()),vq=O(Ye());wr();sr();So();Ot();Be();var eXt=200,R2e=class{constructor(e,n,r,o,a,s){this.instantiationService=e;this.searchService=n;this.workspaceService=r;this.endpointProvider=o;this.configurationService=a;this.telemetryService=s}static{this.toolName="grep_search"}static{this.nonDeferred=!0}async invoke(e,n){if(e.input.pattern)throw new Error('The property "pattern" is not supported, please use "query"');let o=(e.model&&await this.endpointProvider.getChatEndpoint(e.model))?.family,a=e.input.includePattern?kie(e.input.includePattern,this.workspaceService,o):void 0,s=a?.patterns;this.sendSearchToolTelemetry(e,a),Jd(n);let c=e.input.maxResults&&e.input.maxResults>eXt,l=Math.min(e.input.maxResults??20,eXt),u=e.input.isRegexp??!0,d=this.isValidRegex(e.input.query),p=e.input.includeIgnoredFiles??!1,m=2e4,A=await mG(_=>this.searchAndCollectResults(e.input.query,u,s,l,p,_),n,m,`Timeout in searching text in files with ${u?"regex":"literal"} search, try a more specific search pattern or change regex/literal mode`);!A.length&&d&&(A=await mG(_=>this.searchAndCollectResults(e.input.query,!u,s,l,p,_),n,m,`Find ${A.length} results in searching text in files with ${u?"regex":"literal"} search, and then another searching hits timeout in with ${u?"literal":"regex"} search, try a more specific search pattern`));let f;if(!A.length&&!p){let _=this.configurationService.getNonExtensionConfig("search.exclude"),w=[];if(_)for(let[x,E]of Object.entries(_))E&&w.push(x);f=`Your search pattern might be excluded completely by either the search.exclude settings or .*ignore files. If you believe that it should have results, you can check into the .*ignore files and the exclude setting (here are some excluded patterns for reference:[${w.join(",")}]). Then if you want to include those files you can call the tool again by setting "includeIgnoredFiles" to true.`}let g=await Hi(this.instantiationService,tXt,{textResults:A,maxResults:l,askedForTooManyResults:!!c,noMatchInstructions:f},e.tokenizationOptions,n),h=new Gc([new Ii(g)]),y=A.flatMap(_=>"ranges"in _?SFe(_.ranges).map(w=>new bs(_.uri,w.sourceRange)):[]).slice(0,l),v=this.formatQueryString(e.input,a);return h.toolResultMessage=this.getResultMessage(u,v,y.length),h.toolResultDetails=y,h}async sendSearchToolTelemetry(e,n){let r=e.model&&(await this.endpointProvider.getChatEndpoint(e.model)).model,o=this.workspaceService.getWorkspaceFolders().length>1,a=e.input.includePattern;this.telemetryService.sendMSFTTelemetryEvent("findTextInFilesToolInvoked",{requestId:e.chatRequestId,model:r,isMultiRoot:String(o),patternScopedToFolder:String(!!n?.folderName),patternStartsWithFolderPath:String(!!a&&td(a)&&!!this.workspaceService.getWorkspaceFolder(K.file(a))),patternContainsFolderPath:String(O$e(a,this.workspaceService))})}getResultMessage(e,n,r){return r===0?e?new je(cQ.t`Searched for regex ${n}, no results`):new je(cQ.t`Searched for text ${n}, no results`):r===1?e?new je(cQ.t`Searched for regex ${n}, 1 result`):new je(cQ.t`Searched for text ${n}, 1 result`):e?new je(cQ.t`Searched for regex ${n}, ${r} results`):new je(cQ.t`Searched for text ${n}, ${r} results`)}isValidRegex(e){try{return new RegExp(e),!0}catch{return!1}}async searchAndCollectResults(e,n,r,o,a,s){let c={include:r||void 0,maxResults:o+1,useExcludeSettings:a?sL.None:sL.SearchAndFilesExclude,useIgnoreFiles:a?{local:!1,parent:!1,global:!1}:void 0,caseInsensitive:!0},l=this.searchService.findTextInFiles2({pattern:e,isRegExp:n},c,s),u=[];for await(let d of l.results)Jd(s),u.push(d);return await l.complete,u}prepareInvocation(e,n){let r=e.input.isRegexp??!0,o=e.input.includePattern?kie(e.input.includePattern,this.workspaceService,void 0):void 0,a=this.formatQueryString(e.input,o);return{invocationMessage:r?new je(cQ.t`Searching for regex ${a}`):new je(cQ.t`Searching for text ${a}`)}}formatCodeSpan(e){let n=e.match(/`+/g),r=n?n.reduce((c,l)=>Math.max(c,l.length),0):0,o="`".repeat(r+1),s=e.startsWith("`")||e.endsWith("`")?` ${e} `:e;return`${o}${s}${o}`}formatQueryString(e,n){let r=this.formatCodeSpan(e.query);if(n?.folderName)return n.folderRelativePattern&&n.folderRelativePattern!=="**"?`${r} (\`${n.folderName}\` \xB7 ${this.formatCodeSpan(n.folderRelativePattern)})`:`${r} (\`${n.folderName}\`)`;if(e.includePattern&&e.includePattern!=="**/*"){let o=this.formatCodeSpan(e.includePattern);return`${r} (${o})`}return r}async resolveInput(e,n,r){let o=e.includePattern;return o==="**"&&(o=void 0),o&&!o.startsWith("**/")&&!o.startsWith("/")&&!o.includes(":")&&(o=`**/${o}`),o&&o.endsWith("/")&&(o=`${o}**`),{maxResults:r===1?200:20,...e,includePattern:o}}};R2e=S([b(0,j),b(1,cg),b(2,Te),b(3,tt),b(4,be),b(5,Ee)],R2e);$n.registerTool(R2e);var B2e=500,IEa=1e3,tXt=class extends vq.PromptElement{async render(e,n){let r=this.props.textResults.filter(kEa);if(r.length===0){let u=this.props.noMatchInstructions??"";return vscpp(vscppf,null,"No matches found.",u)}let o=r.reduce((u,d)=>u+d.ranges.length,0),a=Math.min(o,this.props.maxResults),s=o===1?"1 match":`${a} matches`,c=o>this.props.maxResults?" (more results are available)":"",l=this.props.askedForTooManyResults?` (maxResults capped at ${eXt})`:"";return vscpp(vscppf,null,vscpp(vq.TextChunk,{priority:20},s,c,l),r.flatMap(u=>{let d=u.previewText.replace(/\n$/,"");return u.ranges.map((p,m)=>vscpp(D2e,{passPriority:!0,preview:d,rangeInPreview:p.previewRange,rangeInDocument:p.sourceRange,uri:u.uri}))}))}},D2e=class extends vq.PromptElement{constructor(n,r){super(n);this.promptPathRepresentationService=r}render(){let{uri:n,preview:r,rangeInDocument:o,rangeInPreview:a}=this.props,s=new I0(r),c=s.positionToOffset(new Sr(a.start.line+1,a.start.character+1)),l=s.positionToOffset(new Sr(a.end.line+1,a.end.character+1)),u=r,d=o.start.line+1-em(r.slice(0,c),` `);r.length-l>B2e&&(u=r.slice(0,l+B2e)+"..."),c>B2e&&(d+=em(r.slice(0,c-B2e),` `),u="..."+u.slice(c-B2e));let p=u.split(` `),m=Math.floor(p.length/2);return vscpp(z,{name:"match",attrs:{path:this.promptPathRepresentationService.getFilePath(n),line:o.start.line+1}},vscpp("references",{value:[new vq.PromptReference(new bs(this.props.uri,o),void 0,{isFromTool:!0})]}),p.map((A,f)=>vscpp(vq.TextChunk,{priority:IEa-Math.abs(f-m)},A)))}};D2e=S([b(1,Vt)],D2e);function kEa(t){return"ranges"in t}var aXt=O(Lt());Be();var nXt=O(Lt()),oXt=O(Ye());dn();Ue();Be();var rXt=class{constructor(e,n,r){this.filepath=e;this.requestId=n;this.model=r;this.result="failure"}skipped(e){this.result="skipped",this.resultInfo=e}failed(e){this.result="failure",this.resultInfo=e}async send(e){let n=await d0(this.filepath);e.sendMSFTTelemetryEvent("runNotebookCellInvoked",{requestId:this.requestId,resourceHash:n,model:this.model,result:this.result,resultInfo:this.resultInfo})}},P2e=class{constructor(e,n,r,o,a,s,c,l,u){this.instantiationService=e;this.promptPathRepresentationService=n;this.workspaceService=r;this.notebookService=o;this.alternativeNotebookContent=a;this.extensionsService=s;this.endpointProvider=c;this.toolsService=l;this.telemetryService=u}static{this.toolName="run_notebook_cell"}async invoke(e,n){let{filePath:r,cellId:o,continueOnError:a}=e.input,s=e.model&&(await this.endpointProvider.getChatEndpoint(e.model)).model,c=new rXt(r,e.chatRequestId,s);try{let{notebook:l,cell:u}=this.getNotebookAndCell(r,o);this.notebookService.trackAgentUsage();let d="ms-toolsai.jupyter";if(dh(l.uri)&&l.getCells().some(w=>w.document.languageId.toLowerCase()==="python")&&!this.extensionsService.getExtension(d))try{let w={id:d,name:"Jupyter"};await this.toolsService.invokeTool("install_extension",{...e,input:w},n)}catch{}if(await this.notebookService.ensureKernelSelected(l.uri),n.isCancellationRequested)return c.skipped("canceled"),new Zn([]);let p=l.getCells().findIndex(w=>w===u);if(u.kind!==2)return c.skipped("markdownCell"),new Zn([new rn(`Cell ${o} is not a code cell so it can't be executed. If this is unexpected, then use the read_file file tool to get the latest content of the notebook file`)]);if(u.document.getText().trim()==="")return c.skipped("emptyCell"),new Zn([new rn(`Cell ${o} is empty, so it won't be executed. If this is unexpected, then use the read_file file tool to get the latest content of the notebook file`)]);let m,A,f=[];try{let w=qt(this.waitForCellExecution(u,f),n),x=this.notebookService.getFollowState();await this.notebookService.runCells(l.uri,{start:p,end:p+1},x),A=await au(w,3e3),A?A.success===!1?(c.failed("ExecutionFailed"),a||(m=`Cell ${o} execution failed. The error should be fixed before running any more cells.`)):c.result="success":(m=`Cell ${o} did not finish executing. It may still be running, or it may have failed to execute.`,c.failed("ExecutionTimeout"))}finally{JC(f)}let g=u?.outputs||[],h=[];h.push(new Ii(await Hi(this.instantiationService,iXt,{executionSummary:A,infoMessage:m},e.tokenizationOptions,n)));let y=this._promptContext?.request?await this.endpointProvider.getChatEndpoint(this._promptContext?.request):void 0;for(let w=0;wI.mime==="image/png"||I.mime==="image/jpeg"):void 0;E?(h.push(new rn(` Output ${w}: `)),h.push(rm.image(E.data,E.mime==="image/png"?"image/png":"image/jpeg")),h.push(new rn(""))):h.push(new Ii(await Hi(this.instantiationService,N2e,{output:x,index:w,sizeLimitRatio:4},e.tokenizationOptions,n)))}let v=new Gc(h),_=u?.document.uri;return v.toolResultMessage=new je(`Ran [](${_?.toString()})`),v}catch(l){c.failed(l.message||"exceptionThrown")}finally{await c.send(this.telemetryService)}}prepareInvocation(e){let{filePath:n,cellId:r,reason:o}=e.input,{cell:a}=this.getNotebookAndCell(n,r);this.notebookService.trackAgentUsage();let s=this.formatRunMessage(a,o);return{confirmationMessages:{title:nXt.t`Run Notebook Cell`,message:s},invocationMessage:new je(nXt.t`Running [](${a.document.uri.toString()})`)}}async resolveInput(e,n){return this._promptContext=n,e}getNotebookAndCell(e,n){let r=this.promptPathRepresentationService.resolveFilePath(e);if(!r)throw new Error("Invalid file path");let o=Jo(r,this.workspaceService.notebookDocuments);if(!o)throw new Error(`Notebook ${r} not found.`);let a=gA(o).get(n);if(!a)throw new Error(`Cell ${n} not found in the notebook, use the read_file file tool to get the latest content of the notebook file`);return{notebook:o,cell:a}}formatRunMessage(e,n){let r=[`[](${e.document.uri.toString()})`,""];r.push("```"+e.document.languageId);let o=!0;for(let s of e.document.getText().split(` `)){if(r.length>10){r.push("...");break}if(s.trim()===""){if(o)continue;o=!0}else o=!1;r.push(s)}n&&(r.unshift(""),r.unshift(n));let a=r.join(` `).trim()+"\n```";return new je(a)}async waitForCellExecution(e,n){return new Promise(r=>{n.push(this.workspaceService.onDidChangeNotebookDocument(o=>{for(let a of o.cellChanges)a.executionSummary&&typeof a.executionSummary.success=="boolean"&&a.cell===e&&r(a.executionSummary)}))})}};P2e=S([b(0,j),b(1,Vt),b(2,Te),b(3,wi),b(4,ma),b(5,EA),b(6,tt),b(7,Xn),b(8,Ee)],P2e);var iXt=class extends oXt.PromptElement{render(e,n){let{executionSummary:r}=this.props;return vscpp(vscppf,null,vscpp(z,{name:"execution-summaries"},r&&this.renderSummary("cellId",r,!0)),this.renderAdditionalInfo())}renderAdditionalInfo(){return this.props.infoMessage?vscpp(z,{name:"additional-info"},this.renderInfoMessage(this.props.infoMessage)):vscpp(vscppf,null)}renderSummary(e,n,r){let o=vscpp(vscppf,null,"cell ",e," ");return typeof n?.success=="boolean"?o=vscpp(vscppf,null,o,n?.success?vscpp(vscppf,null,"executed successfully ",vscpp("br",null)):vscpp(vscppf,null,"execution failed ",vscpp("br",null))):o=vscpp(vscppf,null,o,vscpp("br",null)),n?.timing&&(o=vscpp(vscppf,null,o,"Total Duration: ",n.timing.endTime-n.timing.startTime,"ms ",vscpp("br",null))),r&&n?.executionOrder&&(o=vscpp(vscppf,null,o,"Last Execution Order: ",n.executionOrder," ")),o}renderInfoMessage(e){return vscpp(vscppf,null,e," ",vscpp("br",null)," ")}},N2e=class extends oXt.PromptElement{render(e,n){let{output:r,index:o}=this.props,a=r.items.find(l=>l.mime==="application/vnd.code.notebook.error");if(a){let l=a.data.toString(),u=l.includes("ModuleNotFoundError");return vscpp(z,{name:"cell-execution-error"},"Error: ",r9e(l),vscpp("br",null),u?"Either use notebook_install_packages_tool to install the missing package if the tool exists, or add/edit a cell with '%pip install' to install the package.":"Make sure to check the contents of previous cells to see if rerunning those cells would resolve the issue.")}let s=r.items.find(l=>l.mime==="text/html"||l.mime==="text/markdown"||l.mime==="text/plain"||l.mime==="application/vnd.code.notebook.stdout"||l.mime==="application/vnd.code.notebook.stderr"||l.mime==="application/json");if(s)return A4(s.data.byteLength)>n.tokenBudget/this.props.sizeLimitRatio?vscpp(z,{name:"cell-output",attrs:{mimeType:s.mime}},"Output ",o+1,": Output is too large to be used as context in the language model, but the user should be able to see it in the notebook.",vscpp("br",null),vscpp("br",null)):vscpp(z,{name:"cell-output",attrs:{mimeType:s.mime}},"Output ",o+1,": ",s.data.toString());let c=r.items.find(l=>A4(l.data.byteLength)>n.tokenBudget/this.props.sizeLimitRatio);return c?vscpp(z,{name:"cell-output",attrs:{mimeType:c.mime}},"Output ",o+1,": Output is too large to be used as context in the language model, but the user should be able to see it in the notebook.",vscpp("br",null),vscpp("br",null)):vscpp(z,{name:"cell-output"},"Output with mimeTypes: ",r.items.map(l=>l.mime).join(", "),vscpp("br",null),`Output ${o}: ${this.renderOutputFallback(r,n.tokenBudget/8)}`)}renderOutputFallback(e,n){let o=e.items.map(s=>s.data.toString()).join(` `);return o.length>n?o.substring(0,n):o}};$n.registerTool(P2e);var L2e=class{constructor(e,n,r,o,a,s,c,l){this.instantiationService=e;this.promptPathRepresentationService=n;this.workspaceService=r;this.alternativeNotebookContent=o;this.endpointProvider=a;this.telemetryService=s;this.notebookService=c;this.logger=l}static{this.toolName="read_notebook_cell_output"}async invoke(e,n){let{filePath:r,cellId:o}=e.input,a=this.promptPathRepresentationService.resolveFilePath(r);if(!a)throw RAe(this.telemetryService,this.endpointProvider,e,"invalid_file_path"),new Error("Invalid file path");let s=Jo(a,this.workspaceService.notebookDocuments);if(s)a=s.uri;else if(!this.notebookService.hasSupportedNotebooks(a))throw RAe(this.telemetryService,this.endpointProvider,e,"notNotebookUri"),new Error(`Use this tool only with Notebook files, the file ${a.toString()} is not a notebook.`);try{s=s||await this.workspaceService.openNotebookDocument(a)}catch(l){throw RAe(this.telemetryService,this.endpointProvider,e,"failedToOpenNotebook"),this.logger.error(`Failed to open notebook: ${a.toString()}`,l),new Error(`Failed to open the notebook ${a.toString()}, ${l.message||""}. Verify the file exists.`)}let c=gA(s).get(o);if(!c)throw RAe(this.telemetryService,this.endpointProvider,e,"cellNotFound"),new Error("Cell not found, use the read_file file tool to get the latest content of the notebook file.");try{let l=c.outputs,u=[],d=this._promptContext?.request?await this.endpointProvider.getChatEndpoint(this._promptContext?.request):void 0;for(let A=0;Ah.mime==="image/png"||h.mime==="image/jpeg"):void 0;g?(u.push(new rn(` Output ${A}: `)),u.push(rm.image(g.data,g.mime==="image/png"?"image/png":"image/jpeg")),u.push(new rn(""))):u.push(new Ii(await Hi(this.instantiationService,N2e,{output:f,index:A,sizeLimitRatio:1.2},e.tokenizationOptions,n)))}let p=new Gc(u),m=c?.document.uri;return p.toolResultMessage=new je(`Read output of [](${m?.toString()})`),RAe(this.telemetryService,this.endpointProvider,e,"success"),p}catch(l){throw RAe(this.telemetryService,this.endpointProvider,e,"error"),l}}prepareInvocation(e){return{invocationMessage:aXt.t`Reading cell output`,pastTenseMessage:aXt.t`Read cell output`}}async resolveInput(e,n){return this._promptContext=n,e}};L2e=S([b(0,j),b(1,Vt),b(2,Te),b(3,ma),b(4,tt),b(5,Ee),b(6,wi),b(7,Z)],L2e);$n.registerTool(L2e);async function RAe(t,e,n,r){let o=n.model&&e&&(await e.getChatEndpoint(n.model)).model;t.sendMSFTTelemetryEvent("getNotebookCellOutput.toolOutcome",{requestId:n.chatRequestId,outcome:r,model:o},{isNotebook:1})}var M2e=class{constructor(e){this._commandService=e}static{this.toolName="get_search_view_results"}async invoke(e,n){let r=[];try{let o=await this._commandService.executeCommand("search.action.getSearchResults");o&&r.push(o)}catch{}return new Zn([new rn(`The following are the results from the search view: ${r.join(` `)}`)])}};M2e=S([b(0,Ql)],M2e);$n.registerTool(M2e);var zk=O(Lt()),j6r=O(Ye());dn();Ot();Be();var F2e=class{constructor(e,n,r,o,a){this._instantiationService=n;this._githubCodeSearch=r;this._availableEmbeddingTypesManager=o;this._telemetryService=a}static{this.toolName="github_repo"}async invoke(e,n){let r=TS.parse(e.input.repo);if(!r)throw new Error("Invalid input. Could not parse repo");let o=await this._availableEmbeddingTypesManager.getPreferredType(!1);if(!o)throw new Error("No embedding models available");let s=(await this._githubCodeSearch.searchRepo({silent:!0},o,{githubRepoId:r,localRepoRoot:void 0,indexedCommit:void 0},e.input.query,64,{},new Aa("github-repo-tool"),n)).chunks.map(d=>({chunk:{...d.chunk,file:K.joinPath(K.parse("https://github.com"),Uv(r),"tree","main",d.chunk.file.path).with({fragment:`L${d.chunk.range.startLineNumber}-L${d.chunk.range.endLineNumber}`})},distance:d.distance})),c=[],l=await Hi(this._instantiationService,sXt,{chunks:s,referencesOut:c}),u=new Gc([new Ii(l)]);return c=GS(c),u.toolResultMessage=c.length===0?new je(zk.t`Searched ${r.toString()} for "${e.input.query}", no results`):c.length===1?new je(zk.t`Searched ${r.toString()} for "${e.input.query}", 1 result`):new je(zk.t`Searched ${r.toString()} for "${e.input.query}", ${c.length} results`),u.toolResultDetails=c.map(d=>d.anchor).filter(d=>ti(d)||go(d)),u}async prepareInvocation(e,n){let r=await qt(this.doPrepare(e,n),n);if(r.isOk())return{invocationMessage:zk.t("Searching '{0}' for relevant code snippets",e.input.repo)};throw this._telemetryService.sendMSFTTelemetryEvent("githubRepoTool.prepare.error",{errorId:r.err.id,errorDetails:r.err.details}),new Error(r.err.message)}async doPrepare(e,n){if(!e.input.repo)return vt.error({message:zk.t`Invalid input. No 'repo' argument provided`,id:"no-repo-arg"});let r=TS.parse(e.input.repo);if(!r)try{let c=K.parse(e.input.repo);if(c.scheme==="https"&&c.authority==="github.com"){let l=c.path.split("/");l.length>=3&&(r=new TS(l[1],l[2]))}}catch{}if(!r)return vt.error({message:zk.t`Invalid input. Could not parse 'repo' argument`,id:"could-not-parse-repo"});let o=async()=>{let c=await qt(this._githubCodeSearch.getRemoteIndexState({silent:!0},r,new Aa("GitHubRepoTool"),n),n);return c.isOk()?c.val.status==="ready"?vt.ok(!0):vt.error({message:zk.t`GitHub repo index not yet ready`,id:"unexpected-status",details:`status: ${c.val.status}`}):c.err.type==="not-authorized"?vt.error({message:zk.t`Not authenticated`,id:"no-auth-token"}):vt.error({message:zk.t`Could not check status of Github repo index`,id:"could-not-check-status"})};if((await o()).isOk())return vt.ok(r);if(!await this._githubCodeSearch.triggerIndexing({silent:!0},"tool",r,new Aa("GitHubRepoTool")))return vt.error({message:zk.t`Could not index Github repo. Repo may not exist or you may not have access to it.`,id:"trigger-indexing-failed"});let a=10,s=1e3;for(let c=0;c_I(u,r));let a=this.languageDiagnosticsService.getDiagnostics(r),s={...e,input:{...e.input,uri:r}};try{await this.toolsService.invokeTool(SEa,s,n),this.recordEditSuccess(e,!0)}catch(u){throw this.recordEditSuccess(e,!1),u}let c=this.notebookService.hasSupportedNotebooks(r);return(c?await this.workspaceService.openNotebookDocumentAndSnapshot(r,this.alternativeNotebookContentService.getFormat(this.promptContext?.request?.model)):await this.workspaceService.openTextDocumentAndSnapshot(r))instanceof ku&&w1(this.telemetryService,this.endpointProvider,"insertEdit",r,this.promptContext?.requestId,e.model??this.promptContext?.request?.model),new Zn([new Ii(await Hi(this.instantiationService,CI,{files:[{operation:"update",uri:r,isNotebook:c,existingDiagnostics:a}],toolName:"insert_edit_into_file",requestId:e.chatRequestId,model:e.model},e.tokenizationOptions??{tokenBudget:1e3,countTokens:u=>Promise.resolve(u.length*3/4)},n))])}prepareInvocation(e,n){let r=this.promptPathRepresentationService.resolveFilePath(e.input.filePath);return this.instantiationService.invokeFunction(I_,r?[r]:[],this.promptContext?.allowedEditUris,async()=>"```\n"+e.input.code+"\n```",e.forceConfirmationReason)}async resolveInput(e,n){return this.promptContext=n,e}recordEditSuccess(e,n){e.model&&this.editToolLearningService.didMakeEdit(e.model,"insert_edit_into_file",n),w8(this.logService,e.chatRequestId,{input:e.input,success:n})}};Q2e=S([b(0,Vt),b(1,j),b(2,Te),b(3,Xn),b(4,wi),b(5,Ga),b(6,ma),b(7,Ee),b(8,tt),b(9,ED),b(10,Z)],Q2e);$n.registerTool(Q2e);var O2e=O(Lt());dn();Cp();var U2e=class{constructor(e,n,r,o){this._commandService=e;this._extensionsService=n;this.envService=r;this.toolsService=o}static{this.toolName="install_extension"}async invoke(e,n){let r=e.input.id;if(this._extensionsService.getExtension(r))return new Zn([new rn(`${e.input.name} extension is already installed`)]);let a=this.envService.getEditorInfo().version.includes("insider"),s=[r,{enable:!0,installPreReleaseVersion:!!a}],c=this._commandService.executeCommand("workbench.extensions.installExtension",...s);try{return await this.waitForExtensionInstall(c,r),new Zn([new rn(`Installed ${e.input.name} extension successfully`)])}catch{return new Zn([new rn(`Failed to install ${e.input.name} extension.`)])}}async waitForExtensionInstall(e,n){await e;let r,o=2e3,a=new Gi;do{if(r=this._extensionsService.getExtension(n),r){let s=r.packageJSON.contributes?.languageModelTools;if(s&&Array.isArray(s)&&s.length){if(s.every(c=>this.toolsService.getTool(c.name)))return}else return}await vo(100)}while(a.elapsed()t4n(a,r,this._promptContext,{readOnly:!0}))){let a=this.workspaceService.getWorkspaceFolders().length===1?new je(_q.t`${Wn(r)} is outside of the current folder.`):new je(_q.t`${Wn(r)} is outside of the current workspace.`);return{invocationMessage:new je(_q.t`Reading ${Wn(r)}`),pastTenseMessage:new je(_q.t`Read ${Wn(r)}`),confirmationMessages:{title:_q.t`Allow reading external directory?`,message:a}}}return{invocationMessage:new je(_q.t`Reading ${Wn(r)}`),pastTenseMessage:new je(_q.t`Read ${Wn(r)}`)}}async resolveInput(e,n){return this._promptContext=n,e}};q2e=S([b(0,yt),b(1,j),b(2,Te),b(3,Vt)],q2e);$n.registerTool(q2e);var cXt=class extends Eot.PromptElement{render(e,n){return this.props.results.length===0?vscpp(vscppf,null,"Folder is empty"):vscpp(vscppf,null,this.props.results.map(([r,o])=>vscpp(Eot.TextChunk,null,r,o===2?"/":"")))}};var lXt=class{static{this.toolName="manage_todo_list"}static{this.nonDeferred=!0}alternativeDefinition(e,n){return tee(n)?{...e,description:`Updates the task plan. Provide an optional explanation and a list of plan items, each with a step and status. At most one step can be in_progress at a time.`}:e}};$n.registerTool(lXt);var vY=O(Lt());vi();So();$s();dn();ah();vi();fr();pa();Be();var $2e=O(Ye());So();function G6r(t,e,n){let r=z$e(t,e,"",n);return r.type==="multiple"?r.matchPositions.length:r.editPosition.length}async function W6r(t,e,n,r,o,a){let s=n.newString,c=t?.family.toLowerCase().includes("gemini")||t&&i9(t)?LEa:g=>g,l=c(n.newString)!==n.newString,u=n.expected_replacements??1,d=n.oldString,p=em(e,d);if(p===u)l&&(s=await PEa(o,d,n.newString,a));else if(p>u){let g=n.expected_replacements??1;return p===g?{params:{...n},occurrences:p}:g===1?{params:{...n},occurrences:p}:{params:{...n},occurrences:p}}else{let g=c(n.oldString);if(p=G6r(e,g,r),p===u)d=g,l&&(s=await H6r(o,n.oldString,g,n.newString,a));else if(p===0){let h=await BEa(o,e,g,a),y=G6r(e,h,r);if(y===u){if(d=h,p=y,l){let v=c(n.newString);s=await H6r(o,n.oldString,h,v,a)}}else return{params:{...n},occurrences:0}}else return{params:{...n},occurrences:p}}let{targetString:m,pair:A}=NEa(d,s,e,u);return d=m,s=A,{params:{filePath:n.filePath,oldString:d,newString:s},occurrences:em(e,d)}}var TEa={type:"object",properties:{corrected_target_snippet:{type:"string",description:"The corrected version of the target snippet that exactly and uniquely matches a segment within the provided file content."}},required:["corrected_target_snippet"]};async function BEa(t,e,n,r){let o=` Context: A process needs to find an exact literal, unique match for a specific text snippet within a file's content. The provided snippet failed to match exactly. This is most likely because it has been overly escaped. Task: Analyze the provided file content and the problematic target snippet. Identify the segment in the file content that the snippet was *most likely* intended to match. Output the *exact*, literal text of that segment from the file content. Focus *only* on removing extra escape characters and correcting formatting, whitespace, or minor differences to achieve a PERFECT literal match. The output must be the exact literal text as it appears in the file. Problematic target snippet: \`\`\` ${n} \`\`\` File Content: \`\`\` ${e} \`\`\` For example, if the problematic target snippet was "\\\\\\nconst greeting = \`Hello \\\\\`\${name}\\\\\`\`;" and the file content had content that looked like " const greeting = \`Hello \\\`\${name}\\\`\`;", then corrected_target_snippet should likely be " const greeting = \`Hello \\\`\${name}\\\`\`;" to fix the incorrect escaping to match the original file content. If the differences are only in whitespace or formatting, apply similar whitespace/formatting changes to the corrected_target_snippet. Return ONLY the corrected target snippet in the specified JSON format with the key 'corrected_target_snippet'. If no clear, unique match can be found, return an empty string for 'corrected_target_snippet'. `.trim();try{let a=await uXt(t,o,TEa,{corrected_target_snippet:""},r);return a&&typeof a.corrected_target_snippet=="string"&&a.corrected_target_snippet.length>0?a.corrected_target_snippet:n}catch{return n}}var REa={type:"object",properties:{corrected_newString:{type:"string",description:"The original_newString adjusted to be a suitable replacement for the corrected_oldString, while maintaining the original intent of the change."}},required:["corrected_newString"]};async function H6r(t,e,n,r,o){if(e===n)return r;let a=` Context: A text replacement operation was planned. The original text to be replaced (original_oldString) was slightly different from the actual text in the file (corrected_oldString). The original_oldString has now been corrected to match the file content. We now need to adjust the replacement text (original_newString) so that it makes sense as a replacement for the corrected_oldString, while preserving the original intent of the change. original_oldString (what was initially intended to be found): \`\`\` ${e} \`\`\` corrected_oldString (what was actually found in the file and will be replaced): \`\`\` ${n} \`\`\` original_newString (what was intended to replace original_oldString): \`\`\` ${r} \`\`\` Task: Based on the differences between original_oldString and corrected_oldString, and the content of original_newString, generate a corrected_newString. This corrected_newString should be what original_newString would have been if it was designed to replace corrected_oldString directly, while maintaining the spirit of the original transformation. For example, if original_oldString was "\\\\\\nconst greeting = \`Hello \\\\\`\${name}\\\\\`\`;" and corrected_oldString is " const greeting = \`Hello \\\`\${name}\\\`\`;", and original_newString was "\\\\\\nconst greeting = \`Hello \\\\\`\${name} \${lastName}\\\\\`\`;", then corrected_newString should likely be " const greeting = \`Hello \\\`\${name} \${lastName}\\\`\`;" to fix the incorrect escaping. If the differences are only in whitespace or formatting, apply similar whitespace/formatting changes to the corrected_newString. Return ONLY the corrected string in the specified JSON format with the key 'corrected_newString'. If no adjustment is deemed necessary or possible, return the original_newString. `.trim();try{let s=await uXt(t,a,REa,{corrected_newString:""},o);return s&&typeof s.corrected_newString=="string"&&s.corrected_newString.length>0?s.corrected_newString:r}catch{return r}}var DEa={type:"object",properties:{corrected_newString_escaping:{type:"string",description:"The newString with corrected escaping, ensuring it is a proper replacement for the oldString, especially considering potential over-escaping issues from previous LLM generations."}},required:["corrected_newString_escaping"]};async function PEa(t,e,n,r){let o=` Context: A text replacement operation is planned. The text to be replaced (oldString) has been correctly identified in the file. However, the replacement text (newString) might have been improperly escaped by a previous LLM generation (e.g. too many backslashes for newlines like \\n instead of , or unnecessarily quotes like \\"Hello\\" instead of "Hello"). oldString (this is the exact text that will be replaced): \`\`\` ${e} \`\`\` potentially_problematic_newString (this is the text that should replace oldString, but MIGHT have bad escaping, or might be entirely correct): \`\`\` ${n} \`\`\` Task: Analyze the potentially_problematic_newString. If it's syntactically invalid due to incorrect escaping (e.g., " ", " ", "\\", "\\'", "\\""), correct the invalid syntax. The goal is to ensure the newString, when inserted into the code, will be a valid and correctly interpreted. For example, if oldString is "foo" and potentially_problematic_newString is "bar\\nbaz", the corrected_newString_escaping should be "bar baz". If potentially_problematic_newString is console.log(\\"Hello World\\"), it should be console.log("Hello World"). Return ONLY the corrected string in the specified JSON format with the key 'corrected_newString_escaping'. If no escaping correction is needed, return the original potentially_problematic_newString. `.trim();try{let a=await uXt(t,o,DEa,{corrected_newString_escaping:""},r);return a&&typeof a.corrected_newString_escaping=="string"&&a.corrected_newString_escaping.length>0?a.corrected_newString_escaping:n}catch{return n}}async function uXt(t,e,n,r,o){e+=` Your response must follow the JSON format: \`\`\` ${JSON.stringify(n,null,2)} \`\`\` For example: ${JSON.stringify(r)} `.trim();let a=[{role:$2e.Raw.ChatRole.System,content:[{type:$2e.Raw.ChatCompletionContentPartKind.Text,text:"You are an expert at analyzing files and patterns."}]},{role:$2e.Raw.ChatRole.User,content:[{type:$2e.Raw.ChatCompletionContentPartKind.Text,text:e}]}],s=await t.makeChatRequest2({debugName:"healStringReplace",messages:a,finishedCb:void 0,location:6,enableRetryOnFilter:!0},o);if(s.type!=="success")return;for(let l of xh(s.value))try{return wE(l.code)}catch{}let c=s.value.indexOf("{");return wE(s.value.slice(c))||void 0}function NEa(t,e,n,r){let o=t.trim();if(t.length!==o.length&&em(n,o)===r){let s=e.trim();return{targetString:o,pair:s}}return{targetString:t,pair:e}}function LEa(t){return t.replace(/\\+(n|t|r|'|"|`|\\|\n)/g,(e,n)=>{switch(n){case"n":return` `;case"t":return" ";case"r":return"\r";case"'":return"'";case'"':return'"';case"`":return"`";case"\\":return"\\";case` `:return` `;default:return e}})}var Cq=class{constructor(e,n,r,o,a,s,c,l,u,d,p,m,A,f,g,h){this.promptPathRepresentationService=e;this.instantiationService=n;this.workspaceService=r;this.toolsService=o;this.notebookService=a;this.fileSystemService=s;this.alternativeNotebookContent=c;this.alternativeNotebookEditGenerator=l;this._editSurvivalTrackerService=u;this.languageDiagnosticsService=d;this.telemetryService=p;this.endpointProvider=m;this.configurationService=A;this.editToolLearningService=f;this.logService=g;this._otelService=h}prepareEdits(e,n){let r=this.extractReplaceInputs(e.input),o=JSON.stringify(r);return this.lastOperation?.inputKey!==o&&(this.lastOperation={inputKey:o,operation:this._prepareEdits(e,r,n)}),this.lastOperation.operation}async _prepareEdits(e,n,r){let o=await Promise.all(n.map(a=>this._prepareEditsForFile(e,a,r)));return this._errorConflictingEdits(o),o}_errorConflictingEdits(e){for(let n=1;nl.range.start.compareTo(u.range.start));if(s.some((l,u)=>u===0?!1:!s[u-1].range.end.isBeforeOrEqual(l.range.start))){r.generatedEdit={success:!1,errorMessage:`Edit at index ${n} conflicts with another replacement in ${this.promptPathRepresentationService.getFilePath(r.uri)}. You can make another call to try again.`};break}}}}async _prepareEditsForFile(e,n,r){let o=cc(n.filePath,this.promptPathRepresentationService),a=Tie(o,this._promptContext?.allowedEditUris,this.promptPathRepresentationService);if(a)return{uri:o,document:void 0,generatedEdit:{success:!1,errorMessage:a},input:n};try{await this.instantiationService.invokeFunction(d=>_I(d,o))}catch(d){throw this.sendReplaceTelemetry("invalidFile",e,n,void 0,void 0,void 0),d}if(!n.filePath||n.oldString===void 0||n.newString===void 0||!this._promptContext)throw this.sendReplaceTelemetry("invalidStrings",e,n,void 0,void 0,void 0),new Error("Invalid input");if(!await this.instantiationService.invokeFunction(j$e,o))return{uri:o,document:void 0,generatedEdit:n.oldString?{success:!1,errorMessage:`File does not exist: ${n.filePath}. Use the create_file tool to create it, or correct your filepath.`}:{success:!0,textEdits:[qa.insert(new Pn(0,0),n.newString)],updated:void 0},input:n};let c=this.notebookService.hasSupportedNotebooks(o),l=await this.instantiationService.invokeFunction(G$e,this._promptContext,o),u={};try{if(n.oldString===n.newString)throw new Sie("Input and output are identical",n.filePath);let{updatedFile:d,edits:p}=await this.generateEdit(o,l,e,n,u,r),m,A;if(l instanceof ku){let f=await this.modelForTelemetry(e),g={model:f,requestId:this._promptContext.requestId,source:"stringReplace"};m=await Ta.asyncToArray(uTt(l.document,d,this.alternativeNotebookEditGenerator,g,r)),w1(this.telemetryService,this.endpointProvider,"stringReplace",l.uri,this._promptContext.requestId,f||"unknown"),A=ku.fromNewText(d,l)}else A=xr.fromNewText(d,l);return this.sendReplaceTelemetry("success",e,n,l.getText(),c,!!u.healed),{document:l,uri:o,input:n,healed:u.healed,generatedEdit:{success:!0,textEdits:p,notebookEdits:m,updated:A}}}catch(d){let p="String replacement failed: ",m;return d instanceof sG?(m=n.oldString.match(/Lines \d+-\d+ omitted/)?"oldStringHasOmittedLines":n.oldString.includes("{\u2026}")?"oldStringHasSummarizationMarker":n.oldString.includes("/*...*/")?"oldStringHasSummarizationMarkerSemanticSearch":d.kindForTelemetry,p+=`${d.message}`):d instanceof TD?(m=d.kindForTelemetry,p+=d.message):(m="other",p+=`${d.message}`),this.sendReplaceTelemetry(m,e,n,l.getText(),c,!!u.healed),{document:l,uri:o,input:n,healed:u.healed,generatedEdit:{success:!1,errorMessage:p}}}}async applyAllEdits(e,n,r){if(!this._promptContext?.stream)throw new Error("no prompt context found");w8(this.logService,e.chatRequestId,...n.map(l=>({input:l.input,success:l.generatedEdit.success,healed:l.healed})));let o=[],a=new Hn;for(let{document:l,uri:u,generatedEdit:d,healed:p}of n){l&&!a.has(l.uri)&&a.set(l.uri,this.languageDiagnosticsService.getDiagnostics(l.uri));let m=l?a.get(l.uri):[],A=this.notebookService.hasSupportedNotebooks(u);if(!d.success){o.push({operation:"update",uri:u,isNotebook:A,existingDiagnostics:m,error:d.errorMessage});continue}let f,g=this._promptContext.stream;if(l&&l instanceof xr){let h=f=this._editSurvivalTrackerService.initialize(l.document);g=Ml.spy(this._promptContext.stream,y=>{y instanceof cu&&h.collectAIEdits(y.edits)})}if(this._promptContext.stream.markdown("\n```\n"),this._promptContext.stream.codeblockUri(u,!0),d.notebookEdits){let h=l?.uri??u;this._promptContext.stream.notebookEdit(h,[]);for(let y of d.notebookEdits)y instanceof Array?this._promptContext.stream.textEdit(y[0],y[1]):this._promptContext.stream.notebookEdit(h,y);this._promptContext.stream.notebookEdit(h,!0)}else{for(let h of d.textEdits)g.textEdit(u,h);g.textEdit(u,!0),vo(2e3).then(()=>{f?.startReporter(h=>{h.telemetryService.sendMSFTTelemetryEvent("codeMapper.trackEditSurvival",{requestId:this._promptContext?.requestId,requestSource:"agent",mapper:"stringReplaceTool"},{survivalRateFourGram:h.fourGram,survivalRateNoRevert:h.noRevert,timeDelayMs:h.timeDelayMs,didBranchChange:h.didBranchChange?1:0}),h.telemetryService.sendInternalMSFTTelemetryEvent("codeMapper.trackEditSurvival",{requestId:this._promptContext?.requestId,requestSource:"agent",mapper:"stringReplaceTool",textBeforeAiEdits:h.textBeforeAiEdits?JSON.stringify(h.textBeforeAiEdits):void 0,textAfterAiEdits:h.textAfterAiEdits?JSON.stringify(h.textAfterAiEdits):void 0,textAfterUserEdits:h.textAfterUserEdits?JSON.stringify(h.textAfterUserEdits):void 0},{survivalRateFourGram:h.fourGram,survivalRateNoRevert:h.noRevert,timeDelayMs:h.timeDelayMs,didBranchChange:h.didBranchChange?1:0}),h.telemetryService.sendGHTelemetryEvent("replaceString/trackEditSurvival",{headerRequestId:this._promptContext?.requestId,requestSource:"agent",mapper:"stringReplaceTool"},{survivalRateFourGram:h.fourGram,survivalRateNoRevert:h.noRevert,timeDelayMs:h.timeDelayMs,didBranchChange:h.didBranchChange?1:0}),F9(this._otelService,"replace_string",h.fourGram,h.noRevert,h.timeDelayMs,h.didBranchChange,this._promptContext?.requestId??""),ci.recordEditSurvivalFourGram(this._otelService,"replace_string",h.fourGram,h.timeDelayMs),ci.recordEditSurvivalNoRevert(this._otelService,"replace_string",h.noRevert,h.timeDelayMs)})}),o.push({operation:"update",uri:u,isNotebook:A,existingDiagnostics:m,healed:p?JSON.stringify({oldString:p.oldString,newString:p.newString},null,2):void 0})}this._promptContext.stream.markdown("\n```\n"),d.updated&&(this._promptContext.turnEditedDocuments??=new Hn,this._promptContext.turnEditedDocuments.set(u,d.updated))}let s=this._promptContext.request?.location2 instanceof Wf,c=new Gc([new Ii(await Hi(this.instantiationService,CI,{files:o,diagnosticsTimeout:s?-1:2e3,toolName:this.toolName(),requestId:e.chatRequestId,model:e.model},e.tokenizationOptions??{tokenBudget:5e3,countTokens:l=>Promise.resolve(l.length*3/4)},r))]);return c.hasError=o.some(l=>l.error),c}doGenerateEdit(e,n,r,o){return _Tt(e,n,r,this.workspaceService,this.notebookService,this.alternativeNotebookContent,this._promptContext?.request?.model)}async generateEdit(e,n,r,o,a,s){let c=this.modelObjectForTelemetry(r),l=this.promptPathRepresentationService.getFilePath(n.uri),u=n instanceof xr&&n.eol===ph.CRLF?`\r `:` `,d=Ew(o.oldString,n.languageId,l).replace(/\r?\n/g,u),p=Ew(o.newString,n.languageId,l).replace(/\r?\n/g,u),m,A=[];try{let f=await this.doGenerateEdit(e,d,p,r);m=f.updatedFile,A=f.edits,this.recordEditSuccess(r,!0)}catch(f){if(!(f instanceof sG)||(this.recordEditSuccess(r,!1),c&&!xbn(c)))throw f;let g;try{if(g=await W6r(c,n.getText(),{explanation:r.input.explanation,filePath:l,oldString:d,newString:p},u,await this.endpointProvider.getChatEndpoint("copilot-fast"),s),g.params.oldString===g.params.newString)throw new Sie("change was identical after healing",n.uri.fsPath)}catch(h){throw this.sendHealingTelemetry(r,String(h),void 0),f}a.healed=g.params;try{let h=await _Tt(e,g.params.oldString,g.params.newString,this.workspaceService,this.notebookService,this.alternativeNotebookContent,this._promptContext?.request?.model);m=h.updatedFile,A=h.edits}catch(h){throw this.sendHealingTelemetry(r,void 0,String(h)),f}}return{edits:A,updatedFile:m}}async sendReplaceTelemetry(e,n,r,o,a,s){let c=await this.modelForTelemetry(n),l=a?1:a===!1?0:-1,u=this.toolName()==="multi_replace_string_in_file"?1:0;this.telemetryService.sendMSFTTelemetryEvent("replaceStringToolInvoked",{requestId:n.chatRequestId,interactionId:n.chatRequestId,outcome:e,model:c},{isNotebook:l,didHeal:s===void 0?-1:s?1:0,isMulti:u}),this.telemetryService.sendEnhancedGHTelemetryEvent("replaceStringTool",Zv({headerRequestId:n.chatRequestId,baseModel:c,messageText:o,completionTextJson:JSON.stringify(r),postProcessingOutcome:e}),{isNotebook:l})}async sendHealingTelemetry(e,n,r){this.telemetryService.sendMSFTTelemetryEvent("replaceStringHealingStat",{requestId:e.chatRequestId,interactionId:e.chatRequestId,model:await this.modelForTelemetry(e),healError:n,applicationError:r},{success:n===void 0&&r===void 0?1:0})}async modelForTelemetry(e){let n=this.modelObjectForTelemetry(e);return n&&(await this.endpointProvider.getChatEndpoint(n)).model}modelObjectForTelemetry(e){return"model"in e?e.model:this._promptContext?.request?.model}async recordEditSuccess(e,n){let r=this.modelObjectForTelemetry(e);r&&this.editToolLearningService.didMakeEdit(r,this.toolName(),n)}async resolveInput(e,n){return this._promptContext=n,e}async prepareInvocation(e,n){let r=this.extractReplaceInputs(e.input),o=r.map(a=>cc(a.filePath,this.promptPathRepresentationService));return this.instantiationService.invokeFunction(I_,o,this._promptContext?.allowedEditUris,a=>this.generateConfirmationDetails(r,a,e,n),e.forceConfirmationReason)}async generateConfirmationDetails(e,n,r,o){let a=new Ji(n),s=await this.prepareEdits(r,o);return(await Promise.all(s.map(async l=>{let u=l.uri;if(a.has(u)&&l.generatedEdit.success){let d=l.document?.getText()||"",p=l.generatedEdit.updated?.getText()||"";return await this.instantiationService.invokeFunction(BD,u,d,p)}}))).filter(zo).join(` `)}};Cq=S([b(0,Vt),b(1,j),b(2,Te),b(3,Xn),b(4,wi),b(5,yt),b(6,ma),b(7,x_),b(8,w_),b(9,Ga),b(10,Ee),b(11,tt),b(12,be),b(13,ED),b(14,Z),b(15,On)],Cq);var dXt=class t extends Cq{static{this.toolName="multi_replace_string_in_file"}static{this.nonDeferred=!0}extractReplaceInputs(e){return e.replacements.map(n=>({filePath:n.filePath,oldString:n.oldString,newString:n.newString}))}async handleToolStream(e,n){let r=e.rawInput,o;if(r&&typeof r=="object"&&Array.isArray(r.replacements)){let a=r.replacements.filter(s=>s&&typeof s=="object"&&s.oldString!==void 0);if(a.length>0){let s=0,c=0,l=!1,u=new Ji;for(let p of a){s+=em(p.oldString,` `)+1,p.newString!==void 0&&(l=!0,c+=em(p.newString,` `)+1);let m=p.filePath&&this.promptPathRepresentationService.resolveFilePath(p.filePath);m&&u.add(m)}let d=u.size>0?Array.from(u,p=>Wn(p)).join(", "):void 0;l&&d?o=new je(vY.t`Replacing ${s} lines with ${c} lines in ${d}`):l?o=new je(vY.t`Replacing ${s} lines with ${c} lines`):d?o=new je(vY.t`Replacing ${s} lines in ${d}`):o=new je(vY.t`Replacing ${s} lines`)}else o=new je(vY.t`Editing files`)}else o=new je(vY.t`Editing files`);return{invocationMessage:o}}async invoke(e,n){if(!e.input.replacements||!Array.isArray(e.input.replacements))throw new Error("Invalid input, no replacements array");let r=await this.prepareEdits(e,n),o=0,a=0,s=0,c=new Ji;for(let l of r)c.add(l.uri),l.generatedEdit.success?(o++,s+=l.generatedEdit.textEdits.length):a++;this.telemetryService.sendMSFTTelemetryEvent("multiStringReplaceCall",{requestId:this._promptContext?.requestId,model:await this.modelForTelemetry(e)},{successes:o,failures:a,individualEdits:s,uniqueUris:c.size});for(let l=0;l{if(Array.isArray(s)){let[c,l]=s,u=r.get(c);u||(u=[],r.set(c,u)),u.push(...l)}else n.push(s)};t.forEach(o),e.forEach(o);let a=[];for(let[s,c]of r.entries())c.sort(Z6r),a.push([s,c]);return[...n,...a]}var V6r=O(Lt()),j2e=O(Ye());Ue();Be();var wq=O(Ye());wr();var DAe=class extends wq.PromptElement{async prepare(){return{}}render(e,n){return vscpp(vscppf,null,vscpp(vscppf,null,vscpp(wq.SystemMessage,{priority:1e3},"You are an AI that creates a detailed content outline for a Jupyter notebook on a given topic.",vscpp("br",null),vscpp(lo,null),vscpp(Fc,null),vscpp(cd,null),vscpp(kn,null),vscpp("br",null),"Additional Rules",vscpp("br",null),"DO NOT include Introduction or Conclusion section in the outline!",vscpp("br",null),"Focus only on sections that will need code!",vscpp("br",null),["","Generate the outline as two parts:","- First part is markdown bullet list of section titles","- Second part is the JSON data that will validate against this JSON schema, wrap the response in code block. We assume that a code block begins with ```[optionally the language] and ends with ```","","The JSON schema is:","{",' "$schema": "http://json-schema.org/draft-07/schema#",',' "type": "object",',' "properties": {',' "description": {',' "type": "string"'," },",' "sections": {',' "type": "array",',' "items": {',' "type": "object",',' "properties": {',' "title": {',' "type": "string"'," },",' "content": {',' "type": "string"'," }"," },",' "required": ["title", "content"]'," }"," }"," },",' "required": ["sections"]',"}"].join(` `),["","Examples:","","Below you will find a set of examples of what you should respond with. Please follow these examples as closely as possible.","","## Valid notebook creation question","","user: Creating Random Arrays with Numpy","","assistant: Here's an outline for a Jupyter notebook that creates Random Arrays with Numpy:","","* **Import Required Libraries**","* **Create Random Arrays**","* **Seed the Random Number Generator**","* **Generate Random Integers**","","```json","{",' "description": "A Jupyter notebook that creates Random Arrays with Numpy.",',' "sections": ['," {",' "title": "Import Required Libraries",',' "content": "Import the necessary libraries, including NumPy."'," },"," {",' "title": "Create Random Arrays",',' "content": "Use NumPy to create random arrays of various shapes and sizes, including 1D, 2D, and 3D arrays."'," },"," {",' "title": "Seed the Random Number Generator",',' "content": "Use the seed() function to seed the random number generator for reproducibility."'," },"," {",' "title": "Generate Random Integers",',' "content": "Use the randint() function to generate random integers within a specified range."'," }"," ]","}","```"].join(` `))),vscpp(fi,{priority:899,flexGrow:2,promptContext:this.props.promptContext,embeddedInsideUserMessage:!1}),this.props.promptContext.chatVariables&&Object.keys(this.props.promptContext.chatVariables).length>0?vscpp(xa,{flexGrow:2,priority:900,chatVariables:this.props.promptContext.chatVariables,query:this.props.promptContext.query,embeddedInsideUserMessage:!1}):vscpp(wq.UserMessage,{priority:900},this.props.promptContext.query))}};var z2e=class{constructor(e,n,r){this.instantiationService=e;this.endpointProvider=n;this.telemetryService=r}static{this.toolName="create_new_jupyter_notebook"}async invoke(e,n){if(!this._input?.stream)throw this.sendTelemetry("noStream",e),new Error("No output stream found");let r=new it,o=!1,a="failedToCreatePlanningEndpoint";try{let s=await this.endpointProvider.getChatEndpoint(e.model||"copilot-base"),c=`Create notebook: ${this._input?.query??e.input.query}`,l={query:c,history:this._input?.history??e.input.history,chatVariables:this._input?.chatVariables??new qi([])};this._input?.stream?.progress(V6r.t("Planning ...")),a="failedToRenderPlanningPrompt";let{messages:u}=await Tu(this.instantiationService,s,DAe,{promptContext:l,endpoint:s});a="failedToMakePlanningRequest";let d=await s.makeChatRequest2({debugName:"notebookPlanning",messages:u,finishedCb:void 0,location:fA.Panel,enableRetryOnFilter:!0},n);if(d.type!=="success")return this.sendTelemetry("planningFailed",e),new Zn([new rn("Planning stage did not return a success code.")]);let p=ROe(d.value);return p?(a="failedToRenderNewNotebookPrompt",new Gc([new Ii(await Hi(this.instantiationService,kot,{outline:p,promptContext:l,originalCreateNotebookQuery:c,availableTools:this._input.tools?.availableTools},e.tokenizationOptions??{tokenBudget:1e3,countTokens:m=>Promise.resolve(m.length*3/4)},n))])):(this.sendTelemetry("noOutline",e),new Zn([new rn("Outline was not found in planning stage response.")]))}catch(s){throw o=!0,this.sendTelemetry(a,e),s}finally{o||this.sendTelemetry("success",e),r.dispose()}}async resolveInput(e,n,r){return this._input=n,e}async sendTelemetry(e,n){let r=n.model&&(await this.endpointProvider.getChatEndpoint(n.model)).model;this.telemetryService.sendMSFTTelemetryEvent("newNotebookTool.outcome",{requestId:n.chatRequestId,outcome:e,model:r},{isNotebook:1})}};z2e=S([b(0,j),b(1,tt),b(2,Ee)],z2e);var Iot=class extends j2e.PromptElement{render(e,n){return vscpp(vscppf,null,vscpp(j2e.UserMessage,null,vscpp(kot,{outline:this.props.outline,promptContext:this.props.promptContext,originalCreateNotebookQuery:this.props.originalCreateNotebookQuery,availableTools:this.props.availableTools})))}},kot=class extends j2e.PromptElement{render(e,n){let r=this.props.availableTools?.some(s=>s.name==="edit_notebook_file"),o=this.props.availableTools?.some(s=>s.name==="insert_edit_into_file")&&r,a=!o&&this.props.availableTools?.some(s=>s.name==="create_file")&&r;return vscpp(vscppf,null,vscpp(Wwe,{tsExampleFilePath:"/Users/someone/proj01/example.ipynb"}),vscpp(T1,null),vscpp(Vi,{flexGrow:6,priority:750,languageId:void 0,chatVariables:this.props.promptContext.chatVariables}),vscpp(fi,{flexGrow:4,priority:898,promptContext:this.props.promptContext}),vscpp(xa,{flexGrow:3,priority:898,chatVariables:this.props.promptContext.chatVariables,query:this.props.originalCreateNotebookQuery}),o&&vscpp(vscppf,null,"Use the `","insert_edit_into_file","` tool to first create an empty notebook file with the file path,",vscpp("br",null),"And then use the `","edit_notebook_file","` tool to generate the notebook of the notebook by editing the empty notebook.",vscpp("br",null)),a&&vscpp(vscppf,null,"Use the `","create_file","` tool to first create an empty notebook file with the file path,",vscpp("br",null),"And then use the `","edit_notebook_file","` tool to generate the notebook of the notebook by editing the empty notebook.",vscpp("br",null)),"You must follow the new file location hint when generating the notebook.",vscpp("br",null),"You MUST use the following outline when generating the notebook:",vscpp("br",null),"Outline Description: ",this.props.outline.description,vscpp("br",null),this.props.outline.sections.map((s,c)=>vscpp(vscppf,null,"\xA0",c+1,". Section: ",s.title,vscpp("br",null),"\xA0Content ",s.content,vscpp("br",null))))}};$n.registerTool(z2e);var Tot=O(Lt()),NAe=O(Ye());Je();var PAe=me("IDialogService");Je();var Sot=me("IInteractiveSessionService");En();fr();Be();var G2e=class{constructor(e,n,r,o,a,s,c){this.workspaceService=e;this.fileSystemService=n;this.instantiationService=r;this.dialogService=o;this._extensionContext=a;this.interactiveSession=s;this.commandService=c;this._shouldPromptWorkspaceOpen=!1}static{this.toolName="create_new_workspace"}async prepareInvocation(e,n){this._shouldPromptWorkspaceOpen=!1;let r=this.workspaceService.getWorkspaceFolders();return!r||r.length===0?this._shouldPromptWorkspaceOpen=!0:r&&r.length>0&&(this._shouldPromptWorkspaceOpen=(await this.fileSystemService.readDirectory(r[0])).length>0),this._shouldPromptWorkspaceOpen?{confirmationMessages:{title:Tot.t`Open an empty folder to continue`,message:Tot.t`Copilot requires an empty folder as a workspace to continue workspace creation.`}}:{invocationMessage:Tot.t`Generating plan to create a new workspace`}}async invoke(e,n){if(n.isCancellationRequested)throw new Jn;let r=this.workspaceService.getWorkspaceFolders(),o=r.length>0?r[0]:void 0;if(this._shouldPromptWorkspaceOpen){let s=(await this.dialogService.showOpenDialog({canSelectFolders:!0,canSelectFiles:!1,canSelectMany:!1,openLabel:"Select an Empty Workspace Folder"}))?.[0];return s&&!_a.isEqual(s,o)?(await this.fileSystemService.readDirectory(s)).length>0?new Zn([new rn("The user has not opened a valid workspace folder in VS Code. Ask them to open an empty folder before continuing.")]):(uer({workspaceURI:s.toString(),userPrompt:e.input.query,initialized:!1},this._extensionContext),o=s,this.commandService.executeCommand("setContext","chatSkipRequestInProgressMessage",!0),await this.interactiveSession.transferActiveChat(s),this.commandService.executeCommand("vscode.openFolder",s,{forceReuseWindow:!0}),new Zn([new rn(`The user is opening the folder ${s.toString()}. Do not proceed with project generation till the user has confirmed opening the folder.`)])):new Zn([new rn("The user has not opened a valid workspace folder in VS Code. Ask them to open an empty folder before continuing.")])}if(!o)return new Zn([new rn("The user has not opened a valid workspace folder in VS Code. Ask them to open an empty folder before continuing.")]);let a=await Hi(this.instantiationService,H2e,{query:e.input.query});return new Zn([new Ii(a)])}};G2e=S([b(0,Te),b(1,yt),b(2,j),b(3,PAe),b(4,ut),b(5,Sot),b(6,Ql)],G2e);var H2e=class extends NAe.PromptElement{constructor(n,r,o){super(n);this.workspaceService=r;this.commandService=o}async render(n,r){let o=this.workspaceService.getWorkspaceFolders();return(o.length>0?o[0]:void 0)?(this.commandService.executeCommand("workbench.action.terminal.focus"),vscpp(vscppf,null,vscpp(NAe.TextChunk,null,"Create or update the copilot-instructions.md file in the .github directory with the exact content shown below.",vscpp("br",null),vscpp("br",null)),vscpp(ql,{code:` - [ ] Verify that the copilot-instructions.md file in the .github directory is created. - [ ] Clarify Project Requirements - [ ] Scaffold the Project - [ ] Customize the Project - [ ] Install Required Extensions - [ ] Compile the Project - [ ] Create and Run Task - [ ] Launch the Project - [ ] Ensure Documentation is Complete - Work through each checklist item systematically. - Keep communication concise and focused. - Follow development best practices. `,languageId:"markdown"}),vscpp(NAe.TextChunk,null,vscpp("br",null),"Verify that a copilot-instructions.md file in the .github directory exists and systematically work through each item in the task list.",vscpp("br",null),"Update the copilot-instructions.md file in the .github directory directly as you complete each step.",vscpp("br",null),vscpp("br",null),'If the user asks to "continue," refer to the previous steps and proceed accordingly.'))):vscpp(NAe.TextChunk,null,"The user has not opened an empty workspace folder in VS Code. Ask them to open an empty folder before continuing.",vscpp("br",null))}};H2e=S([b(1,Te),b(2,Ql)],H2e);$n.registerTool(G2e);var Y6r=O(Lt()),LAe=O(Ye());En();Be();var FEa=[{projectType:"vscode-extension",description:"A template for creating a VS Code extension using Yeoman and Generator-Code.",executionCommands:[{command:"npx --package yo --package generator-code -- yo code . --skipOpen",arguments:[{argName:"-t, --extensionType",description:"Specify extension type: ts, js, command-ts, command-js, colortheme, language, snippets, keymap, extensionpack, localization, commandweb, notebook",default:"ts"},{argName:"-n, --extensionDisplayName",description:"Set the display name of the extension."},{argName:"--extensionId",description:"Set the unique ID of the extension. Do not select this option if the user has not requested a unique ID."},{argName:"--extensionDescription",description:"Provide a description for the extension"},{argName:"--pkgManager",description:"Specify package manager: npm, yarn, or pnpm",default:"npm"},{argName:"--bundler",description:"Bundle the extension using webpack or esbuild"},{argName:"--gitInit",description:"Initialize a Git repository for the extension"},{argName:"--snippetFolder",description:"Specify the location of the snippet folder"},{argName:"--snippetLanguage",description:"Set the language for snippets"}]}],rules:["Follow these rules strictly and do not deviate from them.","1. Do not remove any arguments from the command. You can only add arguments if the user requests them.","2. Call the tool get_vscode_api with the users query to get the relevant references. ","3. After the tool get_vscode_api has completed, only then begin to modify the project."]},{projectType:"next-js",description:"A React based framework for building server-rendered web applications.",executionCommands:[{command:"npx create-next-app@latest .",arguments:[{argName:"--ts, --typescript",description:"Initialize as a TypeScript project. This is the default."},{argName:"--js, --javascript",description:"Initialize as a JavaScript project."},{argName:"--tailwind",description:"Initialize with Tailwind CSS config. This is the default."},{argName:"--eslint",description:"Initialize with ESLint config."},{argName:"--app",description:"Initialize as an App Router project."},{argName:"--src-dir",description:"Initialize inside a 'src/' directory."},{argName:"--turbopack",description:"Enable Turbopack by default for development."},{argName:"--import-alias ",description:'Specify import alias to use.(default is "@/*")'},{argName:"--api",description:"Initialize a headless API using the App Router."},{argName:"--empty",description:"Initialize an empty project."},{argName:"--use-npm",description:"Explicitly tell the CLI to bootstrap the application using npm."},{argName:"--use-pnpm",description:"Explicitly tell the CLI to bootstrap the application using pnpm."},{argName:"--use-yarn",description:"Explicitly tell the CLI to bootstrap the application using Yarn."},{argName:"--use-bun",description:"Explicitly tell the CLI to bootstrap the application using Bun."}]}]},{projectType:"vite",description:"A front end build tool for web applications that focuses on speed and performance. Can be used with React, Vue, Preact, Lit, Svelte, Solid, and Qwik.",executionCommands:[{command:"npx create-vite@latest .",arguments:[{argName:"-t, --template NAME",description:"Use a specific template. Available templates: vanilla-ts, vanilla, vue-ts, vue, react-ts, react, react-swc-ts, react-swc, preact-ts, preact, lit-ts, lit, svelte-ts, svelte, solid-ts, solid, qwik-ts, qwik"}]}]},{projectType:"mcp-server",description:"A Model Context Protocol (MCP) server project. This project supports multiple programming languages including TypeScript, JavaScript, Python, C#, Java, and Kotlin.",rules:["Follow these rules strictly and do not deviate from them.","1. First, visit https://github.com/modelcontextprotocol to find the correct SDK and setup instructions for the requested language. Default to TypeScript if no language is specified.","2. Use the fetch_webpage to find the correct implementation instructions from https://modelcontextprotocol.io/llms-full.txt","3. Update the copilot-instructions.md file in the .github directory to include references to the SDK documentation",'4. Create an `mcp.json` file in the `.vscode` folder in the project root with the following content: `{ "servers": { "mcp-server-name": { "type": "stdio", "command": "command-to-run", "args": [list-of-args] } } }`.',"- mcp-server-name: The name of the MCP server. Create a unique name that reflects what this MCP server does.","- command-to-run: The command to run to start the MCP server. This is the command you would use to run the project you just created.","- list-of-args: The arguments to pass to the command. This is the list of arguments you would use to run the project you just created.","5. Install any required VS Code extensions based on the chosen language (e.g., Python extension for Python projects).","6. Inform the user that they can now debug this MCP server using VS Code."]},{projectType:"python-script",description:"A simple Python script project which should be chosen when just a single script wants to be created.",requiredExtensions:["ms-python.python","ms-python.vscode-python-envs"],rules:["Follow these rules strictly and do not deviate from them.","1. Call the tool run_vscode_command to correctly create a new Python script project in VS Code. Call the command with the following arguments.",'Note that "python-script" and "true" are constants while "New Project Name" and "/path/to/new/project" are placeholders for the project name and path respectively.',"{ ",'"name": "python-envs.createNewProjectFromTemplate",','"commandId": "python-envs.createNewProjectFromTemplate",','"args": [ "python-script", "true" , "New Project Name", "/path/to/new/project"]',"}"]},{projectType:"python-package",description:"A Python package project which can be used to create a distributable package.",requiredExtensions:["ms-python.python","ms-python.vscode-python-envs"],rules:["Follow these rules strictly and do not deviate from them.","1. Call the tool run_vscode_command to correctly create a new Python package project in VS Code. Call the command with the following arguments:",'Note that "python-package" and "true" are constants while "New Package Name" and "/path/to/new/project" are placeholders for the package name and path respectively.',"{ ",'"name": "python-envs.createNewProjectFromTemplate",','"commandId": "python-envs.createNewProjectFromTemplate",','"args": [ "python-package", "true" , "New Package Name", "/path/to/new/project"]',"}"]}],W2e=class{constructor(e){this.instantiationService=e}static{this.toolName="get_project_setup_info"}async prepareInvocation(e,n){return{invocationMessage:Y6r.t`Getting setup information`}}async invoke(e,n){let{projectType:r}=e.input,o=FEa.find(s=>s.projectType===r),a=await Hi(this.instantiationService,Z2e,{projectSetupInfo:o});if(n.isCancellationRequested)throw new Jn;return new Zn([new Ii(a)])}};W2e=S([b(0,j)],W2e);$n.registerTool(W2e);var Z2e=class extends LAe.PromptElement{constructor(n,r){super(n);this.configurationService=r}async render(n,r){if(this.configurationService.getConfig(H.NewWorkspaceUseContext7))return vscpp(vscppf,null," ",vscpp(LAe.TextChunk,null,"Use context7 tools to find the latest libraries, APIs, and documentation to help the user create and customize their project.",vscpp("br",null),"1. Call mcp_context7_resolve-library-id with your project requirements.",vscpp("br",null),"2. Call mcp_context7_get-library-docs to get scaffolding instructions.",vscpp("br",null),"You must call these tools before proceeding and confirm that you did NOT skip this step.",vscpp("br",null),vscpp("br",null)));let{projectSetupInfo:a}=this.props;if(!a)return vscpp(vscppf,null," ",vscpp(LAe.TextChunk,null,"No project setup information found.",vscpp("br",null)));let s=JSON.stringify(a,null,2);return vscpp(vscppf,null,vscpp(LAe.TextChunk,null,"Use the Project Setup Information:",vscpp("br",null),"$",s,vscpp("br",null)))}};Z2e=S([b(1,be)],Z2e);var UA=O(Lt()),Rot=O(Ye());fr();Be();var pXt=20*1024*1024,QEa={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp"};function MAe(t){let e=t.path.toLowerCase();for(let[n,r]of Object.entries(QEa))if(e.endsWith(n))return r}var OEa={name:"read_file",description:"Read the contents of a file. Line numbers are 1-indexed. This tool will truncate its output at 2000 lines and may be called repeatedly with offset and limit parameters to read larger files in chunks. Binary files use offset/limit as byte offsets.",tags:["vscode_codesearch"],source:void 0,inputSchema:{type:"object",required:["filePath"],properties:{filePath:{description:"The absolute path of the file to read.",type:"string"},offset:{description:"Optional: the 1-based line number to start reading from. Only use this if the file is too large to read at once. If not specified, the file will be read from the beginning.",type:"number"},limit:{description:"Optional: the maximum number of lines to read. Only use this together with `offset` if the file is too large to read at once.",type:"number"}}}},UEa=2e3,Bot=t=>t.startLine===void 0,K6r=(t,e)=>{let n,r,o=!1;if(Bot(t)){if(t.offset!==void 0&&t.offset>e.lineCount)throw new Error(`Invalid offset ${t.offset}: file only has ${e.lineCount} line${e.lineCount===1?"":"s"}. Line numbers are 1-indexed.`);let a=MR(t.limit||1/0,1,UEa-1);n=MR(t.offset??1,1,e.lineCount),r=MR(n+a,1,e.lineCount),o=a!==t.limit&&rr&&([r,n]=[n,r]),{start:n,end:r,truncated:o}},V2e=class{constructor(e,n,r,o,a,s,c,l,u,d,p){this.workspaceService=e;this.notebookService=n;this.alternativeNotebookContent=r;this.promptPathRepresentationService=o;this.instantiationService=a;this.endpointProvider=s;this.telemetryService=c;this.configurationService=l;this.experimentationService=u;this.customInstructionsService=d;this.fileSystemService=p}static{this.toolName="read_file"}static{this.nonDeferred=!0}async invoke(e,n){let r,o;try{if(o=cc(e.input.filePath,this.promptPathRepresentationService),MAe(o))throw new Error("Cannot read image files with read_file. Use view_image instead.");let a=await iqe(this.fileSystemService,o);if(a){let l=e.input,u,d;return Bot(l)?(u=l.offset,u!==void 0&&typeof l.limit=="number"&&(d=u+l.limit)):(u=l.startLine,d=l.endLine),this.sendReadFileTelemetry("success",e,{start:0,end:0,truncated:!1},o),new Zn([new Ii(await Hi(this.instantiationService,yre,{uri:o,data:a.data,startByte:u,endByte:d},e.tokenizationOptions??{tokenBudget:600,countTokens:p=>Promise.resolve(p.length*3/4)},n))])}let s=await this.getSnapshot(o);r=K6r(e.input,s),this.sendReadFileTelemetry("success",e,r,o);let c=this.configurationService.getExperimentBasedConfig(H.TeamInternal.ReadFileCodeFences,this.experimentationService);return new Zn([new Ii(await Hi(this.instantiationService,Y2e,{uri:o,startLine:r.start,endLine:r.end,truncated:r.truncated,snapshot:s,languageModel:this._promptContext?.request?.model,useCodeFences:c},e.tokenizationOptions??{tokenBudget:600,countTokens:l=>Promise.resolve(l.length*3/4)},n))])}catch(a){throw this.sendReadFileTelemetry("error",e,r||{start:0,end:0,truncated:!1},o),a}}async prepareInvocation(e,n){let{input:r}=e;if(!r.filePath.length)return;let o,a;try{if(o=cc(r.filePath,this.promptPathRepresentationService),MAe(o))throw new Error("Cannot read image files with read_file. Use view_image instead.");if(await this.instantiationService.invokeFunction(p=>U$e(p,o,this._promptContext,{readOnly:!0}))){await this.instantiationService.invokeFunction(A=>_I(A,o));let p=Qd(o),m=this.workspaceService.getWorkspaceFolders().length===1?new je(UA.t`${Wn(o)} is outside of the current folder in ${Wn(p)}.`):new je(UA.t`${Wn(o)} is outside of the current workspace in ${Wn(p)}.`);return{invocationMessage:new je(UA.t`Reading ${Wn(o)}`),pastTenseMessage:new je(UA.t`Read ${Wn(o)}`),confirmationMessages:{title:UA.t`Allow reading external files?`,message:m}}}await this.instantiationService.invokeFunction(p=>Dxe(p,o,this._promptContext,{readOnly:!0}));try{a=await this.getSnapshot(o)}catch(p){if(String(p).includes("seems to be binary"))return{invocationMessage:new je(UA.t`Reading binary file ${Wn(o)}`),pastTenseMessage:new je(UA.t`Read binary file ${Wn(o)}`)};throw p}}catch(d){throw this.sendReadFileTelemetry("invalidFile",e,{start:0,end:0,truncated:!1},o),d}let{start:s,end:c}=K6r(r,a);Xr.basename(o).toLowerCase()==="skill.md"&&await this.customInstructionsService.refreshExtensionPromptFiles();let l=this.customInstructionsService.getSkillInfo(o);if(s===1&&c===a.lineCount){if(l){let{skillName:d}=l;return this.customInstructionsService.isSkillMdFile(o)?{invocationMessage:new je(UA.t`Reading skill ${Wn(o,{vscodeLinkType:"skill",linkText:d})}`),pastTenseMessage:new je(UA.t`Read skill ${Wn(o,{vscodeLinkType:"skill",linkText:d})}`)}:{invocationMessage:new je(UA.t`Reading skill \`${d}\`: ${Wn(o)}`),pastTenseMessage:new je(UA.t`Read skill \`${d}\`: ${Wn(o)}`)}}return{invocationMessage:new je(UA.t`Reading ${Wn(o)}`),pastTenseMessage:new je(UA.t`Read ${Wn(o)}`)}}let u=new bs(o,new gt(s-1,0,s-1,0));if(this.customInstructionsService.isSkillFile(o)&&l){let{skillName:d}=l;return this.customInstructionsService.isSkillMdFile(o)?{invocationMessage:new je(UA.t`Reading skill ${Wn(u,{vscodeLinkType:"skill",linkText:d})}, lines ${s} to ${c}`),pastTenseMessage:new je(UA.t`Read skill ${Wn(u,{vscodeLinkType:"skill",linkText:d})}, lines ${s} to ${c}`)}:{invocationMessage:new je(UA.t`Reading skill \`${d}\`: ${Wn(u)}, lines ${s} to ${c}`),pastTenseMessage:new je(UA.t`Read skill \`${d}\`: ${Wn(u)}, lines ${s} to ${c}`)}}return{invocationMessage:new je(UA.t`Reading ${Wn(u)}, lines ${s} to ${c}`),pastTenseMessage:new je(UA.t`Read ${Wn(u)}, lines ${s} to ${c}`)}}alternativeDefinition(e){return this.configurationService.getExperimentBasedConfig(H.TeamInternal.EnableReadFileV2,this.experimentationService)?OEa:e}async getSnapshot(e){return this.notebookService.hasSupportedNotebooks(e)?this.workspaceService.openNotebookDocumentAndSnapshot(e,this.alternativeNotebookContent.getFormat(this._promptContext?.request?.model)):xr.create(await this.workspaceService.openTextDocument(e))}async sendReadFileTelemetry(e,n,{start:r,end:o,truncated:a},s){let c=n.model&&(await this.endpointProvider.getChatEndpoint(n.model)).model,l=s&&this.customInstructionsService.getExtensionSkillInfo(s),u=l||s&&this.customInstructionsService.getSkillInfo(s),d=u?"skill":"",p=l?l.skillName:u?Bb(u.skillName):"";this.telemetryService.sendMSFTTelemetryEvent("readFileToolInvoked",{requestId:n.chatRequestId,interactionId:n.chatRequestId,toolOutcome:e,isV2:Bot(n.input)?"true":"false",isEntireFile:Bot(n.input)&&n.input.offset===void 0&&n.input.limit===void 0?"true":"false",fileType:d,nameField:p,model:c},{linesRead:o-r,truncated:a?1:0})}async resolveInput(e,n){return this._promptContext=n,e}};V2e=S([b(0,Te),b(1,wi),b(2,ma),b(3,Vt),b(4,j),b(5,tt),b(6,Ee),b(7,be),b(8,Fe),b(9,wh),b(10,yt)],V2e);$n.registerTool(V2e);var Y2e=class extends Rot.PromptElement{constructor(n,r,o){super(n);this.instantiationService=r;this.promptPathRepresentationService=o}async render(){await this.instantiationService.invokeFunction(s=>_I(s,this.props.uri));let n=this.props.snapshot,r=n.getText();if(r.length===0)return vscpp(vscppf,null,"(The file `",this.promptPathRepresentationService.getFilePath(this.props.uri),"` exists, but is empty)");if(r.trim().length===0)return vscpp(vscppf,null,"(The file `",this.promptPathRepresentationService.getFilePath(this.props.uri),"` exists, but contains only whitespace)");let o=new gt(this.props.startLine-1,0,this.props.endLine-1,1/0),a=n.getText(o);return this.props.truncated&&(a+=` [File content truncated at line ${this.props.endLine}. Use read_file with offset/limit parameters to view more.] `),vscpp(vscppf,null,this.props.useCodeFences&&o.end.line+1!==n.lineCount||this.props.truncated?vscpp(vscppf,null,"File: `",this.promptPathRepresentationService.getFilePath(this.props.uri),"`. Lines ",o.start.line+1," to ",o.end.line+1," (",n.lineCount," lines total): ",vscpp("br",null)):void 0,vscpp(hn,{uri:this.props.uri,code:a,languageId:n.languageId,shouldTrim:!1,includeFilepath:!1,references:[new Rot.PromptReference(this.props.uri,void 0,{isFromTool:!0})],lineBasedPriority:!0,fence:this.props.useCodeFences?void 0:""}))}};Y2e=S([b(1,j),b(2,Vt)],Y2e);var mXt=O(Lt());Be();var K2e=class{constructor(e){this.instantiationService=e}static{this.toolName="read_project_structure"}async invoke(e,n){return Jd(n),new Zn([new Ii(await Hi(this.instantiationService,h_,{maxSize:1e3},e.tokenizationOptions,n))])}prepareInvocation(e,n){return{invocationMessage:mXt.t`Reading project structure`,pastTenseMessage:mXt.t`Read project structure`}}};K2e=S([b(0,j)],K2e);$n.registerTool(K2e);var xq=O(Lt());So();var AXt=class t extends Cq{static{this.toolName="replace_string_in_file"}static{this.nonDeferred=!0}extractReplaceInputs(e){return[{filePath:e.filePath,oldString:e.oldString,newString:e.newString}]}async handleToolStream(e,n){let r=e.rawInput,o;if(r&&typeof r=="object"){let a=r.oldString,s=r.newString,c=r.filePath,l=a!==void 0?em(a,` `)+1:void 0,u=s!==void 0?em(s,` `)+1:void 0;if(c){let d=cc(c,this.promptPathRepresentationService),p=Wn(d);l!==void 0&&u!==void 0?o=new je(xq.t`Replacing ${l} lines with ${u} lines in ${p}`):l!==void 0?o=new je(xq.t`Replacing ${l} lines in ${p}`):o=new je(xq.t`Editing ${p}`)}else l!==void 0&&u!==void 0?o=new je(xq.t`Replacing ${l} lines with ${u} lines`):l!==void 0?o=new je(xq.t`Replacing ${l} lines`):o=new je(xq.t`Editing file`)}else o=new je(xq.t`Editing file`);return{invocationMessage:o}}async invoke(e,n){let r=await this.prepareEdits(e,n);return this.applyAllEdits(e,r,n)}toolName(){return t.toolName}};$n.registerTool(AXt);Ot();var Dot="memory-tool/memories",J2e=class{constructor(e){this._extensionContext=e}static{this.toolName="resolve_memory_file_uri"}async invoke(e,n){let r=e.input.path;if(!r||!r.startsWith("/memories/"))throw new Error("Path must start with /memories/");if(r.includes(".."))throw new Error("Path traversal is not allowed");let o=r.split("/").filter(c=>c.length>0),a=e.chatSessionResource?.toString(),s;if(r.startsWith("/memories/session/")||r==="/memories/session"){let c=this._extensionContext.storageUri;if(!c)throw new Error("No workspace storage available");let l=o.slice(2),u=K.from(c);if(a){let d=R3(a);s=K.joinPath(u,Dot,d,...l)}else s=K.joinPath(u,Dot,...l)}else if(r.startsWith("/memories/repo/")||r==="/memories/repo"){let c=this._extensionContext.storageUri;if(!c)throw new Error("No workspace storage available");let l=o.slice(2);s=K.joinPath(K.from(c),Dot,"repo",...l)}else{let c=this._extensionContext.globalStorageUri;if(!c)throw new Error("No global storage available");let l=o.slice(1);s=K.joinPath(c,Dot,...l)}return new Zn([new rn(s.toString())])}};J2e=S([b(0,ut)],J2e);$n.registerTool(J2e);var X2e=O(Lt());dn();Be();var J6r=O(Ye());sr();var Pot=class extends J6r.PromptElement{render(){return vscpp(vscppf,null,this.props.diffs.map(e=>vscpp(vscppf,null,vscpp(Eh,{passPriority:!0,variableName:dr(e.uri.toString()),variableValue:e.uri,filePathMode:1,omitReferences:!0}),vscpp(ql,{passPriority:!0,code:e.diff,languageId:"diff"}),vscpp("br",null))))}};var Not=200,X6r=3e4,ePe=class{constructor(e,n,r,o,a){this.instantiationService=e;this.gitService=n;this.gitDiffService=r;this.logService=o;this.promptPathRepresentationService=a}static{this.toolName="get_changed_files"}async invoke(e,n){Jd(n),await this.gitService.initialize(),this.logService.trace(`[GetScmChangesTool][invoke] Options: ${JSON.stringify(e)}`);let r=[],o=[],a=e.input.repositoryPath?this.promptPathRepresentationService.resolveFilePath(e.input.repositoryPath):void 0,s=a?await this.gitService.getRepository(a):void 0;if(s=s??this.gitService.activeRepository.get(),!s)return this.logService.warn(`[GetScmChangesTool][invoke] Unable to resolve the repository using repositoryPath: ${e.input.repositoryPath}`),this.logService.warn(`[GetScmChangesTool][invoke] Unable to resolve the active repository: ${this.gitService.activeRepository.get()?.rootUri.toString()}`),new Zn([new rn("The workspace does not contain a git repository")]);this.logService.trace(`[GetScmChangesTool][invoke] Uri: ${a?.toString()}`),this.logService.trace(`[GetScmChangesTool][invoke] Repository: ${s.rootUri.toString()}`);let c=0,l=s?.changes;if(l){if(e.input.sourceControlState)for(let p of e.input.sourceControlState)switch(p){case"staged":o.push(...l.indexChanges);break;case"unstaged":o.push(...l.workingTree,...l.untrackedChanges);break;case"merge-conflicts":o.push(...l.mergeChanges);break}else o.push(...l.workingTree,...l.indexChanges,...l.mergeChanges,...l.untrackedChanges);this.logService.trace(`[GetScmChangesTool][invoke] Total changed files: ${o.length}`);let d=o.slice(0,Not);c=Math.max(0,o.length-Not),c>0&&this.logService.info(`[GetScmChangesTool][invoke] Limiting diff processing to ${Not} files (${c} additional files will be listed without diffs)`);try{let p=await au(this.gitDiffService.getChangeDiffs(s.rootUri,d,n),X6r);if(p===void 0){this.logService.warn(`[GetScmChangesTool][invoke] Diff retrieval timed out after ${X6r}ms`);let m=o.map(A=>A.uri.fsPath).join(` `);return new Zn([new rn(`Diff retrieval timed out. The repository has ${o.length} changed file(s): ${m} You can use the terminal to run 'git diff' commands to inspect specific files.`)])}r.push(...p)}catch(p){this.logService.warn(`[GetScmChangesTool][invoke] Error retrieving diffs: ${p}`);let m=o.map(A=>A.uri.fsPath).join(` `);return new Zn([new rn(`Error retrieving diffs: ${p instanceof Error?p.message:String(p)}. The repository has ${o.length} changed file(s): ${m} You can use the terminal to run 'git diff' commands to inspect specific files.`)])}}else this.logService.warn("[GetScmChangesTool][invoke] Unable to retrieve changes because there is no active repository");Jd(n);let u=[];if(r.length&&u.push(new Ii(await Hi(this.instantiationService,Pot,{diffs:r},e.tokenizationOptions,n))),c>0){let p=o.slice(Not).map(m=>m.uri.fsPath).join(` `);u.push(new rn(` ${c} additional changed file(s) not shown above (too many to diff): ${p} You can use the terminal to run 'git diff' commands to inspect specific files.`))}return u.length===0&&u.push(new rn("No changed files found")),new Zn(u)}prepareInvocation(e,n){Jd(n);let r=e.input.repositoryPath?this.promptPathRepresentationService.resolveFilePath(e.input.repositoryPath):void 0;return this.logService.trace(`[GetScmChangesTool][prepareInvocation] Options: ${JSON.stringify(e)}`),this.logService.trace(`[GetScmChangesTool][prepareInvocation] Uri: ${r?.toString()}`),r?{invocationMessage:new je(X2e.t`Reading changed files in ${Wn(r)}`),pastTenseMessage:new je(X2e.t`Read changed files in ${Wn(r)}`)}:{invocationMessage:new je(X2e.t`Reading changed files in the active git repository`),pastTenseMessage:new je(X2e.t`Read changed files in the active git repository`)}}async provideInput(){return await this.gitService.initialize(),this.logService.trace(`[GetScmChangesTool][provideInput] Active repository: ${this.gitService.activeRepository.get()?.rootUri.toString()}`),Promise.resolve({repositoryPath:this.gitService.activeRepository.get()?.rootUri.toString(),sourceControlState:["unstaged","staged"]})}};ePe=S([b(0,j),b(1,ei),b(2,MD),b(3,Z),b(4,Vt)],ePe);$n.registerTool(ePe);var eUr=O(Lt()),tUr=O(require("path"));Ot();Be();var fXt=require("crypto");Be();var FAe=class extends ad{constructor(e,n,r,o,a,s,c,l,u,d,p,m,A){let f=e,g={id:f,name:f,vendor:f,version:"unknown",model_picker_enabled:!1,is_chat_default:!1,is_chat_fallback:!1,capabilities:{type:"chat",family:f,tokenizer:"o200k_base",supports:{streaming:!0,parallel_tool_calls:!0,tool_calls:!0,vision:!1},limits:{max_prompt_tokens:26e4,max_output_tokens:16e3}}};super(g,n,c,l,u,d,p,m,A)}get urlOrRequestMetadata(){return{type:qn.ProxyChatCompletions}}};FAe=S([b(1,ic),b(2,Mr),b(3,nr),b(4,Ee),b(5,at),b(6,Ip),b(7,cl),b(8,j),b(9,be),b(10,Fe),b(11,od),b(12,Z)],FAe);$s();Be();var _Y=O(Ye());var Lot=class extends _Y.PromptElement{async render(e,n){let{conversation:r,toolCallRounds:o,toolCallResults:a}=this.props.promptContext,s=r?.turns[0]?.request.message,l=(o?.length??0)>=this.props.maxSearchTurns-1;return vscpp(vscppf,null,vscpp(_Y.SystemMessage,{priority:1e3},"You are an AI coding research assistant that uses search tools to gather information. You can call tools to search for information and read files across a codebase.",vscpp("br",null),vscpp("br",null),"Once you have thoroughly searched the repository, return a message with ONLY: the tag to provide paths and line ranges of relevant code snippets.",vscpp("br",null),vscpp("br",null),"Example:",vscpp("br",null),vscpp("br",null),"",vscpp("br",null),"/absolute/path/to/file.py:10-20",vscpp("br",null),"/absolute/path/to/another/file.cc:100-120",vscpp("br",null),""),vscpp(_Y.UserMessage,{priority:900},s),vscpp(Hc,{priority:899,flexGrow:2,promptContext:this.props.promptContext,toolCallRounds:o,toolCallResults:a,toolCallMode:1}),l&&vscpp(_Y.UserMessage,{priority:900},"OK, your allotted iterations are finished -- you must produce a list of code references as the final answer, starting and ending with ."))}};var lQ=class extends dl{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g){super(n,r,s,o,a,l,u,d,p,m,A,f,g);this.instantiationService=r;this.endpointProvider=s;this.toolsService=c}static{this.ID="searchSubagentTool"}createPromptContext(n,r){let o=super.createPromptContext(n,r);return o.tools&&(o.tools={...o.tools,toolReferences:[],subAgentInvocationId:this.options.subAgentInvocationId??(0,fXt.randomUUID)(),subAgentName:"search"}),o.query=this.options.promptText,o}static{this.DEFAULT_AGENTIC_PROXY_MODEL="agentic-search-v3"}async getEndpoint(){let n=this._configurationService.getExperimentBasedConfig(H.Advanced.SearchSubagentModel,this._experimentationService);if(this._configurationService.getExperimentBasedConfig(H.Advanced.SearchSubagentUseAgenticProxy,this._experimentationService)){let o=n||lQ.DEFAULT_AGENTIC_PROXY_MODEL;return this.instantiationService.createInstance(FAe,o)}if(n)try{return await this.endpointProvider.getChatEndpoint(n)}catch(o){return this._logService.warn(`Failed to get model ${n}, falling back to main agent endpoint: ${o}`),await this.endpointProvider.getChatEndpoint(this.options.request)}else return await this.endpointProvider.getChatEndpoint(this.options.request)}async buildPrompt(n,r,o){let a=await this.getEndpoint(),s=this._configurationService.getExperimentBasedConfig(H.Advanced.SearchSubagentToolCallLimit,this._experimentationService);return await en.create(this.instantiationService,a,Lot,{promptContext:n,maxSearchTurns:s}).render(r,o)}async getAvailableTools(){let n=await this.getEndpoint(),r=this.toolsService.getEnabledTools(this.options.request,n),o=new Set(["semantic_search","file_search","grep_search","read_file"]);return r.filter(a=>o.has(a.name))}async fetch({messages:n,finishedCb:r,requestOptions:o,enableThinking:a,reasoningEffort:s},c){return(await this.getEndpoint()).makeChatRequest2({debugName:lQ.ID,messages:n,finishedCb:r,location:this.options.location,enableThinking:a,reasoningEffort:s,requestOptions:{...o,temperature:0},userInitiatedRequest:!1,telemetryProperties:{messageId:(0,fXt.randomUUID)(),messageSource:"chat.editAgent",subType:"subagent/search",conversationId:this.options.conversation.sessionId},requestKindOptions:{kind:"subagent"}},c)}};lQ=S([b(1,j),b(2,Z),b(3,Fr),b(4,tt),b(5,Xn),b(6,$d),b(7,Ee),b(8,be),b(9,Fe),b(10,Fm),b(11,kp),b(12,yt),b(13,On)],lQ);var tPe=class{constructor(e,n,r,o,a){this.instantiationService=e;this.requestLogger=n;this.workspaceService=r;this.configurationService=o;this.experimentationService=a}static{this.toolName="search_subagent"}static{this.nonDeferred=!0}async invoke(e,n){let r=this.workspaceService.getWorkspaceFolders(),o=r.length>0?r[0].fsPath:void 0,a=[`Find relevant code snippets for: ${e.input.query}`,"",...o?[`Current working directory: ${o}`,""]:[],"More detailed instructions: ",`${e.input.details}`,""].join(` `),s=this._inputContext.request,c=this._inputContext?.conversation?.sessionId??st(),l=st(),u=this.configurationService.getExperimentBasedConfig(H.Advanced.SearchSubagentToolCallLimit,this.experimentationService),d=this.instantiationService.createInstance(lQ,{toolCallLimit:u,conversation:new Yv(c,[new h0(st(),{type:"user",message:a})]),request:s,location:s.location,promptText:e.input.query,subAgentInvocationId:l}),p=this._inputContext?.stream&&Ml.filter(this._inputContext.stream,_=>_ instanceof mh||_ instanceof cu||_ instanceof vR),m=DR()?.chatSessionId,A=new Zd(`Search: ${e.input.query.substring(0,50)}${e.input.query.length>50?"...":""}`,"search",l,"search",l,m,"searchSubagent"),f=await this.requestLogger.captureInvocation(A,()=>d.run(p,n)),g={query:e.input.query,description:e.input.description,subAgentInvocationId:l,agentName:"search"},h="";f.response.type==="success"?h=f.toolCallRounds.at(-1)?.response??f.round.response??"":h=`The search subagent request failed with this message: ${f.response.type}: ${f.response.reason}`;let y=await this.parseFinalAnswerAndHydrate(h,o,n),v=new Gc([new rn(y)]);return v.toolMetadata=g,v.toolResultMessage=new je(eUr.t`Search complete: ${e.input.description}`),v}async parseFinalAnswerAndHydrate(e,n,r){let o=e.split(` `),a=/^(.+):(\d+)-(\d+)$/,s=[];for(let c of o){let l=c.trim(),u=l.match(a);if(!u){s.push(c);continue}let[,d,p,m]=u,A=parseInt(p,10),f=parseInt(m,10);try{let g=!tUr.isAbsolute(d)&&n?K.joinPath(K.file(n),d):K.file(d),h=await this.workspaceService.openTextDocument(g),y=xr.create(h),v=Math.max(1,Math.min(A,y.lineCount)),_=Math.max(1,Math.min(f,y.lineCount)),w=new gt(v-1,0,_-1,Number.MAX_SAFE_INTEGER),x=y.getText(w);s.push(`File: \`${g.fsPath}\`, lines ${v}-${_}: \`\`\` ${x} \`\`\``)}catch(g){s.push(`${l} (unable to read file: ${g})`)}if(r.isCancellationRequested)break}return s.join(` `)}prepareInvocation(e,n){return{invocationMessage:e.input.description}}async resolveInput(e,n,r){return this._inputContext=n,e}};tPe=S([b(0,j),b(1,Fr),b(2,Te),b(3,be),b(4,Fe)],tPe);$n.registerTool(tPe);var QAe=O(Lt()),CY=O(Ye());Be();var nPe=class{constructor(e,n){this.instantiationService=e;this.languageFeaturesService=n}static{this.toolName="search_workspace_symbols"}async invoke(e,n){let r=await this.languageFeaturesService.getWorkspaceSymbols(e.input.symbolName);Jd(n);let o=await Hi(this.instantiationService,rPe,{symbols:r},e.tokenizationOptions,n),a=new Gc([new Ii(o)]),s=`\`${e.input.symbolName}\``;return a.toolResultMessage=r.length===0?new je(QAe.t`Searched for ${s}, no results`):r.length===1?new je(QAe.t`Searched for ${s}, 1 result`):new je(QAe.t`Searched for ${s}, ${r.length} results`),a}prepareInvocation(e,n){let r=`\`${e.input.symbolName}\``;return{invocationMessage:QAe.t`Searching for ${r}`,pastTenseMessage:QAe.t`Searched for ${r}`}}};nPe=S([b(0,j),b(1,og)],nPe);$n.registerTool(nPe);var rPe=class extends CY.PromptElement{constructor(n,r){super(n);this.promptPathRepresentationService=r}async render(n,r,o,a){if(!this.props.symbols.length)return vscpp(vscppf,null,"No symbols found.");let s=this.props.symbols.slice(0,20),c=this.props.symbols.length>20?` (additional ${this.props.symbols.length-s.length} results omitted)`:"";return vscpp(vscppf,null,vscpp(CY.TextChunk,{priority:20},this.props.symbols.length," total result",this.props.symbols.length===1?"":"s",c),s.map((l,u)=>vscpp(vscppf,null,vscpp(z,{name:"symbol",priority:20-u},vscpp("references",{value:[new CY.PromptReference(l.location,void 0,{isFromTool:!0})]}),"From ",this.promptPathRepresentationService.getFilePath(l.location.uri),", lines ",l.location.range.start.line," to ",l.location.range.end.line,":",vscpp("br",null),"Symbol: ",l.name,", containing symbol: ",l.containerName),vscpp("br",null))),s.lengthvscpp(gXt,{failure:n}))),vscpp(uQ.TextChunk,{priority:101},"## Rules:",vscpp("br",null),"- Always try to find an error in the implementation code first. Don't suggest any changes in my test cases unless I tell you to.",vscpp("br",null),"- If you need more information about anything in the codebase, use a tool like ","read_file",", ","list_dir",", or ","file_search"," to find and read it. Never ask the user to provide it themselves.",vscpp("br",null),"- If you make changes to fix the test, call ","runTests"," to run the tests and verify the fix.",vscpp("br",null),"- Don't try to make the same changes you made before to fix the test. If you're stuck, ask the user for pointers.",vscpp("br",null))):vscpp(uQ.TextChunk,{priority:100},"No test failures were found.")}sortByRanks(n){return n.map(o=>{let a=o.snapshot.uri?this.rankFile(o.snapshot.uri):0;for(let s of o.task.messages){if(a===4)return{failure:o,rank:a};s.location&&(a=Math.max(a,this.rankFile(s.location.uri)))}if(a>0)return{failure:o,rank:a};for(let s of o.task.messages)if(s.stackTrace)for(let c of s.stackTrace.slice(0,10))c.uri&&(a=Math.max(a,this.rankFile(c.uri)));return{failure:o,rank:a/10}}).sort((o,a)=>a.rank-o.rank).map(o=>o.failure)}rankFile(n){if(this.tabsAndEditorsService.activeTextEditor?.document.uri.toString()===n.toString())return 4;if(this.tabsAndEditorsService.visibleTextEditors?.some(o=>o.document.uri.toString()===n.toString()))return 3;if(this.workspaceService.textDocuments.some(o=>o.uri.toString()===n.toString()))return 2;let r=this.gitExtensionService.getExtensionApi()?.getRepository(n);if(r){let o=r.state,a=[o.indexChanges,o.workingTreeChanges,o.mergeChanges,o.untrackedChanges];for(let s of a)if(s.some(c=>c.uri.toString()===n.toString()))return 1}return 0}};aPe=S([b(1,Te),b(2,co),b(3,is)],aPe);var gXt=class extends uQ.PromptElement{constructor(e){super(e)}render(){let e=this.props.failure,n=[];for(let r=e.snapshot;r;r=r.parent)r.uri?.toString()===e.snapshot.uri?.toString()&&n.push(r.label);return vscpp(vscppf,null,vscpp(z,{name:"testFailure",attrs:{testCase:n.reverse().join(" "),path:e.snapshot.uri?.fsPath}},e.task.messages.map(r=>vscpp(sPe,{message:r}))))}},sPe=class extends uQ.PromptElement{constructor(n,r){super(n);this.workspaceService=r}render(){let n=this.props.message,r=[];if(n.expectedOutput!==void 0&&n.actualOutput!==void 0?r.push(vscpp(z,{name:"expectedOutput"},n.expectedOutput),vscpp(z,{name:"actualOutput"},n.actualOutput)):r.push(vscpp(z,{name:"message"},typeof n.message=="string"?n.message:n.message.value)),n.stackTrace)for(let{label:o,position:a,uri:s}of n.stackTrace)a&&s?r.push(vscpp(z,{name:"stackFrame",attrs:{path:this.workspaceService.asRelativePath(s),line:a.line,col:a.character}})):r.push(vscpp(z,{name:"stackFrame",attrs:{path:s&&this.workspaceService.asRelativePath(s),line:a?.line,col:a?.character}},o));return vscpp(vscppf,null,r)}};sPe=S([b(1,Te)],sPe);var hXt=class{static{this.toolName="tool_replay"}invoke(e,n){let r=aQ.getInstance(),{toolCallId:o}=e.input,a=r.getToolResult(o)??[];return new Zn(a.map(s=>new rn(s)))}prepareInvocation(e,n){return{invocationMessage:e.input.toolName}}};$n.registerTool(hXt);var Mot=class{constructor(e){this.nodes=[];this.clusters=[];this.nodeToClusterId=new Map;this.clusterCounter=0;this.normalizedEmbeddings=new Map;this.lastUsedThreshold=.9;this.options={eps:.9,minClusterSize:2,...e}}addNode(e){if(this.nodes.push(e),this.normalizedEmbeddings.set(e,this.normalizeVector(e.embedding.value)),this.cachedSimilarities=void 0,this.clusters.length>0){let n=this.options.insertThreshold??this.lastUsedThreshold,r=this.findBestClusterForNode(e,n);if(r){this.addNodeToCluster(e,r);return}}this.createSingletonCluster(e)}addNodes(e,n=!0){if(e.length!==0){for(let r of e)this.nodes.push(r);if(this.cachedSimilarities=void 0,n)this.recluster();else for(let r of e)this.createSingletonCluster(r)}}removeNode(e){let n=this.nodes.indexOf(e);if(n===-1)return!1;this.nodes.splice(n,1),this.normalizedEmbeddings.delete(e),this.cachedSimilarities=void 0;let r=this.nodeToClusterId.get(e);return r&&(this.nodeToClusterId.delete(e),this.removeNodeFromCluster(e,r)),!0}recluster(){if(this.nodes.length===0){this.clusters=[],this.nodeToClusterId.clear();return}this.clusters=[],this.nodeToClusterId.clear();let e=this.runSimilarityBasedClustering(this.options.eps,this.options.minClusterSize);this.createClustersFromAssignments(e)}getClusters(){return this.clusters}getClusterForNode(e){let n=this.nodeToClusterId.get(e);return n?this.clusters.find(r=>r.id===n):void 0}computeEpsFromPercentile(e){if(this.nodes.length<2)return .9;let n=this.getSimilarities();if(n.length===0)return .9;let r=Math.floor(e/100*n.length),o=n[Math.min(r,n.length-1)];return this.lastUsedThreshold=o,o}runSimilarityBasedClustering(e,n){let r=new Array(this.nodes.length).fill(-1),o=new Array(this.nodes.length).fill(!1),a=0,s=this.findClusterSeeds(e,n);for(let c of s){if(o[c])continue;let l=this.buildClusterAroundSeed(c,e,o);if(l.length>=n){for(let u of l)r[u]=a,o[u]=!0;a++}}return r}findClusterSeeds(e,n){let r=[],o=new Array(this.nodes.length).fill(0);for(let a=0;a=e&&(o[a]++,o[s]++);for(let a=0;a=n-1&&r.push(a);return r.sort((a,s)=>o[s]-o[a]),r}buildClusterAroundSeed(e,n,r){let o=[e];for(let a=0;a=n&&o.push(a)}return o}createClustersFromAssignments(e){let n=new Map,r=[];for(let o=0;o=this.options.minClusterSize)this.createCluster(o);else for(let a of o)this.createSingletonCluster(a);for(let o of r)this.createSingletonCluster(o)}findBestClusterForNode(e,n){let r,o=-1;for(let a of this.clusters){let s=this.dotProduct(this.getNormalizedEmbedding(e),a.centroid);s>=n&&s>o&&(o=s,r=a)}return r}addNodeToCluster(e,n){let r=[...n.nodes,e],o=this.computeCentroid(r.map(c=>c.embedding.value)),a={...n,nodes:r,centroid:o},s=this.clusters.indexOf(n);this.clusters[s]=a,this.nodeToClusterId.set(e,n.id)}removeNodeFromCluster(e,n){let r=this.clusters.findIndex(s=>s.id===n);if(r===-1)return;let o=this.clusters[r],a=o.nodes.filter(s=>s!==e);if(a.length===0)this.clusters.splice(r,1);else{let s=this.computeCentroid(a.map(l=>l.embedding.value)),c={...o,nodes:a,centroid:s};this.clusters[r]=c;for(let l of a)this.nodeToClusterId.set(l,n)}}createCluster(e){let n=`cluster_${this.clusterCounter++}`,r=this.computeCentroid(e.map(a=>a.embedding.value)),o={id:n,nodes:e,centroid:r};this.clusters.push(o);for(let a of e)this.nodeToClusterId.set(a,n)}createSingletonCluster(e){this.createCluster([e])}computeCentroid(e){if(e.length===0)return[];if(e.length===1)return[...e[0]];let n=e[0].length,r=new Array(n).fill(0);for(let o of e)for(let a=0;an-r),this.cachedSimilarities=e,this.cachedSimilarities}tuneThresholdForTargetClusters(e,n=.7,r=.99,o=.02,a=2/3,s=.2){if(this.nodes.length===0)return{percentile:90,clusterCount:0,threshold:.9};let c=Math.floor(e*a),l=Math.max(1,Math.floor(e*s)),u=r,d=1,p=!1,m=n,A=r;for(;A-m>o;){let h=(m+A)/2,y=this.countClustersForThreshold(h,this.options.minClusterSize);if(y<=e){let v=!1;!p&&y>=c?(p=!0,v=y>d):p?v=y>=d+l:v=y>d,v&&(u=h,d=y),m=h+o}else A=h-o}let f=this.getSimilarities(),g=90;if(f.length>0){let h=f.findIndex(y=>y>=u);h>=0&&(g=Math.round(h/f.length*100))}return{percentile:g,clusterCount:d,threshold:u}}applyPercentileAndRecluster(e){let n=this.computeEpsFromPercentile(e),r=this.options.eps;this.options.eps=n;try{this.recluster()}finally{this.options.eps=r}}countClustersForThreshold(e,n){if(this.nodes.length===0)return 0;let r=this.runSimilarityBasedClustering(e,n),o=new Set;for(let u of r)u!==-1&&o.add(u);let a=new Map,s=0;for(let u of r)u===-1?s++:a.set(u,(a.get(u)||0)+1);let c=0,l=s;for(let[,u]of a)u>=n?c++:l+=u;return c+l}getNormalizedEmbedding(e){let n=this.normalizedEmbeddings.get(e);return n||(n=this.normalizeVector(e.embedding.value),this.normalizedEmbeddings.set(e,n)),n}cachedCosineSimilarity(e,n){let r=this.getNormalizedEmbedding(e),o=this.getNormalizedEmbedding(n);return this.dotProduct(r,o)}dotProduct(e,n){let r=0,o=Math.min(e.length,n.length),a=0;for(;ar+o*o,0));return n===0?e.slice():e.map(r=>r/n)}};Je();iu();Cp();pa();Be();Be();var bXt=eo.text3small_512,OAe=class{constructor(e,n,r){this._logService=e;let o=tx(r.getEditorInfo().version);this.cache=n.createInstance(X_,1,"toolEmbeddings",o,bXt,"tools")}get embeddingType(){return this.cache.embeddingType}async initialize(){this.embeddingsMap=await this._loadEmbeddings()}get(e){return this.embeddingsMap?.get(e.name)}set(){}async _loadEmbeddings(){try{let e=await this.cache.getCache(),n=new Map;if(e)for(let[r,o]of Object.entries(e)){if(o===void 0){this._logService.warn(`Tool embedding missing for key: ${r}`);continue}n.set(r,{type:this.embeddingType,value:o.embedding})}return n}catch(e){return this._logService.error("Failed to load pre-computed tool embeddings",e),new Map}}};OAe=S([b(0,Z),b(1,j),b(2,Zt)],OAe);dn();Ue();vi();Ot();var qEa="toolEmbeddingsCache.bin",nUr=1,rUr=20,UAe=class extends fe{constructor(n,r,o){super();this._fileSystemService=r;this._lru=new Tm(1e3);this._toolHashes=new WeakMap;this._storageScheduler=this._register(new RO(()=>this.save(),5e3));this._embeddingType=n,this._storageUri=K.joinPath(o.globalStorageUri,qEa)}async initialize(){try{let n=Pl.wrap(await this._fileSystemService.readFile(this._storageUri,!0)),r=0,o=Uz(n,r);if(r+=o.consumed,o.value!==nUr)return;let a=Uz(n,r);r+=a.consumed;let s=a.value,c=n.slice(r,r+s);r+=s;let l=new TextDecoder().decode(c.buffer);if(!new eo(l).equals(this._embeddingType))return;let d=Uz(n,r);r+=d.consumed;let p=d.value;for(let m=0;mthis.ensureInitialized());let{caches:o,embeddingType:a}=this.getCaches(r);this._caches=o,this._embeddingType=a}getCaches(e){let n=e.createInstance(OAe),r=n.embeddingType;return{embeddingType:r,caches:[n,e.createInstance(UAe,r)]}}async retrieveSimilarEmbeddingsForAvailableTools(e,n,r,o){if(await this._initialized.value,o.isCancellationRequested)return[];let a=await this.getAvailableToolEmbeddings(n,o);if(a.length===0)return[];let c=this.rankEmbeddings(e,a,r).map(l=>l.value);return this._logService.trace(`[virtual-tools] Matched ${JSON.stringify(c)} against the query.`),c}async searchToolsByQuery(e,n,r,o){if(await this._initialized.value,!e||o.isCancellationRequested)return[];let a=await this._embeddingsComputer.computeEmbeddings(this._embeddingType,[e],{},new Aa("ToolEmbeddingsComputer::searchToolsByQuery"),o);return!a||a.values.length===0?[]:this.retrieveSimilarEmbeddingsForAvailableTools(a.values[0],n,r,o)}rankEmbeddings(e,n,r){return PR(e,n,r)}async ensureInitialized(){await Promise.all(this._caches.map(e=>e.initialize()))}computeMissingEmbeddings(e,n){if(n.isCancellationRequested||e.length===0)return;let r=this.computeEmbeddingsForTools(e,n).catch(o=>{this._logService.error("Failed to compute embeddings for tools",o)});for(let o of e){let a=r.then(async s=>{let c=s?.find(([l])=>l===o.name)?.[1];if(c===void 0){this.embeddingsStore.delete(o.name);return}if(!Z0t(c)){this._logService.warn(`[virtual-tools] Computed embedding for tool ${o.name} is invalid: ${JSON.stringify(c)}`),this.embeddingsStore.delete(o.name);return}for(let l of this._caches)l.set(o,c);return c});this.embeddingsStore.set(o.name,a)}}async computeEmbeddingsForTools(e,n){if(n.isCancellationRequested)return;let r=e.map(s=>s.name+` `+s.description),o=new Gi,a=await this._embeddingsComputer.computeEmbeddings(this._embeddingType,r,{},new Aa("ToolEmbeddingsComputer::computeEmbeddingsForTools"),n);if(this._logService.trace(`[virtual-tools] Computed embeddings for ${r.length} tools in ${o.elapsed()}ms`),!(a?.values.length===0||a?.values.length!==r.length))return r.map((s,c)=>[e[c].name,a.values[c]])}async getAvailableToolEmbeddings(e,n){let r=new Map(e.map(s=>{for(let c of this._caches){let l=c.get(s);if(Z0t(l))return[s.name,l]}}).filter(zo)),o=e.filter(s=>!this.embeddingsStore.has(s.name)&&!r.has(s.name));this.computeMissingEmbeddings(o,n);let a=[];for(let{name:s}of e){if(n.isCancellationRequested)return a;let c=r.get(s);if(c){a.push([s,c]);continue}let l=await this.embeddingsStore.get(s);l&&a.push([s,l])}return a}async computeToolGroupings(e,n,r){if(await this._initialized.value,r.isCancellationRequested||e.length===0)return[];let o=await this.getAvailableToolEmbeddings(e,r);if(o.length===0)return this._logService.trace("[virtual-tools] No embeddings available for tools, returning empty groups"),[];let a=[],s=new Map(e.map(f=>[f.name,f]));for(let[f,g]of o){let h=s.get(f);h&&a.push({value:h,embedding:g})}if(a.length===0)return this._logService.trace("[virtual-tools] No valid nodes created for clustering"),[];let c=new Mot;c.addNodes(a);let l=Math.min(n,Math.ceil(a.length/4));if(l>=a.length)return this._logService.trace(`[virtual-tools] Target clusters (${l}) >= tool count (${a.length}), returning individual tools`),e.map(f=>[f]);let u=c.tuneThresholdForTargetClusters(l);this._logService.trace(`[virtual-tools] Tuned clustering: ${u.clusterCount} clusters with threshold ${u.threshold} (percentile ${u.percentile})`),c.applyPercentileAndRecluster(u.percentile);let d=c.getClusters(),p=[],m=[];for(let f of d){let g=f.nodes.map(h=>h.value);g.length>=wY?p.push(g):m.push(...g)}if(p.length+m.length<=n)for(let f of m)p.push([f]);else{let f=n-p.length;for(let g=0;gf&&this._logService.warn(`[virtual-tools] Had to drop ${m.length-f} tools due to limit constraints`)}return this._logService.trace(`[virtual-tools] Created ${p.length} groups from ${e.length} tools`),p}};qAe=S([b(0,Ep),b(1,Z),b(2,j)],qAe);var zEa=5,cPe=class{constructor(e,n,r){this._toolEmbeddingsComputer=e;this._toolsService=n;this._logService=r}async invoke(e,n){let{query:r,limit:o}=e.input;if(!r)return new Zn([new rn("Error: query parameter is required")]);let a=this._toolsService.tools,s=await this._toolEmbeddingsComputer.searchToolsByQuery(r,a,o??zEa,n);return this._logService.trace(`[custom-tool-search] Query "${r}" matched ${s.length} tools: ${JSON.stringify(s)}`),new Zn([new rn(JSON.stringify(s))])}};cPe=S([b(0,$Ae),b(1,Xn),b(2,Z)],cPe);$n.registerModelSpecificTool({name:D9,displayName:"Search Tools",description:"Search for relevant tools by describing what you need. Returns tool references for tools matching your query. Use this when you need to find a tool but aren't sure of its exact name. Check the availableDeferredTools list in your instructions for the full set of deferred tools, and include relevant tool names from that list in your query for more accurate results. Use broad queries to find all related tools in a single call rather than making multiple narrow searches.",tags:[],source:void 0,inputSchema:{type:"object",properties:{query:{type:"string",description:'Natural language description of what tool capability you are looking for. Use broad queries to cover related tools in one search (e.g., "github" instead of separate searches for issues and PRs).'}},required:["query"]},models:R0t.map(t=>({id:t}))},cPe);var Eq=O(Lt());fr();Be();var lPe=class{constructor(e,n,r,o,a){this.workspaceService=e;this.promptPathRepresentationService=n;this.instantiationService=r;this.fileSystemService=o;this.imageService=a}static{this.toolName="view_image"}static{this.nonDeferred=!0}async invoke(e,n){let r=cc(e.input.filePath,this.promptPathRepresentationService),o=MAe(r);if(!o)throw new Error(`Cannot view ${this.promptPathRepresentationService.getFilePath(r)} with view_image. Use read_file for non-image files.`);let a=await this.fileSystemService.stat(r);if(a.size>pXt)return new Zn([new rn(`Cannot view image file ${this.promptPathRepresentationService.getFilePath(r)}: file size (${Math.round(a.size/(1024*1024))}MB) exceeds the maximum allowed size of ${Math.round(pXt/(1024*1024))}MB.`)]);let s=await this.fileSystemService.readFile(r,!0),c=await this.imageService.resizeImage(s,o);return new Zn([rm.image(c.data,c.mimeType)])}async prepareInvocation(e,n){let r=cc(e.input.filePath,this.promptPathRepresentationService);if(this.assertImageFile(r),await this.instantiationService.invokeFunction(a=>U$e(a,r,this._promptContext,{readOnly:!0}))){await this.instantiationService.invokeFunction(c=>_I(c,r));let a=Qd(r),s=this.workspaceService.getWorkspaceFolders().length===1?new je(Eq.t`${Wn(r)} is outside of the current folder in ${Wn(a)}.`):new je(Eq.t`${Wn(r)} is outside of the current workspace in ${Wn(a)}.`);return{invocationMessage:new je(Eq.t`Viewing image ${Wn(r)}`),pastTenseMessage:new je(Eq.t`Viewed image ${Wn(r)}`),confirmationMessages:{title:Eq.t`Allow viewing external images?`,message:s}}}return await this.instantiationService.invokeFunction(a=>Dxe(a,r,this._promptContext,{readOnly:!0})),{invocationMessage:new je(Eq.t`Viewing image ${Wn(r)}`),pastTenseMessage:new je(Eq.t`Viewed image ${Wn(r)}`)}}async resolveInput(e,n){return this._promptContext=n,e}assertImageFile(e){if(!MAe(e))throw new Error(`Cannot view ${this.promptPathRepresentationService.getFilePath(e)} with view_image. Use read_file for non-image files.`)}};lPe=S([b(0,Te),b(1,Vt),b(2,j),b(3,yt),b(4,NL)],lPe);$n.registerTool(lPe);var CXt=O(Lt());Be();var Fot=O(Ye());Be();var zAe=class{constructor(e=!0,n,r){let o=tx(n.getEditorInfo().version);this.embeddingsCache=e?r.createInstance(X_,1,"api",o,eo.text3small_512,"api"):r.createInstance(K1,1,"api",o,eo.text3small_512)}async updateIndex(){this.apiChunks=await this.embeddingsCache.getCache()}nClosestValues(e,n){return this.apiChunks?PR(e,this.apiChunks.map(r=>[r,{type:this.embeddingsCache.embeddingType,value:r.embedding}]),n).map(r=>this.toContextString(r.value)):[]}toContextString(e){return e.type==="code"?`API Reference Code Snippet from vscode.d.ts: ${Zc(e.lang,e.text)}`:e.type==="command"?`${e.text}`:e.type==="documentationCodeBlock"?`Example code from VS Code documentation: ${Zc(e.lang,e.text)}`:""}};zAe=S([b(1,Zt),b(2,j)],zAe);var _Xt=me("IApiEmbeddingsIndex"),jAe=class extends Fot.PromptElement{constructor(n,r,o){super(n);this.apiEmbeddingsIndex=r;this.embeddingsComputer=o}async renderAsString(){return`Below are some potentially relevant code samples related to VS Code extension development. You may use information from these samples to help you answer the question if you believe it is relevant. ${(await this.getSnippets(void 0)).join(` `)}`}async getSnippets(n){if(await this.apiEmbeddingsIndex.updateIndex(),n?.isCancellationRequested)return[];let r=await this.embeddingsComputer.computeEmbeddings(eo.text3small_512,[this.props.query],{},new Aa("VSCodeAPIContextElement::getSnippets"),n);return this.apiEmbeddingsIndex.nClosestValues(r.values[0],5)}async render(n,r,o,a){let s=await this.getSnippets(a);if(s.length)return vscpp(vscppf,null,"Below are some potentially relevant code samples related to VS Code extension development. You may use information from these samples to help you answer the question if you believe it is relevant.",vscpp("br",null),s.map(c=>vscpp(vscppf,null,vscpp(Fot.TextChunk,null,c),vscpp("br",null),vscpp("br",null))))}};jAe=S([b(1,_Xt),b(2,Ep)],jAe);var uPe=class{constructor(e){this.instantiationService=e}static{this.toolName="get_vscode_api"}async invoke(e,n){return new Zn([new Ii(await Hi(this.instantiationService,jAe,{query:e.input.query},e.tokenizationOptions,n))])}prepareInvocation(e,n){let r=`"${e.input.query}"`;return{invocationMessage:CXt.t`Searching VS Code API for ${r}`,pastTenseMessage:CXt.t`Searched VS Code API for ${r}`}}};uPe=S([b(0,j)],uPe);$n.registerTool(uPe);var GAe=O(Lt());var jEa=new Set(["github.copilot.debug.collectDiagnostics"]),dPe=class{constructor(e,n,r){this._commandService=e;this._workbenchService=n;this._logService=r}static{this.toolName="run_vscode_command"}async invoke(e,n){let r=e.input.commandId,o=e.input.args??[];if(!e.input.skipCheck&&!(await this._workbenchService.getAllCommands(!0)).find(c=>c.command===r))return(await this._workbenchService.getAllCommands(!1)).find(u=>u.command===r)?new Zn([new rn(`Command \`${e.input.name}\` exists, but its preconditions are not currently met. Ask the user to try running it manually via the command palette.`)]):new Zn([new rn(`Failed to find command \`${e.input.name}\`.`)]);try{let a=await this._commandService.executeCommand(r,...o),s;if(a==null)s=new rn(`Finished running command \`${e.input.name}\`.`);else if(typeof a=="string")s=new rn(`Finished running command \`${e.input.name}\` with result: ${a}`);else{let c;try{c=JSON.stringify(a)}catch{c=String(a)}s=new rn(`Finished running command \`${e.input.name}\` with result: ${c}`)}return new Zn([s])}catch(a){return this._logService.error(`[VSCodeCmdTool] ${a}`),new Zn([new rn(`Failed to run command \`${e.input.name}\`.`)])}}async prepareInvocation(e,n){let r=e.input.commandId;if(!r)throw new Error("Command ID undefined");let o=GAe.t`Running command \`${e.input.name}\``;if(jEa.has(r))return{invocationMessage:o};let a="workbench.action.quickOpen",s=fW(a,[">"+r]),c=new je(GAe.t("Copilot will execute the [{0}]({1}) (`{2}`) command.",e.input.name,s,e.input.commandId));return c.isTrusted={enabledCommands:[a]},{invocationMessage:o,confirmationMessages:{title:GAe.t`Run Command \`${e.input.name}\` (\`${e.input.commandId}\`)?`,message:c,approveCombination:e.input.args?GAe.t`Allow running command \`${e.input.commandId}\` with specific arguments`:GAe.t`Allow running command \`${e.input.commandId}\` without arguments`}}}};dPe=S([b(0,Ql),b(1,Y1),b(2,Z)],dPe);$n.registerTool(dPe);var uv=O(Ye()),rB=require("vscode");var cUr=O(Lt());dn();Ue();vi();var GEa=1.5*1024*1024,wXt=class{constructor(e,n){this.uri=e;this._originalText=n;this.githubLanguageId=222}async getText(){return this._originalText.slice(0,GEa)}async getContentHash(){return d0(await this.getText())}},HAe=class extends fe{constructor(n,r,o,a,s){super();this._authService=n;this._logService=r;this._embeddingsComputer=o;this._chunkingEndpointClient=a;this._availableEmbeddingTypesService=s;this._cache=new xXt}async findInUrls(n,r,o){let a=await qt(this._availableEmbeddingTypesService.getPreferredType(!1),o);if(!a)throw new Error("No embedding types available");let[s,c]=await qt(Promise.all([this.computeEmbeddings(a,r,"query",o),this.getEmbeddingsForFiles(a,n.map(l=>new wXt(l.uri,l.content)),"Batch",o)]),o);return this.computeChunkScores(c,s)}async computeEmbeddings(n,r,o,a){return(await this._embeddingsComputer.computeEmbeddings(n,[r],{inputType:o},new Aa("UrlChunkEmbeddingsIndex::computeEmbeddings"),a)).values[0]}async getEmbeddingsForFiles(n,r,o,a){if(!r.length)return[];let s=new x1;this._logService.trace("urlChunkEmbeddingsIndex: Getting auth token ");let c=await this.tryGetAuthToken();if(!c)throw this._logService.error("urlChunkEmbeddingsIndex: Unable to get auth token"),new Error("Unable to get auth token");return await Promise.all(r.map(async u=>{let d=await this.getChunksAndEmbeddings(c,n,u,s,o,a);return d||[]}))}computeChunkScores(n,r){return n.map(o=>o.map(({chunk:a,embedding:s})=>({chunk:a,distance:kL(s,r)})))}async getChunksAndEmbeddings(n,r,o,a,s,c){let l=await qt(this._cache.get(o),c);if(l)return l;let u=await qt(this._chunkingEndpointClient.computeChunksAndEmbeddings(n,r,o,a,s,new Map,new Jf("UrlChunkEmbeddingsIndex::getChunksAndEmbeddings"),c),c);return u&&this._cache.set(o,u),u}async tryGetAuthToken(){return(await this._authService.getGitHubSession("any",{createIfNone:{detail:cUr.t("Sign in to GitHub to access URL chunk embeddings.")}}))?.accessToken}};HAe=S([b(0,at),b(1,Z),b(2,Ep),b(3,$ie),b(4,x8)],HAe);var xXt=class{constructor(){this._cache=new Hn}async get(e){let n=this._cache.get(e.uri);if(n&&n.hash===await e.getContentHash())return n.value}async set(e,n){let r=await e.getContentHash();this._cache.set(e.uri,{hash:r,value:n})}};iu();Ot();Be();var lUr="vscode_fetchWebPage_internal",pPe=class{constructor(e,n){this._instantiationService=e;this._logService=n;this._index=new Wr(()=>e.createInstance(HAe))}static{this.toolName="fetch_webpage"}static{this.nonDeferred=!0}prepareInvocation(e,n){return this._logService.trace("FetchWebPageTool: prepareInvocation"),{presentation:"hidden"}}async invoke(e,n){if(this._logService.trace("FetchWebPageTool: invoke"),!rB.lm.tools.find(m=>m.name===lUr))throw new Error("Tool not found");let o=e.input.urls.map(m=>$2n(m).encoded),{content:a}=await rB.lm.invokeTool(lUr,{...e,input:{...e.input,urls:o}},n);if(o.length!==a.length)return this._logService.error(`Expected ${o.length} responses but got ${a.length}`),new rB.LanguageModelToolResult([new rB.LanguageModelTextPart("Error: I did not receive the expected number of responses from the tool.")]);let s=[],c=[],l=[];for(let m=0;mh+(y.distance?.value??0),0);d.push({uri:A.uri,chunks:f,sumScore:g})}d.sort((m,A)=>A.sumScore-m.sumScore);let p=await Hi(this._instantiationService,EXt,{webPageResults:d,imageResults:l,invalidUrls:s},e.tokenizationOptions,n);return new rB.LanguageModelToolResult([new rB.LanguageModelPromptTsxPart(p)])}};pPe=S([b(0,j),b(1,Z)],pPe);$n.registerTool(pPe);var EXt=class extends uv.PromptElement{render(e,n){return vscpp(vscppf,null,this.props.webPageResults.map(r=>vscpp(IXt,{uri:r.uri,chunks:r.chunks,passPriority:!0})),this.props.imageResults.map(r=>vscpp(kXt,{uri:r.uri,imagePart:r.imagePart,passPriority:!0})),this.props.invalidUrls.map(r=>vscpp(uv.TextChunk,null,"Invalid URL so no data was provided: ",r)))}},IXt=class t extends uv.PromptElement{static{this.PRIORITY_BASE=1e3}static{this.DEFAULT_SCORE=0}render(e,n){let r=this.props.chunks.map(c=>c.distance?.value??t.DEFAULT_SCORE);r.sort((c,l)=>l-c);let o=new Map;r.forEach((c,l)=>{o.has(c)||o.set(c,l)});let a=this.props.chunks.map(c=>{let l=c.distance?.value??t.DEFAULT_SCORE,u=o.get(l)??t.PRIORITY_BASE;return{...c,rankPriority:t.PRIORITY_BASE-u}}),s=(0,uv.useKeepWith)();return vscpp(uv.Chunk,{passPriority:!0},vscpp(s,null,vscpp(uv.TextChunk,null,"Here is some relevant context from the web page ",this.props.uri.toString(),":")),vscpp(s,{passPriority:!0},a.map(c=>vscpp(uv.TextChunk,{priority:c.rankPriority},c.chunk.text))))}},kXt=class extends uv.PromptElement{render(e,n){let r=(0,uv.useKeepWith)(),o=rCe(this.props.imagePart);return vscpp(uv.Chunk,{passPriority:!0},vscpp(r,null,vscpp(uv.TextChunk,null,"Here is an image from the web page ",this.props.uri.toString(),":")),vscpp(r,{passPriority:!0},o))}};var xY=O(require("vscode"));var SXt=class{static{this.toolName="switch_agent"}static{this.nonDeferred=!0}async invoke(e,n){let{agentName:r}=e.input;if(r!=="Plan")throw new Error(xY.l10n.t('Only "Plan" agent is supported'));let o=xE.buildAgentBody();return await xY.commands.executeCommand("workbench.action.chat.toggleAgentMode",{modeId:r,sessionResource:e.chatSessionResource}),new Zn([new rn(`Switched to ${r} agent. You are now the ${r} agent. This tool may no longer be available in the new agent. ${o}`)])}prepareInvocation(e,n){let{agentName:r}=e.input;if(r!=="Plan")throw new Error(xY.l10n.t('Only "Plan" agent is supported. Received: "{0}"',r));return{invocationMessage:new je(xY.l10n.t("Switching to {0} agent",r)),pastTenseMessage:new je(xY.l10n.t("Switched to {0} agent",r))}}};$n.registerTool(SXt);var WAe=class extends fe{constructor(n,r,o,a,s,c,l){super();this.extensionContext=a;this.configurationService=s;this.experimentationService=c;this.fileSystemService=l;for(let[d,p]of n.copilotTools)kvt(p)&&this._register(Ya.lm.registerTool(zz(d),p));let u=this._register(new dA);this._register(A0e(d=>n.modelSpecificTools.read(d),({addedValues:d,removedValues:p})=>{for(let{definition:m}of p)u.deleteAndDispose(m.name);for(let{definition:m,tool:A}of d)kvt(A)&&u.set(m.name,Ya.lm.registerToolDefinition(m,A))},d=>d.definition)),this._register(Ya.commands.registerCommand("github.copilot.debug.resetVirtualToolGroups",async()=>{await r.clear(),Ya.window.showInformationMessage(iB.l10n.t("Tool groups have been reset. They will be regenerated on the next agent request."))})),this._register(Ya.commands.registerCommand("github.copilot.chat.tools.memory.showMemories",async()=>{let d=this.extensionContext.globalStorageUri,p=this.extensionContext.storageUri,m=[];if(d){let h=K.joinPath(d,"memory-tool/memories");try{let v=(await Ya.workspace.fs.readDirectory(Ya.Uri.from(h))).filter(([_,w])=>w===Ya.FileType.File&&!_.startsWith("."));if(v.length>0){m.push({label:"/memories",kind:Ya.QuickPickItemKind.Separator});for(let[_]of v)m.push({label:`$(file) ${_}`,description:"user",fileUri:K.joinPath(h,_)})}}catch{}}let A=this.configurationService.getExperimentBasedConfig(H.CopilotMemoryEnabled,this.experimentationService);if(p&&!A){let h=K.joinPath(p,"memory-tool/memories/repo");try{let v=(await this.fileSystemService.readDirectory(h)).filter(([_,w])=>w===1&&!_.startsWith("."));if(v.length>0){m.push({label:"/memories/repo",kind:Ya.QuickPickItemKind.Separator});for(let[_]of v)m.push({label:`$(file) ${_}`,description:"repo",fileUri:K.joinPath(h,_)})}}catch{}}let f=Ya.window.activeChatPanelSessionResource;if(p&&f){let h=R3(f.toString()),y=K.joinPath(p,"memory-tool/memories",h);try{let _=(await Ya.workspace.fs.readDirectory(Ya.Uri.from(y))).filter(([w,x])=>x===Ya.FileType.File&&!w.startsWith("."));if(_.length>0){m.push({label:"/memories/session",kind:Ya.QuickPickItemKind.Separator});for(let[w]of _)m.push({label:`$(file) ${w}`,description:"session",fileUri:K.joinPath(y,w)})}}catch{}}if(m.length===0){Ya.window.showInformationMessage(iB.l10n.t("No memories found."));return}let g=await Ya.window.showQuickPick(m,{title:iB.l10n.t("Memory"),placeHolder:iB.l10n.t("Select a memory file to view")});g?.fileUri&&await Ya.commands.executeCommand("vscode.open",Ya.Uri.from(g.fileUri))})),this._register(Ya.commands.registerCommand("github.copilot.chat.tools.memory.clearMemories",async()=>{if(await Ya.window.showWarningMessage(iB.l10n.t("Are you sure you want to clear all memories? This cannot be undone."),{modal:!0},iB.l10n.t("Clear All"))!==iB.l10n.t("Clear All"))return;let p=this.extensionContext.globalStorageUri,m=this.extensionContext.storageUri,A=!1,f=!1;if(p){let g=K.joinPath(p,"memory-tool/memories");try{await Ya.workspace.fs.delete(Ya.Uri.from(g),{recursive:!0}),f=!0}catch(h){h instanceof Ya.FileSystemError&&h.code==="FileNotFound"||(A=!0)}}if(m){let g=K.joinPath(m,"memory-tool/memories");try{await Ya.workspace.fs.delete(Ya.Uri.from(g),{recursive:!0}),f=!0}catch(h){h instanceof Ya.FileSystemError&&h.code==="FileNotFound"||(A=!0)}}A?Ya.window.showErrorMessage(iB.l10n.t("Some memories could not be cleared. Please try again.")):f?Ya.window.showInformationMessage(iB.l10n.t("All memories have been cleared.")):Ya.window.showInformationMessage(iB.l10n.t("No memories found."))})),this._register(fo(d=>{Ya.commands.executeCommand("setContext","chat.toolGroupingThreshold",o.threshold.read(d))}))}};WAe=S([b(0,Xn),b(1,loe),b(2,coe),b(3,ut),b(4,be),b(5,Fe),b(6,yt)],WAe);var dv=O(require("vscode"));$s();function TXt(t){if(t.scheme==="copilotcli"||t.scheme==="claude-code")return t.path.replace(/^\//,"");let e=t.path.replace(/^\//,"").split("/").pop()||"";if(e)try{return Buffer.from(e,"base64").toString("utf-8")}catch{}return t.toString()}Ue();var ji=O(require("vscode"));function uUr(t){return`user-msg-${t}`}function dUr(t){return`agent-msg-${t}`}function pUr(t){return to(t.attributes[Vn.SESSION_ID])??to(t.attributes[$e.CONVERSATION_ID])}function BXt(t){switch(to(t.attributes[$e.OPERATION_NAME])){case Xi.EXECUTE_TOOL:return HEa(t);case Xi.CHAT:return WEa(t);case Xi.INVOKE_AGENT:return t.parentSpanId&&(!!to(t.attributes[$e.AGENT_NAME])||t.name.replace(/^invoke_agent\s*/,"").trim().length>0)?ZEa(t):void 0;case Xi.EXECUTE_HOOK:return YEa(t);case Xi.CONTENT_EVENT:case"core_event":return JEa(t);default:return t.name.startsWith("hook ")&&to(t.attributes["github.copilot.hook.type"])?KEa(t):void 0}}function RXt(t){let e=[];for(let n of t){if(to(n.attributes[$e.OPERATION_NAME])!==Xi.CHAT)continue;let o=to(n.attributes[$e.OUTPUT_MESSAGES]);if(o){let a=tIa(o),s=to(n.attributes[$e.AGENT_NAME])??to(n.attributes[$e.RESPONSE_MODEL]),c=hUr(o,s);if(a&&c){let l=new ji.ChatDebugAgentResponseEvent(Qot(c,200),new Date(n.endTime));l.id=dUr(n.spanId),l.parentEventId=n.parentSpanId,e.push(l)}}}return e}function mUr(t){if(t.eventName!=="user_message")return;let e=to(t.attributes.content)??"",n=new ji.ChatDebugUserMessageEvent(Qot(e,200),new Date(t.timestamp));return n.id=uUr(t.spanId),n.parentEventId=t.parentSpanId,n}function AUr(t){let e=to(t.attributes[$e.OPERATION_NAME]);if(e===Xi.EXECUTE_TOOL)return XEa(t);if(e===Xi.CHAT)return eIa(t);if(e===Xi.EXECUTE_HOOK)return VEa(t)}function fUr(t){let e=[],n=to(t.attributes[$e.SYSTEM_INSTRUCTIONS]);n&&e.push(new ji.ChatDebugMessageSection("System",n));let r=to(t.attributes[Vn.PROMPT_CONTEXT]);r&&e.push(new ji.ChatDebugMessageSection("Context",r));let o=to(t.attributes[Vn.PROMPT_INSTRUCTIONS]);o&&e.push(new ji.ChatDebugMessageSection("Instructions",o));let a=to(t.attributes[Vn.USER_REQUEST]);if(a&&e.push(new ji.ChatDebugMessageSection("User Request",a)),e.length===0){let l=to(t.attributes[$e.INPUT_MESSAGES]);if(l)try{let u=JSON.parse(l);for(let d of u){if(!d.parts)continue;let p=d.parts.filter(m=>m.type==="text"&&typeof m.content=="string").map(m=>m.content).join(` `);p&&e.push(new ji.ChatDebugMessageSection(rIa(d.role??"unknown"),p))}}catch{}}if(e.length===0){let l=to(t.attributes[$e.INPUT_MESSAGES]);l&&e.push(new ji.ChatDebugMessageSection("Input Messages",l))}let s=a??"User Message",c=new ji.ChatDebugUserMessageEvent(Qot(s,200),new Date(t.startTime));return c.id=uUr(t.spanId),c.sections=e,c}function gUr(t){let e=[],n=to(t.attributes[$e.OUTPUT_MESSAGES]);if(n)try{let c=JSON.parse(n);for(let l of c){if(!l.parts)continue;let u=l.parts.filter(p=>p.type==="text"&&typeof p.content=="string"&&p.content.trim()).map(p=>p.content).join(` `);u&&e.push(new ji.ChatDebugMessageSection("Response",u));let d=l.parts.filter(p=>p.type==="tool_call");if(d.length>0){let p=d.map(m=>`${m.name??"unknown"}(${typeof m.arguments=="string"?m.arguments:JSON.stringify(m.arguments??{})})`).join(` `);e.push(new ji.ChatDebugMessageSection("Tool Calls",p))}}}catch{}let r=to(t.attributes[Vn.REASONING_CONTENT]);r&&e.push(new ji.ChatDebugMessageSection("Reasoning",r));let o=to(t.attributes[$e.AGENT_NAME])??to(t.attributes[$e.RESPONSE_MODEL]),a=hUr(n??"",o),s=new ji.ChatDebugAgentResponseEvent(Qot(a,200),new Date(t.endTime));return s.id=dUr(t.spanId),s.sections=e,s}function HEa(t){let e=to(t.attributes[$e.TOOL_NAME])??"unknown";if(e==="runSubagent"){let o=nIa(to(t.attributes[$e.TOOL_CALL_ARGUMENTS]),"agentName");o&&(e=`runSubagent (${o})`)}let n=t.name||`execute_tool ${e}`,r=new ji.ChatDebugToolCallEvent(n,new Date(t.startTime));return r.id=t.spanId,r.parentEventId=t.parentSpanId,r.toolCallId=to(t.attributes[$e.TOOL_CALL_ID]),r.input=to(t.attributes[$e.TOOL_CALL_ARGUMENTS]),r.output=to(t.attributes[$e.TOOL_CALL_RESULT]),r.result=t.status.code===1?ji.ChatDebugToolCallResult.Success:t.status.code===2?ji.ChatDebugToolCallResult.Error:void 0,r.durationInMillis=t.endTime-t.startTime,r}function WEa(t){let e=new ji.ChatDebugModelTurnEvent(new Date(t.startTime));return e.id=t.spanId,e.parentEventId=t.parentSpanId,e.model=to(t.attributes[$e.REQUEST_MODEL]),e.inputTokens=BC(t.attributes[$e.USAGE_INPUT_TOKENS]),e.outputTokens=BC(t.attributes[$e.USAGE_OUTPUT_TOKENS]),e.cachedTokens=BC(t.attributes[$e.USAGE_CACHE_READ_INPUT_TOKENS]),e.totalTokens=(e.inputTokens??0)+(e.outputTokens??0),e.durationInMillis=t.endTime-t.startTime,e.timeToFirstTokenInMillis=BC(t.attributes[Vn.TIME_TO_FIRST_TOKEN]),e.maxInputTokens=BC(t.attributes[Vn.MAX_PROMPT_TOKENS]),e.maxOutputTokens=BC(t.attributes[$e.REQUEST_MAX_TOKENS]),e.requestName=to(t.attributes[Vn.DEBUG_NAME])??to(t.attributes[$e.AGENT_NAME]),e.status=bUr(t.status.code),e}function ZEa(t){let e=to(t.attributes[$e.AGENT_NAME])??(t.name.replace(/^invoke_agent\s*/,"").trim()||"agent"),n=t.name||`invoke_agent ${e}`,r=new ji.ChatDebugSubagentInvocationEvent(n,new Date(t.startTime));r.id=t.spanId,r.parentEventId=t.parentSpanId,r.durationInMillis=t.endTime-t.startTime;let o=to(t.attributes[$e.AGENT_DESCRIPTION]);r.description=o??`Subagent: ${e}`,r.status=t.status.code===1?ji.ChatDebugSubagentStatus.Completed:t.status.code===2?ji.ChatDebugSubagentStatus.Failed:ji.ChatDebugSubagentStatus.Running;let a=BC(t.attributes[Vn.TURN_COUNT]);return r.modelTurnCount=a,r}function VEa(t){let e=to(t.attributes["copilot_chat.hook_type"])??"unknown",n=new ji.ChatDebugEventHookContent(e);n.command=to(t.attributes["copilot_chat.hook_command"]);let r=to(t.attributes["copilot_chat.hook_result_kind"]);return n.result=r==="success"?ji.ChatDebugHookResult.Success:r==="error"?ji.ChatDebugHookResult.Error:r==="non_blocking_error"?ji.ChatDebugHookResult.NonBlockingError:void 0,n.durationInMillis=t.endTime-t.startTime,n.input=to(t.attributes["copilot_chat.hook_input"]),n.output=to(t.attributes["copilot_chat.hook_output"]),t.status.code===2&&t.status.message&&(n.errorMessage=t.status.message),n.exitCode=BC(t.attributes["copilot_chat.hook_exit_code"]),n}function YEa(t){let e=to(t.attributes["copilot_chat.hook_type"])??"unknown",n=to(t.attributes["copilot_chat.hook_command"]),r=to(t.attributes["copilot_chat.hook_result_kind"]),o=Math.round(t.endTime-t.startTime),a=`Hook: ${e}`,s=r==="error"?ji.ChatDebugLogLevel.Error:r==="non_blocking_error"?ji.ChatDebugLogLevel.Warning:ji.ChatDebugLogLevel.Info,c=new ji.ChatDebugGenericEvent(a,s,new Date(t.startTime));c.id=t.spanId,c.parentEventId=t.parentSpanId;let l=n?`${n} `:"";return c.details=`${l}(${o}ms, ${r??"unknown"})`,c.category="hook",c}function KEa(t){let e=to(t.attributes["github.copilot.hook.type"])??"unknown",n=t.endTime-t.startTime,r=t.status.code===2,o=r?ji.ChatDebugLogLevel.Error:ji.ChatDebugLogLevel.Info,a=new ji.ChatDebugGenericEvent(`Hook: ${e}`,o,new Date(t.startTime));return a.id=t.spanId,a.parentEventId=t.parentSpanId,a.details=`${t.name} (${n}ms, ${r?"error":"success"})`,a.category="hook",a}function JEa(t){let e=to(t.attributes[Vn.DEBUG_NAME])??t.name,n=new ji.ChatDebugGenericEvent(e,ji.ChatDebugLogLevel.Info,new Date(t.startTime));return n.id=t.spanId,n.parentEventId=t.parentSpanId,n.details=to(t.attributes[Vn.MARKDOWN_CONTENT])??to(t.attributes["copilot_chat.event_details"]),n.category=to(t.attributes["copilot_chat.event_category"]),n}function XEa(t){let e=to(t.attributes[$e.TOOL_NAME])??"unknown",n=new ji.ChatDebugEventToolCallContent(e);return n.input=to(t.attributes[$e.TOOL_CALL_ARGUMENTS]),n.output=to(t.attributes[$e.TOOL_CALL_RESULT]),n.result=t.status.code===1?ji.ChatDebugToolCallResult.Success:t.status.code===2?ji.ChatDebugToolCallResult.Error:void 0,n.durationInMillis=t.endTime-t.startTime,n}function eIa(t){let e=to(t.attributes[Vn.DEBUG_NAME])??to(t.attributes[$e.AGENT_NAME])??t.name,n=new ji.ChatDebugEventModelTurnContent(e);n.model=to(t.attributes[$e.REQUEST_MODEL]),n.status=bUr(t.status.code),n.durationInMillis=t.endTime-t.startTime,n.timeToFirstTokenInMillis=BC(t.attributes[Vn.TIME_TO_FIRST_TOKEN]),n.maxInputTokens=BC(t.attributes[Vn.MAX_PROMPT_TOKENS]),n.maxOutputTokens=BC(t.attributes[$e.REQUEST_MAX_TOKENS]),n.inputTokens=BC(t.attributes[$e.USAGE_INPUT_TOKENS]),n.outputTokens=BC(t.attributes[$e.USAGE_OUTPUT_TOKENS]),n.cachedTokens=BC(t.attributes[$e.USAGE_CACHE_READ_INPUT_TOKENS]),n.totalTokens=(n.inputTokens??0)+(n.outputTokens??0);let r=[],o=to(t.attributes[$e.SYSTEM_INSTRUCTIONS]);o&&r.push(new ji.ChatDebugMessageSection("System",o));let a=to(t.attributes[$e.INPUT_MESSAGES]);a&&r.push(new ji.ChatDebugMessageSection("Input Messages",a));let s=to(t.attributes[$e.OUTPUT_MESSAGES]);return s&&r.push(new ji.ChatDebugMessageSection("Output Messages",s)),r.length>0&&(n.sections=r),t.status.code===2&&t.status.message&&(n.errorMessage=t.status.message),n}function hUr(t,e){let n=e?`${e} response`:"Agent Response";try{let r=JSON.parse(t);for(let o of r){if(!o.parts)continue;let a=o.parts.find(c=>c.type==="text"&&c.content)?.content;if(a)return a.length<=40&&e?`${n}: ${a}`:a;let s=o.parts.filter(c=>c.type==="tool_call");if(s.length>0)return`Tool calls: ${s.map(c=>c.name??"unknown").join(", ")}`}}catch{}return n}function tIa(t){try{let e=JSON.parse(t);for(let n of e)if(n.parts&&n.parts.some(r=>r.type==="text"&&typeof r.content=="string"&&r.content.trim()))return!0}catch{}return!1}function bUr(t){switch(t){case 2:return"error";default:return"success"}}function to(t){return typeof t=="string"?t:void 0}function BC(t){return typeof t=="number"?t:void 0}function nIa(t,e){if(t)try{let r=JSON.parse(t)[e];return typeof r=="string"?r:void 0}catch{return}}function Qot(t,e){return t.length>e?t.slice(0,e)+"...":t}function rIa(t){return t.charAt(0).toUpperCase()+t.slice(1)}function iIa(t){return{traceId:t.traceId,spanId:t.spanId,...t.parentSpanId?{parentSpanId:t.parentSpanId}:{},name:t.name,kind:1,startTimeUnixNano:DXt(t.startTime),endTimeUnixNano:DXt(t.endTime),attributes:CUr(t.attributes),events:t.events.map(cIa),status:{code:t.status.code,...t.status.message?{message:t.status.message}:{}}}}function vUr(t,e){return{resourceSpans:[{resource:{attributes:Object.entries(e).map(([n,r])=>({key:n,value:{stringValue:r}}))},scopeSpans:[{scope:{name:"copilot-chat"},spans:t.map(iIa)}]}]}}function _Ur(t){let e=[];try{let r=JSON.parse(t);if(r.resourceSpans)return yUr(r)}catch{}let n=t.split(` `).filter(r=>r.trim());for(let r of n)try{let o=JSON.parse(r);o.resourceSpans&&e.push(...yUr(o))}catch{}return e}function yUr(t){let e=[];for(let n of t.resourceSpans)for(let r of n.scopeSpans)for(let o of r.spans)e.push(oIa(o));return e}function oIa(t){return{name:t.name,spanId:t.spanId,traceId:t.traceId,parentSpanId:t.parentSpanId,startTime:PXt(t.startTimeUnixNano),endTime:PXt(t.endTimeUnixNano),status:{code:t.status?.code??0,message:t.status?.message},attributes:wUr(t.attributes??[]),events:(t.events??[]).map(lIa)}}function CUr(t){return Object.entries(t).map(([e,n])=>({key:e,value:aIa(n)}))}function aIa(t){return typeof t=="string"?{stringValue:t}:typeof t=="number"?Number.isInteger(t)?{intValue:String(t)}:{stringValue:String(t)}:typeof t=="boolean"?{boolValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(e=>({stringValue:e}))}}:{stringValue:String(t)}}function wUr(t){let e={};for(let n of t)e[n.key]=sIa(n.value);return e}function sIa(t){if(t.stringValue!==void 0)return t.stringValue;if(t.intValue!==void 0){let e=Number(t.intValue);return Number.isFinite(e)?e:t.intValue}return t.boolValue!==void 0?t.boolValue:t.arrayValue?t.arrayValue.values.map(e=>e.stringValue??String(e.intValue??e.boolValue??"")):""}function cIa(t){return{timeUnixNano:DXt(t.timestamp),name:t.name,...t.attributes?{attributes:CUr(t.attributes)}:{}}}function lIa(t){return{name:t.name,timestamp:PXt(t.timeUnixNano),attributes:t.attributes?wUr(t.attributes):void 0}}function DXt(t){return String(BigInt(Math.round(t))*1000000n)}function PXt(t){return Number(BigInt(t)/1000000n)}var uIa=1;function dIa(t,e){let n=`core-${(uIa++).toString(16).padStart(16,"0")}`,r="created"in t?t.created.getTime():Date.now(),o={"copilot_chat.source":"core"};t instanceof dv.ChatDebugGenericEvent?(o["gen_ai.operation.name"]="core_event",o["copilot_chat.debug_name"]=t.name,t.details&&(o["copilot_chat.event_details"]=t.details),t.category&&(o["copilot_chat.event_category"]=t.category),o["copilot_chat.log_level"]=t.level):t instanceof dv.ChatDebugToolCallEvent?(o["gen_ai.operation.name"]="execute_tool",o["gen_ai.tool.name"]=t.toolName,t.input&&(o["gen_ai.tool.call.arguments"]=t.input),t.output&&(o["gen_ai.tool.call.result"]=t.output)):t instanceof dv.ChatDebugModelTurnEvent?(o["gen_ai.operation.name"]="chat",t.model&&(o["gen_ai.request.model"]=t.model),t.inputTokens!==void 0&&(o["gen_ai.usage.input_tokens"]=t.inputTokens),t.outputTokens!==void 0&&(o["gen_ai.usage.output_tokens"]=t.outputTokens)):o["gen_ai.operation.name"]="core_event";let a="id"in t?t.id:void 0,s="parentEventId"in t?t.parentEventId:void 0;return{name:o["copilot_chat.debug_name"]??"core-event",spanId:a??n,traceId:e,parentSpanId:s,startTime:r,endTime:r,status:{code:0},attributes:o,events:[]}}var oB=class extends fe{constructor(n,r,o,a,s){super();this._otelService=n;this._logService=r;this._configurationService=o;this._experimentationService=a;this._telemetryService=s;this.id="otelChatDebugLogProvider";this._allSpans=[];this._sessionSpanIndices=new Map;this._sessionOrder=[];this._lastTraceId="default-trace";this._spanIdIndex=new Map;this._importedSessions=new Map;this._sentEventIds=new Set;this._compactionScheduled=!1;if(!!this._configurationService.getExperimentBasedConfig(H.Advanced.AgentDebugLogEnabled,this._experimentationService)){if(this._register(this._otelService.onDidCompleteSpan(c=>{this._onSpanCompleted(c)})),this._register(this._otelService.onDidEmitSpanEvent(c=>{this._onSpanEvent(c)})),typeof dv.chat?.registerChatDebugLogProvider!="function"){this._logService.info("[OTelDebug] Chat debug API not available, skipping registration");return}try{this._register(dv.chat.registerChatDebugLogProvider({provideChatDebugLog:(c,l,u)=>this._provideChatDebugLog(c,l,u),resolveChatDebugLogEvent:(c,l)=>this._resolveChatDebugLogEvent(c,l),provideChatDebugLogExport:(c,l,u)=>this._provideChatDebugLogExport(c,l,u),resolveChatDebugLogImport:(c,l)=>this._resolveChatDebugLogImport(c,l)}))}catch(c){this._logService.warn(`[OTelDebug] Failed to register debug log provider: ${c}`)}}}static{this.MAX_SPANS=1e4}_onSpanCompleted(n){if(!n.traceId)return;this._lastTraceId=n.traceId;let r=this._addSpan(n);if(!this._activeProgress||this._activeSessionId&&r!==this._activeSessionId)return;let o=BXt(n);o&&this._streamEvent(o);let a=RXt([n]);for(let s of a)s instanceof dv.ChatDebugAgentResponseEvent&&this._streamEvent(s)}_addSpan(n){let r=xUr(n.attributes["copilot_chat.chat_session_id"]);if(!r&&n.parentSpanId){let a=this._spanIdIndex.get(n.parentSpanId);a!==void 0&&(r=xUr(this._allSpans[a].attributes["copilot_chat.chat_session_id"]))}let o=this._allSpans.length;if(this._allSpans.push(n),this._spanIdIndex.set(n.spanId,o),r){let a=this._sessionSpanIndices.get(r);a||(a=[],this._sessionSpanIndices.set(r,a),this._sessionOrder.push(r)),a.push(o)}return this._evictIfNeeded(),r}_evictIfNeeded(){if(this._allSpans.length<=oB.MAX_SPANS)return;let n=!1;for(;this._sessionOrder.length>1&&this._allSpans.length>oB.MAX_SPANS;){let r=this._sessionOrder[0];if(r===this._activeSessionId)break;this._sessionOrder.shift(),this._sessionSpanIndices.delete(r),n=!0}if(this._allSpans.length>oB.MAX_SPANS){let o=this._allSpans.length-oB.MAX_SPANS;for(let a of this._sessionOrder){if(o<=0)break;let s=this._sessionSpanIndices.get(a);if(!s||s.length===0)continue;let c=Math.min(o,s.length-1);c>0&&(s.splice(0,c),o-=c,n=!0)}}n&&!this._compactionScheduled&&(this._compactionScheduled=!0,setTimeout(()=>{this._compactionScheduled=!1,this._compact()},0))}_compact(){let n=Date.now(),r=this._allSpans.length,o=new Set;for(let c of this._sessionSpanIndices.values())for(let l=0;lthis._allSpans[o])}_provideChatDebugLog(n,r,o){let a=TXt(n),s=this._getSpansForSession(a);this._activeProgress=r,this._activeSessionId=a,this._sentEventIds.clear(),o.onCancellationRequested(()=>{this._activeSessionId===a&&(this._activeProgress=void 0,this._activeSessionId=void 0)});let c=this._importedSessions.get(a);if(c)return this._convertSpansToEvents(c);if(!s||s.length===0)return[];let l=this._convertSpansToEvents(s);for(let u of l){let d="id"in u?u.id:void 0;d&&this._sentEventIds.add(d)}return l}_convertSpansToEvents(n){let r=Date.now(),o=[];for(let a of n){let s=BXt(a);s&&o.push(s)}for(let a of n)for(let s of a.events)if(s.name==="user_message"){let c=s.attributes?.content;if(c&&typeof c=="string"&&c.trim()){let l=new dv.ChatDebugUserMessageEvent(c.length>200?c.slice(0,200)+"...":c,new Date(s.timestamp));l.id=`user-msg-${a.spanId}`,l.parentEventId=a.parentSpanId,o.push(l)}}return o.push(...RXt(n)),o.sort((a,s)=>{let c="created"in a?a.created.getTime():0,l="created"in s?s.created.getTime():0;return c-l}),this._telemetryService.sendMSFTTelemetryEvent("otelDebug.convertSpansToEvents",void 0,{durationMs:Date.now()-r,spanCount:n.length,eventCount:o.length}),o}_resolveChatDebugLogEvent(n,r){if(n.startsWith("user-msg-")){let a=n.slice(9),s=this._findSpanById(a);if(s)return fUr(s)}if(n.startsWith("agent-msg-")){let a=n.slice(10),s=this._findSpanById(a);if(s)return gUr(s)}let o=this._findSpanById(n);if(o)return AUr(o)}_findSpanById(n){let r=Date.now(),o=this._spanIdIndex.get(n);if(o!==void 0&&os.spanId===n);if(a)return this._telemetryService.sendMSFTTelemetryEvent("otelDebug.findSpanById.fallback",void 0,{durationMs:Date.now()-r,spanCount:this._allSpans.length}),a;for(let s of this._importedSessions.values()){let c=s.find(l=>l.spanId===n);if(c)return this._telemetryService.sendMSFTTelemetryEvent("otelDebug.findSpanById.fallback",void 0,{durationMs:Date.now()-r,spanCount:this._allSpans.length,importedSessionCount:this._importedSessions.size}),c}}_provideChatDebugLogExport(n,r,o){let a=TXt(n),s=this._getSpansForSession(a)??[],c=this._importedSessions.get(a),l=[];for(let A of r.coreEvents){let f=dIa(A,this._lastTraceId);f&&l.push(f)}let u=c??[...s,...l];if(u.length===0){this._logService.warn(`[OTelDebug] No spans found for session ${a}`);return}let p={...vUr(u,{"service.name":"copilot-chat","session.id":a}),copilotChat:{exportedAt:new Date().toISOString(),exporterVersion:"",sessionId:a,sessionTitle:r.sessionTitle??EUr(u)}},m=JSON.stringify(p,null,2);return new TextEncoder().encode(m)}_resolveChatDebugLogImport(n,r){try{let o=new TextDecoder().decode(n),a=_Ur(o);if(a.length===0){this._logService.warn("[OTelDebug] No spans found in imported file");return}let s,c;try{let p=JSON.parse(o);s=p.copilotChat?.sessionId,c=p.copilotChat?.sessionTitle}catch{}s??=pUr(a[0])??`imported-${Date.now()}`,c??=EUr(a);let l=`import:${s}:${Date.now()}`;this._importedSessions.set(l,a);let u=Buffer.from(l).toString("base64");return{uri:dv.Uri.parse(`vscode-chat-session://imported/${u}`),sessionTitle:c}}catch(o){this._logService.error(`[OTelDebug] Failed to parse import file: ${o}`);return}}};oB=S([b(0,On),b(1,Z),b(2,be),b(3,Fe),b(4,Ee)],oB);function xUr(t){return typeof t=="string"?t:void 0}function EUr(t){for(let e of t)for(let n of e.events)if(n.name==="user_message"){let r=n.attributes?.content;if(typeof r=="string"&&r.trim()){let o=r.trim();return o.length>80?o.slice(0,80)+"...":o}}}var $r=O(require("vscode"));var ZAe=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,kUr=new Set,NXt=typeof process=="object"&&process?process:{},SUr=(t,e,n,r)=>{typeof NXt.emitWarning=="function"?NXt.emitWarning(t,e,n,r):console.error(`[${n}] ${e}: ${t}`)},Oot=globalThis.AbortController,IUr=globalThis.AbortSignal;if(typeof Oot>"u"){IUr=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(r,o){this._onabort.push(o)}},Oot=class{constructor(){e()}signal=new IUr;abort(r){if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(let o of this.signal._onabort)o(r);this.signal.onabort?.(r)}}};let t=NXt.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{t&&(t=!1,SUr("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}var pIa=t=>!kUr.has(t),p4u=Symbol("type"),Iq=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),TUr=t=>Iq(t)?t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?VAe:null:null,VAe=class extends Array{constructor(e){super(e),this.fill(0)}},LXt=class t{heap;length;static#e=!1;static create(e){let n=TUr(e);if(!n)return[];t.#e=!0;let r=new t(e,n);return t.#e=!1,r}constructor(e,n){if(!t.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new n(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}},mPe=class t{#e;#t;#r;#n;#o;#i;#l;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#s;#u;#d;#c;#p;#g;#f;#A;#b;#h;#C;#w;#v;#_;#E;#y;#P;static unsafeExposeInternals(e){return{starts:e.#w,ttls:e.#v,sizes:e.#C,keyMap:e.#u,keyList:e.#d,valList:e.#c,next:e.#p,prev:e.#g,get head(){return e.#f},get tail(){return e.#A},free:e.#b,isBackgroundFetch:n=>e.#m(n),backgroundFetch:(n,r,o,a)=>e.#M(n,r,o,a),moveToTail:n=>e.#D(n),indexes:n=>e.#I(n),rindexes:n=>e.#k(n),isStale:n=>e.#x(n)}}get max(){return this.#e}get maxSize(){return this.#t}get calculatedSize(){return this.#s}get size(){return this.#a}get fetchMethod(){return this.#i}get memoMethod(){return this.#l}get dispose(){return this.#r}get onInsert(){return this.#n}get disposeAfter(){return this.#o}constructor(e){let{max:n=0,ttl:r,ttlResolution:o=1,ttlAutopurge:a,updateAgeOnGet:s,updateAgeOnHas:c,allowStale:l,dispose:u,onInsert:d,disposeAfter:p,noDisposeOnSet:m,noUpdateTTL:A,maxSize:f=0,maxEntrySize:g=0,sizeCalculation:h,fetchMethod:y,memoMethod:v,noDeleteOnFetchRejection:_,noDeleteOnStaleGet:w,allowStaleOnFetchRejection:x,allowStaleOnFetchAbort:E,ignoreFetchAbort:I}=e;if(n!==0&&!Iq(n))throw new TypeError("max option must be a nonnegative integer");let k=n?TUr(n):Array;if(!k)throw new Error("invalid max value: "+n);if(this.#e=n,this.#t=f,this.maxEntrySize=g||this.#t,this.sizeCalculation=h,this.sizeCalculation){if(!this.#t&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(v!==void 0&&typeof v!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#l=v,y!==void 0&&typeof y!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#i=y,this.#E=!!y,this.#u=new Map,this.#d=new Array(n).fill(void 0),this.#c=new Array(n).fill(void 0),this.#p=new k(n),this.#g=new k(n),this.#f=0,this.#A=0,this.#b=LXt.create(n),this.#a=0,this.#s=0,typeof u=="function"&&(this.#r=u),typeof d=="function"&&(this.#n=d),typeof p=="function"?(this.#o=p,this.#h=[]):(this.#o=void 0,this.#h=void 0),this.#_=!!this.#r,this.#P=!!this.#n,this.#y=!!this.#o,this.noDisposeOnSet=!!m,this.noUpdateTTL=!!A,this.noDeleteOnFetchRejection=!!_,this.allowStaleOnFetchRejection=!!x,this.allowStaleOnFetchAbort=!!E,this.ignoreFetchAbort=!!I,this.maxEntrySize!==0){if(this.#t!==0&&!Iq(this.#t))throw new TypeError("maxSize must be a positive integer if specified");if(!Iq(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#z()}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!w,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!c,this.ttlResolution=Iq(o)||o===0?o:1,this.ttlAutopurge=!!a,this.ttl=r||0,this.ttl){if(!Iq(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#F()}if(this.#e===0&&this.ttl===0&&this.#t===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#t){let T="LRU_CACHE_UNBOUNDED";pIa(T)&&(kUr.add(T),SUr("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",T,t))}}getRemainingTTL(e){return this.#u.has(e)?1/0:0}#F(){let e=new VAe(this.#e),n=new VAe(this.#e);this.#v=e,this.#w=n,this.#Q=(a,s,c=ZAe.now())=>{if(n[a]=s!==0?c:0,e[a]=s,s!==0&&this.ttlAutopurge){let l=setTimeout(()=>{this.#x(a)&&this.#S(this.#d[a],"expire")},s+1);l.unref&&l.unref()}},this.#B=a=>{n[a]=e[a]!==0?ZAe.now():0},this.#T=(a,s)=>{if(e[s]){let c=e[s],l=n[s];if(!c||!l)return;a.ttl=c,a.start=l,a.now=r||o();let u=a.now-l;a.remainingTTL=c-u}};let r=0,o=()=>{let a=ZAe.now();if(this.ttlResolution>0){r=a;let s=setTimeout(()=>r=0,this.ttlResolution);s.unref&&s.unref()}return a};this.getRemainingTTL=a=>{let s=this.#u.get(a);if(s===void 0)return 0;let c=e[s],l=n[s];if(!c||!l)return 1/0;let u=(r||o())-l;return c-u},this.#x=a=>{let s=n[a],c=e[a];return!!c&&!!s&&(r||o())-s>c}}#B=()=>{};#T=()=>{};#Q=()=>{};#x=()=>!1;#z(){let e=new VAe(this.#e);this.#s=0,this.#C=e,this.#R=n=>{this.#s-=e[n],e[n]=0},this.#O=(n,r,o,a)=>{if(this.#m(r))return 0;if(!Iq(o))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(o=a(r,n),!Iq(o))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return o},this.#N=(n,r,o)=>{if(e[n]=r,this.#t){let a=this.#t-e[n];for(;this.#s>a;)this.#L(!0)}this.#s+=e[n],o&&(o.entrySize=r,o.totalCalculatedSize=this.#s)}}#R=e=>{};#N=(e,n,r)=>{};#O=(e,n,r,o)=>{if(r||o)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#I({allowStale:e=this.allowStale}={}){if(this.#a)for(let n=this.#A;!(!this.#U(n)||((e||!this.#x(n))&&(yield n),n===this.#f));)n=this.#g[n]}*#k({allowStale:e=this.allowStale}={}){if(this.#a)for(let n=this.#f;!(!this.#U(n)||((e||!this.#x(n))&&(yield n),n===this.#A));)n=this.#p[n]}#U(e){return e!==void 0&&this.#u.get(this.#d[e])===e}*entries(){for(let e of this.#I())this.#c[e]!==void 0&&this.#d[e]!==void 0&&!this.#m(this.#c[e])&&(yield[this.#d[e],this.#c[e]])}*rentries(){for(let e of this.#k())this.#c[e]!==void 0&&this.#d[e]!==void 0&&!this.#m(this.#c[e])&&(yield[this.#d[e],this.#c[e]])}*keys(){for(let e of this.#I()){let n=this.#d[e];n!==void 0&&!this.#m(this.#c[e])&&(yield n)}}*rkeys(){for(let e of this.#k()){let n=this.#d[e];n!==void 0&&!this.#m(this.#c[e])&&(yield n)}}*values(){for(let e of this.#I())this.#c[e]!==void 0&&!this.#m(this.#c[e])&&(yield this.#c[e])}*rvalues(){for(let e of this.#k())this.#c[e]!==void 0&&!this.#m(this.#c[e])&&(yield this.#c[e])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(e,n={}){for(let r of this.#I()){let o=this.#c[r],a=this.#m(o)?o.__staleWhileFetching:o;if(a!==void 0&&e(a,this.#d[r],this))return this.get(this.#d[r],n)}}forEach(e,n=this){for(let r of this.#I()){let o=this.#c[r],a=this.#m(o)?o.__staleWhileFetching:o;a!==void 0&&e.call(n,a,this.#d[r],this)}}rforEach(e,n=this){for(let r of this.#k()){let o=this.#c[r],a=this.#m(o)?o.__staleWhileFetching:o;a!==void 0&&e.call(n,a,this.#d[r],this)}}purgeStale(){let e=!1;for(let n of this.#k({allowStale:!0}))this.#x(n)&&(this.#S(this.#d[n],"expire"),e=!0);return e}info(e){let n=this.#u.get(e);if(n===void 0)return;let r=this.#c[n],o=this.#m(r)?r.__staleWhileFetching:r;if(o===void 0)return;let a={value:o};if(this.#v&&this.#w){let s=this.#v[n],c=this.#w[n];if(s&&c){let l=s-(ZAe.now()-c);a.ttl=l,a.start=Date.now()}}return this.#C&&(a.size=this.#C[n]),a}dump(){let e=[];for(let n of this.#I({allowStale:!0})){let r=this.#d[n],o=this.#c[n],a=this.#m(o)?o.__staleWhileFetching:o;if(a===void 0||r===void 0)continue;let s={value:a};if(this.#v&&this.#w){s.ttl=this.#v[n];let c=ZAe.now()-this.#w[n];s.start=Math.floor(Date.now()-c)}this.#C&&(s.size=this.#C[n]),e.unshift([r,s])}return e}load(e){this.clear();for(let[n,r]of e){if(r.start){let o=Date.now()-r.start;r.start=ZAe.now()-o}this.set(n,r.value,r)}}set(e,n,r={}){if(n===void 0)return this.delete(e),this;let{ttl:o=this.ttl,start:a,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:c=this.sizeCalculation,status:l}=r,{noUpdateTTL:u=this.noUpdateTTL}=r,d=this.#O(e,n,r.size||0,c);if(this.maxEntrySize&&d>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.#S(e,"set"),this;let p=this.#a===0?void 0:this.#u.get(e);if(p===void 0)p=this.#a===0?this.#A:this.#b.length!==0?this.#b.pop():this.#a===this.#e?this.#L(!1):this.#a,this.#d[p]=e,this.#c[p]=n,this.#u.set(e,p),this.#p[this.#A]=p,this.#g[p]=this.#A,this.#A=p,this.#a++,this.#N(p,d,l),l&&(l.set="add"),u=!1,this.#P&&this.#n?.(n,e,"add");else{this.#D(p);let m=this.#c[p];if(n!==m){if(this.#E&&this.#m(m)){m.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:A}=m;A!==void 0&&!s&&(this.#_&&this.#r?.(A,e,"set"),this.#y&&this.#h?.push([A,e,"set"]))}else s||(this.#_&&this.#r?.(m,e,"set"),this.#y&&this.#h?.push([m,e,"set"]));if(this.#R(p),this.#N(p,d,l),this.#c[p]=n,l){l.set="replace";let A=m&&this.#m(m)?m.__staleWhileFetching:m;A!==void 0&&(l.oldValue=A)}}else l&&(l.set="update");this.#P&&this.onInsert?.(n,e,n===m?"update":"replace")}if(o!==0&&!this.#v&&this.#F(),this.#v&&(u||this.#Q(p,o,a),l&&this.#T(l,p)),!s&&this.#y&&this.#h){let m=this.#h,A;for(;A=m?.shift();)this.#o?.(...A)}return this}pop(){try{for(;this.#a;){let e=this.#c[this.#f];if(this.#L(!0),this.#m(e)){if(e.__staleWhileFetching)return e.__staleWhileFetching}else if(e!==void 0)return e}}finally{if(this.#y&&this.#h){let e=this.#h,n;for(;n=e?.shift();)this.#o?.(...n)}}}#L(e){let n=this.#f,r=this.#d[n],o=this.#c[n];return this.#E&&this.#m(o)?o.__abortController.abort(new Error("evicted")):(this.#_||this.#y)&&(this.#_&&this.#r?.(o,r,"evict"),this.#y&&this.#h?.push([o,r,"evict"])),this.#R(n),e&&(this.#d[n]=void 0,this.#c[n]=void 0,this.#b.push(n)),this.#a===1?(this.#f=this.#A=0,this.#b.length=0):this.#f=this.#p[n],this.#u.delete(r),this.#a--,n}has(e,n={}){let{updateAgeOnHas:r=this.updateAgeOnHas,status:o}=n,a=this.#u.get(e);if(a!==void 0){let s=this.#c[a];if(this.#m(s)&&s.__staleWhileFetching===void 0)return!1;if(this.#x(a))o&&(o.has="stale",this.#T(o,a));else return r&&this.#B(a),o&&(o.has="hit",this.#T(o,a)),!0}else o&&(o.has="miss");return!1}peek(e,n={}){let{allowStale:r=this.allowStale}=n,o=this.#u.get(e);if(o===void 0||!r&&this.#x(o))return;let a=this.#c[o];return this.#m(a)?a.__staleWhileFetching:a}#M(e,n,r,o){let a=n===void 0?void 0:this.#c[n];if(this.#m(a))return a;let s=new Oot,{signal:c}=r;c?.addEventListener("abort",()=>s.abort(c.reason),{signal:s.signal});let l={signal:s.signal,options:r,context:o},u=(g,h=!1)=>{let{aborted:y}=s.signal,v=r.ignoreFetchAbort&&g!==void 0;if(r.status&&(y&&!h?(r.status.fetchAborted=!0,r.status.fetchError=s.signal.reason,v&&(r.status.fetchAbortIgnored=!0)):r.status.fetchResolved=!0),y&&!v&&!h)return p(s.signal.reason);let _=A;return this.#c[n]===A&&(g===void 0?_.__staleWhileFetching?this.#c[n]=_.__staleWhileFetching:this.#S(e,"fetch"):(r.status&&(r.status.fetchUpdated=!0),this.set(e,g,l.options))),g},d=g=>(r.status&&(r.status.fetchRejected=!0,r.status.fetchError=g),p(g)),p=g=>{let{aborted:h}=s.signal,y=h&&r.allowStaleOnFetchAbort,v=y||r.allowStaleOnFetchRejection,_=v||r.noDeleteOnFetchRejection,w=A;if(this.#c[n]===A&&(!_||w.__staleWhileFetching===void 0?this.#S(e,"fetch"):y||(this.#c[n]=w.__staleWhileFetching)),v)return r.status&&w.__staleWhileFetching!==void 0&&(r.status.returnedStale=!0),w.__staleWhileFetching;if(w.__returned===w)throw g},m=(g,h)=>{let y=this.#i?.(e,a,l);y&&y instanceof Promise&&y.then(v=>g(v===void 0?void 0:v),h),s.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(g(void 0),r.allowStaleOnFetchAbort&&(g=v=>u(v,!0)))})};r.status&&(r.status.fetchDispatched=!0);let A=new Promise(m).then(u,d),f=Object.assign(A,{__abortController:s,__staleWhileFetching:a,__returned:void 0});return n===void 0?(this.set(e,f,{...l.options,status:void 0}),n=this.#u.get(e)):this.#c[n]=f,f}#m(e){if(!this.#E)return!1;let n=e;return!!n&&n instanceof Promise&&n.hasOwnProperty("__staleWhileFetching")&&n.__abortController instanceof Oot}async fetch(e,n={}){let{allowStale:r=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:c=this.noDisposeOnSet,size:l=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:d=this.noUpdateTTL,noDeleteOnFetchRejection:p=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:m=this.allowStaleOnFetchRejection,ignoreFetchAbort:A=this.ignoreFetchAbort,allowStaleOnFetchAbort:f=this.allowStaleOnFetchAbort,context:g,forceRefresh:h=!1,status:y,signal:v}=n;if(!this.#E)return y&&(y.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:o,noDeleteOnStaleGet:a,status:y});let _={allowStale:r,updateAgeOnGet:o,noDeleteOnStaleGet:a,ttl:s,noDisposeOnSet:c,size:l,sizeCalculation:u,noUpdateTTL:d,noDeleteOnFetchRejection:p,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:f,ignoreFetchAbort:A,status:y,signal:v},w=this.#u.get(e);if(w===void 0){y&&(y.fetch="miss");let x=this.#M(e,w,_,g);return x.__returned=x}else{let x=this.#c[w];if(this.#m(x)){let D=r&&x.__staleWhileFetching!==void 0;return y&&(y.fetch="inflight",D&&(y.returnedStale=!0)),D?x.__staleWhileFetching:x.__returned=x}let E=this.#x(w);if(!h&&!E)return y&&(y.fetch="hit"),this.#D(w),o&&this.#B(w),y&&this.#T(y,w),x;let I=this.#M(e,w,_,g),T=I.__staleWhileFetching!==void 0&&r;return y&&(y.fetch=E?"stale":"refresh",T&&E&&(y.returnedStale=!0)),T?I.__staleWhileFetching:I.__returned=I}}async forceFetch(e,n={}){let r=await this.fetch(e,n);if(r===void 0)throw new Error("fetch() returned undefined");return r}memo(e,n={}){let r=this.#l;if(!r)throw new Error("no memoMethod provided to constructor");let{context:o,forceRefresh:a,...s}=n,c=this.get(e,s);if(!a&&c!==void 0)return c;let l=r(e,c,{options:s,context:o});return this.set(e,l,s),l}get(e,n={}){let{allowStale:r=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:s}=n,c=this.#u.get(e);if(c!==void 0){let l=this.#c[c],u=this.#m(l);return s&&this.#T(s,c),this.#x(c)?(s&&(s.get="stale"),u?(s&&r&&l.__staleWhileFetching!==void 0&&(s.returnedStale=!0),r?l.__staleWhileFetching:void 0):(a||this.#S(e,"expire"),s&&r&&(s.returnedStale=!0),r?l:void 0)):(s&&(s.get="hit"),u?l.__staleWhileFetching:(this.#D(c),o&&this.#B(c),l))}else s&&(s.get="miss")}#q(e,n){this.#g[n]=e,this.#p[e]=n}#D(e){e!==this.#A&&(e===this.#f?this.#f=this.#p[e]:this.#q(this.#g[e],this.#p[e]),this.#q(this.#A,e),this.#A=e)}delete(e){return this.#S(e,"delete")}#S(e,n){let r=!1;if(this.#a!==0){let o=this.#u.get(e);if(o!==void 0)if(r=!0,this.#a===1)this.#$(n);else{this.#R(o);let a=this.#c[o];if(this.#m(a)?a.__abortController.abort(new Error("deleted")):(this.#_||this.#y)&&(this.#_&&this.#r?.(a,e,n),this.#y&&this.#h?.push([a,e,n])),this.#u.delete(e),this.#d[o]=void 0,this.#c[o]=void 0,o===this.#A)this.#A=this.#g[o];else if(o===this.#f)this.#f=this.#p[o];else{let s=this.#g[o];this.#p[s]=this.#p[o];let c=this.#p[o];this.#g[c]=this.#g[o]}this.#a--,this.#b.push(o)}}if(this.#y&&this.#h?.length){let o=this.#h,a;for(;a=o?.shift();)this.#o?.(...a)}return r}clear(){return this.#$("delete")}#$(e){for(let n of this.#k({allowStale:!0})){let r=this.#c[n];if(this.#m(r))r.__abortController.abort(new Error("deleted"));else{let o=this.#d[n];this.#_&&this.#r?.(r,o,e),this.#y&&this.#h?.push([r,o,e])}}if(this.#u.clear(),this.#c.fill(void 0),this.#d.fill(void 0),this.#v&&this.#w&&(this.#v.fill(0),this.#w.fill(0)),this.#C&&this.#C.fill(0),this.#f=0,this.#A=0,this.#b.length=0,this.#s=0,this.#a=0,this.#y&&this.#h){let n=this.#h,r;for(;r=n?.shift();)this.#o?.(...r)}}};dn();Ue();var mIa;(e=>{function t(n){return n.cache!==void 0}e.has=t})(mIa||={});var MXt;(e=>{function t(n,r){return{key:n,sizeInChars:r}}e.create=t})(MXt||={});var AIa;(e=>{function t(n){return{kind:"reference",key:n}}e.create=t})(AIa||={});var YAe;(r=>{function t(o,a,s){return{kind:"trait",key:n(o),name:a,value:s}}r.create=t;function e(o){return o.name.length+o.value.length}r.sizeInChars=e;function n(o){return JSON.stringify({k:"trait",tk:o},void 0,0)}r.createContextItemKey=n})(YAe||={});var KAe;(n=>{function t(r,o,a,s){return{kind:"snippet",key:r,fileName:o,additionalFileNames:a,value:s}}n.create=t;function e(r){let o=r.value.length;if(o+=r.fileName.length+3,r.additionalFileNames!==void 0)for(let a of r.additionalFileNames)o+=a.length+3;return o}n.sizeInChars=e})(KAe||={});var EY;(n=>{function t(r){return r.key!==void 0}n.hasKey=t;function e(r){switch(r.kind){case"trait":return YAe.sizeInChars(r);case"snippet":return KAe.sizeInChars(r);default:return 0}}n.sizeInChars=e})(EY||={});var fIa;(e=>{function t(n,r){return{code:n,message:r}}e.create=t})(fIa||={});var gIa;(e=>{function t(n,r){return{totalTime:n,computeTime:r}}e.create=t})(gIa||={});var BUr;(e=>{function t(n){return n.type==="response"&&n.body.error!==void 0}e.isError=t})(BUr||={});var APe;(r=>{function t(o){return o.type==="cancelled"}r.isCancelled=t;function e(o){return o.type==="response"&&o.body.state!==void 0}r.isOk=e;function n(o){return o.type==="cancelled"?!1:BUr.isError(o)}r.isError=n})(APe||={});var Uot=(r=>(r.no="no",r.yes="yes",r.maybe="maybe",r))(Uot||{});(e=>{function t(n){switch(n){case"no":return"no";case"yes":return"yes";case"maybe":return"maybe";default:return"no"}}e.fromString=t})(Uot||={});var JAe;(r=>{function t(o){return o.type==="cancelled"}r.isCancelled=t;function e(o){return o.type==="response"&&o.body.canRename!==void 0}r.isOk=e;function n(o){return o.type==="response"&&o.body.error!==void 0}r.isError=n})(JAe||={});var qot;(r=>{function t(o){return o.type==="cancelled"}r.isCancelled=t;function e(o){return o.type==="response"&&o.body.groups!==void 0}r.isOk=e;function n(o){return o.type==="response"&&o.body.error!==void 0}r.isError=n})(qot||={});var Rc=O(require("vscode"));var qA=class{constructor(e,n,r){this.parent=e,this.name=n,this.value=r}toTreeItem(){let e=new Rc.TreeItem(`${this.name} = ${this.value}`,Rc.TreeItemCollapsibleState.None);return e.tooltip=this.createTooltip(),e.id=this.id,e}createTooltip(){return new Rc.MarkdownString(`${this.value}`)}get id(){return this.parent instanceof fPe?`${this.parent.id}.${this.name}`:void 0}},fPe=class{constructor(e){this.parent=e}createTooltip(){let e=new Rc.MarkdownString(`**${this.getLabel()}** `);return e.appendCodeblock(JSON.stringify(this.from,void 0,2),"json"),e}},zot=class extends fPe{constructor(e,n){super(e),this.from=n}getLabel(){return"Trait"}get id(){return`${this.parent.id}.${this.from.key}`}children(){let e=[];return e.push(new qA(this,"key",this.from.key)),e.push(new qA(this,"name",this.from.name)),e.push(new qA(this,"value",this.from.value)),e}toTreeItem(){let e=`Trait: ${this.from.value}`,n=new Rc.TreeItem(e,Rc.TreeItemCollapsibleState.Collapsed);return n.tooltip=this.createTooltip(),n.id=this.id,n}},jot=class extends fPe{constructor(e,n){super(e),this.from=n}getLabel(){return"Snippet"}get id(){return`${this.parent.id}.${this.from.key??Date.now().toString()}`}children(){let e=[];return e.push(new qA(this,"key",this.from.key??"undefined")),e.push(new qA(this,"value",this.from.value)),e.push(new qA(this,"path",this.from.fileName)),e}toTreeItem(){let e=`Snippet: ${this.from.value}`,n=new Rc.TreeItem(e,Rc.TreeItemCollapsibleState.Collapsed);return n.tooltip=this.createTooltip(),n.id=this.id,n}},Got=class{constructor(e){this.from=e}toTreeItem(){let e=new Rc.TreeItem(this.getLabel());return e.collapsibleState=this.from.scope.kind==="outsideRange"||this.from.scope.kind==="withinRange"?Rc.TreeItemCollapsibleState.Collapsed:Rc.TreeItemCollapsibleState.None,e}children(){let e=[],n=this.from.scope;if(n.kind==="withinRange")e.push(new qA(this,"0",this.getRangeString(n.range)));else if(n.kind==="outsideRange")for(let r=0;r{if(r.kind==="trait")return new zot(this,r);if(r.kind==="snippet")return new jot(this,r);throw new Error(`Unknown context item kind: ${r.kind}`)})}get id(){return`${this.parent.id}.${this.from.id}`}children(){let e=this.items;return this.from.cache!==void 0&&e.push(new Got(this.from.cache)),e.push(new qA(this,"priority",this.from.priority.toString())),this.from.debugPath!==void 0&&e.push(new qA(this,"debugPath",this.from.debugPath)),e}toTreeItem(){let e=this.from.id;e.startsWith("_")&&(e=e.substring(1));let n=this.from.cache!==void 0?1:0,r=`${e} - ${this.items.length} items - ${this.from.state}`;this.parent.summary.serverComputed?.has(this.from.id)&&(r+=" - \u23F3");let o=new Rc.TreeItem(r,this.items.length+n>0?Rc.TreeItemCollapsibleState.Collapsed:Rc.TreeItemCollapsibleState.None);return o.id=this.id,o.tooltip=this.createTooltip(),o}createTooltip(){let e=this.from.id;e.startsWith("_")&&(e=e.substring(1));let n=new Rc.MarkdownString(`**${e}** - ${this.items.length} items `);return n.appendCodeblock(JSON.stringify(this.from,void 0,2),"json"),n}},gPe=class{constructor(e){this.from=e}toTreeItem(){let e=new Rc.TreeItem(`${this.getLabel()}: ${this.from.value}`,Rc.TreeItemCollapsibleState.Collapsed);return e.tooltip=this.createTooltip(),e}getLabel(){return"Snippet"}children(){return[new qA(this,"kind",this.from.kind),new qA(this,"value",this.from.value),new qA(this,"priority",this.from.priority.toString()),new qA(this,"uri",this.from.uri.toString())]}createTooltip(){let e=new Rc.MarkdownString(`**${this.getLabel()}** `),n={kind:this.from.kind,priority:this.from.priority,uri:this.from.uri.toString(),value:this.from.value};return e.appendCodeblock(JSON.stringify(n,void 0,2),"json"),e}},hPe=class{constructor(e){this.from=e}toTreeItem(){let e=new Rc.TreeItem(`${this.getLabel()}: ${this.from.value}`,Rc.TreeItemCollapsibleState.Collapsed);return e.tooltip=this.createTooltip(),e}getLabel(){return"Trait"}children(){return[new qA(this,"kind",this.from.kind),new qA(this,"name",this.from.name),new qA(this,"value",this.from.value),new qA(this,"priority",this.from.priority.toString())]}createTooltip(){let e=new Rc.MarkdownString(`**${this.getLabel()}** `),n={kind:this.from.kind,priority:this.from.priority,name:this.from.name,value:this.from.value};return e.appendCodeblock(JSON.stringify(n,void 0,2),"json"),e}},FXt=class{constructor(e,n){this.parent=e,this.items=n}children(){let e=[];for(let n of this.items)n.kind==="snippet"?e.push(new gPe(n)):n.kind==="trait"&&e.push(new hPe(n));return e}toTreeItem(){let e=`Yielded: ${this.items.length} items`,n=new Rc.TreeItem(e,Rc.TreeItemCollapsibleState.Collapsed);return n.id=this.id,n}get id(){return`${this.parent.id}.yielded`}},bPe=class t{static{this.counter=1}constructor(e,n){this.document=n.document.uri.toString(),this.position=n.position,this.summary=n.summary;let r=new Date(Date.now()-this.summary.totalTime),o=`${r.getMinutes().toString().padStart(2,"0")}:${r.getSeconds().toString().padStart(2,"0")}.${r.getMilliseconds().toString().padStart(3,"0")}`;this.label=`[${o}] - [${this.position.line+1}:${this.position.character+1}] ${n.source??e} - ${this.summary.stats.yielded} items`,this.summary.serverComputed&&this.summary.serverComputed.size>0?this.label+=` - \u23F3 ${this.summary.totalTime}ms`:this.label+=` - ${this.summary.totalTime}ms`}toTreeItem(){let e=new Rc.TreeItem(this.label,Rc.TreeItemCollapsibleState.Collapsed);return e.tooltip=this.createTooltip(),e}createTooltip(){let e=new Rc.MarkdownString(`**${this.label}** `),n=this.createJson();return e.appendCodeblock(JSON.stringify(n,void 0,2),"json"),e}get id(){return`${t.counter++}`}},QXt=class extends bPe{constructor(e,n){super(e,n),this.items=n.items}createJson(){return{document:this.document,position:{line:this.position.line+1,character:this.position.character+1},runnables:this.items.length,cached:`${this.summary.cachedItems}/${this.summary.stats.total} cached`,timings:{totalTime:this.summary.totalTime,serverTime:this.summary.serverTime,contextComputeTime:this.summary.contextComputeTime}}}children(){let e=[];for(let n of this.items)e.push(new Hot(this,n));return e}},Wot=class extends bPe{constructor(e,n){super(e,n),this.items=n.items}createJson(){return{document:this.document,position:{line:this.position.line+1,character:this.position.character+1},items:this.items.length,cached:`${this.summary.cachedItems}/${this.summary.stats.total} cached`,timings:{totalTime:this.summary.totalTime,serverTime:this.summary.serverTime,contextComputeTime:this.summary.contextComputeTime}}}children(){let e=[];for(let n of this.items)n.kind==="snippet"?e.push(new gPe(n)):n.kind==="trait"&&e.push(new hPe(n));return e}toTreeItem(){let e=new Rc.TreeItem(this.label,Rc.TreeItemCollapsibleState.Collapsed);return e.id=this.id,e}},Zot=class{constructor(e){this.languageContextService=e,this._onDidChangeTreeData=new Rc.EventEmitter,this.onDidChangeTreeData=this._onDidChangeTreeData.event,this.items=[],this.languageContextService.onCachePopulated(n=>{this.addContextRequest(new QXt("Cache",n))}),this.languageContextService.onContextComputed(n=>{this.addContextRequest(new Wot("Context",n))}),this.languageContextService.onContextComputedOnTimeout(n=>{this.addContextRequest(new Wot("OnTimeout",n))})}addContextRequest(e){this.items.length>=32&&this.items.pop(),this.items.unshift(e),this._onDidChangeTreeData.fire(void 0)}getTreeItem(e){return e.toTreeItem()}getChildren(e){return this.items.length===0?[]:e===void 0?this.items:e instanceof Hot||e instanceof zot||e instanceof jot||e instanceof FXt||e instanceof gPe||e instanceof hPe||e instanceof Got||e instanceof bPe?e.children():[]}};var Vot=class t{static{this.INITIAL_DELAY=100}static{this.DELAY_INCREMENT=10}static{this.MAX_DELAY=500}constructor(e=t.INITIAL_DELAY,n=t.DELAY_INCREMENT,r=t.MAX_DELAY){this.currentDelay=e,this.initialDelay=e,this.increment=n,this.maxDelay=r}trigger(e,...n){this.timeoutId!==void 0&&(clearTimeout(this.timeoutId),this.currentDelay=Math.min(this.currentDelay+this.increment,this.maxDelay)),this.timeoutId=setTimeout(()=>{this.timeoutId=void 0,this.currentDelay=this.initialDelay,e(...n)},this.currentDelay)}cancel(){this.timeoutId!==void 0&&(clearTimeout(this.timeoutId),this.timeoutId=void 0),this.currentDelay=this.initialDelay}get isPending(){return this.timeoutId!==void 0}get getCurrentDelay(){return this.currentDelay}dispose(){this.cancel()}};var OXt=O(require("vscode"));var UXt;(e=>{function t(n,r){return{id:n.id,state:n.state,priority:n.priority,items:r,cache:n.cache,debugPath:n.debugPath}}e.from=t})(UXt||={});var IY;(r=>{function t(){return{total:0,totalSize:0,snippets:0,traits:0,yielded:0,items:{}}}r.create=t;function e(o,a){let s=0;for(let c of a.items)switch(o.total++,c.kind){case"snippet":o.snippets++,s=KAe.sizeInChars(c);break;case"trait":o.traits++,s=YAe.sizeInChars(c);break}o.items[a.id]=[a.state,a.items.length,s,a.cache?.emitMode??"none",a.cache?.scope.kind??"notCached"],o.totalSize+=s}r.update=e;function n(o){o.yielded++}r.yielded=n})(IY||={});var qXt;(e=>e.DefaultExhausted=Object.freeze({path:[0],errorData:void 0,stats:IY.create(),cancelled:!1,timedOut:!1,tokenBudgetExhausted:!0,cachedItems:0,referencedItems:0,fromCache:!1,serverComputed:void 0,serverTime:-1,contextComputeTime:-1,totalTime:0}))(qXt||={});var yPe=class t{constructor(e){this.seenRunnableResults=new Set,this.seenContextItems=new Set,this.path=[0],this.errorData=void 0,this.stats=IY.create(),this.cancelled=!1,this.timedOut=!1,this.tokenBudgetExhausted=!1,this.cachedItems=0,this.referencedItems=0,this.fromCache=!1,this.serverComputed=void 0,this.serverTime=-1,this.contextComputeTime=-1,this.totalTime=e,this.counter=0}updateResponse(e,n){this.timedOut=e.timedOut,this.tokenBudgetExhausted=e.exhausted,this.serverTime=e.timings?.totalTime??-1,this.contextComputeTime=e.timings?.computeTime??-1,this.path=e.path,this.cancelled=n.isCancellationRequested}*update(e,n=!1){if(!this.seenRunnableResults.has(e.id)){this.seenRunnableResults.add(e.id),IY.update(this.stats,e);for(let r of e.items){if(EY.hasKey(r)){if(this.seenContextItems.has(r.key))continue;this.seenContextItems.add(r.key)}let o=t.doConvert(r,e.priority,(this.counter++).toString());o!==void 0&&(IY.yielded(this.stats),yield{item:o,size:EY.sizeInChars(r)})}}}*convert(e){IY.update(this.stats,e);for(let n of e.items){let r=t.doConvert(n,e.priority,(this.counter++).toString());r!==void 0&&(IY.yielded(this.stats),yield r)}}static doConvert(e,n,r){switch(e.kind){case"snippet":return{kind:"snippet",id:r,priority:n,uri:OXt.Uri.file(e.fileName),additionalUris:e.additionalFileNames?.map(o=>OXt.Uri.file(o)),value:e.value};case"trait":return{kind:"trait",id:r,priority:n,name:e.name,value:e.value}}}};yr();var ZXt=8*1024;var DUr;(e=>{function t(n){let r=n;return r instanceof Error&&r.response!==void 0&&r.version!==void 0&&typeof r.version.displayName=="string"}e.is=t})(DUr||={});var Yot;(e=>{function t(n){return Math.max(1,Math.min(100,n.sampleTelemetry??1))}e.getSampleTelemetry=t})(Yot||={});var Kot=class{constructor(e,n){this.telemetryService=e,this.logService=n,this.sendRequestTelemetryCounter=0,this.sendSpeculativeRequestTelemetryCounter=0}sendSpeculativeRequestTelemetry(e,n,r){let o=Yot.getSampleTelemetry(e),a=o===1||this.sendSpeculativeRequestTelemetryCounter%o===0;this.sendSpeculativeRequestTelemetryCounter++,a&&this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.completion-context.speculative",{requestId:e.requestId,source:e.source??"unknown",originalRequestId:n},{numberOfItems:r,sampleTelemetry:o}),this.logService.debug(`TypeScript Copilot context speculative request: [${e.requestId} - ${n}, numberOfItems: ${r}]`)}willLogRequestTelemetry(e){let n=Yot.getSampleTelemetry(e);return n===1||this.sendRequestTelemetryCounter%n===0}sendRequestTelemetry(e,n,r,o,a,s,c){let l=o.stats,u=o?.path?JSON.stringify(o.path):JSON.stringify([0]),d=l.items,p=l.totalSize,m=e.getText().length,A=Yot.getSampleTelemetry(r),f=A===1||this.sendRequestTelemetryCounter%A===0;if(this.sendRequestTelemetryCounter++,f&&this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.completion-context.request",{requestId:r.requestId,opportunityId:r.opportunityId??"unknown",source:r.source??"unknown",trigger:r.trigger??"unknown",cacheRequest:c??"unknown",nodePath:u,cancelled:o.cancelled.toString(),timedOut:o.timedOut.toString(),tokenBudgetExhausted:o.tokenBudgetExhausted.toString(),items:JSON.stringify(d),isSpeculative:(r.proposedEdits!==void 0&&r.proposedEdits.length>0).toString(),beforeCacheState:s?.before.toString(),afterCacheState:s?.after.toString(),fromCache:o.fromCache.toString()},{serverTime:o.serverTime,contextComputeTime:o.contextComputeTime,timeTaken:a,total:l.total,snippets:l.snippets,traits:l.traits,yielded:l.yielded,totalSize:p,fileSize:m,cachedItems:o.cachedItems,referencedItems:o.referencedItems,sampleTelemetry:A}),this.logService.debug(`TypeScript Copilot context: [${r.requestId}, ${r.source??"unknown"}, ${JSON.stringify(n,void 0,0)}, ${JSON.stringify(u,void 0,0)}, ${JSON.stringify(l,void 0,0)}, cacheItems:${o.cachedItems}, cacheState:${JSON.stringify(s,void 0,0)}, budgetExhausted:${o.tokenBudgetExhausted}, cancelled:${o.cancelled}, timedOut:${o.timedOut}, fileSize:${m}] in [${a},${o.serverTime},${o.contextComputeTime}]ms.${o.timedOut?" Timed out.":""}`),o.errorData!==void 0&&o.errorData.length>0){let g=o.errorData;for(let h of g)this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.completion-context.error",{requestId:r.requestId,source:r.source??"unknown",message:h.message},{code:h.code}),this.logService.error("Error computing context:",`${h.message} [${h.code}]`)}}sendRequestOnTimeoutTelemetry(e,n,r){let o=n.stats,a=o.items,s=o.totalSize;this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.completion-context.on-timeout",{requestId:e.requestId,opportunityId:e.opportunityId??"unknown",source:e.source??"unknown",items:JSON.stringify(a),cacheState:r.toString()},{total:o.total,snippets:o.snippets,traits:o.traits,yielded:o.yielded,totalSize:s}),this.logService.debug(`TypeScript Copilot context on timeout: [${e.requestId}, ${JSON.stringify(o,void 0,0)}]`)}sendRequestFailureTelemetry(e,n){this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.completion-context.failed",{requestId:e.requestId,opportunityId:e.opportunityId??"unknown",source:e.source??"unknown",code:n.error,message:n.message,stack:n.stack??"Not available"})}sendRequestCancelledTelemetry(e,n){this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.completion-context.cancelled",{requestId:e.requestId,opportunityId:e.opportunityId??"unknown",source:e.source??"unknown"},{timeTaken:n}),this.logService.debug(`TypeScript Copilot context request ${e.requestId} got cancelled.`)}sendActivationTelemetry(e,n){if(e!==void 0){let r=e?.body;r?.kind==="ok"?this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.activation.ok",{session:r.session.toString(),supported:r.supported.toString(),version:r.version??"unknown"}):r?.kind==="error"?this.sendActivationFailedTelemetry("server","server-plugin",r.message,r.stack):this.sendUnknownPingResponseTelemetry("server","server-plugin",e)}else if(n!==void 0){let r=n instanceof Error;r&&DUr.is(n)?this.sendActivationFailedTelemetry("server","server-plugin",n.response.message??n.message,void 0,n.version.displayName):r?this.sendActivationFailedTelemetry("client","server-plugin",n.message,n.stack):this.sendActivationFailedTelemetry("client","server-plugin","Unknown error",void 0)}else this.sendActivationFailedTelemetry("client","server-plugin","Neither response nor error received.",void 0)}sendActivationFailedTelemetry(e,n,r,o,a){this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.activation.failed",{location:e,part:n,message:r,stack:o??"Not available",version:a??"Not specified"})}sendUnknownPingResponseTelemetry(e,n,r){this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.activation.unknown-ping-response",{location:e,part:n,response:JSON.stringify(r,void 0,0)})}sendIntegrationTelemetry(e,n,r){this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.integration.failed",{requestId:e,document:n,versionMismatch:r})}sendInlineCompletionProviderTelemetry(e,n){n?this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.inline-completion-provider.registered",{source:e}):this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.inline-completion-provider.unregistered",{source:e})}};var $Xt=class{constructor(){this.disposables=new it;this.outsideRangeRunnableResults=[];this.requestInfo=void 0,this.results=new Map,this.cacheInfo={version:0,state:"NotPopulated"},this.withInRangeRunnableResults=[],this.outsideRangeRunnableResults=[],this.neighborFileRunnableResults=[],this.disposables.add($r.workspace.onDidChangeTextDocument(e=>{if(!(this.requestInfo===void 0||e.contentChanges.length===0))if(e.document.uri.toString()!==this.requestInfo.document)this.affectsTypeScript(e)&&this.clear();else for(let n of e.contentChanges){let r=n.range;for(let o=0;o{this.requestInfo?.document===e.uri.toString()&&this.clear()})),this.disposables.add($r.window.onDidChangeActiveTextEditor(()=>{this.clear()})),this.disposables.add($r.window.tabGroups.onDidChangeTabs(e=>{if(!(e.closed.length===0&&e.opened.length===0)){for(let n of this.neighborFileRunnableResults)this.results.delete(n.resultId);this.neighborFileRunnableResults.length=0}}))}clear(){this.requestInfo=void 0,this.results.clear(),this.cacheInfo={version:0,state:"NotPopulated"},this.withInRangeRunnableResults.length=0,this.outsideRangeRunnableResults.length=0,this.neighborFileRunnableResults.length=0}getCacheState(){return this.cacheInfo.state}update(e,n,r,o,a,s){let c=s?.itemMap??new Map,l=s?.resultMap??new Map;this.withInRangeRunnableResults.length=0,this.outsideRangeRunnableResults.length=0,this.neighborFileRunnableResults.length=0,this.results.clear(),this.cacheInfo={version:n,state:"NotPopulated"};let u=0,d=0,p=new Set;if(this.requestInfo={document:e.uri.toString(),version:n,languageId:e.languageId,position:r,requestId:o.requestId,path:a.path??[0]},a.runnableResults===void 0||a.runnableResults.length===0||a.path===void 0||a.path.length===0||a.path[0]===0)return{resolved:[],cached:u,referenced:d,serverComputed:p};let m=new Set;if(a.contextItems!==void 0&&a.contextItems.length>0)for(let g of a.contextItems)EY.hasKey(g)&&(c.set(g.key,g),m.add(g.key));let A=g=>{let h;if(g.kind==="computedResult"){p.add(g.id);let y=[];for(let v of g.items)if(v.kind==="reference"){let _=c.get(v.key);_!==void 0&&(d++,y.push(_),m.has(v.key)||u++)}else y.push(v);h=UXt.from(g,y)}else g.kind==="reference"&&(h=l.get(g.id),h!==void 0&&(u+=h.items.length));if(h!==void 0){if(this.results.set(h.id,h),h.cache!==void 0){if(h.cache.scope.kind==="withinRange"){let y=h.cache.scope.range,v=new $r.Range(y.start.line,y.start.character,y.end.line,y.end.character);this.withInRangeRunnableResults.push({range:v,resultId:h.id})}else if(h.cache.scope.kind==="neighborFiles")this.neighborFileRunnableResults.push({resultId:h.id});else if(h.cache.scope.kind==="outsideRange"){let y=[];for(let v of h.cache.scope.ranges)y.push(new $r.Range(v.start.line,v.start.character,v.end.line,v.end.character));this.outsideRangeRunnableResults.push({resultId:h.id,ranges:y})}}return this.updateCacheState(h.state),h}},f=[];for(let g of a.runnableResults){let h=A(g);h!==void 0&&f.push(h)}return{resolved:f,cached:u,referenced:d,serverComputed:p}}updateCacheState(e){switch(this.cacheInfo.state){case"NotPopulated":switch(e){case"finished":this.cacheInfo.state="FullyPopulated";break;case"isFull":case"inProgress":this.cacheInfo.state="PartiallyPopulated";break;default:this.cacheInfo.state="NotPopulated"}break;case"PartiallyPopulated":break;case"FullyPopulated":switch(e){case"finished":break;case"isFull":case"inProgress":this.cacheInfo.state="PartiallyPopulated";break;default:this.cacheInfo.state="NotPopulated"}break}}getRequestId(){return this.requestInfo?.requestId}getNodePath(){return this.requestInfo?.path??[0]}getRunnableResult(e){return this.results.get(e)}getCachedRunnableResults(e,n,r){let o=[];if(this.requestInfo?.document!==e.uri.toString()||this.cacheInfo.version!==e.version||this.cacheInfo.state==="NotPopulated"||this.requestInfo.path.length===0||this.requestInfo.path[0]===0)return o;for(let a of this.results.values()){if(r!==void 0&&a.cache?.emitMode===r)continue;let s=a.cache?.scope;if(s===void 0||s.kind!=="withinRange")o.push(a);else{let c=s.range;new $r.Range(c.start.line,c.start.character,c.end.line,c.end.character).contains(n)&&o.push(a)}}return o.sort((a,s)=>a.prioritys.priority?-1:0)}getContextRequestState(e,n){if(this.requestInfo?.document!==e.uri.toString()||this.cacheInfo.version!==e.version||this.cacheInfo.state==="NotPopulated"||this.requestInfo.path.length===0||this.requestInfo.path[0]===0)return;let r=new Map,o=[],a=[],s=[];if(this.isCacheFullyUpToDate(e,n))for(let c of this.results.values())o.push(c);else{let c=(u,d)=>{if(u.state==="finished")return!0;if(u.state==="isFull"){let p=d.scope.kind;return p==="withinRange"||p==="neighborFiles"||p==="file"}return!1},l=(u,d)=>{let p=d.cache,m={id:u,kind:"cacheEntry",state:d.state,items:[]},A=!1;if(p!==void 0){m.cache=p;let f=p.emitMode;f==="clientBased"?(o.push(d),A=c(d,p)):f==="clientBasedOnTimeout"&&a.push(d)}if(s.push(m),!A)for(let f of d.items){if(!EY.hasKey(f))continue;let g=f.key,h;switch(f.kind){case"snippet":h=KAe.sizeInChars(f);break;case"trait":h=YAe.sizeInChars(f);break;default:}m.items.push(MXt.create(g,h)),r.set(g,f)}};for(let[u,d]of this.results.entries()){let p=d.cache?.scope;if(p===void 0||p.kind!=="withinRange")l(u,d);else{let m=p.range;new $r.Range(m.start.line,m.start.character,m.end.line,m.end.character).contains(n)&&l(u,d)}}}return{client:o,clientOnTimeout:a,server:s,itemMap:r,resultMap:new Map(this.results)}}isCacheFullyUpToDate(e,n){if(this.requestInfo===void 0||this.requestInfo.document!==e.uri.toString())return!1;if(this.requestInfo.version===e.version&&this.requestInfo.position.isEqual(n))return!0;if(this.requestInfo.version>e.version)return!1;for(let a of this.withInRangeRunnableResults)if(!a.range.contains(n))return!1;let r=n.isBefore(this.requestInfo.position)?new $r.Range(n,this.requestInfo.position):new $r.Range(this.requestInfo.position,n);return e.getText(r).trim().length===0}dispose(){this.clear(),this.disposables.dispose()}affectsTypeScript(e){let n=e.document.languageId;return n==="typescript"||n==="typescriptreact"||n==="javascript"||n==="javascriptreact"||n==="json"}applyTextContentChangeEventToWithinRange(e,n){let r=e.range,o=e.text,a=(o.match(/\n/g)||[]).length-(r.end.line-r.start.line),s=n.end.line+a,c=n.end.character;if(r.end.line===n.end.line){let l=o.lastIndexOf(` `),u=l!==-1?o.length-l-1:o.length,d=r.end.character-(r.end.line>r.start.line?0:r.start.character),p=u-d;c+=p}return new $r.Range(n.start,new $r.Position(s,c))}applyTextContentChangeEventToOutsideRanges(e,n){if(n.length===0)return n;let r=e.range,o=e.text,a=n[n.length-1];if(r.start.isAfter(a.end))return n;let s=(o.match(/\n/g)||[]).length-(r.end.line-r.start.line),c=[];for(let l of n)if(l.end.isBefore(r.start))c.push(l);else if(l.start.isAfter(r.end))s===0?c.push(l):c.push(new $r.Range(new $r.Position(l.start.line+s,l.start.character),new $r.Position(l.end.line+s,l.end.character)));else return;return c}},vPe;(e=>{function t(n){return n.uri.scheme==="file"&&(n.languageId==="typescript"||n.languageId==="typescriptreact")}e.consider=t})(vPe||={});var zXt=class t{static{this.MAX_ITEMS=12}constructor(){this.disposables=new it,this.visible=new mPe({max:t.MAX_ITEMS}),this.notVisible=new mPe({max:t.MAX_ITEMS}),this.disposables.add($r.window.onDidChangeActiveTextEditor(n=>{if(n===void 0)return;let r=n.document;if(vPe.consider(r)){let o=r.uri.toString();this.visible.set(o,r.uri.fsPath),this.notVisible.delete(o)}})),this.disposables.add($r.workspace.onDidCloseTextDocument(n=>{let r=n.uri.toString();vPe.consider(n)&&(this.visible.delete(r),this.notVisible.delete(r))})),this.disposables.add($r.window.tabGroups.onDidChangeTabs(n=>{for(let r of n.closed)if(r.input instanceof $r.TabInputText){let o=r.input.uri.toString();this.visible.has(o)&&(this.visible.delete(o),this.notVisible.set(o,r.input.uri.fsPath))}}));let e=new Map;for(let n of $r.workspace.textDocuments)vPe.consider(n)&&e.set(n.uri.toString(),n.uri);for(let n of $r.window.tabGroups.all)for(let r of n.tabs){let o=r.input instanceof $r.TabInputText?r.input.uri:void 0;o!==void 0&&e.has(o.toString())&&(this.visible.set(o.toString(),o.fsPath),e.delete(o.toString()))}for(let[n,r]of e.entries())this.notVisible.set(n,r.fsPath);if($r.window.activeTextEditor!==void 0){let n=$r.window.activeTextEditor.document;if(vPe.consider(n)){let r=n.uri.toString();this.visible.set(r,n.uri.fsPath),this.notVisible.delete(r)}}}getNeighborFiles(e){let n=[],r=e.uri.toString();for(let[o,a]of this.visible.entries())o!==r&&n.push(a);if(n.length=t.MAX_ITEMS))break}return n}dispose(){this.disposables.dispose()}},PUr;(e=>{function t(n,r,o,a,s,c,l,u,d){return{file:$r.Uri.file(n.fileName),line:r.line+1,offset:r.character+1,startTime:a,timeBudget:s,primaryCharacterBudget:(o.tokenBudget??7*1024)*4,secondaryCharacterBudget:ZXt*4,includeDocumentation:d,neighborFiles:l!==void 0&&l.length>0?l:void 0,clientSideRunnableResults:u,$traceId:c?o.requestId:void 0}}e.create=t})(PUr||={});var jXt=class{constructor(e,n,r){this.document=e.uri.toString(),this.version=e.version,this.position=n,this.context=r}},GXt=class{constructor(e,n,r,o,a){this.document=e.uri.toString(),this.position=n,this.requestId=r.requestId,this.source=r.source??"unknown",this.tokenSource=o,this.serverPromise=a}matches(e,n){return this.document===e.uri.toString()&&this.position.isEqual(n)}matchesDocument(e){return this.document===e.uri.toString()}cancel(){this.tokenSource.cancel()}},HXt=class{constructor(e,n){this.runnableResults=[];this.document=e.uri.toString(),this.version=e.version,this.position=n}addRunnableResult(e){this.runnableResults.push(e)}addRunnableResults(e){this.runnableResults.push(...e)}matches(e,n){return this.document===e.uri.toString()&&this.version===e.version&&this.position.isEqual(n)}},Jot=(o=>(o.minimal="minimal",o.double="double",o.fillHalf="fillHalf",o.fill="fill",o))(Jot||{});(e=>{function t(n){switch(n){case"minimal":return"minimal";case"double":return"double";case"fillHalf":return"fillHalf";case"fill":return"fill";default:return"minimal"}}e.fromString=t})(Jot||={});var kY=class t{constructor(e,n){this.overall=e,this.mandatory=e,this.optional=n,this.start={mandatory:e,optional:n}}spend(e){this.mandatory-=e,this.optional-=e}isExhausted(){return this.mandatory<=0}isOptionalExhausted(){return this.optional<=0}fresh(){return new t(this.start.mandatory,this.start.optional)}},$x=class{constructor(e,n,r,o){this.configurationService=e;this.experimentationService=n;this.telemetryService=r;this.logService=o;this.isDebugging=process.execArgv.some(a=>/^--(?:inspect|debug)(?:-brk)?(?:=\d+)?$/i.test(a)),this.telemetrySender=new Kot(r,o),this.runnableResultManager=new $Xt,this.neighborFileModel=new zXt,this.pendingRequest=void 0,this.inflightCachePopulationRequest=void 0,this.onTimeoutData=void 0,this.cachePopulationTimeout=this.getCachePopulationBudget(),this.usageMode=this.getUsageMode(),this.includeDocumentation=this.getIncludeDocumentation(),this.disposables=new it,this.disposables.add(this.configurationService.onDidChangeConfiguration(a=>{a.affectsConfiguration(H.TypeScriptLanguageContextMode.fullyQualifiedId)?this.usageMode=this.getUsageMode():a.affectsConfiguration(H.TypeScriptLanguageContextCacheTimeout.fullyQualifiedId)?this.cachePopulationTimeout=this.getCachePopulationBudget():a.affectsConfiguration(H.TypeScriptLanguageContextIncludeDocumentation.fullyQualifiedId)&&(this.includeDocumentation=this.getIncludeDocumentation())})),this._onCachePopulated=this.disposables.add(new $r.EventEmitter),this.onCachePopulated=this._onCachePopulated.event,this._onContextComputed=this.disposables.add(new $r.EventEmitter),this.onContextComputed=this._onContextComputed.event,this._onContextComputedOnTimeout=this.disposables.add(new $r.EventEmitter),this.onContextComputedOnTimeout=this._onContextComputedOnTimeout.event}static{this.defaultCachePopulationBudget=500}static{this.defaultCachePopulationRaceTimeout=20}static{this.ExecConfig={executionTarget:0}}dispose(){this.runnableResultManager.dispose(),this.neighborFileModel.dispose(),this.inflightCachePopulationRequest=void 0}async isActivated(e){let n=typeof e=="string"?e:e.languageId;return n!=="typescript"&&n!=="typescriptreact"?!1:(this._isActivated===void 0&&(this._isActivated=this.doIsTypeScriptActivated(n)),this._isActivated)}async doIsTypeScriptActivated(e){let n=!1;try{let r=$r.extensions.getExtension("vscode.typescript-language-features");if(r===void 0)return!1;await r.activate();let o=await $r.commands.executeCommand("typescript.tsserverRequest","_.copilot.ping",$x.ExecConfig,Yt.None);this.telemetrySender.sendActivationTelemetry(o,void 0),o!==void 0?o.body?.kind==="ok"?(this.logService.info("TypeScript server plugin activated."),n=!0):this.logService.error("TypeScript server plugin not activated:",o.body?.message??"Message not provided."):this.logService.error("TypeScript server plugin not activated:","No ping response received.")}catch(r){this.telemetrySender.sendActivationTelemetry(void 0,r),this.logService.error("Error pinging TypeScript server plugin:",r)}return n}async populateCache(e,n,r){if(e.languageId!=="typescript"&&e.languageId!=="typescriptreact")return;if(this.inflightCachePopulationRequest!==void 0){this.inflightCachePopulationRequest.matches(e,n)||(this.pendingRequest=new jXt(e,n,r));return}let o=Date.now(),a=this.runnableResultManager.getContextRequestState(e,n);if(a!==void 0&&a.server.length===0)return;let s=this.neighborFileModel.getNeighborFiles(e),c=this.cachePopulationTimeout,l=this.telemetrySender.willLogRequestTelemetry(r),u=PUr.create(e,n,r,o,c,l,s,a?.server,this.includeDocumentation);try{let d=this.isDebugging,p=d?[]:void 0,m=new $r.CancellationTokenSource,A=m.token,f=e.version,g=this.runnableResultManager.getCacheState(),h,y;try{let _=$r.commands.executeCommand("typescript.tsserverRequest","_.copilot.context",u,$x.ExecConfig,A);y=new GXt(e,n,r,m,_),this.inflightCachePopulationRequest=y,h=await _}finally{this.inflightCachePopulationRequest===y&&(this.inflightCachePopulationRequest=void 0),m.dispose()}let v=Date.now()-o;if(APe.isCancelled(h))this.telemetrySender.sendRequestCancelledTelemetry(r,v);else if(APe.isOk(h)){let _=h.body,w=new yPe(v),{resolved:x,cached:E,referenced:I,serverComputed:k}=this.runnableResultManager.update(e,f,n,r,_,a);if(w.cachedItems+=E,w.referencedItems+=I,w.serverComputed=k,x.length>0)for(let T of x)for(let D of w.update(T))p?.push(D.item);w.updateResponse(_,A),this.telemetrySender.sendRequestTelemetry(e,n,r,w,v,{before:g,after:this.runnableResultManager.getCacheState()},void 0),d&&p?.length,this._onCachePopulated.fire({document:e,position:n,source:r.source,items:x,summary:w})}else APe.isError(h)&&(this.telemetrySender.sendRequestFailureTelemetry(r,h.body),console.error("Error populating cache:",h.body.message,h.body.stack))}catch(d){this.logService.error(d,`Error populating cache for document: ${e.uri.toString()} at position: ${n.line+1}:${n.character+1}`)}if(this.pendingRequest!==void 0){let d=this.pendingRequest;this.pendingRequest=void 0;let p=$r.window.activeTextEditor;if(p!==void 0){let m=p.document;m.uri.toString()===d.document&&m.version===d.version&&m.validatePosition(d.position).isEqual(d.position)&&this.populateCache(m,d.position,d.context).catch(()=>{})}}}async*getContext(e,n,r,o){if(this.onTimeoutData=void 0,e.languageId!=="typescript"&&e.languageId!=="typescriptreact")return;let a=Date.now(),s="none",c=this.inflightCachePopulationRequest!==void 0&&this.inflightCachePopulationRequest.matchesDocument(e);if(c&&(this.onTimeoutData=new HXt(e,n),s="inflight"),o.isCancellationRequested){this.telemetrySender.sendRequestCancelledTelemetry(r,Date.now()-a);return}let l=this.isDebugging,u=l?[]:void 0,d=new yPe(Date.now()-a);this.onTimeoutData!==void 0&&(this.onTimeoutData.resultBuilder=d);let p=this.getCharacterBudget(r,e),m=[],{mandatory:A,optional:f,onTimeout:g}=this.getRunnables(e,n,c);this.onTimeoutData!==void 0&&this.onTimeoutData.addRunnableResults(g);e:for(let y of A)for(let{item:v,size:_}of d.update(y,!0)){if(u?.push(v),p.spend(_),p.isExhausted())break e;m.push(v)}if(!p.isOptionalExhausted())e:for(let y of f)for(let{item:v,size:_}of d.update(y,!0)){if(u?.push(v),p.spend(_),p.isOptionalExhausted())break e;m.push(v)}if(o.isCancellationRequested)this.onTimeoutData=void 0;else{for(let y of m){if(o.isCancellationRequested){this.onTimeoutData=void 0;break}yield y}if(this.inflightCachePopulationRequest!==void 0&&this.inflightCachePopulationRequest.matchesDocument(e)){s="inflight";let y=Math.max(0,Math.min(r.timeBudget??$x.defaultCachePopulationRaceTimeout,$x.defaultCachePopulationRaceTimeout));if(await Promise.race([this.inflightCachePopulationRequest.serverPromise,new Promise(_=>setTimeout(_,y)).then(()=>"timedOut")])!=="timedOut"&&(this.inflightCachePopulationRequest=void 0,this.onTimeoutData!==void 0)){this.onTimeoutData=void 0;let _=this.runnableResultManager.getCachedRunnableResults(e,n,"clientBasedOnTimeout");for(let w of _)for(let{item:x}of d.update(w))u?.push(x),yield x;s="awaited"}}}if(r.proposedEdits!==void 0)this.telemetrySender.sendSpeculativeRequestTelemetry(r,this.runnableResultManager.getRequestId()??"unknown",d.stats.yielded);else{let y=this.runnableResultManager.getCacheState();d.path=this.runnableResultManager.getNodePath(),d.cancelled=o.isCancellationRequested,d.serverTime=0,d.contextComputeTime=0,d.fromCache=!0,this.telemetrySender.sendRequestTelemetry(e,n,r,d,Date.now()-a,{before:y,after:y},s),l&&u?.length,this._onContextComputed.fire({document:e,position:n,source:r.source,items:m,summary:d})}}getRunnables(e,n,r){let o=[],a=[],s=[];for(let c of this.runnableResultManager.getCachedRunnableResults(e,n))if(r&&c.cache?.emitMode==="clientBasedOnTimeout")s.push(c);else{let l=c.priority;l===1||l===.9||l===.8||l===.7?o.push(c):a.push(c)}return{mandatory:o,optional:a,onTimeout:s}}getContextOnTimeout(e,n,r){try{if(this.onTimeoutData===void 0)return[];if(!this.onTimeoutData.matches(e,n)||this.onTimeoutData.resultBuilder===void 0)return[];let o=[],a=this.onTimeoutData.resultBuilder;for(let s of this.onTimeoutData.runnableResults)for(let{item:c}of a.update(s,!0))o.push(c);return o}finally{this.onTimeoutData=void 0}}getCachePopulationBudget(){return this.configurationService.getExperimentBasedConfig(H.TypeScriptLanguageContextCacheTimeout,this.experimentationService)??$x.defaultCachePopulationBudget}getUsageMode(){let e=this.configurationService.getExperimentBasedConfig(H.TypeScriptLanguageContextMode,this.experimentationService);return Jot.fromString(e)}getIncludeDocumentation(){return this.configurationService.getExperimentBasedConfig(H.TypeScriptLanguageContextIncludeDocumentation,this.experimentationService)}getCharacterBudget(e,n){let r=(e.tokenBudget??ZXt)*4;switch(this.usageMode){case"minimal":return new kY(r,0);case"double":return new kY(r,Math.min(r,n.getText().length));case"fillHalf":return new kY(r,Math.floor(r/2));case"fill":return new kY(r,r);default:return new kY(r,r)}}};$x=S([b(0,be),b(1,Fe),b(2,Ee),b(3,Z)],$x);var WXt=class{constructor(e,n){this.languageContextService=e,this.tokenBudgetProvider=n,this.disposables=new it,this.lastDocumentChange=void 0,this.selectionChangeDebouncer=this.disposables.add(new Vot),this.disposables.add($r.workspace.onDidChangeTextDocument(r=>{this.didChangeTextDocument(r)})),this.disposables.add($r.window.onDidChangeActiveTextEditor(r=>{this.didChangeActiveTextEditor(r)})),this.disposables.add($r.window.onDidChangeTextEditorSelection(async r=>{this.didChangeTextEditorSelection(r)})),this.disposables.add($r.languages.registerInlineCompletionItemProvider([{scheme:"file",language:"typescript"},{scheme:"file",language:"typescriptreact"}],{provideInlineCompletionItems:async(r,o,a,s)=>{this.onInlineCompletion(r,o,a)}},{debounceDelayMs:0,groupId:"contextService"}))}dispose(){this.disposables.dispose()}didChangeTextDocument(e){let n=Date.now();this.lastDocumentChange=void 0;let r=e.document;if(r.languageId!=="typescript"&&r.languageId!=="typescriptreact"||e.contentChanges.length===0)return;let o=$r.window.activeTextEditor;o===void 0||o.document.uri.toString()!==r.uri.toString()||(this.lastDocumentChange={document:r.uri.toString(),time:n})}didChangeActiveTextEditor(e){if(this.lastDocumentChange===void 0)return;if(e===void 0){this.lastDocumentChange=void 0;return}let n=e.document;this.lastDocumentChange.document!==n.uri.toString()&&(this.lastDocumentChange=void 0)}didChangeTextEditorSelection(e){let n=e.textEditor.document,r=this.tokenBudgetProvider.getTokenBudget(n);if(r<=0)return;let o=this.getPosition(e);if(o===void 0){this.selectionChangeDebouncer.cancel();return}try{(e.kind===$r.TextEditorSelectionChangeKind.Command||e.kind===$r.TextEditorSelectionChangeKind.Mouse)&&(this.selectionChangeDebouncer.cancel(),this.populateCache(n,o,r,void 0,"selection",!1)),this.selectionChangeDebouncer.trigger(()=>{this.populateCache(n,o,r,void 0,"selection",!0)})}catch(a){console.error(a)}}onInlineCompletion(e,n,r){let o=this.tokenBudgetProvider.getTokenBudget(e);o<=0||this.populateCache(e,n,o,r.requestUuid,"completion",!1)}getPosition(e){let n=Date.now(),r=$r.window.activeTextEditor;if(e.textEditor!==r)return;let o=e.textEditor.document;if(o.languageId!=="typescript"&&o.languageId!=="typescriptreact"||e.selections.length!==1)return;let a=e.selections[0];if(!a.isEmpty)return;let s=o.lineAt(a.start.line),c=s.text.substring(a.start.character);if(!(s.text.trim().length!==0&&c.length>0)&&!(this.lastDocumentChange!==void 0&&this.lastDocumentChange.document===o.uri.toString()&&n-this.lastDocumentChange.time<500))return a.start}populateCache(e,n,r,o,a,s){if(s){let l=$r.window.activeTextEditor;if(l===void 0||l.document.uri.toString()!==e.uri.toString())return;let u=l.selections;if(u===void 0||u.length!==1)return;let d=u[0];if(!d.isEmpty||d.start.line!==n.line||d.start.character!==n.character)return}let c={requestId:o??st(),timeBudget:50,tokenBudget:r,source:"populateCache",trigger:a,proposedEdits:void 0};this.languageContextService.populateCache(e,n,c).catch(()=>{})}};async function*yIa(t,e){for await(let n of t){let r=e(n);r!==void 0&&(yield r)}}var vIa="github.copilot.chat.showContextInspectorView",XAe=class{constructor(e,n,r,o,a,s){this.configurationService=e;this.experimentationService=n;this.logService=r;this.telemetryService=o;this.languageContextService=a;this.languageContextProviderService=s;if(this.registrations=void 0,this.telemetrySender=new Kot(o,r),this.registrationQueue=new sX,this.disposables=new it,a instanceof $x&&(this.disposables.add($r.commands.registerCommand("github.copilot.debug.showContextInspectorView",async()=>{await $r.commands.executeCommand("setContext",vIa,!0),await $r.commands.executeCommand("context-inspector.focus")})),this.disposables.add($r.window.registerTreeDataProvider("context-inspector",new Zot(a)))),$r.workspace.textDocuments.some(l=>l.languageId==="typescript"||l.languageId==="typescriptreact"))this.typeScriptFileOpen();else{let l=$r.workspace.onDidOpenTextDocument(u=>{(u.languageId==="typescript"||u.languageId==="typescriptreact")&&(l.dispose(),this.typeScriptFileOpen())})}}dispose(){this.registrations?.dispose(),this.disposables.dispose(),this.registrationQueue.dispose()}typeScriptFileOpen(){this.checkRegistration(),this.disposables.add(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(H.TypeScriptLanguageContext.fullyQualifiedId)&&this.checkRegistration()}))}checkRegistration(){this.registrationQueue.queue(async()=>{this.getConfig()==="on"?await this.register():this.unregister()}).catch(e=>this.logService.error(e,"Error checking TypeScript context provider registration"))}async register(){if(!await this.isTypeScriptRunning())return;let e=this.languageContextService,n=this.logService;try{if(!await e.isActivated("typescript"))return;this.registrations!==void 0&&(this.registrations.dispose(),this.registrations=void 0),this.registrations=new it,this.registrations.add(new WXt(this.languageContextService,this));let r=this.telemetrySender,o=this,a={resolve(l,u){let d=l.documentContext.proposedEdits!==void 0,[p,m]=o.getDocumentAndPosition(l,u);if(p===void 0||m===void 0)return Promise.resolve([]);let A=o.getTokenBudget(p);if(A<=0)return r.sendRequestTelemetry(p,m,{requestId:l.completionId,source:"completion"},qXt.DefaultExhausted,0,void 0,void 0),Promise.resolve([]);let f={requestId:l.completionId,opportunityId:l.opportunityId,timeBudget:l.timeBudget,tokenBudget:A,source:l.source==="nes"?"nes":"completion",trigger:"completion",proposedEdits:d?[]:void 0,sampleTelemetry:o.getSampleTelemetry(l.activeExperiments)},g=e.getContext(p,m,f,u);if(Array.isArray(g)){let h=[];for(let y of g){let v=o.convertItem(y);v!==void 0&&h.push(v)}return Promise.resolve(h)}else return typeof g[Symbol.asyncIterator]=="function"?yIa(g,h=>o.convertItem(h)):g instanceof Promise?g.then(h=>{let y=[];for(let v of h){let _=o.convertItem(v);_!==void 0&&y.push(_)}return y}):Promise.resolve([])}};typeof e.getContextOnTimeout=="function"&&(a.resolveOnTimeout=l=>{if(typeof e.getContextOnTimeout!="function")return;let[u,d]=o.getDocumentAndPosition(l);if(u===void 0||d===void 0)return;let p={requestId:l.completionId,source:"completion"},m=e.getContextOnTimeout(u,d,p);if(m===void 0)return;let A=[];for(let f of m){let g=o.convertItem(f);g!==void 0&&A.push(g)}return A});let s={id:"typescript-ai-context-provider",selector:{scheme:"file",language:"typescript"},resolver:a},c=await this.getCopilotApi();c!==void 0&&this.registrations.add(c.registerContextProvider(s)),this.registrations.add(this.languageContextProviderService.registerContextProvider(s,["completions"])),this.telemetrySender.sendInlineCompletionProviderTelemetry("completion",!0),n.info("Registered TypeScript context provider with Copilot inline completions.")}catch(r){n.error("Error checking if server plugin is installed:",r)}}async isTypeScriptRunning(){let e=$r.extensions.getExtension("vscode.typescript-language-features");if(e===void 0)return this.telemetrySender.sendActivationFailedTelemetry("client","typescript-plugin","TypeScript extension not found",void 0),this.logService.error("TypeScript extension not found"),!1;try{return await e.activate(),!0}catch(n){return n instanceof Error?(this.telemetrySender.sendActivationFailedTelemetry("client","typescript-plugin",n.message,n.stack),this.logService.error("Error checking if TypeScript plugin is installed:",n.message)):(this.telemetrySender.sendActivationFailedTelemetry("client","typescript-plugin","Unknown error",void 0),this.logService.error("Error checking if TypeScript plugin is installed: Unknown error")),!1}}getDocumentAndPosition(e,n){let r;if($r.window.activeTextEditor?.document.uri.toString()===e.documentContext.uri?r=$r.window.activeTextEditor.document:r=$r.workspace.textDocuments.find(s=>s.uri.toString()===e.documentContext.uri),r===void 0)return this.telemetrySender.sendIntegrationTelemetry(e.completionId,e.documentContext.uri),[void 0,void 0];let o=e.documentContext.position,a=o!==void 0?new $r.Position(o.line,o.character):r.positionAt(e.documentContext.offset);return r.version>e.documentContext.version?(n?.isCancellationRequested||this.telemetrySender.sendIntegrationTelemetry(e.completionId,e.documentContext.uri,`Version mismatch: ${r.version} !== ${e.documentContext.version}`),[void 0,void 0]):r.versionr.toString())),n}else{if(e.kind==="trait")return{importance:e.priority*100,id:e.id,name:e.name,value:e.value};if(e.kind==="diagnosticBag")return{importance:e.priority*100,id:e.id,uri:e.uri,values:e.values}}}async getCopilotApi(){let e=$r.extensions.getExtension("GitHub.copilot");if(e!==void 0)try{return(await e.activate()).getContextProviderAPI("v1")}catch(n){n instanceof Error?(this.telemetrySender.sendActivationFailedTelemetry("client","copilot-extension",n.message,n.stack),this.logService.error("Error activating Copilot extension:",n.message)):(this.telemetrySender.sendActivationFailedTelemetry("client","copilot-extension","Unknown error",void 0),this.logService.error("Error activating Copilot extension: Unknown error."));return}}unregister(){this.registrations!==void 0&&(this.registrations.dispose(),this.registrations=void 0),this.telemetrySender.sendInlineCompletionProviderTelemetry("completion",!1)}getConfig(){return this.configurationService.getExperimentBasedConfig(H.TypeScriptLanguageContext,this.experimentationService)===!0?"on":"off"}getTokenBudget(e){return Math.trunc(ZXt-e.getText().length/4-256)}getSampleTelemetry(e){let n=e.get("sampleTelemetry");return n==null||n===!1?1:n===!0?10:typeof n=="number"?Math.max(1,Math.min(100,n)):1}};XAe=S([b(0,be),b(1,Fe),b(2,Z),b(3,Ee),b(4,Wre),b(5,Rm)],XAe);var gc=O(require("vscode"));yr();Ue();var VXt;(e=>{function t(n,r,o,a,s,c,l){return{file:gc.Uri.file(n.fileName),line:r.line+1,offset:r.character+1,oldName:o,newName:a,lastSymbolRename:s?{start:{line:s.start.line+1,character:s.start.character+1},end:{line:s.end.line+1,character:s.end.character+1}}:void 0,startTime:c,timeBudget:l}}e.create=t})(VXt||={});var NUr;(e=>{function t(n,r,o,a,s){return{file:gc.Uri.file(n.fileName),line:r.line+1,offset:r.character+1,oldName:o,newName:a,lastSymbolRename:s?{start:{line:s.start.line+1,character:s.start.character+1},end:{line:s.end.line+1,character:s.end.character+1}}:void 0}}e.create=t})(NUr||={});var YXt=class{constructor(e,n){this.telemetryService=e,this.logService=n}sendPrepareNesRenameTelemetry(e,n,r,o){this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.nesRename.prepare.ok",{requestId:e,canRename:r.toString(),timedOut:o.toString()},{timeTaken:n}),this.logService.info(`NES Rename Prepare: canRename=${r}, timeTaken=${n}, timedOut=${o}`)}sendPrepareNesRenameFailureTelemetry(e,n){this.telemetryService.sendMSFTTelemetryEvent("typescript-context-plugin.nesRename.prepare.failed",{requestId:e,code:n.error,message:n.message,stack:n.stack??"Not available"})}},aB=class{constructor(e,n){this.telemetryService=e;this.logService=n;this.telemetrySender=new YXt(e,n),this.disposables=new it,this.disposables.add(gc.commands.registerCommand("github.copilot.nes.prepareRename",async(r,o,a,s,c,l)=>{let u={canRename:"no",timedOut:!1},d=this.resolvePrepareParams(r,o,a,s,c);if(d===void 0)return u;let p=d.document;if(o=d.position,a=d.oldName,s=d.newName,c=d.requestId,!await this.isActivated(p))return u;let A=Date.now(),f=VXt.create(p,o,a,s,l,A,300),g=new gc.CancellationTokenSource;try{let h=await gc.commands.executeCommand("typescript.tsserverRequest","_.copilot.prepareNesRename",f,aB.ExecConfig,g.token);if(JAe.isError(h))return this.telemetrySender.sendPrepareNesRenameFailureTelemetry(c,h.body),u;if(JAe.isOk(h)){let y=h.body.canRename==="no"?h.body.timedOut:!1;return this.telemetrySender.sendPrepareNesRenameTelemetry(c,Date.now()-A,h.body.canRename,y),h.body}else return u}finally{g.dispose()}})),this.disposables.add(gc.commands.registerCommand("github.copilot.nes.postRename",async(r,o,a,s,c)=>{let l=this.resolveRenameParams(r,o,a,s);if(l===void 0)return[];let u=l.document;o=l.position,a=l.oldName,s=l.newName;let d=NUr.create(u,o,a,s,c),p=new gc.CancellationTokenSource;try{let m=await gc.commands.executeCommand("typescript.tsserverRequest","_.copilot.postNesRename",d,aB.ExecConfig,p.token);return qot.isError(m)?[]:qot.isOk(m)?m.body.groups.map(A=>({changes:A.changes,file:gc.Uri.file(A.file)})):[]}finally{p.dispose()}})),this.disposables.add(gc.commands.registerCommand("github.copilot.debug.validateNesRename",async()=>{let r=await this.getUserParams();if(r===void 0)return;let{document:o,position:a,oldName:s,newName:c}=r;if(!await this.isActivated(o)){gc.window.showErrorMessage("TypeScript NES Rename plugin is not activated.");return}let u=VXt.create(o,a,s,c,new gc.Range(1,7,1,13),Date.now(),300),d=new gc.CancellationTokenSource;try{let p=await gc.commands.executeCommand("typescript.tsserverRequest","_.copilot.prepareNesRename",u,aB.ExecConfig,d.token);if(JAe.isError(p))gc.window.showErrorMessage(`Prepare NES Rename error: ${p.message}`);else if(JAe.isOk(p)){let m=p.body;m.canRename==="yes"?gc.window.showInformationMessage(`Prepare NES Rename: Can rename '${s}' to '${c}'.`):m.canRename==="maybe"?gc.window.showWarningMessage(`Prepare NES Rename: Maybe can rename '${s}' to '${c}'.`):gc.window.showErrorMessage(`Prepare NES Rename: Cannot rename '${s}' to '${c}'. Reason: ${m.reason??"Not provided"}`)}}finally{d.dispose()}}))}static{this.ExecConfig={executionTarget:0}}dispose(){this.disposables.dispose()}async isActivated(e){let n=typeof e=="string"?e:e.languageId;return n!=="typescript"&&n!=="typescriptreact"?!1:(this._isActivated===void 0&&(this._isActivated=this.doIsTypeScriptActivated(n)),this._isActivated)}async doIsTypeScriptActivated(e){let n=!1;try{let r=gc.extensions.getExtension("vscode.typescript-language-features");if(r===void 0)return!1;await r.activate();let o=await gc.commands.executeCommand("typescript.tsserverRequest","_.copilot.ping",aB.ExecConfig,Yt.None);o!==void 0?o.body?.kind==="ok"?(this.logService.info("TypeScript server plugin activated."),n=!0):this.logService.error("TypeScript server plugin not activated:",o.body?.message??"Message not provided."):this.logService.error("TypeScript server plugin not activated:","No ping response received.")}catch(r){this.logService.error("Error pinging TypeScript server plugin:",r)}return n}resolvePrepareParams(e,n,r,o,a){if(e===void 0)return;let s=this.getDocument(e);if(s!==void 0&&n!==void 0&&typeof r=="string"&&typeof o=="string"&&typeof a=="string")return{document:s,position:n,oldName:r,newName:o,requestId:a}}resolveRenameParams(e,n,r,o){if(e===void 0)return;let a=this.getDocument(e);if(a!==void 0&&n!==void 0&&typeof r=="string"&&typeof o=="string")return{document:a,position:n,oldName:r,newName:o}}getDocument(e,n){let r;return gc.window.activeTextEditor?.document.uri.toString()===e.toString()?r=gc.window.activeTextEditor.document:r=gc.workspace.textDocuments.find(o=>o.uri.toString()===e.toString()),r}async getUserParams(){if(gc.window.activeTextEditor===void 0)return;let e=gc.window.activeTextEditor.document,n=gc.window.activeTextEditor.selection.active,r=e.getWordRangeAtPosition(n);if(r===void 0)return;let o=e.getText(r),a=await gc.window.showInputBox({prompt:"Enter the new name for NES rename"});if(!(a===void 0||a.length===0))return{document:e,position:n,oldName:o,newName:a}}};aB=S([b(0,Ee),b(1,Z)],aB);var JXt={};Se(JXt,{create:()=>wIa});Ue();Be();var SY=O(Lt()),Ug=O(require("vscode"));Ue();var eat="github.copilot.buildRemoteWorkspaceIndex",_Ia="github.copilot.deleteExternalIngestWorkspaceIndex";function MUr(t){let e=t.get(S_),n=t.get(Jb),r=new it;return r.add(Ug.commands.registerCommand(eat,LUr(async()=>{await Ug.window.withProgress({location:Ug.ProgressLocation.Window,title:SY.t`Building remote workspace index`},async(o,a)=>{let s=await e.triggerRemoteIndexing("manual",c=>o.report({message:c}),new Aa("BuildRemoteIndexCommand"),a);if(s.isError()&&s.err.id!==S0.alreadyIndexed.id){Ug.window.showWarningMessage(SY.t`Could not build remote workspace index. `+` `+s.err.userMessage);return}Ug.window.showInformationMessage(SY.t`Remote workspace index ready to use.`)})}))),r.add(Ug.commands.registerCommand(_Ia,LUr(async()=>{await Ug.window.withProgress({location:Ug.ProgressLocation.Window,title:SY.t`Deleting external ingest index...`},async()=>{await e.deleteExternalIngestWorkspaceIndex(),Ug.window.showInformationMessage(SY.t`External ingest index deleted.`)})}))),r.add(Ug.commands.registerCommand("github.copilot.debug.collectWorkspaceIndexDiagnostics",async()=>{Ug.window.withProgress({location:Ug.ProgressLocation.Window,title:SY.t`Collecting workspace index diagnostics...`},async()=>{let o=await Ug.workspace.openTextDocument({language:"markdown"}),a=await Ug.window.showTextDocument(o);await Xot(a,`# Workspace Index Diagnostics `),await Xot(a,"Tracked file count: "+n.fileCount+` `),await Xot(a,`## All tracked files `);let s=Array.from(n.values()),c=500;for(let l=0;l`- ${d.uri.fsPath}`).join(` `)+` `)}})})),r}async function Xot(t,e){await t.edit(n=>{n.insert(t.document.lineAt(t.document.lineCount-1).range.end,e)})}function LUr(t){let e;return async()=>{if(e)return e;let n=t();e=n;try{return await n}finally{e=void 0}}}var pp=O(Lt()),tat=O(require("vscode"));wr();Ar();Ue();var KXt="_copilot.workspaceIndex.signInAgain";var FUr="$(loading~spin)",QUr=pp.t`Workspace Index`,efe=class extends fe{constructor(n,r,o){super();this._codeSearchAuthService=r;this._logService=o;this.currentUpdateRequestId=0;this._statusReporter=n,this._statusItem=this._register(tat.window.createChatStatusItem("copilot.workspaceIndexStatus")),this._statusItem.title=QUr,this._register(this._statusReporter.onDidChangeIndexState(()=>this._updateStatusItem())),this._register(this.registerCommands()),this._writeStatusItem({title:{title:pp.t`Checking index status`,learnMoreLink:"https://aka.ms/copilot-chat-workspace-remote-index",busy:!0},details:void 0}),this._updateStatusItem()}async _updateStatusItem(){let n=++this.currentUpdateRequestId;this._logService.trace(`ChatStatusWorkspaceIndexingStatus::updateStatusItem(id=${n}): starting`);let r=await this._statusReporter.getIndexState();if(n!==this.currentUpdateRequestId){this._logService.trace(`ChatStatusWorkspaceIndexingStatus::updateStatusItem(id=${n}): skipping`);return}let o=Object.freeze({title:(0,pp.t)("Codebase index ready"),learnMoreLink:"https://aka.ms/vscode-copilot-workspace-remote-index"});switch(r.remoteIndexState.status){case"initializing":return this._writeStatusItem({title:{title:(0,pp.t)("Codebase index"),learnMoreLink:"https://aka.ms/vscode-copilot-workspace-remote-index"},details:{message:(0,pp.t)("Discovering repos"),busy:!0}});case"loaded":{if(r.remoteIndexState.repos.length>0&&r.remoteIndexState.repos.some(a=>a.status==="CheckingStatus"||a.status==="Resolving"))return this._writeStatusItem({title:{title:(0,pp.t)("Codebase index"),learnMoreLink:"https://aka.ms/vscode-copilot-workspace-remote-index"},details:{message:(0,pp.t)("Checking status"),busy:!0}});if(r.remoteIndexState.repos.some(a=>a.status==="BuildingIndex"))return this._writeStatusItem({title:o,details:{message:(0,pp.t)("Building"),busy:!0}});{let a=r.remoteIndexState.repos.filter(c=>c.status==="Ready"),s=r.remoteIndexState.repos.filter(c=>c.status==="CouldNotCheckIndexStatus"||c.status==="NotAuthorized");if(s.length>0){let c=s[0].remoteInfo;return this._writeStatusItem({title:{title:a.length?(0,pp.t)("{0} repos with indexes",a.length):(0,pp.t)("Codebase index unavailable"),learnMoreLink:"https://aka.ms/vscode-copilot-workspace-remote-index"},details:{message:a.length?(0,pp.t)(`[Try re-authenticating for {0} additional repos](${fW(KXt,[c])} "${(0,pp.t)("Try signing in again to access the remote workspace index")}")`,s.length):(0,pp.t)(`[Try re-authenticating](${fW(KXt,[c])} "${(0,pp.t)("Try signing in again to access the remote workspace index ")}")`),busy:!1}})}}if(r.remoteIndexState.repos.some(a=>a.status==="NotYetIndexed"))return n!==this.currentUpdateRequestId?void 0:this._writeStatusItem({title:{title:r.remoteIndexState.repos.every(a=>a.status==="NotYetIndexed")?(0,pp.t)("Codebase index not yet built"):(0,pp.t)("Codebase index not yet built for a repo in the workspace"),learnMoreLink:"https://aka.ms/vscode-copilot-workspace-remote-index"},details:{message:`[${pp.t`Build index`}](command:${eat} "${(0,pp.t)("Build Codebase Index")}")`,busy:!1}});if(r.remoteIndexState.externalIngestState?.status==="Ready")return this._writeStatusItem({title:o,details:void 0});if(r.remoteIndexState.externalIngestState?.status==="BuildingIndex")return this._writeStatusItem({title:o,details:{message:r.remoteIndexState.externalIngestState.progressMessage||(0,pp.t)("Building"),busy:!0}});if(typeof r.remoteIndexState.externalIngestState<"u")return this._writeStatusItem({title:{title:(0,pp.t)("Codebase index out of date"),learnMoreLink:"https://aka.ms/vscode-copilot-workspace-remote-index"},details:{message:`[${pp.t`Update index`}](command:${eat} "${(0,pp.t)("Build Codebase Index")}")`,busy:!1}});break}case"disabled":break}this._writeStatusItem({title:{title:(0,pp.t)("Codebase index not available"),learnMoreLink:"https://aka.ms/vscode-copilot-workspace-remote-index"},details:void 0})}_writeStatusItem(n){if(this._logService.trace("ChatStatusWorkspaceIndexingStatus::_writeStatusItem()"),!n){this._statusItem.hide();return}this._statusItem.show(),this._statusItem.title={label:QUr,link:n.title.learnMoreLink},this._statusItem.description=er([n.title.title,n.title.busy?FUr:void 0]).join(" "),n.details?this._statusItem.detail=er([n.details.message,n.details.busy?FUr:void 0]).join(" "):this._statusItem.detail=""}registerCommands(){let n=new it;return n.add(tat.commands.registerCommand(KXt,async r=>{if(r)return this._codeSearchAuthService.tryReauthenticating(r)})),n}};efe=S([b(0,S_),b(1,E8),b(2,Z)],efe);function wIa(t){let e=t.get(j),n=new it;return n.add(e.createInstance(efe)),n.add(MUr(t)),n}var sat=require("fs/promises"),mp=O(require("vscode")),zUr=require("vscode");IO();yr();Ue();es();sr();So();var nat=class{static parse(e){let n=[],r=e.split(` `),o=0;for(let a of r)o++,a.trim().length!==0&&n.push(JSON.parse(a));return n}static toString(e){let n=[];for(let r of e)n.push(JSON.stringify(r));return n.join(` `)}};Be();var rat=me("IWorkspaceListenerService");var tfe=O(require("vscode"));var iat=class t{constructor(){this._visibleTextEditors=To(this,e=>tfe.window.onDidChangeVisibleTextEditors(e),()=>tfe.window.visibleTextEditors);this.visibleTextEditors=qd(this,this._visibleTextEditors,e=>new XXt(e));this._visibleTextEditorsMap=jc(this,e=>new Map(this.visibleTextEditors.read(e).map(n=>[n.editor,n])));this._activeTextEditor=To(this,e=>tfe.window.onDidChangeActiveTextEditor(e),()=>tfe.window.activeTextEditor);this.activeTextEditor=jc(this,e=>{let n=this._activeTextEditor.read(e);if(n)return this._visibleTextEditorsMap.read(e).get(n)})}static{this.instance=new t}},XXt=class{constructor(e){this.editor=e;this.selection=To(this,e=>tfe.window.onDidChangeTextEditorSelection(e),()=>this.editor.selections)}};function OUr(t,e){let n=e.offsetAt(t.start),r=e.offsetAt(t.end);return new dt(n,r)}var aat=require("fs/promises"),$Ur=require("vscode");dn();En();Ue();sr();var UUr=O(require("crypto"));function qUr(t){let e=UUr.createHash("sha256");return e.update(t,"utf8"),e.digest("base64").substring(0,24)}var oat=class extends fe{constructor(n,r,o){super();this.repoRootUri=n;this.recordingDirPath=r;this._context=o;this._queue=new Ix;this.logFilePath=zr(this.recordingDirPath,"current.workspaceRecording.jsonl");this._impl=een.create(this.repoRootUri,this.recordingDirPath,this.logFilePath,this._context)}handleOnDidOpenTextDocument(n,r,o){this._schedule(()=>this._impl.then(a=>a.handleOnDidOpenTextDocument(this._getTime(),n,r,o)))}handleOnDidCloseTextDocument(n){this._schedule(()=>this._impl.then(r=>r.handleOnDidCloseTextDocument(this._getTime(),n)))}handleOnDidShowTextDocument(n){this._schedule(()=>this._impl.then(r=>r.handleOnDidShowTextDocument(this._getTime(),n)))}handleOnDidHideTextDocument(n){this._schedule(()=>this._impl.then(r=>r.handleOnDidHideTextDocument(this._getTime(),n)))}handleOnDidChangeTextDocument(n,r,o,a){r.isEmpty()||this._schedule(()=>this._impl.then(s=>s.handleOnDidChangeTextDocument(this._getTime(),n,r,o,a)))}handleOnDidFocusedDocumentChange(n){this._schedule(()=>this._impl.then(r=>r.handleOnDidFocusedDocumentChange(this._getTime(),n)))}handleOnDidSelectionChange(n,r){this._schedule(()=>this._impl.then(o=>o.handleOnDidSelectionChange(this._getTime(),n,r)))}handleEvent(n,r){this._schedule(()=>this._impl.then(o=>o.handleEvent(n,r)))}handleDocumentEvent(n,r,o){this._schedule(()=>this._impl.then(a=>a.handleDocumentEvent(r,n,o)))}addBookmark(){this._schedule(()=>this._impl.then(n=>n.addBookmark(this._getTime())))}_schedule(n){this._queue.schedule(n)}_getTime(){return Date.now()}},een=class t extends fe{constructor(n,r,o,a,s,c){super();this.repoRootUri=n;this._state=r;this._log=o;this._context=a;this._logFileExists=s;this._revision=c;this._documentInitialTexts=new Map;this._writeQueue=new Ix;this._register(Fn(()=>{this._forceFlush()})),this._logFileExists||this._appendEntry({documentType:"workspaceRecording@1.0",kind:"header",repoRootUri:this.repoRootUri,time:Date.now(),uuid:st(),revision:this._revision}),this._appendEntry({kind:"applicationStart",time:Date.now(),commitHash:$Ur.env.appCommit})}static async create(n,r,o,a){await(0,aat.mkdir)(r,{recursive:!0});let s=4,c=await Epe.loadOrCreate(zr(r,"state.json"),{version:s,logCount:0,documents:{}}),l=!1;if((!("version"in c.value)||c.value.version!==s)&&(l=!0,c.setValue({version:s,logCount:0,documents:{}}),await c.flushAsync()),!("version"in c.value))throw new gn;let u=await Qtt(o),d=u!==void 0,m=20*(1024*1024);if(u!==void 0&&u>m&&(l=!0),d&&l){let h=function(y){return y.toISOString().replace(/:/g,"-")};var f=h;let g=new Date;await(0,aat.rename)(o,zr(r,`${c.value.logCount}.${h(g)}.workspaceRecording.jsonl`)),c.setValue({version:s,logCount:c.value.logCount+1,documents:{}}),await c.flushAsync(),d=!1}let A=new Ipe(o);return new t(n,c,A,a,d,s)}async handleOnDidOpenTextDocument(n,r,o,a){let s=this._getRelativePath(r);if(this._documentInitialTexts.has(s))throw new gn("should not happen");this._documentInitialTexts.set(s,{value:o,time:n,initialModelVersion:a})}async handleOnDidCloseTextDocument(n,r){this._documentInitialTexts.delete(this._getRelativePath(r))}async handleOnDidShowTextDocument(n,r){let o=await this._getId(r);o!==void 0&&this._appendEntry({kind:"opened",id:o,time:n})}async handleOnDidHideTextDocument(n,r){let o=await this._getId(r);o!==void 0&&this._appendEntry({kind:"closed",id:o,time:n})}async handleOnDidChangeTextDocument(n,r,o,a,s){let c=await this._getId(r);c!==void 0&&this._appendEntry({kind:"changed",id:c,time:n,edit:ltt(o),v:a,metadata:s})}async handleOnDidFocusedDocumentChange(n,r){let o=await this._getId(r);o!==void 0&&this._appendEntry({kind:"focused",id:o,time:n})}async handleOnDidSelectionChange(n,r,o){let a=await this._getId(r);a!==void 0&&this._appendEntry({kind:"selectionChanged",id:a,time:n,selection:o.map(s=>ctt(s))})}async addBookmark(n){this._appendEntry({kind:"bookmark",time:n})}async handleDocumentEvent(n,r,o){let a=await this._getId(r);a!==void 0&&this._appendEntry({kind:"documentEvent",id:a,time:n,data:o})}async handleEvent(n,r){this._appendEntry({kind:"event",time:n,data:r})}_getRelativePath(n){return va(this.repoRootUri,n)}async _getId(n){if(await this._context.isIgnoredDocument(n))return;let r=this._getRelativePath(n),o=this._state,a=o.value,s=!1,c=a.documents[r];c||(c={id:Object.entries(a.documents).length,lastHash:""},this._appendEntry({kind:"documentEncountered",time:Date.now(),id:c.id,relativePath:r}),s=!0);let l=this._documentInitialTexts.get(r);if(l!==void 0){let u=qUr(l.value),d=l.initialModelVersion===0?void 0:l.initialModelVersion;c.lastHash!==u?(c.lastHash=u,s=!0,this._appendEntry({kind:"setContent",time:l.time,id:c.id,content:l.value,v:d}),this._appendEntry({kind:"storeContent",time:l.time,id:c.id,contentId:u,v:d})):this._appendEntry({kind:"restoreContent",time:l.time,id:c.id,contentId:u,v:d}),this._documentInitialTexts.delete(r)}if(s&&(o.setValue({...o.value,documents:{...a.documents,[r]:c}}),this._scheduleFlush()),c.lastHash==="")throw new gn(`hash was empty for uri "${n}"`);return c.id}_scheduleFlush(){this._writeQueue.clearPending(),this._writeQueue.schedule(async()=>{await vo(10*1e3),await this._state.flushAsync(),await this._log.flushAsync()})}_forceFlush(){this._writeQueue.clearPending(),this._state.flushSync(),this._log.flushSync()}_appendEntry(n){this._log.appendEntry(n),this._scheduleFlush()}};var nfe=class extends fe{constructor(n,r,o,a){super();this._vscodeExtensionContext=n;this._configurationService=r;this._gitExtensionService=o;this._workspaceListenerService=a;this._gitApi=To(this,n=>this._gitExtensionService.onDidChange(n),()=>this._gitExtensionService.getExtensionApi());this._workspaceRecordingEnabled=this._configurationService.getConfigObservable(H.Advanced.WorkspaceRecordingEnabled);this._register(xS((s,c)=>{this._workspaceRecordingEnabled.read(s)&&this.init(c)}))}async init(n){let r=await tw(this._gitApi),o=To(this,l=>r.onDidOpenRepository(l),()=>r.repositories);await tw(o,l=>l.length>0,void 0,tR(n));let a=zr(this._vscodeExtensionContext.globalStorageUri.fsPath,"workspaceRecordings");await(0,sat.mkdir)(a,{recursive:!0});let s=await Mtt.readOrCreate(zr(a,"workspaces.json"),{workspaceIdxByRoot:{}});if(n.isDisposed)return;let c=new ten(r,a,s,this._workspaceListenerService);n.add(c)}};nfe=S([b(0,ut),b(1,be),b(2,is),b(3,rat)],nfe);var ten=class extends fe{constructor(n,r,o,a){super();this.gitApi=n;this.recordingDirPath=r;this.workspacesIndexFile=o;this.workspaceListenerService=a;this._logProvider=new CAe("copilotLogProvider");this.recorders=new Map;this.recordersChangedSignal=sQe(this);this.hasWorkspace=jc(this,n=>(this.recordersChangedSignal.read(n),[...this.recorders].length>0));let s="vscodeCopilot.openRecordingFolder";this._register(mp.commands.registerCommand(s,()=>{mp.env.openExternal(mp.Uri.file(r))}));let c="vscodeCopilot.addRecordingBookmark";this._register(mp.commands.registerCommand(c,()=>{for(let p of this.recorders.values())p.addBookmark();mp.window.showInformationMessage("Bookmark added to recording.")}));let l=this._logProvider.createDocument("","current.recording.w.json"),u="vscodeCopilot.viewRecording";this._register(mp.commands.registerCommand(u,async()=>{let p=this.recorders.values().next().value;if(!p){mp.window.showInformationMessage("No recording found.");return}let m=await(0,sat.readFile)(p.logFilePath,"utf8"),f={log:nat.parse(m)};l.setContent(JSON.stringify(f)),await mp.commands.executeCommand("vscode.open",l.uri)})),this._register(xS((p,m)=>{if(!this.hasWorkspace.read(p))return;let A=m.add(mp.window.createStatusBarItem(mp.StatusBarAlignment.Right,1e4));A.text="$(record) Rec";let f=[];f.push("## $(record) Recording Workspace Changes"),f.push("All recordings are stored locally and not uploaded."),f.push("$(chevron-right) Click status bar entry to add a bookmark"),f.push(`[$(chevron-right) Open local recording folder](command:${s})`),f.push(`[$(chevron-right) View recording](command:${u})`);let g=new mp.MarkdownString(f.join(` `));g.isTrusted=!0,g.supportThemeIcons=!0,A.tooltip=g,A.color="yellow",A.show(),A.command={command:c,title:"Add bookmark"}})),this._register(mp.workspace.onDidOpenTextDocument(p=>{let m=_Pe(p),A=this.getWorkspaceRecorder(m);A&&A.handleOnDidOpenTextDocument(m,p.getText(),p.version)})),this._register(mp.workspace.onDidOpenNotebookDocument(async p=>{let m=p.uri.toString(),A=this.getWorkspaceRecorder(m);A&&(A.handleOnDidOpenTextDocument(m,ebn(p,{cell_uri_fragment:!0}),p.version),A.handleDocumentEvent(m,Date.now(),p.version))})),this._register(this.workspaceListenerService.onStructuredData(p=>{if("modelUri"in p){let m=p.modelUri.toString(),A=this.getWorkspaceRecorder(m);A&&A.handleDocumentEvent(m,p.time,{...p,time:void 0,modelUri:void 0,modelVersion:void 0,v:p.modelVersion})}else{let m=this.recorders.values().next().value;m&&m.handleEvent(p.time,{...p,time:void 0})}})),this._register(mp.workspace.onDidChangeTextDocument(p=>{let m=_Pe(p.document),A=this.getWorkspaceRecorder(m);if(A){let f=hue(p.contentChanges);A.handleOnDidChangeTextDocument(m,f,p.document.version,p.detailedReason?.metadata)}})),this._register(mp.workspace.onDidCloseTextDocument(p=>{let m=_Pe(p);this.getWorkspaceRecorder(m)?.handleOnDidCloseTextDocument(m)}));for(let p of mp.workspace.textDocuments){let m=_Pe(p),A=this.getWorkspaceRecorder(m);A&&A.handleOnDidOpenTextDocument(m,p.getText(),p.version)}let d=new iat;this._register(xS((p,m)=>{let A=d.activeTextEditor.read(p);if(!A)return;let f=_Pe(A.editor.document),g=this.getWorkspaceRecorder(f);g&&(g.handleOnDidFocusedDocumentChange(f),m.add(fo(h=>{let v=A.selection.read(h).map(_=>OUr(_,A.editor.document));g.handleOnDidSelectionChange(f,v)})))}))}getWorkspaceRepository(n){return process.platform==="win32"?this.gitApi.repositories.find(r=>t0e(n,r.rootUri.toString())):this.gitApi.repositories.find(r=>n.startsWith(r.rootUri.toString()))}getWorkspaceRecorder(n){let r=this.getWorkspaceRepository(n),o=r?.rootUri.toString();if(!o)return;let a=o.toLowerCase(),s=this.recorders.get(a);if(!s){let c=this.workspacesIndexFile.value.workspaceIdxByRoot,l=c[a];l===void 0&&(l=Object.entries(c).length,c={...c,[a]:l},this.workspacesIndexFile.setValue({workspaceIdxByRoot:c}));let u=new ype(async m=>{let A=await r.checkIgnore(m);return m.map(f=>A.has(f))},1e3),d=new e0(async m=>{let A=zUr.Uri.parse(m).fsPath;return await u.request(A)}),p=xIa(dr(a))+"-"+l;s=new oat(o,zr(this.recordingDirPath,p),{isIgnoredDocument:m=>d.get(m)}),this._register(s),this.recorders.set(a,s),this.recordersChangedSignal.trigger(void 0)}return s}};function xIa(t){return t.replaceAll(/[^a-zA-Z0-9_.-]/g,"")}function _Pe(t){if(t.uri.scheme===Rt.vscodeNotebookCell){let e=Jo(t.uri,mp.workspace.notebookDocuments);if(!e)throw new Error("No notebook document found for cell");return e.uri.with({fragment:t.uri.fragment}).toString()}return t.uri.toString()}var rfe=class{constructor(e,n,r){let o=n.getConfig(H.Enable),a="*"in o?o["*"]:!0,s=n.isConfigured(H.Enable),c=n.getExperimentBasedConfig(H.InlineEditsEnabled,r),l=n.isConfigured(H.InlineEditsEnabled);e.sendMSFTTelemetryEvent("nesStatusOnActivation",{},{isCompletionsEnabled:cat(a),isCompletionsUserConfigured:cat(s),isNesEnabled:cat(c),isNesUserConfigured:cat(l)})}};rfe=S([b(0,Ee),b(1,be),b(2,Fe)],rfe);function cat(t){return t?1:0}var nen={};Se(nen,{create:()=>EIa});var TY=require("vscode");Ue();function EIa(t){let e=new it;return e.add(IIa(t)),e}function IIa(t){return TY.Disposable.from(TY.commands.registerCommand("github.copilot.chat.attachFile",()=>TY.commands.executeCommand("workbench.action.chat.attachFile")),TY.commands.registerCommand("github.copilot.chat.attachSelection",()=>TY.commands.executeCommand("workbench.action.chat.attachSelection")))}var ife=class{constructor(e){this.telemetryService=e;e.sendGHTelemetryEvent("extension.activate")}dispose(){this.telemetryService.sendGHTelemetryEvent("extension.deactivate")}};ife=S([b(0,Ee)],ife);var jUr=require("vscode");Ue();var ofe=class extends fe{constructor(n,r){super();this._telemetryService=n;this._gitService=r;let o=jUr.env.getDataChannel("editTelemetry");this._register(o.onDidReceiveData(a=>{let s=this._gitService.activeRepository.get(),c=s?gR(s)?.id:void 0,l=kIa(a.data.data,c),{properties:u,measurements:d}=SIa(l);this._telemetryService.sendGHTelemetryEvent("vscode."+a.data.eventName,u,d)}))}};ofe=S([b(0,Ee),b(1,ei)],ofe);function kIa(t,e){return e&&(t.githubOrg=e.org,t.githubRepo=e.repo),t}function SIa(t){let e={},n={};for(let[r,o]of Object.entries(t))typeof o=="number"?n[r]=o:typeof o=="boolean"?n[r]=o?1:0:e[r]=o;return{properties:e,measurements:n}}var TIa=[ro(ife),ro(rfe),ro(ofe),nen],GUr=TIa;var HUr=[...GUr,ro(Gpe),ro(fce),ro(dee),OOt,ro(Nme),ro(Lme),ro(uAe),ro($ne),ro(oAe),ro(dAe),ro(Bte),ro(BZe),ro(DF),ro(wAe),ro(nfe),ro(xAe),ro(gce),ro(XAe),ro(aB),ro(_Ae),ro(Lne),ro(Jme),ro(fAe),ro(Bce),ro(xce),ro(Fne),ro(yAe),ro(Qse),JXt,ro(Lse),ro(Rce),ro(lAe)],XXn=[ro(GWe),ro(Wme),ro(cAe),ro(WAe),ro(Cce),ro(Use),ro(AAe),ro(bce),ro(IAe),ro(jpe),ro(Dce),ro(Dne),ro(cq),ro(kce),ro(uee),C9t,ro(oB),ro(Nne)];var fsi=O(require("os")),cpn=O(require("path")),fO=require("vscode");var afe=class extends e9{constructor(n,r,o,a,s){super(r,o,a,s);this.tokenProvider=n;let c=this;this._anyGitHubSession=n?{get id(){return c.tokenProvider()},get accessToken(){return c.tokenProvider()},scopes:ive,account:{id:"user",label:"User"}}:void 0,this._permissiveGitHubSession=n?{get id(){return c.tokenProvider()},get accessToken(){return c.tokenProvider()},scopes:HX,account:{id:"user",label:"User"}}:void 0}async getGitHubSession(n,r){if(n==="permissive"){if(this.isMinimalMode){if(r.createIfNone||r.forceNewSession)throw new t9;return}return this._permissiveGitHubSession}else return this._anyGitHubSession}async getCopilotToken(n){return await super.getCopilotToken(n)}setCopilotToken(n){this._tokenStore.copilotToken=n,this.fireAuthenticationChange("setCopilotToken")}getAnyAdoSession(n){return Promise.resolve(void 0)}getAdoAccessTokenBase64(n){return Promise.resolve(void 0)}};afe=S([b(1,Z),b(2,sl),b(3,oL),b(4,be)],afe);var ren=require("vscode");var sfe=class extends e9{constructor(n,r,o,a,s){super(o,a,s,n);this._domainService=r;this._taskSingler=new b3;this._register(ren.authentication.onDidChangeSessions(c=>{(c.provider.id===nz(n)||c.provider.id==="microsoft")&&(this._logService.debug("Handling onDidChangeSession."),this._handleAuthChangeEvent())})),this._register(this._domainService.onDidChangeDomains(c=>{c.dotcomUrlChanged&&(this._logService.debug("Handling onDidChangeDomains."),this._handleAuthChangeEvent())})),this._handleAuthChangeEvent()}async getGitHubSession(n,r){if(n==="permissive"){let o=()=>rDn(this._configurationService,r),a=r?.createIfNone||r?.forceNewSession?await o():await this._taskSingler.getOrCreate("permissive",o);return this._permissiveGitHubSession=a,a}else{let o=()=>cUe(this._configurationService,r),a=r?.createIfNone||r?.forceNewSession?await o():await this._taskSingler.getOrCreate("any",o);return this._anyGitHubSession=a,a}}async getAnyAdoSession(n){let r="microsoft",o=["499b84ac-1321-427f-aa17-267ca6975798/.default","offline_access"],a=async()=>await ren.authentication.getSession(r,o,n),s=n?.createIfNone||n?.forceNewSession?await a():await this._taskSingler.getOrCreate("ado",a);return this._anyAdoSession=s,s}async getAdoAccessTokenBase64(n){let r=await this.getAnyAdoSession(n);return r?Buffer.from(`PAT:${r.accessToken}`,"utf8").toString("base64"):void 0}};sfe=S([b(0,be),b(1,ic),b(2,Z),b(3,sl),b(4,oL)],sfe);Je();var lat=me("IHookExecutor");Je();var cfe=me("IHooksOutputChannel");var VUr=require("child_process"),YUr=require("os");sr();Of();So();var RIa=5e3,WUr=30,lfe=class{constructor(e,n){this._logService=e;this._outputChannel=n}async executeCommand(e,n,r){this._logService.debug(`[HookExecutor] Running hook command: ${e.command}`);try{return await this._spawn(e,n,r)}catch(o){let a=o instanceof Error?o.message:String(o),s=`Hook command failed to start: ${e.command}: ${a}`;return this._logService.warn(`[HookExecutor] ${s}`),this._outputChannel.appendLine(`[HookExecutor] ${s}`),{kind:3,result:a}}}_spawn(e,n,r){let o=e.cwd?ZUr(e.cwd):(0,YUr.homedir)(),a=(0,VUr.spawn)(e.command,[],{stdio:"pipe",cwd:o,env:{...process.env,...e.env},shell:PIa()});return new Promise((s,c)=>{let l=[],u=[],d=null,p=!1,m,A,f,g=v=>{p||(f=v,a.kill("SIGTERM"),m=setTimeout(()=>{p||a.kill("SIGKILL")},RIa))},h=()=>{p=!0,m&&clearTimeout(m),clearTimeout(y),A?.dispose()};a.stdout.on("data",v=>l.push(v.toString())),a.stderr.on("data",v=>u.push(v.toString()));let y=setTimeout(()=>g("timeout"),(e.timeout??WUr)*1e3);if(r&&(A=r.onCancellationRequested(()=>g("cancelled"))),n!=null)try{a.stdin.write(JSON.stringify(n,(v,_)=>DIa(_)?ZUr(_):_))}catch{}a.stdin.end(),a.on("exit",v=>{d=v}),a.on("close",()=>{if(h(),f==="timeout"){let x=`Hook command timed out after ${e.timeout??WUr}s: ${e.command}`;this._logService.warn(`[HookExecutor] ${x}`),this._outputChannel.appendLine(`[HookExecutor] ${x}`)}else f==="cancelled"&&this._outputChannel.appendLine(`[HookExecutor] Hook command was cancelled: ${e.command}`);let v=d??1,_=l.join(""),w=iX(u.join(""));if(v===0){let x=_;if(_)try{x=JSON.parse(_)}catch{let E=`Hook command returned non-JSON output: ${e.command}`;this._logService.warn(`[HookExecutor] ${E}`),this._outputChannel.appendLine(`[HookExecutor] ${E}`)}s({kind:1,result:x,exitCode:v})}else s(v===2?{kind:2,result:w,exitCode:v}:{kind:3,result:w,exitCode:v})}),a.on("error",v=>{h(),c(v)})})}};lfe=S([b(0,Z),b(1,cfe)],lfe);function DIa(t){return typeof t=="object"&&t!==null&&"scheme"in t&&"path"in t}function ZUr(t){return"fsPath"in t&&typeof t.fsPath=="string"?t.fsPath:t.path}function PIa(){if(!qc)return!0;let t=process.env.ComSpec;if(!t||dr(t).toLowerCase()!=="cmd.exe")return!0;let e=process.env.SystemRoot||process.env.WINDIR;return e?zr(e,"System32","WindowsPowerShell","v1.0","powershell.exe"):!0}wr();dn();Ue();YJ();So();Be();var kq=class extends fe{constructor(n){super();this._maxAttempts=3;this.targetQuota=80;this.requestQueue=new yS;this._numberInFlightRequests=0;this._lastSendTime=Date.now();this._isPumping=!1;this._maxParallelChunksRequests=n.getTreatmentVariable("workspace.embeddingIndex.maxParallelChunksRequests")??8}static{this._abuseLimit=1e3/40}enqueue(n,r){let o=new no;return r.onCancellationRequested(()=>o.cancel()),this.requestQueue.push({task:n,attempt:0,deferred:o,token:r}),this.pump(),o.p}async pump(){if(!this._isPumping)try{for(this._isPumping=!0;!this.requestQueue.isEmpty();){this._rateLimitTimeout&&(await this._rateLimitTimeout,this._rateLimitTimeout=void 0);let n=Date.now()-this._lastSendTime;if(n=this._maxParallelChunksRequests){await vo(10);continue}if(this._latestRateLimitHint){let a=Date.now();if(athis.targetQuota){let a=Date.now(),s=this._latestQuotaUsed.quota-this.targetQuota,c=a-this._latestQuotaUsed.timestamp,l=2500,u=1e3,d=s/(100-this.targetQuota);d*=Math.max(1-c/l,0);let p=d*u;p>0&&await vo(Math.min(p,u))}let r=this.requestQueue.shift();if(r.token.isCancellationRequested){r.deferred.cancel();continue}this._numberInFlightRequests++,this._lastSendTime=Date.now(),r.task(r.attempt).then(a=>{if(this.updateQuotasFromResponse(a),r.token.isCancellationRequested){r.deferred.cancel();return}if(a.ok){r.deferred.complete(a);return}if(r.attempt0&&(this._rateLimitTimeout=vo(s*1e3)),this.requestQueue.unshift({task:r.task,attempt:r.attempt+1,deferred:r.deferred,token:r.token}),this.pump();return}r.deferred.complete(a)}).catch(a=>{r.deferred.error(a)}).finally(()=>{this._numberInFlightRequests--})}}finally{this._isPumping=!1}}updateQuotasFromResponse(n){let r=Date.now();try{let o=n.headers.get("x-ratelimit-remaining"),a=n.headers.get("x-ratelimit-reset");o&&a&&(this._latestRateLimitHint={timestamp:r,remaining:parseFloat(o),resetAt:parseFloat(a)*1e3});let s=n.headers.get("x-github-total-quota-used");s&&(this._latestQuotaUsed?this._latestQuotaUsed={timestamp:r,quota:parseFloat(s)}:this._latestQuotaUsed={timestamp:r,quota:parseFloat(s)})}catch(o){console.error("Error parsing rate limit headers",o)}}getRequestRetryDelay(n){try{let r=n.headers.get("retry-after");if(r){let o=parseFloat(r);if(!isNaN(o))return o}}catch{}try{let r=n.headers.get("x-ratelimit-reset");if(r){let o=parseFloat(r);if(!isNaN(o)){let a=Math.floor(Date.now()/1e3);return o-a}}}catch{}return n.status===408?.25:2}};kq=S([b(0,Fe)],kq);var ufe=class extends fe{constructor(n,r,o,a,s){super();this._instantiationService=n;this._envService=r;this._logService=o;this._telemetryService=a;this._workspaceService=s;this._requestLimiter=this._register(this._instantiationService.createInstance(kq))}computeChunks(n,r,o,a,s,c,l,u){return this.doComputeChunksAndEmbeddings(n,r,o,a,{qos:s,computeEmbeddings:!1},c,l,u)}async computeChunksAndEmbeddings(n,r,o,a,s,c,l,u){return await this.doComputeChunksAndEmbeddings(n,r,o,a,{qos:s,computeEmbeddings:!0},c,l,u)}async doComputeChunksAndEmbeddings(n,r,o,a,s,c,l,u){let d=await qt(o.getText(),u);if(t0(d))return[];try{let p=async f=>Xd(this._logService,`ChunksEndpointEmbeddingComputer.fetchChunksRequest(${o.uri}, attempt=${f})`,()=>this._instantiationService.invokeFunction(fw,{endpointOrUrl:{type:qn.Chunks},secretKey:n,intent:"copilot-panel",requestId:"",body:{embed:s.computeEmbeddings,qos:s.qos,content:d,path:jv(this._workspaceService,o.uri),local_hashes:c?Array.from(c.keys()):[],language_id:o.githubLanguageId,embedding_model:r.id},additionalHeaders:k_(l,this._envService),cancelToken:u}));a.recomputedFileCount++,a.sentContentTextLength+=d.length;let m=await qt(this._requestLimiter.enqueue(p,u),u);if(!m.ok){this._logService.debug(`Error chunking '${o.uri}'. Status: ${m.status}. Status Text: ${m.statusText}.`),this._telemetryService.sendMSFTTelemetryEvent("workspaceChunkEmbeddingsIndex.computeChunksAndEmbeddings.error",{source:l.toString()},{responseStatus:m.status});return}let A=await m.json();return A.chunks.length?er(A.chunks.map(f=>{let g=new zt(f.line_range.start,0,f.line_range.end,0),h=c?.get(f.hash);if(h)return{chunk:{file:o.uri,text:Q4(h.chunk.text),rawText:void 0,range:g,isFullFile:h.chunk.isFullFile},chunkHash:f.hash,embedding:h.embedding};if(typeof f.text!="string")return;let y;if(f.embedding?.embedding){let v=new eo(A.embedding_model);if(!v.equals(r))throw new Error(`Unexpected embedding model. Got: ${v}. Expected: ${r}`);y={type:v,value:f.embedding.embedding}}if(!(s.computeEmbeddings&&!y))return{chunk:{file:o.uri,text:Q4(f.text),rawText:void 0,range:g,isFullFile:!1},chunkHash:f.hash,embedding:y}})):[]}catch(p){this._logService.error(p);return}}};ufe=S([b(0,j),b(1,Zt),b(2,Z),b(3,Ee),b(4,Te)],ufe);Je();var KUr=me("INaiveChunkingService"),dfe=class{constructor(e){this.tokenizerProvider=e;this.naiveChunkers=new Map}async chunkFile(e,n,r,o,a){let s=o?.maxTokenLength??Qxe,c=await this.getNaiveChunker(e).chunkFile(n,r,{maxTokenLength:s},a);return o?.validateChunkLengths&&await this.validateChunkLengths(c,s,e),c.filter(l=>l.text)}getNaiveChunker(e){let n=this.naiveChunkers.get(e.tokenizer);if(n)return n;let r=new Mie(e,this.tokenizerProvider);return this.naiveChunkers.set(e.tokenizer,r),r}async validateChunkLengths(e,n,r){for(let o of e){let a=await this.tokenizerProvider.acquireTokenizer(r).tokenLength(o.text);a>n*1.2&&console.warn("Produced chunk that is over length limit",{file:o.file+"",range:o.range,chunkTokenLength:a,maxLength:n})}}};dfe=S([b(0,cl)],dfe);iu();sr();var eqr=require("fs");async function JUr(t,e,n){return NIa(t,e,n)}function NIa(t,e,n){let r=t.split(/\r\n|\r|\n/),o=e.split(/\r\n|\r|\n/),s=new Ppe().computeDiff(r,o,n),c=s.changes.length>0?!1:t===e;function l(u){return u.map(d=>[d.original.startLineNumber,d.original.endLineNumberExclusive,d.modified.startLineNumber,d.modified.endLineNumberExclusive,d.innerChanges?.map(p=>[p.originalRange.startLineNumber,p.originalRange.startColumn,p.originalRange.endLineNumber,p.originalRange.endColumn,p.modifiedRange.startLineNumber,p.modifiedRange.startColumn,p.modifiedRange.endLineNumber,p.modifiedRange.endColumn])])}return{identical:c,quitEarly:s.hitTimeout,changes:l(s.changes),moves:s.moves.map(u=>[u.lineRangeMapping.original.startLineNumber,u.lineRangeMapping.original.endLineNumberExclusive,u.lineRangeMapping.modified.startLineNumber,u.lineRangeMapping.modified.endLineNumberExclusive,l(u.changes)])}}var uat=class{constructor(e=!0){this._useWorker=e;this._worker=new Wr(()=>{let n=MIa([zr(__dirname,"diffWorker.js"),zr(__dirname,"../../../../dist/diffWorker.js")]);if(n===void 0)throw new Error("DiffServiceImpl: worker file not found");return new SL(n,{name:"Diff worker"})})}dispose(){this._worker.rawValue?.terminate()}async computeDiff(e,n,r){let o=this._useWorker?await this._worker.value.proxy.computeDiff(e,n,r):await JUr(e,n,r);return{identical:o.identical,quitEarly:o.quitEarly,changes:XUr(o.changes),moves:o.moves.map(s=>new Spe(new Ik(new mi(s[0],s[1]),new mi(s[2],s[3])),XUr(s[4])))}}};function XUr(t){return t.map(e=>new uU(new mi(e[0],e[1]),new mi(e[2],e[3]),e[4]?.map(n=>new bC(new zt(n[0],n[1],n[2],n[3]),new zt(n[4],n[5],n[6],n[7])))))}function MIa(t){for(let e of t)if((0,eqr.existsSync)(e))return e}var pfe=class extends f9e{constructor(e,n){super(process.env.HMAC_SECRET,process.env.VSCODE_COPILOT_INTEGRATION_ID,e,n)}};pfe=S([b(0,nr),b(1,Zt)],pfe);Ar();Ue();var tqr="github-enterprise.uri",mfe=class extends fe{constructor(n,r,o){super();this._configurationService=n;this._tokenStore=r;this._capiClientService=o;this._onDidChangeDomains=this._register(new lt);this.onDidChangeDomains=this._onDidChangeDomains.event;this._register(this._configurationService.onDidChangeConfiguration(a=>this._onDidConfigChangeHandler(a))),this._processCopilotToken(this._tokenStore.copilotToken),this._register(this._tokenStore.onDidStoreUpdate(()=>this._processCopilotToken(this._tokenStore.copilotToken)))}_onDidConfigChangeHandler(n){(n.affectsConfiguration(`${Sb}.advanced`)||n.affectsConfiguration(tqr))&&this._processCAPIModuleChange(this._tokenStore.copilotToken)}_processCAPIModuleChange(n){let r=this._configurationService.getConfig(H.Shared.DebugOverrideCAPIUrl);r&&r.endsWith("/")&&(r=r.slice(0,-1));let o=this._configurationService.getConfig(H.Shared.DebugOverrideProxyUrl);o&&(o=o.replace(/\/$/,""));let a=this._configurationService.getConfig(H.Shared.AuthProvider)==="github-enterprise"?this._configurationService.getNonExtensionConfig(tqr):void 0,s={endpoints:{api:r||n?.endpoints?.api,proxy:o||n?.endpoints?.proxy,telemetry:n?.endpoints?.telemetry,"origin-tracker":n?.endpoints?.["origin-tracker"]},sku:n?.sku||"unknown"},c=this._capiClientService.updateDomains(s,a);(c.capiUrlChanged||c.proxyUrlChanged||c.telemetryUrlChanged||c.dotcomUrlChanged)&&this._onDidChangeDomains.fire({capiUrlChanged:c.capiUrlChanged,telemetryUrlChanged:c.telemetryUrlChanged,proxyUrlChanged:c.proxyUrlChanged,dotcomUrlChanged:c.dotcomUrlChanged})}_processCopilotToken(n){this._processCAPIModuleChange(n)}};mfe=S([b(0,be),b(1,sl),b(2,Mr)],mfe);var nqr=O(require("os"));var $A=O(require("vscode"));Of();var Afe=class{get extensionId(){return`${rd.publisher}.${rd.name}`.toLowerCase()}get sessionId(){return $A.env.sessionId}get machineId(){return $A.env.machineId}get devDeviceId(){return $A.env.devDeviceId}get vscodeVersion(){return $A.version}get remoteName(){return $A.env.remoteName}get uiKind(){switch($A.env.uiKind){case $A.UIKind.Desktop:return"desktop";case $A.UIKind.Web:return"web"}}get isActive(){return $A.window.state.active}get onDidChangeWindowState(){return $A.window.onDidChangeWindowState}get OS(){switch(gFe){case 3:return"Windows";case 1:return"Mac";case 2:return"Linux";default:return"Linux"}}get language(){return $A.env.language}get uriScheme(){return $A.env.uriScheme}get appRoot(){return $A.env.appRoot}get shell(){return $A.env.shell}isProduction(){return cX}isPreRelease(){return JN}isSimulation(){return!1}getBuildType(){return rd.buildType}getVersion(){return rd.version}getBuild(){return rd.build}getName(){return rd.name}getEditorInfo(){return new l0e("vscode",$A.version)}getEditorPluginInfo(){return new l0e("copilot-chat",rd.version)}openExternal(e){return new Promise((n,r)=>$A.env.openExternal(e).then(n,r))}};Ot();var dat=class extends Afe{get userHome(){return K.file(nqr.homedir())}};var Sq=O(require("vscode")),rqr=require("child_process"),iqr=require("util"),oqr=require("vscode");wr();dn();IO();yr();Ar();Ue();sr();fr();Ot();var FIa=(0,iqr.promisify)(rqr.execFile),jk=class extends fe{constructor(n,r){super();this.gitExtensionService=n;this.logService=r;this.activeRepository=Od(this,void 0);this._getRepositorySequencer=new aX;this._onDidOpenRepository=new lt;this.onDidOpenRepository=this._onDidOpenRepository.event;this._onDidCloseRepository=new lt;this.onDidCloseRepository=this._onDidCloseRepository.event;this._onDidFinishInitialRepositoryDiscovery=new lt;this.onDidFinishInitialization=this._onDidFinishInitialRepositoryDiscovery.event;this._isInitialized=Od(this,!1);this._register(this._onDidOpenRepository),this._register(this._onDidCloseRepository),this._register(this._onDidFinishInitialRepositoryDiscovery);let o=this.gitExtensionService.getExtensionApi();o?this.registerGitAPIListeners(o):this._register(this.gitExtensionService.onDidChange(a=>{if(a.enabled){let s=this.gitExtensionService.getExtensionApi();if(s){this.registerGitAPIListeners(s);return}}this._onDidFinishInitialRepositoryDiscovery.fire()}))}registerGitAPIListeners(n){this._register(n.onDidOpenRepository(o=>this.doOpenRepository(o))),this._register(n.onDidCloseRepository(o=>this.doCloseRepository(o)));for(let o of n.repositories)this.doOpenRepository(o);let r=To(this,n.onDidChangeState,()=>n.state);this._register(fo(async o=>{r.read(o)==="initialized"&&(await Promise.all(n.repositories.map(s=>{let c=To(this,s.state.onDidChange,()=>s.state.HEAD);return tw(c,l=>l!==void 0,void 0,tR(this._store))})),this._isInitialized.set(!0,void 0),this._onDidFinishInitialRepositoryDiscovery.fire(),this.logService.trace(`[GitServiceImpl] Initial repository discovery finished: ${this.repositories.length} repositories found.`))}))}get isInitialized(){return this._isInitialized.get()}getRecentRepositories(){let n=this.gitExtensionService.getExtensionApi();return n?n.recentRepositories:[]}async getRepository(n,r=!0){let o=await this._getRepository(n,r);if(o)return await this.waitForRepositoryState(o),jk.repoToRepoContext(o)}async getRepositoryState(n,r=!0){let o=await this._getRepository(n,r);if(o)return await this.waitForRepositoryState(o),o.state}async _getRepository(n,r=!0){return this._getRepositorySequencer.queue(async()=>{let o=this.gitExtensionService.getExtensionApi();if(!o)return;n instanceof Sq.Uri||(n=Sq.Uri.parse(n.toString())),await this.initialize();let a=o.getRepository(n);if(a)return a;if(r&&(a=await o.openRepository(n),!!a))return a})}async getRepositoryFetchUrls(n){this.logService.trace(`[GitServiceImpl][getRepositoryFetchUrls] URI: ${n.toString()}`);let r=this.gitExtensionService.getExtensionApi();if(!r)return;let o=r.getRepository(n);if(o){await this.waitForRepositoryState(o);let a={rootUri:o.rootUri,remoteFetchUrls:o.state.remotes.map(s=>s.fetchUrl)};return this.logService.trace(`[GitServiceImpl][getRepositoryFetchUrls] Remotes (open repository): ${JSON.stringify(a)}`),a}try{(await Sq.workspace.fs.stat(n)).type!==Sq.FileType.Directory&&(n=K.file(nu(n.fsPath)));let s=await r.getRepositoryRoot(n);if(!s){this.logService.trace("[GitServiceImpl][getRepositoryFetchUrls] No repository root found");return}this.logService.trace(`[GitServiceImpl][getRepositoryFetchUrls] Repository root: ${s.toString()}`);let c=await Sq.workspace.fs.readFile(K.file(zr(s.fsPath,".git","config"))),l={rootUri:s,remoteFetchUrls:EJn(c.toString()).map(u=>u.fetchUrl)};return this.logService.trace(`[GitServiceImpl][getRepositoryFetchUrls] Remotes (.git/config): ${JSON.stringify(l)}`),l}catch(a){this.logService.error(`[GitServiceImpl][getRepositoryFetchUrls] Failed to read remotes from .git/config: ${a.message}`);return}}async add(n,r){await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.add(r)}async restore(n,r,o){await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.restore(r,o)}async log(n,r){let o=this.gitExtensionService.getExtensionApi();if(!o)return;let a=o.getRepository(n);if(a)return a.log(r)}async diffBetween(n,r,o){return this.gitExtensionService.getExtensionApi()?.getRepository(n)?.diffBetween(r,o)}async diffBetweenPatch(n,r,o,a){return this.gitExtensionService.getExtensionApi()?.getRepository(n)?.diffBetweenPatch(r,o,a)}async diffBetweenWithStats(n,r,o,a){return await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.diffBetweenWithStats(r,o,a)}async diffBetweenWithStats2(n,r,o){return await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.diffBetweenWithStats2(r,o)}async diffWith(n,r){return this.gitExtensionService.getExtensionApi()?.getRepository(n)?.diffWith(r)}async diffIndexWithHEADShortStats(n){let o=this.gitExtensionService.getExtensionApi()?.getRepository(n);if(o?.diffIndexWithHEADShortStats)return await o?.diffIndexWithHEADShortStats(n.fsPath)}async fetch(n,r,o,a){return this.gitExtensionService.getExtensionApi()?.getRepository(n)?.fetch(r,o,a)}async getMergeBase(n,r,o){return this.gitExtensionService.getExtensionApi()?.getRepository(n)?.getMergeBase(r,o)}async commit(n,r,o){let s=this.gitExtensionService.getExtensionApi()?.getRepository(n);s&&await s.commit(r,o)}async applyPatch(n,r){return await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.apply(r,!1)}async checkout(n,r){await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.checkout(r)}async merge(n,r){await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.merge(r)}async push(n){await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.push()}async rebase(n,r){try{await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.rebase(r)}catch(o){this.logService.error(`[GitServiceImpl][rebase] Failed to rebase ${n.toString()} on ${r}: ${o.message}`)}}async createWorktree(n,r){return await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.createWorktree(r)}async deleteWorktree(n,r,o){return await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.deleteWorktree(r,o)}async migrateChanges(n,r,o){return await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.migrateChanges(r.fsPath,o)}async getRefs(n,r,o){return await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.getRefs(r,o)??[]}async isBranchProtected(n,r){try{let a=this.gitExtensionService.getExtensionApi()?.getRepository(n);if(!a)return;let s=typeof r=="string"?await a.getBranch(r):r;return a.isBranchProtected(s)}catch(o){let a=typeof r=="string"?r:r?.name;this.logService.error(`[GitServiceImpl][isBranchProtected] Failed to check branch protection for ${n.toString()}${a?` (${a})`:""}: ${o instanceof Error?o.message:String(o)}`);return}}async generateRandomBranchName(n){try{return await this.gitExtensionService.getExtensionApi()?.getRepository(n)?.generateRandomBranchName()}catch(r){this.logService.error(`[GitServiceImpl][generateRandomBranchName] Failed to generate random branch name: ${r instanceof Error?r.message:String(r)}`);return}}async exec(n,r,o){let a=this.gitExtensionService.getExtensionApi(),s=await this.getRepository(n);if(!s)throw this.logService.error(`[GitServiceImpl][exec] No repository found for URI: ${n.toString()}`),new Error(`No repository found for URI: ${n.toString()}`);let c=a?.git.path??"git",l=Object.assign({},process.env,o,{GIT_AUTHOR_NAME:"VS Code",GIT_AUTHOR_EMAIL:"vscode@users.noreply.github.com",GIT_COMMITTER_NAME:"VS Code",GIT_COMMITTER_EMAIL:"vscode@users.noreply.github.com",LANG:"en_US.UTF-8",LANGUAGE:"en",LC_ALL:"en_US.UTF-8"}),u=performance.now();try{let d=await FIa(c,r,{cwd:s.rootUri.fsPath,encoding:"utf8",env:l});if(d.stderr)throw this.logService.error(`[GitServiceImpl][exec] git ${r.join(" ")} [${Math.round(performance.now()-u)}ms] Error: ${d.stderr}`),new Error(`Failed to execute git command (git ${r.join(" ")}). Error: ${d.stderr}`);return this.logService.trace(`[GitServiceImpl][exec] git ${r.join(" ")} [${Math.round(performance.now()-u)}ms]`),d.stdout.trim()}catch(d){let p=d instanceof Error?d.message:String(d);throw this.logService.error(`[GitServiceImpl][exec] git ${r.join(" ")} [${Math.round(performance.now()-u)}ms] Error: ${p}`),new Error(`Failed to execute git command (git ${r.join(" ")}). Error: ${p}`)}}async initialize(){this._isInitialized.get()||(await tw(this._isInitialized,n=>n,void 0,tR(this._store)),this.repositories.length>0&&await tw(this.activeRepository,n=>n!==void 0,void 0,tR(this._store)))}async doOpenRepository(n){this.logService.trace(`[GitServiceImpl][doOpenRepository] Repository: ${n.rootUri.toString()}`);let r=To(this,n.state.onDidChange,()=>n.state.HEAD);await tw(r,c=>c!==void 0,void 0,tR(this._store)),this.logService.trace(`[GitServiceImpl][doOpenRepository] Repository initialized: ${JSON.stringify(r.get())}`);let o=To(this,n.ui.onDidChange,()=>n.ui.selected),a=dQe(this,n.state.onDidChange);this._register(fo(c=>{a.read(c);let l=o.read(c),u=this.activeRepository.get();if(u&&!l&&!Un(u.rootUri,n.rootUri))return;let d=jk.repoToRepoContext(n);this.logService.trace(`[GitServiceImpl][doOpenRepository] Active repository: ${JSON.stringify(d)}`),this.activeRepository.set(d,void 0)}));let s=jk.repoToRepoContext(n);s&&this._onDidOpenRepository.fire(s)}doCloseRepository(n){this.logService.trace(`[GitServiceImpl][doCloseRepository] Repository: ${n.rootUri.toString()}`);let r=jk.repoToRepoContext(n);r&&this._onDidCloseRepository.fire(r)}async waitForRepositoryState(n){if(n.state.HEAD)return;let r=To(this,n.state.onDidChange,()=>n.state.HEAD);await tw(r,o=>o!==void 0,void 0,tR(this._store))}static repoToRepoContext(n){if(n)return new ien(n)}get repositories(){let n=this.gitExtensionService.getExtensionApi();return n?er(n.repositories.filter(r=>r.state.HEAD!==void 0).map(r=>jk.repoToRepoContext(r))):[]}};jk=S([b(0,is),b(1,Z)],jk);var ien=class{constructor(e){this._repo=e;this.rootUri=this._repo.rootUri;this.kind=this._repo.kind;this.headBranchName=this._repo.state.HEAD?.name;this.headCommitHash=this._repo.state.HEAD?.commit;this.upstreamBranchName=this._repo.state.HEAD?.upstream?.name;this.upstreamRemote=this._repo.state.HEAD?.upstream?.remote;this.isRebasing=this._repo.state.rebaseCommit!==null;this.remotes=this._repo.state.remotes.map(e=>e.name);this.remoteFetchUrls=this._repo.state.remotes.map(e=>e.fetchUrl);this.worktrees=this._repo.state.worktrees;this.changes={mergeChanges:this._repo.state.mergeChanges,indexChanges:this._repo.state.indexChanges,workingTree:this._repo.state.workingTreeChanges,untrackedChanges:this._repo.state.untrackedChanges};this._onDidChangeSignal=dQe(this,this._repo.state.onDidChange);this.headBranchNameObs=this._onDidChangeSignal.map(()=>this._repo.state.HEAD?.name);this.headCommitHashObs=this._onDidChangeSignal.map(()=>this._repo.state.HEAD?.commit);this.upstreamBranchNameObs=this._onDidChangeSignal.map(()=>this._repo.state.HEAD?.upstream?.name);this.upstreamRemoteObs=this._onDidChangeSignal.map(()=>this._repo.state.HEAD?.upstream?.remote);this.isRebasingObs=this._onDidChangeSignal.map(()=>this._repo.state.rebaseCommit!==null);this._checkIsIgnored=new ype(async e=>{let n=await this._repo.checkIgnore(e);return e.map(r=>n.has(r))},1e3);this._isIgnored=new e0(async e=>{let n=oqr.Uri.parse(e).fsPath;return await this._checkIsIgnored.request(n)})}isIgnored(e){return this._isIgnored.get(e.toString())}};var ffe=class{constructor(e,n,r,o,a){this._fetcherService=e;this._authenticationService=n;this._logService=r;this._telemetryService=o;this._capiClientService=a;this.githubRepositoryInfoCache=new Map}async _doGetRepositoryInfo(e,n){let r=this._authenticationService.permissiveGitHubSession?.accessToken??this._authenticationService.anyGitHubSession?.accessToken;return fR(this._fetcherService,this._logService,this._telemetryService,this._capiClientService.dotcomAPIURL,`repos/${e}/${n}`,"GET",r,{callSite:"github-rest-get-repo-info"})}async getRepositoryInfo(e,n){let r=this.githubRepositoryInfoCache.get(`${e}/${n}`);if(r)return r;let o=await this._doGetRepositoryInfo(e,n);if(o)return this.githubRepositoryInfoCache.set(`${e}/${n}`,o),o;throw new Error(`Failed to fetch repository info for ${e}/${n}`)}async isAvailable(e,n){try{return await this._doGetRepositoryInfo(e,n)!==void 0}catch{return!1}}async getRepositoryItems(e,n,r){let o=[];try{let a=this._authenticationService.permissiveGitHubSession?.accessToken,s=r.split("/").map(l=>encodeURIComponent(l)).join("/"),c=await fR(this._fetcherService,this._logService,this._telemetryService,this._capiClientService.dotcomAPIURL,`repos/${e}/${n}/contents/${s}`,"GET",a,{callSite:"github-rest-get-repo-items"});if(!c)return this._logService.error(`Failed to fetch contents from ${e}:${n}:${r}`),[];if(Array.isArray(c))for(let l of c)"name"in l&&"path"in l&&"type"in l&&"html_url"in l&&(o.push({name:l.name,path:l.path,type:l.type,html_url:l.html_url}),l.type==="dir"&&o.push(...await this.getRepositoryItems(e,n,l.path)))}catch{return this._logService.error(`Failed to fetch contents from ${e}:${n}:${r}`),[]}return o}async getRepositoryItemContent(e,n,r){try{let o=this._authenticationService.permissiveGitHubSession?.accessToken,a=r.split("/").map(c=>encodeURIComponent(c)).join("/"),s=await fR(this._fetcherService,this._logService,this._telemetryService,this._capiClientService.dotcomAPIURL,`repos/${e}/${n}/contents/${a}`,"GET",o,{callSite:"github-rest-get-repo-item-content"});if(!s){this._logService.error(`Failed to fetch content from ${e}:${n}:${r}`);return}if("content"in s){let c=Buffer.from(s.content,"base64");return new Uint8Array(c)}throw new Error("Unexpected data from GitHub")}catch{this._logService.error(`Failed to fetch content from ${e}:${n}:${r}`)}}};ffe=S([b(0,nr),b(1,at),b(2,Z),b(3,Ee),b(4,Mr)],ffe);var pQ=require("vscode");var sB=O(require("vscode"));var gfe=class{async stat(e){return sB.workspace.fs.stat(e)}async readDirectory(e){return sB.workspace.fs.readDirectory(e)}async createDirectory(e){return sB.workspace.fs.createDirectory(e)}async readFile(e,n){return await Hgt(this,e,n),sB.workspace.fs.readFile(e)}async writeFile(e,n){return sB.workspace.fs.writeFile(e,n)}async delete(e,n){return sB.workspace.fs.delete(e,n)}async rename(e,n,r){return sB.workspace.fs.rename(e,n,r)}async copy(e,n,r){return sB.workspace.fs.copy(e,n,r)}isWritableFileSystem(e){return!!sB.workspace.fs.isWritableFileSystem(e)}createFileSystemWatcher(e){return sB.workspace.createFileSystemWatcher(e)}};var pat=O(require("vscode"));var hfe=class extends vqe{async findTextInFiles(e,n,r,o){return await pat.workspace.findTextInFiles(e,n,a=>r.report(a),o)}findTextInFiles2(e,n,r){return pat.workspace.findTextInFiles2(e,n,r)}findFiles(e,n,r){let o=Array.isArray(e)?e:[e];return pat.workspace.findFiles2(o,n,r)}};yr();Ar();Ot();function aqr(t){if(typeof t!="string")throw new TypeError("Argument must be a string.");if(!t)return t;let e=t.startsWith("!"),n=e?t.slice(1):t,r=n,o=!1;switch(n[0]==="/"&&(o=!0,r=n.slice(1)),r[0]){case"*":n[1]!=="*"&&(r="**/"+r);break;default:if((!o&&!r.includes("/")||r.endsWith("/"))&&(r="**/"+r),r.endsWith("*")||r.endsWith("?"))break;/\.[a-z\d_-]+$/.test(r)||(r.endsWith("/")||(r+="/"),r+="**")}return e?"!"+r:r}var hqr=O(fqr());sr();So();var gat=class{constructor(){this._ignoreMap=new Map;this._ignoreCache=new Map;this._searchRankCache=null}setIgnoreFile(e,n,r){let o="";e&&(o=va(e.fsPath,nu(n.fsPath)),o.startsWith("..")&&(o="")),this._ignoreMap.set(n.fsPath,{ignore:(0,hqr.default)().add(r),patterns:kb(r).filter(a=>a.trim()&&!a.startsWith("#")).map(aqr).map(a=>o?Qi.join(o,a):a)}),this._searchRankCache=null,this._ignoreCache.clear()}removeIgnoreFile(e){this._ignoreMap.delete(e.fsPath),this._searchRankCache=null,this._ignoreCache.clear()}removeWorkspace(e){let n=0;for(let r of this._ignoreMap.keys())gqr(e.fsPath,r)&&(this._ignoreMap.delete(r),n+=1);n>0&&(this._searchRankCache=null,this._ignoreCache.clear())}asMinimatchPatterns(){return[...this._ignoreMap.values()].flatMap(e=>e.patterns)}isIgnored(e){if(this._ignoreMap.size===0)return!1;let n=e.fsPath;if(this._ignoreCache.has(n))return this._ignoreCache.get(n);let r=0,o={ignored:!1,unignored:!1};try{let a=this._searchRank;for(let s of a){r+=1;let c=nu(s),l=va(c,n);if(!l.startsWith("..")&&c!==n&&gqr(c,n)){let u=this._ignoreMap.get(s);if(!u)throw new Error(`No ignore patterns found for ${s}`);if(o=u.ignore.test(l),o.ignored||o.unignored)break}}return this._ignoreCache.set(n,o.ignored),o.ignored}catch{return!1}}get _searchRank(){if(this._searchRankCache!==null)return this._searchRankCache;let e={},n=r=>r.split(wu).length;return this._searchRankCache=[...this._ignoreMap.keys()].sort((r,o)=>(e[o]||=n(o))-(e[r]||=n(r)))}};function gqr(t,e){return t===e?!0:(t.charAt(t.length-1)!==wu&&(t+=wu),vO(e).startsWith(vO(t)))}var den=(t,e,n)=>{let r=t instanceof RegExp?bqr(t,n):t,o=e instanceof RegExp?bqr(e,n):e,a=r!==null&&o!=null&&ika(r,o,n);return a&&{start:a[0],end:a[1],pre:n.slice(0,a[0]),body:n.slice(a[0]+r.length,a[1]),post:n.slice(a[1]+o.length)}},bqr=(t,e)=>{let n=e.match(t);return n?n[0]:null},ika=(t,e,n)=>{let r,o,a,s,c,l=n.indexOf(t),u=n.indexOf(e,l+1),d=l;if(l>=0&&u>0){if(t===e)return[l,u];for(r=[],a=n.length;d>=0&&!c;){if(d===l)r.push(d),l=n.indexOf(t,d+1);else if(r.length===1){let p=r.pop();p!==void 0&&(c=[p,u])}else o=r.pop(),o!==void 0&&o=0?l:u}r.length&&s!==void 0&&(c=[a,s])}return c};var yqr="\0SLASH"+Math.random()+"\0",vqr="\0OPEN"+Math.random()+"\0",men="\0CLOSE"+Math.random()+"\0",_qr="\0COMMA"+Math.random()+"\0",Cqr="\0PERIOD"+Math.random()+"\0",oka=new RegExp(yqr,"g"),aka=new RegExp(vqr,"g"),ska=new RegExp(men,"g"),cka=new RegExp(_qr,"g"),lka=new RegExp(Cqr,"g"),uka=/\\\\/g,dka=/\\{/g,pka=/\\}/g,mka=/\\,/g,Aka=/\\./g,fka=1e5;function pen(t){return isNaN(t)?t.charCodeAt(0):parseInt(t,10)}function gka(t){return t.replace(uka,yqr).replace(dka,vqr).replace(pka,men).replace(mka,_qr).replace(Aka,Cqr)}function hka(t){return t.replace(oka,"\\").replace(aka,"{").replace(ska,"}").replace(cka,",").replace(lka,".")}function wqr(t){if(!t)return[""];let e=[],n=den("{","}",t);if(!n)return t.split(",");let{pre:r,body:o,post:a}=n,s=r.split(",");s[s.length-1]+="{"+o+"}";let c=wqr(a);return a.length&&(s[s.length-1]+=c.shift(),s.push.apply(s,c)),e.push.apply(e,s),e}function xqr(t,e={}){if(!t)return[];let{max:n=fka}=e;return t.slice(0,2)==="{}"&&(t="\\{\\}"+t.slice(2)),wPe(gka(t),n,!0).map(hka)}function bka(t){return"{"+t+"}"}function yka(t){return/^-?0\d/.test(t)}function vka(t,e){return t<=e}function _ka(t,e){return t>=e}function wPe(t,e,n){let r=[],o=den("{","}",t);if(!o)return[t];let a=o.pre,s=o.post.length?wPe(o.post,e,!1):[""];if(/\$$/.test(o.pre))for(let c=0;c=0;if(!u&&!d)return o.post.match(/,(?!,).*\}/)?(t=o.pre+"{"+o.body+men+o.post,wPe(t,e,!0)):[t];let p;if(u)p=o.body.split(/\.\./);else if(p=wqr(o.body),p.length===1&&p[0]!==void 0&&(p=wPe(p[0],e,!1).map(bka),p.length===1))return s.map(A=>o.pre+p[0]+A);let m;if(u&&p[0]!==void 0&&p[1]!==void 0){let A=pen(p[0]),f=pen(p[1]),g=Math.max(p[0].length,p[1].length),h=p.length===3&&p[2]!==void 0?Math.abs(pen(p[2])):1,y=vka;f0){let I=new Array(E+1).join("0");w<0?x="-"+I+x.slice(1):x=I+x}}m.push(x)}}else{m=[];for(let A=0;A{if(typeof t!="string")throw new TypeError("invalid pattern");if(t.length>65536)throw new TypeError("pattern is too long")};var Cka={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},EPe=t=>t.replace(/[[\]\\-]/g,"\\$&"),wka=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Eqr=t=>t.join(""),Iqr=(t,e)=>{let n=e;if(t.charAt(n)!=="[")throw new Error("not in a brace expression");let r=[],o=[],a=n+1,s=!1,c=!1,l=!1,u=!1,d=n,p="";e:for(;ap?r.push(EPe(p)+"-"+EPe(g)):g===p&&r.push(EPe(g)),p="",a++;continue}if(t.startsWith("-]",a+1)){r.push(EPe(g+"-")),a+=2;continue}if(t.startsWith("-",a+1)){p=g,a+=2;continue}r.push(EPe(g)),a++}if(dn?e?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"):e?t.replace(/\[([^\/\\{}])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,"$1$2").replace(/\\([^\/{}])/g,"$1");var RC,xka=new Set(["!","?","+","*","@"]),Aen=t=>xka.has(t),kqr=t=>Aen(t.type),Eka=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),Ika=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),kka=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),Sqr=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),Ska="(?!(?:^|/)\\.\\.?(?:$|/))",hat="(?!\\.)",Tka=new Set(["[","."]),Bka=new Set(["..","."]),Rka=new Set("().*{}+?[]^$\\!"),Dka=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),fen="[^/]",Tqr=fen+"*?",Bqr=fen+"+?",Pka=0,BY=class{type;#e;#t;#r=!1;#n=[];#o;#i;#l;#a=!1;#s;#u;#d=!1;id=++Pka;get depth(){return(this.#o?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#e.id,parent:this.#o?.id,depth:this.depth,partsLength:this.#n.length,parts:this.#n}}constructor(e,n,r={}){this.type=e,e&&(this.#t=!0),this.#o=n,this.#e=this.#o?this.#o.#e:this,this.#s=this.#e===this?r:this.#e.#s,this.#l=this.#e===this?[]:this.#e.#l,e==="!"&&!this.#e.#a&&this.#l.push(this),this.#i=this.#o?this.#o.#n.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let e of this.#n)if(typeof e!="string"&&(e.type||e.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#n.map(e=>String(e)).join("|")+")":this.#u=this.#n.map(e=>String(e)).join("")}#c(){if(this!==this.#e)throw new Error("should only call on root");if(this.#a)return this;this.toString(),this.#a=!0;let e;for(;e=this.#l.pop();){if(e.type!=="!")continue;let n=e,r=n.#o;for(;r;){for(let o=n.#i+1;!r.type&&otypeof n=="string"?n:n.toJSON()):[this.type,...this.#n.map(n=>n.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#a&&this.#o?.type==="!")&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#i===0)return!0;let e=this.#o;for(let n=0;ntypeof A!="string"),u=this.#n.map(A=>{let[f,g,h,y]=typeof A=="string"?RC.#y(A,this.#t,l):A.toRegExpSource(e);return this.#t=this.#t||h,this.#r=this.#r||y,f}).join(""),d="";if(this.isStart()&&typeof this.#n[0]=="string"&&!(this.#n.length===1&&Bka.has(this.#n[0]))){let f=Tka,g=n&&f.has(u.charAt(0))||u.startsWith("\\.")&&f.has(u.charAt(2))||u.startsWith("\\.\\.")&&f.has(u.charAt(4)),h=!n&&!e&&f.has(u.charAt(0));d=g?Ska:h?hat:""}let p="";return this.isEnd()&&this.#e.#a&&this.#o?.type==="!"&&(p="(?:$|\\/)"),[d+u+p,Tq(u),this.#t=!!this.#t,this.#r]}let r=this.type==="*"||this.type==="+",o=this.type==="!"?"(?:(?!(?:":"(?:",a=this.#E(n);if(this.isStart()&&this.isEnd()&&!a&&this.type!=="!"){let l=this.toString(),u=this;return u.#n=[l],u.type=null,u.#t=void 0,[l,Tq(this.toString()),!1,!1]}let s=!r||e||n||!hat?"":this.#E(!0);s===a&&(s=""),s&&(a=`(?:${a})(?:${s})*?`);let c="";if(this.type==="!"&&this.#d)c=(this.isStart()&&!n?hat:"")+Bqr;else{let l=this.type==="!"?"))"+(this.isStart()&&!n&&!e?hat:"")+Tqr+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&s?")":this.type==="*"&&s?")?":`)${this.type}`;c=o+a+l}return[c,Tq(a),this.#t=!!this.#t,this.#r]}#_(){if(kqr(this)){let e=0,n=!1;do{n=!0;for(let r=0;r{if(typeof n=="string")throw new Error("string type in extglob ast??");let[r,o,a,s]=n.toRegExpSource(e);return this.#r=this.#r||s,r}).filter(n=>!(this.isStart()&&this.isEnd())||!!n).join("|")}static#y(e,n,r=!1){let o=!1,a="",s=!1,c=!1;for(let l=0;ln?e?t.replace(/[?*()[\]{}]/g,"[$&]"):t.replace(/[?*()[\]\\{}]/g,"\\$&"):e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&");var qg=(t,e,n={})=>(xPe(e),!n.nocomment&&e.charAt(0)==="#"?!1:new vfe(e,n).match(t)),Nka=/^\*+([^+@!?\*\[\(]*)$/,Lka=t=>e=>!e.startsWith(".")&&e.endsWith(t),Mka=t=>e=>e.endsWith(t),Fka=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),Qka=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),Oka=/^\*+\.\*+$/,Uka=t=>!t.startsWith(".")&&t.includes("."),qka=t=>t!=="."&&t!==".."&&t.includes("."),$ka=/^\.\*+$/,zka=t=>t!=="."&&t!==".."&&t.startsWith("."),jka=/^\*+$/,Gka=t=>t.length!==0&&!t.startsWith("."),Hka=t=>t.length!==0&&t!=="."&&t!=="..",Wka=/^\?+([^+@!?\*\[\(]*)?$/,Zka=([t,e=""])=>{let n=Pqr([t]);return e?(e=e.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(e)):n},Vka=([t,e=""])=>{let n=Nqr([t]);return e?(e=e.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(e)):n},Yka=([t,e=""])=>{let n=Nqr([t]);return e?r=>n(r)&&r.endsWith(e):n},Kka=([t,e=""])=>{let n=Pqr([t]);return e?r=>n(r)&&r.endsWith(e):n},Pqr=([t])=>{let e=t.length;return n=>n.length===e&&!n.startsWith(".")},Nqr=([t])=>{let e=t.length;return n=>n.length===e&&n!=="."&&n!==".."},Lqr=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Rqr={win32:{sep:"\\"},posix:{sep:"/"}},Jka=Lqr==="win32"?Rqr.win32.sep:Rqr.posix.sep;qg.sep=Jka;var qy=Symbol("globstar **");qg.GLOBSTAR=qy;var Xka="[^/]",eSa=Xka+"*?",tSa="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",nSa="(?:(?!(?:\\/|^)\\.).)*?",rSa=(t,e={})=>n=>qg(n,t,e);qg.filter=rSa;var Gk=(t,e={})=>Object.assign({},t,e),iSa=t=>{if(!t||typeof t!="object"||!Object.keys(t).length)return qg;let e=qg;return Object.assign((r,o,a={})=>e(r,o,Gk(t,a)),{Minimatch:class extends e.Minimatch{constructor(o,a={}){super(o,Gk(t,a))}static defaults(o){return e.defaults(Gk(t,o)).Minimatch}},AST:class extends e.AST{constructor(o,a,s={}){super(o,a,Gk(t,s))}static fromGlob(o,a={}){return e.AST.fromGlob(o,Gk(t,a))}},unescape:(r,o={})=>e.unescape(r,Gk(t,o)),escape:(r,o={})=>e.escape(r,Gk(t,o)),filter:(r,o={})=>e.filter(r,Gk(t,o)),defaults:r=>e.defaults(Gk(t,r)),makeRe:(r,o={})=>e.makeRe(r,Gk(t,o)),braceExpand:(r,o={})=>e.braceExpand(r,Gk(t,o)),match:(r,o,a={})=>e.match(r,o,Gk(t,a)),sep:e.sep,GLOBSTAR:qy})};qg.defaults=iSa;var Mqr=(t,e={})=>(xPe(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:xqr(t,{max:e.braceExpandMax}));qg.braceExpand=Mqr;var oSa=(t,e={})=>new vfe(t,e).makeRe();qg.makeRe=oSa;var aSa=(t,e,n={})=>{let r=new vfe(e,n);return t=t.filter(o=>r.match(o)),r.options.nonull&&!t.length&&t.push(e),t};qg.match=aSa;var Dqr=/[?*]|[+@!]\(.*?\)|\[|\]/,sSa=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),vfe=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,n={}){xPe(e),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=e,this.platform=n.platform||Lqr,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!n.windowsPathsNoEscape||n[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!n.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!n.nonegate,this.comment=!1,this.empty=!1,this.partial=!!n.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=n.windowsNoMagicRoot!==void 0?n.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let n of e)if(typeof n!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,n=this.options;if(!n.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],n.debug&&(this.debug=(...a)=>console.error(...a)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(a=>this.slashSplit(a));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let o=this.globParts.map((a,s,c)=>{if(this.isWindows&&this.windowsNoMagicRoot){let l=a[0]===""&&a[1]===""&&(a[2]==="?"||!Dqr.test(a[2]))&&!Dqr.test(a[3]),u=/^[a-z]:/i.test(a[0]);if(l)return[...a.slice(0,4),...a.slice(4).map(d=>this.parse(d))];if(u)return[a[0],...a.slice(1).map(d=>this.parse(d))]}return a.map(l=>this.parse(l))});if(this.debug(this.pattern,o),this.set=o.filter(a=>a.indexOf(!1)===-1),this.isWindows)for(let a=0;a=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):n>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(n=>{let r=-1;for(;(r=n.indexOf("**",r+1))!==-1;){let o=r;for(;n[o+1]==="**";)o++;o!==r&&n.splice(r,o-r)}return n})}levelOneOptimize(e){return e.map(n=>(n=n.reduce((r,o)=>{let a=r[r.length-1];return o==="**"&&a==="**"?r:o===".."&&a&&a!==".."&&a!=="."&&a!=="**"?(r.pop(),r):(r.push(o),r)},[]),n.length===0?[""]:n))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let n=!1;do{if(n=!1,!this.preserveMultipleSlashes){for(let o=1;oo&&r.splice(o+1,s-o);let c=r[o+1],l=r[o+2],u=r[o+3];if(c!==".."||!l||l==="."||l===".."||!u||u==="."||u==="..")continue;n=!0,r.splice(o,1);let d=r.slice(0);d[o]="**",e.push(d),o--}if(!this.preserveMultipleSlashes){for(let s=1;sn.length)}partsMatch(e,n,r=!1){let o=0,a=0,s=[],c="";for(;o=2&&(e=this.levelTwoFileOptimize(e)),n.includes(qy)?this.#e(e,n,r,o,a):this.#r(e,n,r,o,a)}#e(e,n,r,o,a){let s=n.indexOf(qy,a),c=n.lastIndexOf(qy),[l,u,d]=r?[n.slice(a,s),n.slice(s+1),[]]:[n.slice(a,s),n.slice(s+1,c),n.slice(c+1)];if(l.length){let v=e.slice(o,o+l.length);if(!this.#r(v,l,r,0,0))return!1;o+=l.length,a+=l.length}let p=0;if(d.length){if(d.length+o>e.length)return!1;let v=e.length-d.length;if(this.#r(e,d,r,v,0))p=d.length;else{if(e[e.length-1]!==""||o+d.length===e.length||(v--,!this.#r(e,d,r,v,0)))return!1;p=d.length+1}}if(!u.length){let v=!!p;for(let _=o;_{let u=l.map(p=>{if(p instanceof RegExp)for(let m of p.flags.split(""))o.add(m);return typeof p=="string"?sSa(p):p===qy?qy:p._src});u.forEach((p,m)=>{let A=u[m+1],f=u[m-1];p!==qy||f===qy||(f===void 0?A!==void 0&&A!==qy?u[m+1]="(?:\\/|"+r+"\\/)?"+A:u[m]=r:A===void 0?u[m-1]=f+"(?:\\/|\\/"+r+")?":A!==qy&&(u[m-1]=f+"(?:\\/|\\/"+r+"\\/)"+A,u[m+1]=qy))});let d=u.filter(p=>p!==qy);if(this.partial&&d.length>=1){let p=[];for(let m=1;m<=d.length;m++)p.push(d.slice(0,m).join("/"));return"(?:"+p.join("|")+")"}return d.join("/")}).join("|"),[s,c]=e.length>1?["(?:",")"]:["",""];a="^"+s+a+c+"$",this.partial&&(a="^(?:\\/|"+s+a.slice(1,-1)+c+")$"),this.negate&&(a="^(?!"+a+").+$");try{this.regexp=new RegExp(a,[...o].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,n=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&n)return!0;let r=this.options;this.isWindows&&(e=e.split("\\").join("/"));let o=this.slashSplit(e);this.debug(this.pattern,"split",o);let a=this.set;this.debug(this.pattern,"set",a);let s=o[o.length-1];if(!s)for(let c=o.length-2;!s&&c>=0;c--)s=o[c];for(let c=0;cUn(a.uri,n));if(o)return o.getText();try{if(cSa(n),r!==void 0){let a=await bat.promises.open(n.fsPath,"r");try{let s=Buffer.alloc(r),{bytesRead:c}=await a.read(s,0,r,0);return s.subarray(0,c)}finally{await a.close()}}return t.readFile(n)}catch{let a=await t.readFile(n);return r?a.subarray(0,r):a}}function cSa(t){if(t.scheme!=="file")throw new Error(`URI must be of file scheme, received ${t.scheme}`)}var Qqr="non-git-file",yat=class{constructor(e,n,r,o,a,s,c){this._gitService=e;this._logService=n;this._authService=r;this._capiClientService=o;this._fileSystemService=a;this._workspaceService=s;this._requestLogger=c;this._contentExclusionCache=new Map;this._contentExclusionFetchPromise=null;this._ignoreGlobResultCache=new Hn;this._ignoreRegexResultCache=new Map;this._lastRuleFetch=0;this._disposables=[];this._repoRootCache=new Map;this._contentExclusionCache.set(Qqr,{patterns:[],ifAnyMatch:[],ifNoneMatch:[]}),this._disposables.push(this._gitService.onDidCloseRepository(l=>{let u=this.getRepositoryInfo(l);if(u){this._repoRootCache.delete(u.repoRootPath);for(let d of u.fetchUrls)this._contentExclusionCache.delete(d)}})),this._fileReadLimiter=new $f(10),this._disposables.push(this._fileReadLimiter)}async isIgnored(e,n=Yt.None){if(this._ignoreGlobResultCache.has(e)&&!this.isRegexContextExclusionsEnabled||this._ignoreGlobResultCache.get(e))return this._ignoreGlobResultCache.get(e)??!1;this._contentExclusionFetchPromise&&await qt(this._contentExclusionFetchPromise,n);let r=this.findCachedRepoMetadataForFile(e);if(!r){let l=await qt(this._gitService.getRepositoryFetchUrls(e),n);r=this.getRepositoryInfo(l),r&&this._repoRootCache.set(r.repoRootPath,r)}r||(r={repoRootPath:"",fetchUrls:[Qqr]});let o=e.path.toLowerCase().replace(r.repoRootPath.toLowerCase(),"");(this.shouldFetchContentExclusionRules(r)||Date.now()-this._lastRuleFetch>30*60*1e3)&&(this._logService.trace(`Fetching content exclusions, due to ${this.shouldFetchContentExclusionRules(r)?"repository change":"stale cache"}.`),this._lastRuleFetch=Date.now(),await qt(this.makeContentExclusionRequest(),n));let a={nocase:!0,matchBase:!0,nonegate:!0,dot:!0};for(let{patterns:l}of this._contentExclusionCache.values())for(let u of l)if(qg(o,u,a)||qg(e.path,u,a))return this._logService.debug(`File ${e.path} is ignored by content exclusion rule ${u}`),this._ignoreGlobResultCache.set(e,!0),!0;let s="",c="";for(let l of r.fetchUrls){let{ifAnyMatch:u,ifNoneMatch:d}=this._contentExclusionCache.get(l)??{ifAnyMatch:[],ifNoneMatch:[]};if((u.length>0||d.length>0)&&!s)try{let p=await this._fileReadLimiter.queue(()=>Fqr(this._fileSystemService,this._workspaceService,e,1024));if(s=typeof p=="string"?p:new TextDecoder().decode(p),c=await d0(s),this._ignoreRegexResultCache.has(c))return this._ignoreRegexResultCache.get(c)??!1}catch{return!0}if(u.length>0&&s&&u.some(p=>p.test(s)))return this._logService.debug(`File ${e.path} is ignored by content exclusion rule ifAnyMatch`),this._ignoreRegexResultCache.set(c,!0),!0;if(d.length>0&&s&&!d.some(p=>p.test(s)))return this._logService.debug(`File ${e.path} is ignored by content exclusion rule ifNoneMatch`),this._ignoreRegexResultCache.set(c,!0),!0}return this._ignoreGlobResultCache.set(e,!1),this._ignoreRegexResultCache.set(c,!1),!1}get isRegexContextExclusionsEnabled(){return[...this._contentExclusionCache.values()].some(({ifAnyMatch:e,ifNoneMatch:n})=>e.length>0||n.length>0)}async loadRepos(e){(await Promise.all(e.map(o=>this._gitService.getRepositoryFetchUrls(o)))).map(o=>{let a=this.getRepositoryInfo(o);return a&&this._repoRootCache.set(a.repoRootPath,a),this.shouldFetchContentExclusionRules(a)}).some(o=>o)&&(this._lastRuleFetch=Date.now(),await this.makeContentExclusionRequest())}async asMinimatchPatterns(){return await this._contentExclusionFetchPromise,Array.from(this._contentExclusionCache.values()).flatMap(({patterns:n})=>n)}dispose(){this._disposables.forEach(e=>e.dispose()),this._disposables=[],this._contentExclusionCache.clear()}shouldFetchContentExclusionRules(e){if(!e)return!1;let n=!1;for(let r of e?.fetchUrls??[])this._contentExclusionCache.has(r)||(n=!0,this._contentExclusionCache.set(r,{patterns:[],ifAnyMatch:[],ifNoneMatch:[]}));return n}async makeContentExclusionRequest(){this._contentExclusionFetchPromise&&await this._contentExclusionFetchPromise;try{this._contentExclusionFetchPromise=this._contentExclusionRequest(),await this._contentExclusionFetchPromise,this._contentExclusionFetchPromise=null}catch{this._contentExclusionFetchPromise=null}}async _contentExclusionRequest(){this._ignoreGlobResultCache.clear();let e=Date.now(),n=this._capiClientService,r=(await this._authService.getGitHubSession("any",{silent:!0}))?.accessToken,o=Array.from(this._contentExclusionCache.keys()),a=async l=>{let u=await n.makeRequest({headers:{Authorization:`token ${r}`}},{type:qn.ContentExclusion,repos:l});if(!u.ok){this._logService.error(`Failed to fetch content exclusion rules: ${u?.statusText}`);return}let d=await u.json();for(let p=0;py.paths).flat(),A=er(d[p].rules.map(y=>y.ifAnyMatch).flat()).map(y=>Oqr(y)),f=er(d[p].rules.map(y=>y.ifNoneMatch).flat()).map(y=>Oqr(y)),g=l[p],h={patterns:m,ifAnyMatch:A,ifNoneMatch:f};this._contentExclusionCache.set(g,h),this._logService.trace(`Fetched content exclusion rules for ${g}: ${JSON.stringify(h)}`)}};o.length===0&&await a([]);for(let l=0;l{let u=this._contentExclusionCache.get(l);return{patterns:u.patterns,ifAnyMatch:u.ifAnyMatch.map(d=>d.toString()),ifNoneMatch:u.ifNoneMatch.map(d=>d.toString())}});this._requestLogger.logContentExclusionRules(s,c,Date.now()-e)}getRepositoryInfo(e){if(!e||!e.remoteFetchUrls)return;let n=er(e.remoteFetchUrls.map(r=>{if(r)try{return IOe(r)}catch{return}}));return{repoRootPath:e.rootUri.path,fetchUrls:n}}findCachedRepoMetadataForFile(e){let n=e.path.toLowerCase(),r,o=0;for(let[a,s]of this._repoRootCache.entries()){let c=a.toLowerCase();(n.startsWith(c+"/")||n===c)&&c.length>o&&(r=s,o=c.length)}return r}};function Oqr(t){if(!t.startsWith("/")&&!t.endsWith("/"))return new RegExp(t);let e=t.slice(1,t.lastIndexOf("/")),n=t.slice(t.lastIndexOf("/")+1);return new RegExp(e,n)}var vat=".copilotignore",_at=class{constructor(e,n,r,o,a,s,c,l){this._gitService=e;this._logService=n;this._authService=r;this._workspaceService=o;this._capiClientService=a;this.searchService=s;this.fs=c;this._requestLogger=l;this._copilotIgnoreFiles=new gat;this._copilotIgnoreEnabled=!1;this._onDidChangeCopilotIgnoreEnablement=new lt;this._disposables=[];this.onDidChangeCopilotIgnoreEnablement=this._onDidChangeCopilotIgnoreEnablement.event;this._disposables.push(this._onDidChangeCopilotIgnoreEnablement),this._disposables.push(this._authService.onDidAuthenticationChange(()=>{let u=this._authService.copilotToken?.isCopilotIgnoreEnabled()??!1;this._copilotIgnoreEnabled!==u&&this._onDidChangeCopilotIgnoreEnablement.fire(u),this._copilotIgnoreEnabled=u,this._copilotIgnoreEnabled===!1&&this._remoteContentExclusions&&(this._remoteContentExclusions.dispose(),this._remoteContentExclusions=void 0),this._copilotIgnoreEnabled===!0&&!this._remoteContentExclusions&&(this._remoteContentExclusions=new yat(this._gitService,this._logService,this._authService,this._capiClientService,this.fs,this._workspaceService,this._requestLogger))}))}dispose(){this._disposables.forEach(e=>e.dispose()),this._remoteContentExclusions&&(this._remoteContentExclusions.dispose(),this._remoteContentExclusions=void 0),this._disposables=[]}get isEnabled(){return this._copilotIgnoreEnabled}get isRegexExclusionsEnabled(){return this._remoteContentExclusions?.isRegexContextExclusionsEnabled??!1}async isCopilotIgnored(e,n){let r=!1;return this._copilotIgnoreEnabled&&(r=this._copilotIgnoreFiles.isIgnored(e)||await(this._remoteContentExclusions?.isIgnored(e,n)??!1)),r}async asMinimatchPattern(){if(!this._copilotIgnoreEnabled)return;let e=[],n=(await this.searchService.findFiles("**/.git/HEAD",{useExcludeSettings:sL.None})).map(o=>K.joinPath(o,"..",".."));await this._remoteContentExclusions?.loadRepos(n),e.push(await this._remoteContentExclusions?.asMinimatchPatterns()??[]),e.push(this._copilotIgnoreFiles.asMinimatchPatterns());let r=e.flat();if(r.length!==0)return r.length===1?r[0]:`{${r.join(",")}}`}init(){return this._init??=(async()=>{for(let e of this._workspaceService.getWorkspaceFolders())await this.addWorkspace(e)})(),this._init}trackIgnoreFile(e,n,r){n.path.endsWith(vat)&&this._copilotIgnoreFiles.setIgnoreFile(e,n,r)}removeIgnoreFile(e){e.path.endsWith(vat)&&this._copilotIgnoreFiles.removeIgnoreFile(e)}removeWorkspace(e){this._copilotIgnoreFiles.removeWorkspace(e)}isIgnoreFile(e){return!!e.path.endsWith(vat)}async addWorkspace(e){if(e.scheme!=="file")return;let n=await this.searchService.findFilesWithDefaultExcludes(new nm(e,`${vat}`),void 0,Yt.None);for(let r of n){let o=(await this.fs.readFile(r)).toString();this.trackIgnoreFile(e,r,o)}}};var _fe=class extends _at{constructor(e,n,r,o,a,s,c){super(e,r,o,a,s,new hfe,new gfe,c),this.installListeners()}installListeners(){this._disposables.push(pQ.workspace.onDidChangeWorkspaceFolders(e=>{for(let n of e.removed)this.removeWorkspace(n.uri);for(let n of e.added)this.addWorkspace(n.uri)})),this._disposables.push(pQ.workspace.onDidSaveTextDocument(async e=>{if(this.isIgnoreFile(e.uri)){let n=(await pQ.workspace.fs.readFile(e.uri)).toString(),r=pQ.workspace.getWorkspaceFolder(e.uri);this.trackIgnoreFile(r?.uri,e.uri,n)}}),pQ.workspace.onDidDeleteFiles(e=>{for(let n of e.files)this.removeIgnoreFile(n)}),pQ.workspace.onDidRenameFiles(async e=>{for(let n of e.files)if(this.isIgnoreFile(n.newUri)){let r=(await pQ.workspace.fs.readFile(n.newUri)).toString();this.removeIgnoreFile(n.oldUri);let o=pQ.workspace.getWorkspaceFolder(n.newUri);this.trackIgnoreFile(o?.uri,n.newUri,r)}}))}};_fe=S([b(0,ei),b(1,is),b(2,Z),b(3,at),b(4,Te),b(5,Mr),b(6,Fr)],_fe);var Uqr=O(require("vscode"));Ot();var Cfe=class{constructor(e){this.capiClient=e}async uploadChatImageAttachment(e,n,r,o){if(!r||!o)throw new Error("Missing required mimeType or token for image upload");let s=n.replace(/[^a-zA-Z0-9._-]/g,""),l=r.toLowerCase().match(/^[^\/]+\/([^+;]+)/)?.[1];l&&!s.toLowerCase().endsWith(`.${l}`)&&(s=`${s}.${l}`);try{let u=await this.capiClient.makeRequest({method:"POST",body:e,headers:{"Content-Type":"application/octet-stream",Authorization:`Bearer ${o}`}},{type:qn.ChatAttachmentUpload,uploadName:s,mimeType:r});if(!u.ok)throw new Error(`Image upload failed: ${u.status} ${u.statusText}`);let d=await u.json();return K.parse(d.url)}catch(u){throw new Error(`Error uploading image: ${u}`)}}async resizeImage(e,n){return{data:e,mimeType:n}}};Cfe=S([b(0,Mr)],Cfe);var wfe=class extends Cfe{constructor(n,r){super(n);this.logService=r}async resizeImage(n,r){try{let o=await Uqr.commands.executeCommand("_chat.resizeImage",n,r);if(o instanceof Uint8Array)return{data:o,mimeType:r}}catch(o){this.logService.trace(`ImageService: failed to resize image, using original: ${o}`)}return{data:n,mimeType:r}}};wfe=S([b(0,Mr),b(1,Z)],wfe);wr();Xa();Ar();Ue();var QP=class extends fe{constructor(n,r,o,a,s,c,l){super();this._tokenStore=n;this._proxyModelsService=r;this._undesiredModelsManager=o;this._configService=a;this._expService=s;this._telemetryService=c;this._logService=l;this._copilotTokenObs=To(this,this._tokenStore.onDidStoreUpdate,()=>this._tokenStore.copilotToken);this._fetchedModelsObs=To(this,this._proxyModelsService.onModelListUpdated,()=>this._proxyModelsService.nesModels);this._preferredModelNameObs=this._configService.getExperimentBasedConfigObservable(H.Advanced.InlineEditsPreferredModel,this._expService);this._localModelConfigObs=this._configService.getConfigObservable(H.TeamInternal.InlineEditsXtabProviderModelConfiguration);this._expBasedModelConfigObs=this._configService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsXtabProviderModelConfigurationString,this._expService);this._defaultModelConfigObs=this._configService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsXtabProviderDefaultModelConfigurationString,this._expService);this._useSlashModelsObs=this._configService.getExperimentBasedConfigObservable(H.TeamInternal.InlineEditsUseSlashModels,this._expService);this._undesiredModelsObs=To(this,this._undesiredModelsManager.onDidChange,()=>this._undesiredModelsManager);this._setModelQueue=new Ix;this._logger=l.createSubLogger(["NES","ModelsService"]);let u=this._logger.createSubLogger("constructor");this._modelsObs=jc(d=>(u.trace("computing models"),this.aggregateModels({copilotToken:this._copilotTokenObs.read(d),fetchedNesModels:this._fetchedModelsObs.read(d),localModelConfig:this._localModelConfigObs.read(d),modelConfigString:this._expBasedModelConfigObs.read(d),defaultModelConfigString:this._defaultModelConfigObs.read(d),useSlashModels:this._useSlashModelsObs.read(d)}))).recomputeInitiallyAndOnChange(this._store),this._currentModelObs=jc(d=>{u.trace("computing current model");let p=this._undesiredModelsObs.read(d);return this._pickModel({preferredModelName:this._preferredModelNameObs.read(d),models:this._modelsObs.read(d),undesiredModelsManager:p})}).recomputeInitiallyAndOnChange(this._store),this._modelInfoObs=jc(d=>(u.trace("computing model info"),{models:this._modelsObs.read(d),currentModelId:this._currentModelObs.read(d).modelName})).recomputeInitiallyAndOnChange(this._store),this.onModelListUpdated=Ko.fromObservableLight(this._modelInfoObs)}static{this.COPILOT_NES_XTAB_MODEL={modelName:"copilot-nes-xtab",promptingStrategy:"copilotNesXtab",includeTagsInCurrentFile:!0,source:"hardCodedDefault",lintOptions:void 0}}static{this.COPILOT_NES_OCT={modelName:"copilot-nes-oct",promptingStrategy:"xtab275",includeTagsInCurrentFile:!1,source:"hardCodedDefault",lintOptions:void 0}}static{this.COPILOT_NES_CALLISTO={modelName:"nes-callisto",promptingStrategy:"xtab275",includeTagsInCurrentFile:!1,source:"hardCodedDefault",lintOptions:void 0}}get modelInfo(){let n=this._modelsObs.get().map(o=>({id:o.modelName,name:o.modelName})),r=this._currentModelObs.get();return{models:n,currentModelId:r.modelName}}setCurrentModelId(n){return this._setModelQueue.schedule(()=>this._setCurrentModelIdCore(n))}async _setCurrentModelIdCore(n){if(this._configService.getExperimentBasedConfig(H.Advanced.InlineEditsPreferredModel,this._expService)===n)return;let a=this._currentModelObs.get(),s=this._modelsObs.get(),c=s.find(u=>u.modelName===n);if(c===void 0){this._logService.error(`New preferred model id ${n} not found in model list.`);return}a.source==="expConfig"&&await this._undesiredModelsManager.addUndesiredModelId(a.modelName),this._undesiredModelsManager.isUndesiredModelId(n)&&await this._undesiredModelsManager.removeUndesiredModelId(n);let l=this._pickModel({preferredModelName:"none",models:s,undesiredModelsManager:this._undesiredModelsManager});c.source==="expConfig"||n===l.modelName&&!s.some(u=>u.source==="expConfig")?(this._logger.trace(`New preferred model id ${n} is the same as the default model, resetting user setting.`),await this._configService.setConfig(H.Advanced.InlineEditsPreferredModel,"none")):(this._logger.trace(`New preferred model id ${n} is different from the default model, updating user setting to ${n}.`),await this._configService.setConfig(H.Advanced.InlineEditsPreferredModel,n))}aggregateModels({copilotToken:n,fetchedNesModels:r,localModelConfig:o,modelConfigString:a,defaultModelConfigString:s,useSlashModels:c}){let l=this._logger.createSubLogger("aggregateModels"),u=[];if(o&&(u.some(d=>d.modelName===o.modelName)?l.trace("Local model configuration already exists in the model list, skipping."):(l.trace(`Adding local model configuration: ${o.modelName}`),u.push({...o,source:"localConfig"}))),a){l.trace("Parsing modelConfigurationString...");let d=this.parseModelConfigString(a,H.TeamInternal.InlineEditsXtabProviderModelConfigurationString);d&&!u.some(p=>p.modelName===d.modelName)?(l.trace(`Adding model from modelConfigurationString: ${d.modelName}`),u.push({...d,source:"expConfig"})):l.trace("No valid model found in modelConfigurationString.")}if(c&&r&&r.length>0){l.trace(`Processing ${r.length} fetched models...`);let d=Xne(r,p=>{if(RAn(p.capabilities.promptStrategy)){if(u.some(m=>m.modelName===p.name)){l.trace(`Fetched model ${p.name} already exists in the model list, skipping.`);return}return{modelName:p.name,promptingStrategy:p.capabilities.promptStrategy,includeTagsInCurrentFile:!1,source:"fetched",lintOptions:void 0}}});l.trace(`Adding ${d.length} fetched models after filtering.`),Rv(u,d)}else{l.trace(`adding built-in default model: useSlashModels ${c}, fetchedNesModels ${r?.length??"undefined"}`);let d=this.determineDefaultModel(n,s);d&&(u.some(p=>p.modelName===d.modelName)?l.trace("Default model configuration already exists in the model list, skipping."):(l.trace(`Adding default model configuration: ${d.modelName}`),u.push(d)))}return u}selectedModelConfiguration(){return hen(this._currentModelObs.get())}defaultModelConfiguration(){let n=this._modelsObs.get();if(n&&n.length>0){let r=n.filter(o=>!this.isConfiguredModel(o));if(r.length>0)return hen(r[0])}return hen(this.determineDefaultModel(this._copilotTokenObs.get(),this._defaultModelConfigObs.get()))}isConfiguredModel(n){switch(n.source){case"localConfig":case"expConfig":case"expDefaultConfig":return!0;case"fetched":case"hardCodedDefault":return!1;default:ai(n.source)}}determineDefaultModel(n,r){if(r){let o=this.parseModelConfigString(r,H.TeamInternal.InlineEditsXtabProviderDefaultModelConfigurationString);if(o)return{...o,source:"expDefaultConfig"}}return n?.isFcv1()?QP.COPILOT_NES_XTAB_MODEL:n?.isFreeUser||n?.isNoAuthUser?QP.COPILOT_NES_CALLISTO:QP.COPILOT_NES_OCT}_pickModel({preferredModelName:n,models:r,undesiredModelsManager:o}){let a=r.find(l=>l.source==="expConfig");if(a)if(o.isUndesiredModelId(a.modelName))this._logger.trace(`Exp-configured model ${a.modelName} is marked as undesired by the user. Skipping.`);else return a;if(n!=="none"){let l=r.find(u=>u.modelName===n);if(l)return l}R7(r.length>0,"InlineEdits model list should have at least one model");let c=r.at(0);return c||this.determineDefaultModel(this._copilotTokenObs.get(),this._defaultModelConfigObs.get())}parseModelConfigString(n,r){let o;try{let a=JSON.parse(n),s=bQe.validate(a);if(!s.error)return s.content;o=s.error.message}catch(a){o=jr.toString(jr.fromUnknown(a))}this._telemetryService.sendMSFTTelemetryEvent("incorrectNesModelConfig",{configName:r.id,errorMessage:o,configValue:n})}};QP=S([b(0,sl),b(1,y8),b(2,_tt),b(3,be),b(4,Fe),b(5,Ee),b(6,Z)],QP);function hen(t){let{source:e,...n}=t;return n}var ben;(n=>{let t="copilot.chat.nextEdits.undesiredModelIds",e=class extends fe{constructor(a){super();this._vscodeExtensionContext=a;this._onDidChange=this._register(new lt);this.onDidChange=this._onDidChange.event;this._queue=new Ix}isUndesiredModelId(a){return this._getModels().includes(a)}addUndesiredModelId(a){return this._queue.schedule(async()=>{let s=this._getModels();s.includes(a)||(s.push(a),await this._setModels(s),this._onDidChange.fire())})}removeUndesiredModelId(a){return this._queue.schedule(async()=>{let s=this._getModels(),c=s.indexOf(a);c!==-1&&(s.splice(c,1),await this._setModels(s),this._onDidChange.fire())})}_getModels(){return this._vscodeExtensionContext.globalState.get(t)??[]}_setModels(a){return new Promise((s,c)=>{this._vscodeExtensionContext.globalState.update(t,a).then(s,c)})}};e=S([b(0,ut)],e),n.Manager=e})(ben||={});dn();pa();var Cat=class t{constructor(e,n,r,o){this.fetcherResponse=e;this.requestId=r;this.headers=o;let a=new no;this.aggregatedStream=a.p,this.response=this.aggregatedStream.then(s=>{if(s.isError())return s;try{return vt.ok(t.aggregateCompletionsStream(s.val))}catch(c){return vt.error(c)}}),this.stream=lSa(n,a)}async destroy(){await this.fetcherResponse.body.destroy()}static aggregateCompletionsStream(e){let n="",r=null,o=null,a;for(let u of e){let d=u.choices[0];n+=d.text??"",d.logprobs&&(o===null?o={tokens:[...d.logprobs.tokens],token_logprobs:[...d.logprobs.token_logprobs],text_offset:[...d.logprobs.text_offset],top_logprobs:[...d.logprobs.top_logprobs]}:(o.tokens.push(...d.logprobs.tokens),o.token_logprobs.push(...d.logprobs.token_logprobs),o.text_offset.push(...d.logprobs.text_offset),o.top_logprobs.push(...d.logprobs.top_logprobs))),u.usage&&(a===void 0?a={completion_tokens:u.usage.completion_tokens,prompt_tokens:u.usage.prompt_tokens,total_tokens:u.usage.total_tokens,completion_tokens_details:{audio_tokens:u.usage.completion_tokens_details.audio_tokens,reasoning_tokens:u.usage.completion_tokens_details.reasoning_tokens},prompt_tokens_details:{audio_tokens:u.usage.prompt_tokens_details.audio_tokens,reasoning_tokens:u.usage.prompt_tokens_details.reasoning_tokens}}:(a.completion_tokens+=u.usage.completion_tokens,a.prompt_tokens+=u.usage.prompt_tokens,a.total_tokens+=u.usage.total_tokens,a.completion_tokens_details.audio_tokens+=u.usage.completion_tokens_details.audio_tokens,a.completion_tokens_details.reasoning_tokens+=u.usage.completion_tokens_details.reasoning_tokens,a.prompt_tokens_details.audio_tokens+=u.usage.prompt_tokens_details.audio_tokens,a.prompt_tokens_details.reasoning_tokens+=u.usage.prompt_tokens_details.reasoning_tokens)),d.finish_reason&&(Nc(r===null,"cannot already have finishReason if just seeing choice.finish_reason"),r=d.finish_reason)}if(e.length===0)throw new Error("Response is empty!");let s=e[0];return{choices:[{index:0,finish_reason:r,logprobs:o,text:n}],system_fingerprint:s.system_fingerprint,object:s.object,usage:a}}};async function*lSa(t,e){let n=[],r;try{for await(let o of t)n.push(o),yield o}catch(o){throw r=jr.fromUnknown(o),r}finally{e.complete(r?vt.error(r):vt.ok(n))}}async function*qqr(t){for await(let e of t)if(e.trim()!=="data: [DONE]"&&e.startsWith("data: ")){let n=JSON.parse(e.substring(6));if(n.error)throw new Error(n.error.message);yield n}}var xfe=class{constructor(e,n,r){this.authService=e;this.fetcherService=n;this.requestLogger=r}disconnectAll(){return this.fetcherService.disconnectAll()}async fetch(e,n,r,o,a,s){let c=Date.now();if(a.isCancellationRequested){let d=vt.error(new k0.RequestCancelled);return this._logCompletionsRequest(e,r,o,c,d),d}let l={requestId:o,headers:this.getHeaders(o,n,s),body:JSON.stringify({...r,stream:!0})},u=await this._fetchFromUrl(e,l,a);if(u.isError())return this._logCompletionsRequest(e,r,o,c,u),u;if(u.val.status===200){let d=hRe.splitLines(u.val.body),p=qqr(d),m=new Cat(u.val.response,p,u.val.requestId,u.val.headers),A=vt.ok(m);return this._logCompletionsRequest(e,r,o,c,A),A}else{let d=new k0.UnsuccessfulResponse(u.val.status,u.val.statusText,u.val.headers,()=>dSa(u.val.body).catch(()=>"")),p=vt.error(d);return this._logCompletionsRequest(e,r,o,c,p),p}}async _fetchFromUrl(e,n,r){let o=this.fetcherService.makeAbortController(),a=r.onCancellationRequested(()=>{o.abort()});try{let s={headers:n.headers,body:n.body,signal:o.signal,method:"POST",callSite:"nes-completions"},c=await this.fetcherService.fetch(e,s);if(c.status===200&&this.authService.copilotToken?.isFreeUser&&this.authService.copilotToken?.isChatQuotaExceeded&&this.authService.resetCopilotToken(),c.status!==200)return c.status===402&&(this.authService.copilotToken?.isCompletionsQuotaExceeded||(this.authService.resetCopilotToken(c.status),await this.authService.getCopilotToken())),vt.error(new k0.UnsuccessfulResponse(c.status,c.statusText,c.headers,()=>c.text().catch(()=>"")));let l=c.body.pipeThrough(new TextDecoderStream),u=uSa(l,a);return vt.ok({status:c.status,statusText:c.statusText,headers:c.headers,body:u,requestId:Vv(c.headers),response:c})}catch(s){if(a.dispose(),s instanceof Error&&s.message==="This operation was aborted")return vt.error(new k0.RequestCancelled);let c=jr.fromUnknown(s);return vt.error(new k0.Unexpected(c))}}_logCompletionsRequest(e,n,r,o,a){if(a.isOk())a.val.response.then(c=>{let l=c.isOk()?"success":"failed";this._emitCompletionsLogEntry(e,n,r,o,l,c)});else{let s=a.err;s instanceof k0.RequestCancelled?this._emitCompletionsLogEntry(e,n,r,o,"cancelled",void 0):s instanceof k0.UnsuccessfulResponse?this._emitCompletionsLogEntry(e,n,r,o,"failed",void 0,`${s.status} ${s.statusText}`):s instanceof k0.Unexpected&&this._emitCompletionsLogEntry(e,n,r,o,"failed",void 0,s.error.message)}}_emitCompletionsLogEntry(e,n,r,o,a,s,c){let l=Date.now()-o,u=[];if(u.push("> \u{1F6A8} Note: This log may contain personal information such as the contents of your files. Please review the contents carefully before sharing."),u.push("# completions"),u.push(""),u.push("- [Metadata](#metadata)"),u.push("- [Prompt](#prompt)"),n.suffix&&u.push("- [Suffix](#suffix)"),u.push("- [Response](#response)"),u.push(""),u.push("## Metadata"),u.push("
"),u.push(`url              : ${e}`),u.push(`requestId        : ${r}`),u.push(`model            : ${n.model??"(default)"}`),u.push(`maxTokens        : ${n.max_tokens}`),u.push(`temperature      : ${n.temperature}`),u.push(`top_p            : ${n.top_p}`),u.push(`n                : ${n.n}`),u.push(`duration         : ${l}ms`),u.push("
"),u.push(""),u.push("## Prompt"),u.push("~~~"),u.push(n.prompt),u.push("~~~"),n.suffix&&(u.push(""),u.push("## Suffix"),u.push("~~~"),u.push(n.suffix),u.push("~~~")),u.push(""),u.push("## Response"),a==="cancelled")u.push("## CANCELED");else if(a==="failed")u.push(`## FAILED: ${c}`);else if(s)if(s.isOk()){let p=s.val,m=p.choices[0]?.text??"",A=p.choices[0]?.finish_reason??"unknown";u.push("~~~"),u.push(m||""),u.push("~~~"),u.push(""),u.push("
"),u.push(`finishReason     : ${A}`),p.usage&&(u.push(`promptTokens     : ${p.usage.prompt_tokens}`),u.push(`completionTokens : ${p.usage.completion_tokens}`),u.push(`totalTokens      : ${p.usage.total_tokens}`)),u.push("
")}else u.push(`## FAILED: stream error - ${s.err.message}`);let d=a==="success"?void 0:Oo.error;this.requestLogger.addEntry({type:"MarkdownContentRequest",debugName:"Completions Request",startTimeMs:o,icon:d,markdownContent:u.join(` `)})}getHeaders(e,n,r={}){return{"Content-Type":"application/json","x-policy-id":"nil",Authorization:"Bearer "+n,"X-Request-Id":e,"X-GitHub-Api-Version":"2025-04-01",...r}}};xfe=S([b(0,at),b(1,nr),b(2,Fr)],xfe);async function*uSa(t,e){try{for await(let n of t)yield n}catch(n){throw jr.fromUnknown(n)}finally{e.dispose()}}async function dSa(t){let e=[];for await(let n of t)e.push(n);return e.join("")}$s();var zqr=require("async_hooks");Ar();$s();var pSa=1;function $qr(t){return(pSa++).toString(16).padStart(t,"0")}var wat=class{constructor(e,n,r,o,a){this.name=e;this._onDidCompleteSpan=n;this._onDidEmitSpanEvent=r;this._attributes={};this._events=[];this._statusCode=0;this._startTime=Date.now();this._ended=!1;this.spanId=$qr(16),this.traceId=o?.traceId??$qr(32),this.parentSpanId=o?.spanId,a&&Object.assign(this._attributes,a)}setAttribute(e,n){this._attributes[e]=n}setAttributes(e){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let r=e[n];r!==void 0&&(this._attributes[n]=r)}}setStatus(e,n){this._statusCode=e,this._statusMessage=n}recordException(e){}addEvent(e,n){let r=Date.now();this._events.push({name:e,timestamp:r,attributes:n});try{this._onDidEmitSpanEvent.fire({spanId:this.spanId,traceId:this.traceId,parentSpanId:this.parentSpanId,eventName:e,attributes:n??{},timestamp:r})}catch{}}end(){if(!this._ended){this._ended=!0;try{this._onDidCompleteSpan.fire({name:this.name,spanId:this.spanId,traceId:this.traceId,parentSpanId:this.parentSpanId,startTime:this._startTime,endTime:Date.now(),status:{code:this._statusCode,message:this._statusMessage},attributes:{...this._attributes},events:[...this._events]})}catch{}}}get context(){return{spanId:this.spanId,traceId:this.traceId}}getSpanContext(){return{spanId:this.spanId,traceId:this.traceId}}},xat=class t{constructor(e){this._onDidCompleteSpan=new lt;this.onDidCompleteSpan=this._onDidCompleteSpan.event;this._onDidEmitSpanEvent=new lt;this.onDidEmitSpanEvent=this._onDidEmitSpanEvent.event;this._contextStorage=new zqr.AsyncLocalStorage;this._traceContextStore=new Map;this._traceContextTimers=new Map;this.config=e}injectCompletedSpan(e){try{this._onDidCompleteSpan.fire(e)}catch{}}static{this._MAX_TRACE_CONTEXT_STORE_SIZE=1e3}startSpan(e,n){let r=this._resolveParentContext(n);return new wat(e,this._onDidCompleteSpan,this._onDidEmitSpanEvent,r,n?.attributes)}async startActiveSpan(e,n,r){let o=this._resolveParentContext(n),a=new wat(e,this._onDidCompleteSpan,this._onDidEmitSpanEvent,o,n?.attributes);return this._contextStorage.run(a.context,async()=>{try{return await r(a)}finally{a.end()}})}getActiveTraceContext(){let e=this._contextStorage.getStore();return e?{traceId:e.traceId,spanId:e.spanId}:void 0}storeTraceContext(e,n){if(this._traceContextStore.size>=t._MAX_TRACE_CONTEXT_STORE_SIZE){let o=this._traceContextStore.keys().next().value;o!==void 0&&this._clearStoredTraceContext(o)}this._traceContextStore.set(e,n);let r=setTimeout(()=>this._clearStoredTraceContext(e),30*60*1e3);this._traceContextTimers.set(e,r)}getStoredTraceContext(e){let n=this._traceContextStore.get(e);return n&&this._clearStoredTraceContext(e),n}_clearStoredTraceContext(e){this._traceContextStore.delete(e);let n=this._traceContextTimers.get(e);n&&(clearTimeout(n),this._traceContextTimers.delete(e))}runWithTraceContext(e,n){return this._contextStorage.run({spanId:e.spanId,traceId:e.traceId},n)}recordMetric(e,n,r){}incrementCounter(e,n,r){}emitLogRecord(e,n){}async flush(){}async shutdown(){for(let e of this._traceContextTimers.values())clearTimeout(e);this._traceContextTimers.clear(),this._traceContextStore.clear(),this._onDidCompleteSpan.dispose(),this._onDidEmitSpanEvent.dispose()}_resolveParentContext(e){return e?.parentTraceContext?{spanId:e.parentTraceContext.spanId,traceId:e.parentTraceContext.traceId}:this._contextStorage.getStore()}};iu();sr();var Sen={};Se(Sen,{_dispose:()=>Gqr,_findLastTest:()=>d$r,_getCallExpressions:()=>wSa,_getClassDeclarations:()=>ESa,_getClassReferences:()=>SSa,_getCoarseParentScope:()=>PSa,_getDocumentableNodeIfOnIdentifier:()=>c$r,_getFineScopes:()=>LSa,_getFixSelectionOfInterest:()=>NSa,_getFunctionBodies:()=>DSa,_getFunctionDefinitions:()=>xSa,_getNodeMatchingSelection:()=>RY,_getNodeToDocument:()=>s$r,_getNodeToExplain:()=>MSa,_getParseErrorCount:()=>WSa,_getSemanticChunkNames:()=>RSa,_getSemanticChunkTree:()=>BSa,_getStructure:()=>HSa,_getSymbols:()=>TSa,_getTestableNode:()=>l$r,_getTestableNodes:()=>u$r,_getTypeDeclarations:()=>ISa,_getTypeReferences:()=>kSa,getBlockNameTree:()=>y$r});var IPe=class{constructor(e,n){this.syntaxTreeRoot=n;this.roots=[];this.formTree(e)}formTree(e){e.sort((a,s)=>a.mainBlock.startIndex-s.mainBlock.startIndex||a.mainBlock.endIndex-s.mainBlock.endIndex);let n=[],r=()=>n[n.length-1],o=(a,s)=>a.mainBlock.startIndex===s.mainBlock.startIndex&&a.mainBlock.endIndex===s.mainBlock.endIndex;for(let a of e){let s={info:a,children:[]},c=r();if(!c){this.roots.push(s),n.push(s);continue}if(!o(c.info,a)){for(;c&&!Fl.doesContain(c.info.mainBlock,a.mainBlock);)n.pop(),c=r();c?c.children.push(s):this.roots.push(s),n.push(s)}}}};sr();var mSa=LTe(),Eat=class{constructor(){this.loadedLanguagesCache=new Map}loadLanguage(e){return this.loadedLanguagesCache.has(e)||this.loadedLanguagesCache.set(e,this._doLoadLanguage(e)),this.loadedLanguagesCache.get(e)}_doLoadLanguage(e){let r=`tree-sitter-${e==="csharp"?"c-sharp":e}.wasm`,o=dr(__dirname)==="dist"?KC(__dirname,r):KC(__dirname,"../../../../dist",r);return mSa.Language.load(o)}};var jqr=LTe(),Iat=class t{static{this.INSTANCE=new t}static{this.CACHE_SIZE_PER_LANGUAGE=5}constructor(){this.caches=new Map,this.languageLoader=new Eat,this._parser=null}get parser(){return this._parser||(this._parser=new jqr),this._parser}async parse(e,n){await jqr.init();let r=this.getParseTreeCache(e),o=r.get(n);if(o)return o.createReference();let a=await this.languageLoader.loadLanguage(e);if(this.parser.setLanguage(a),o=r.get(n),o)return o.createReference();let s=this.parser.parse(n);return o=new yen(s),r.put(n,o),o.createReference()}dispose(){this._parser&&(this.parser.delete(),this._parser=null);for(let e of this.caches.values())e.dispose()}getParseTreeCache(e){let n=this.caches.get(e);return n||(n=new kQe(t.CACHE_SIZE_PER_LANGUAGE),this.caches.set(e,n)),n}},yen=class{constructor(e){this._tree=new _en(e)}dispose(){this._tree.deref()}createReference(){return new ven(this._tree)}},ven=class{constructor(e){this._parseTree=e;this._parseTree.ref()}get tree(){return this._parseTree.tree}dispose(){this._parseTree.deref()}},_en=class{constructor(e){this._tree=e;this._refCount=1}get tree(){if(this._refCount===0)throw new Error("Cannot access disposed RefCountedParseTree");return this._tree}ref(){if(this._refCount===0)throw new Error("Cannot ref disposed RefCountedParseTree");this._refCount++}deref(){if(this._refCount===0)throw new Error("Cannot deref disposed RefCountedParseTree");this._refCount--,this._refCount===0&&this._tree.delete()}};function Gqr(){Iat.INSTANCE.dispose()}function Dd(t,e){return Iat.INSTANCE.parse(t,e)}wr();var Cen=class{constructor(e){this.language=e;this.map=new Map}getQuery(e){return this.map.has(e)||this.map.set(e,this.language.query(e)),this.map.get(e)}},wen=class t{constructor(){this.map=new Map}static{this.INSTANCE=new t}getQuery(e,n){return this.map.has(e)||this.map.set(e,new Cen(e)),this.map.get(e).getQuery(n)}};function $y(t,e){let n=[];for(let r of t){let a=wen.INSTANCE.getQuery(e.tree.getLanguage(),r).matches(e);Rv(n,a)}return n}function kPe(t,e){switch(e){case"python":case"csharp":return t.children.find(n=>n.type.match(/identifier/))?.text;case"go":{let n=t.children.find(o=>o.type.match(/identifier/));return n?n.text:t.children.find(o=>o.type.match(/spec/))?.children.find(o=>o.type.match(/identifier/))?.text}case"javascript":case"javascriptreact":case"typescript":case"typescriptreact":case"cpp":{let n=t.children.find(o=>o.type.match(/declarator/));return n?n.children.find(o=>o.type.match(/identifier/))?.text:t.children.find(o=>o.type.match(/identifier/))?.text}case"java":return t.children.find(r=>r.type==="identifier")?.text;case"ruby":return t.children.find(n=>n.type.match(/constant|identifier/))?.text;default:return t.children.find(n=>n.type.match(/identifier/))?.text}}function SPe(t,e){switch(e){case"typescript":case"tsx":case"javascript":return t.type.match(/definition|declaration|declarator|export_statement/);case"go":return t.type.match(/definition|declaration|declarator|var_spec/);case"cpp":return t.type.match(/definition|declaration|class_specifier/);case"ruby":return t.type.match(/module|class|method|assignment/);default:return t.type.match(/definition|declaration|declarator/)}}function RY(t,e,n,r=SPe){let o=[t.rootNode],a=[];for(;;){let s=o.map(c=>[c,Fl.intersectionSize(c,e)]).filter(([c,l])=>l>0).sort(([c,l],[u,d])=>d-l);if(s.length===0)return a.length===0?void 0:R2n(a,([c,l],[u,d])=>l-d)[0];{let c=s.map(([l,u])=>{let d=Fl.len(l),p=Math.abs(Fl.len(e)-u),A=(u-p)/d;return[l,A]});a.push(...c.filter(([l,u])=>r(l,n))),o=[],o.push(...c.flatMap(([l,u])=>l.children))}}}var Fa=(()=>{function t(e,...n){return e.length===1?e[0]:e.reduce((r,o,a)=>`${r}${o}${n[a]||""}`,"")}return{typescript:t,javascript:t,python:t,go:t,ruby:t,csharp:t,cpp:t,java:t,rust:t}})();function Hk(t,e){return Object.fromEntries(t.map(n=>[n,e]))}var ASa={javascript:[],typescript:[],tsx:[],python:[],csharp:[],go:[],java:[],ruby:[],cpp:[],rust:[]};function Wk(t){for(let e in t){let n=t[e];ASa[e].push(...n)}return t}var Hqr=Wk({...Hk(["javascript","typescript","tsx"],[`[ (call_expression function: (identifier) @identifier) (call_expression function: (member_expression (property_identifier) @identifier)) ] @call_expression`]),python:[`[ (call function: (identifier) @identifier) (call function: (attribute attribute: (identifier) @identifier)) ] @call_expression`],csharp:[`[ (invocation_expression function: (identifier) @identifier) (invocation_expression function: (member_access_expression name: (identifier) @identifier)) ] @call_expression`],go:[`[ (call_expression ((selector_expression (field_identifier) @identifier))) (call_expression (identifier) @identifier) ] @call_expression`],java:[`[ (method_invocation name: (identifier) @identifier) ] @call_expression`],ruby:[`[ (call (identifier) @identifier (#not-match? @identifier "new|send|public_send|method")) (call receiver: (identifier) method: (identifier) @method (#match? @method "^(send|public_send|method)") arguments: (argument_list (simple_symbol) @symbol)) ] @call_expression`],cpp:[`[ (function_declarator (identifier) @identifier) (function_declarator (field_identifier) @identifier) (call_expression (identifier) @identifier) (call_expression (field_expression field: (field_identifier) @identifier)) (call_expression (call_expression (primitive_type) (argument_list (pointer_expression (identifier) @identifier)))) ] @call_expression`],rust:[`[ (call_expression (identifier) @identifier) (call_expression (field_expression (identifier) (field_identifier) @identifier)) (call_expression (scoped_identifier (identifier) (identifier) @identifier (#not-match? @identifier "new"))) ] @call_expression`]}),Wqr=Wk({...Hk(["javascript","typescript","tsx"],["(class_declaration) @class_declaration"]),java:["(class_declaration) @class_declaration"],csharp:["(class_declaration) @class_declaration"],python:["(class_definition) @class_declaration"],cpp:["(class_specifier) @class_declaration"],ruby:["(class) @class_declaration"],go:[`(type_declaration (type_spec (type_identifier) @type_identifier)) @class_declaration`],rust:["(impl_item (type_identifier) @type_identifier) @class_declaration"]}),Zqr=Wk({typescript:[`[ (interface_declaration) (type_alias_declaration) ] @type_declaration`],csharp:[`(interface_declaration (identifier) @type_identifier) @type_declaration`],cpp:[`[ (struct_specifier (type_identifier) @type_identifier) (union_specifier (type_identifier) @type_identifier) (enum_specifier (type_identifier) @type_identifier) ] @type_declaration`],java:[`(interface_declaration (identifier) @type_identifier) @type_declaration`],go:[`(type_declaration (type_spec (type_identifier) @type_identifier)) @type_declaration`],ruby:["((constant) @type_identifier) @type_declaration"],python:[`(class_definition (identifier) @type_identifier) @type_declaration`]}),Vqr=Wk({typescript:["(type_identifier) @type_identifier"],go:["(type_identifier) @type_identifier"],ruby:["(constant) @type_identifier"],csharp:[`[ (base_list (identifier) @type_identifier) (variable_declaration (identifier) @type_identifier) ]`],cpp:["(type_identifier) @type_identifier"],java:["(type_identifier) @type_identifier"],python:[`[ (type (identifier) @type_identifier) (argument_list (identifier) @type_identifier) ]`]}),Yqr=Wk({...Hk(["javascript","typescript","tsx"],[`(new_expression constructor: (identifier) @new_expression)`]),python:[`(call function: (identifier) @new_expression)`],csharp:[`(object_creation_expression (identifier) @new_expression)`],java:[`(object_creation_expression (type_identifier) @new_expression)`],cpp:[`[ (declaration (type_identifier) @new_expression) (class_specifier (type_identifier) @new_expression) ]`],go:["(composite_literal (type_identifier) @new_expression)"],ruby:[`((call receiver: ((constant) @new_expression) method: (identifier) @method) (#eq? @method "new"))`],rust:[`(call_expression (scoped_identifier (identifier) @new_expression (identifier) @identifier (#eq? @identifier "new")))`]}),Kqr=Wk({python:[`[ (function_definition name: (identifier) @identifier body: (block (expression_statement (string))? @docstring) @body) (assignment left: (identifier) @identifier right: (lambda) @body) ] @function`,'(ERROR ("def" (identifier) (parameters))) @function'],...Hk(["javascript","typescript","tsx"],[`[ (function_expression name: (identifier)? @identifier body: (statement_block) @body) (function_declaration name: (identifier)? @identifier body: (statement_block) @body) (generator_function name: (identifier)? @identifier body: (statement_block) @body) (generator_function_declaration name: (identifier)? @identifier body: (statement_block) @body) (method_definition name: (property_identifier)? @identifier body: (statement_block) @body) (arrow_function body: (statement_block) @body) ] @function`]),go:[`[ (function_declaration name: (identifier) @identifier body: (block) @body) (method_declaration name: (field_identifier) @identifier body: (block) @body) ] @function`],ruby:[`[ (method name: (_) @identifier parameters: (method_parameters)? @params [(_)+ "end"] @body) (singleton_method name: (_) @identifier parameters: (method_parameters)? @params [(_)+ "end"] @body) ] @function`],csharp:[`[ (constructor_declaration (identifier) @identifier (block) @body) (destructor_declaration (identifier) @identifier (block) @body) (operator_declaration (block) @body) (method_declaration (identifier) @identifier (block) @body) (local_function_statement (identifier) @identifier (block) @body) ] @function`],cpp:[`[ (function_definition (_ (identifier) @identifier) (compound_statement) @body) (function_definition (function_declarator (qualified_identifier (identifier) @identifier)) (compound_statement) @body) ] @function`],java:[`[ (constructor_declaration name: (identifier) @identifier body: (constructor_body) @body) (method_declaration name: (_) @identifier body: (block) @body) (lambda_expression body: (block) @body) ] @function`],rust:[`[ (function_item (identifier) @identifier) (let_declaration (identifier) @identifier) ] @function`]}),C5u=Wk({javascript:[Fa.javascript`((comment) @comment (#match? @comment "^\\\\/\\\\*\\\\*")) @docComment`],...Hk(["typescript","tsx"],[Fa.typescript`((comment) @comment (#match? @comment "^\\\\/\\\\*\\\\*")) @docComment`]),java:[Fa.java`((block_comment) @block_comment (#match? @block_comment "^\\\\/\\\\*\\\\*")) @docComment`],cpp:[Fa.cpp`((comment) @comment (#match? @comment "^\\\\/\\\\*\\\\*")) @docComment`],csharp:[Fa.csharp`( ((comment) @c (#match? @c "^\\\\/\\\\/\\\\/"))+ ) @docComment`],rust:[Fa.rust`((line_comment) @comment (#match? @comment "^\/\/\/|^\/\/!"))+ @docComment`],go:[Fa.go`((comment)+) @docComment`],ruby:[Fa.ruby`((comment)+) @docComment`],python:[`(expression_statement (string) @docComment)`]}),Een=Wk({javascript:[Fa.javascript`[ (function_declaration (identifier) @function.identifier ) @function (generator_function_declaration name: (identifier) @generator_function.identifier ) @generator_function (class_declaration name: (identifier) @class.identifier ;; note: (type_identifier) in typescript body: (class_body (method_definition name: (property_identifier) @method.identifier ) @method ) ) @class ]`],...Hk(["typescript","tsx"],[Fa.typescript`[ (function_declaration (identifier) @function.identifier ) @function (generator_function_declaration name: (identifier) @generator_function.identifier ) @generator_function (class_declaration name: (type_identifier) @class.identifier body: (class_body (method_definition (accessibility_modifier)? @method.accessibility_modifier name: (property_identifier) @method.identifier (#not-eq? @method.accessibility_modifier "private") ) @method ) ) @class ]`]),python:[Fa.python`[ (function_definition name: (identifier) @function.identifier ) @function ]`],go:[Fa.go`[ (function_declaration name: (identifier) @function.identifier ) @function (method_declaration name: (field_identifier) @method.identifier ) @method ]`],ruby:[Fa.ruby`[ (method name: (identifier) @method.identifier ) @method (singleton_method name: (_) @singleton_method.identifier ) @singleton_method ]`],csharp:[Fa.csharp`[ (constructor_declaration (identifier) @constructor.identifier ) @constructor (destructor_declaration (identifier) @destructor.identifier ) @destructor (method_declaration (identifier) @method.identifier ) @method (local_function_statement (identifier) @local_function.identifier ) @local_function ]`],cpp:[Fa.cpp`[ (function_definition (_ (identifier) @identifier) ) @function ]`],java:[Fa.java`(class_declaration name: (_) @class.identifier body: (_ [ (constructor_declaration (modifiers)? @constructor.modifiers (#not-eq? @constructor.modifiers "private") name: (identifier) @constructor.identifier ) @constructor (method_declaration (modifiers)? @method.modifiers (#not-eq? @method.modifiers "private") name: (identifier) @method.identifier ) @method ] ) ) @class`],rust:[Fa.rust`[ (function_item (identifier) @function.identifier ) @function ]`]}),Jqr=Wk({javascript:[Fa.javascript`[ (identifier) @symbol (property_identifier) @symbol (private_property_identifier) @symbol ]`],...Hk(["typescript","tsx"],[Fa.typescript`[ (identifier) @symbol (type_identifier) @symbol (property_identifier) @symbol (private_property_identifier) @symbol ]`]),cpp:[Fa.cpp`[ (identifier) @symbol (type_identifier) @symbol ]`],csharp:[Fa.csharp`[ (identifier) @symbol ]`],go:[Fa.go`[ (identifier) @symbol ]`],java:[Fa.java`[ (identifier) @symbol ]`],python:[Fa.python`[ (identifier) @symbol ]`],ruby:[Fa.ruby`[ (identifier) @symbol ]`],rust:[Fa.rust`[ (identifier) @symbol ]`]}),Xqr=Wk({typescript:[Fa.typescript` [ (comment) @comment ;; split into multiple comment kinds? (declaration) @declaration ;; class declaration related (public_field_definition) @public_field_definition (method_definition) @method_definition (class_declaration (_ (method_signature) @method_signature)) (abstract_method_signature) @abstract_method_signature ;; enum declaration related (enum_assignment) @enum_assignment ;; interface declaration related (interface_declaration (_ (method_signature) @method_signature)) (interface_declaration (_ (property_signature) @property_signature)) ;; statements (import_statement) @import_statement (export_statement) @export_statement (expression_statement) @expression_statement (for_in_statement) @for_in_statement ;; exclude any children found in the for loop condition (for_statement condition: (_) @for_statement.exclude_captures ) @for_statement (break_statement) @break_statement (continue_statement) @continue_statement (do_statement) @do_statement (if_statement) @if_statement (if_statement consequence: [ (expression_statement) (if_statement) ] @if_statement.exclude_captures) (else_clause [ (expression_statement) (if_statement) ; for if-else chains ] @else_clause.exclude_captures) (switch_statement) @switch_statement (switch_case) @switch_case (try_statement) @try_statement (throw_statement) @throw_statement (debugger_statement) @debugger_statement (return_statement) @return_statement ] `],tsx:[Fa.typescript` [ (comment) @comment ;; split into multiple comment kinds? (declaration) @declaration ;; class declaration related (public_field_definition) @public_field_definition (method_definition) @method_definition (class_declaration (_ (method_signature) @method_signature)) (abstract_method_signature) @abstract_method_signature ;; enum declaration related (enum_assignment) @enum_assignment ;; interface declaration related (interface_declaration (_ (method_signature) @method_signature)) (interface_declaration (_ (property_signature) @property_signature)) ;; statements (import_statement) @import_statement (export_statement) @export_statement (expression_statement) @expression_statement (for_in_statement) @for_in_statement ;; exclude any children found in the for loop condition (for_statement condition: (_) @for_statement.exclude_captures ) @for_statement (break_statement) @break_statement (continue_statement) @continue_statement (do_statement) @do_statement (if_statement) @if_statement (if_statement consequence: [ (expression_statement) (if_statement) ] @if_statement.exclude_captures) (else_clause [ (expression_statement) (if_statement) ; for if-else chains ] @else_clause.exclude_captures) (switch_statement) @switch_statement (switch_case) @switch_case (try_statement) @try_statement (throw_statement) @throw_statement (debugger_statement) @debugger_statement (return_statement) @return_statement ;; jsx (jsx_element) @jsx_element (jsx_element (_ (jsx_expression) @jsx_expression)) ] `],python:[Fa.python` [ (comment) @comment ;; simple statements (assert_statement) @assert_statement (break_statement) @break_statement (continue_statement) @continue_statement (delete_statement) @delete_statement (exec_statement) @exec_statement (expression_statement) @expression_statement (future_import_statement) @future_import_statement (global_statement) @global_statement (import_from_statement) @import_from_statement (import_statement) @import_statement (nonlocal_statement) @nonlocal_statement (pass_statement) @pass_statement (print_statement) @print_statement (raise_statement) @raise_statement (return_statement) @return_statement (type_alias_statement) @type_alias_statement ;; compound statements (class_definition) @class_definition (decorated_definition) @decorated_definition (for_statement) @for_statement (function_definition) @function_definition (if_statement) @if_statement (try_statement) @try_statement (while_statement) @while_statement (with_statement) @with_statement ;; expressions (expression_list) @expression_list (expression_statement) @expression_statement ] `],javascript:[Fa.javascript` [ (comment) @comment ;; split into multiple comment kinds? (declaration) @declaration ;; class declaration related (field_definition) @field_definition (method_definition) @method_definition ;; statements (import_statement) @import_statement (export_statement) @export_statement (expression_statement) @expression_statement (for_in_statement) @for_in_statement ;; exclude any children found in the for loop condition (for_statement condition: (_) @for_statement.exclude_captures ) @for_statement (break_statement) @break_statement (continue_statement) @continue_statement (do_statement) @do_statement (if_statement) @if_statement (switch_statement) @switch_statement (switch_case) @switch_case (try_statement) @try_statement (throw_statement) @throw_statement (debugger_statement) @debugger_statement (return_statement) @return_statement ]`],go:[Fa.go` [ (_statement) @statement (function_declaration) @function_declaration (import_declaration) @import_declaration (method_declaration) @method_declaration (package_clause) @package_clause (if_statement initializer: (_) @for_statement.exclude_captures) @for_statement (expression_case) @expression_case ;; e.g., case 0: ] `],ruby:[Fa.ruby` [ (comment) @comment (assignment) @assignment (if) @if (call) @call (case) @case (when) @when (while) @while (for) @for (method) @method (class) @class (module) @module (begin) @begin ] `],csharp:[Fa.csharp` [ (comment) @comment (class_declaration) @class_declaration (constructor_declaration) @constructor_declaration (method_declaration) @method_declaration (delegate_declaration) @delegate_declaration (enum_declaration) @enum_declaration (extern_alias_directive) @extern_alias_directive (file_scoped_namespace_declaration) @file_scoped_namespace_declaration (global_attribute) @global_attribute (global_statement) @global_statement (interface_declaration) @interface_declaration (namespace_declaration) @namespace_declaration (record_declaration) @record_declaration (struct_declaration) @struct_declaration (using_directive) @using_directive (local_declaration_statement) @local_declaration_statement (expression_statement) @expression_statement (for_statement) @for_statement (foreach_statement) @foreach_statement (continue_statement) @continue_statement (break_statement) @break_statement (throw_statement) @throw_statement (return_statement) @return_statement (try_statement) @try_statement ] `],cpp:[Fa.cpp` [ (preproc_ifdef) @preproc_ifdef (preproc_call) @preproc_call (preproc_def) @preproc_def (type_definition) @type_definition (type_definition type:(_) @type_definition.exclude_captures) @type_definition (declaration) @declaration (expression_statement) @expression_statement (comment) @comment (preproc_include) @preproc_include (namespace_definition) @namespace_definition (enum_specifier) @enum_specifier (struct_specifier) @struct_specifier (template_declaration) @template_declaration (function_definition) @function_definition (return_statement) @return_statement (class_specifier) @class_specifier (try_statement) @try_statement (throw_statement) @throw_statement (for_statement) @for_statement (for_statement initializer:(_) @for_statement.exclude_captures) @for_statement (for_range_loop) @for_range_loop (while_statement) @while_statement (do_statement) @do_statement (if_statement) @if_statement (labeled_statement) @labeled_statement (goto_statement) @goto_statement (break_statement) @break_statement ] `],java:[Fa.java` [ (statement) @statement ;; @ulugbekna: this includes (declaration); but somehow it can't capture inner classes (line_comment) @line_comment (block_comment) @block_comment (for_statement init: (_) @for_statement.exclude_captures) (block) @block.exclude_captures (class_declaration) @class_declaration (constructor_declaration) @constructor_declaration (field_declaration) @field_declaration (method_declaration) @method_declaration ] `],rust:[]}),e$r={...Hk(["typescript","tsx"],["program","interface_declaration","class_declaration","function_declaration","function_expression","type_alias_declaration","method_definition"]),javascript:["program","class_declaration","function_declaration","function_expression","method_definition"],java:["program","class_declaration","interface_declaration","method_declaration"],cpp:["translation_unit","class_specifier","function_definition"],csharp:["compilation_unit","class_declaration","interface_declaration","method_declaration"],python:["module","class_definition","function_definition"],go:["source_file","type_declaration","function_declaration","method_declaration"],ruby:["program","method","class","method"],rust:["source_file","function_item","impl_item","let_declaration"]},t$r=Wk({typescript:[OP("typescript")],tsx:[OP("tsx")],javascript:[OP("javascript")],java:[OP("java")],cpp:[OP("cpp")],csharp:[OP("csharp")],python:[OP("python")],go:[OP("go")],ruby:[OP("ruby")],rust:[OP("rust")]}),n$r={...Hk(["typescript","tsx","javascript"],["for_in_statement","for_statement","if_statement","while_statement","do_statement","try_statement","switch_statement"]),java:["for_statement","enhanced_for_statement","if_statement","while_statement","do_statement","try_statement","switch_expression"],cpp:["for_statement","for_range_loop","if_statement","while_statement","do_statement","try_statement","switch_statement"],csharp:["for_statement","for_each_statement","if_statement","while_statement","do_statement","try_statement","switch_expression"],python:["for_statement","if_statement","while_statement","try_statement"],go:["for_statement","if_statement","type_switch_statement"],ruby:["while","for","if","case"],rust:["for_statement","if_statement","while_statement","loop_statement","match_expression"]},fSa={...Hk(["typescript","tsx"],["lexical_declaration","expression_statement","public_field_definition"]),javascript:["call_expression","expression_statement","variable_declaration","public_field_definition"],java:["expression_statement","local_variable_declaration","field_declaration"],cpp:["field_declaration","expression_statement","declaration"],csharp:["field_declaration","expression_statement"],python:["expression_statement"],go:["short_var_declaration","call_expression"],ruby:["call","assignment"],rust:["expression_statement","let_declaration","use_declaration","assignment_expression","macro_definition","extern_crate_declaration"]},gSa={...Hk(["typescript","tsx"],["class_declaration","function_declaration","generator_function_declaration","interface_declaration","internal_module","method_definition","abstract_class_declaration","abstract_method_signature","enum_declaration"]),javascript:["class_declaration","function_declaration","generator_function_declaration","method_definition"],java:["class_declaration","constructor_declaration","enum_declaration","interface_declaration","method_declaration","module_declaration"],cpp:["class_specifier","function_definition","namespace_definition","struct_specifier"],csharp:["class_declaration","constructor_declaration","destructor_declaration","enum_declaration","interface_declaration","method_declaration","namespace_declaration","struct_declaration"],python:["function_definition","class_definition"],go:["function_declaration","method_declaration"],ruby:["class","method","module"],rust:["function_item","impl_item","mod_item","struct_item","trait_item","union_item"]},r$r=Wk({typescript:[UP("typescript")],tsx:[UP("tsx")],javascript:[UP("javascript")],java:[UP("java")],cpp:[UP("cpp")],csharp:[UP("csharp")],python:[UP("python")],go:[UP("go")],rust:[UP("rust")],ruby:[UP("ruby")]});function OP(t){return e$r[t].map(e=>`(${e}) @scope`).join(` `)}function UP(t){return`[ ${gSa[t].map(n=>`(${n})`).join(` `)} ] @definition`}function TPe(t,e){return e$r[t].includes(e.type)||n$r[t].includes(e.type)}function i$r(t,e){return n$r[t].includes(e.type)}function Ien(t,e){return fSa[t].includes(e.type)}var o$r={...Hk(["typescript","tsx"],[Fa.typescript`[ (expression_statement (call_expression function: (identifier) @fn (#any-of? @fn "test" "it") ) ) @test ]`]),javascript:[Fa.javascript`[ (call_expression function: (identifier) @fn (#any-of? @fn "test" "it") ) @test ]`],python:[Fa.python`[ (function_definition name: (identifier) @fn (#match? @fn "^test_") ) @test ]`],java:[Fa.java`[ (method_declaration name: (identifier) @fn (#match? @fn "^test") ) @test ]`],go:[Fa.go`[ (function_declaration name: (identifier) @fn (#match? @fn "^Test") ) @test ]`],ruby:[],csharp:[],cpp:[],rust:[]};var ken=class{constructor(){this._cache=new Fv(5)}setCacheSize(e){this._cache=new Fv(e)}async getStructure(e,n){let r=`${e}:${n}`,o=this._cache.get(r);return o||(o=await this._getStructure(e,n),this._cache.put(r,o)),o}async _getStructure(e,n){let r=Xqr[e];if(r.length===0)return;let o=await Dd(e,n);try{let a=$y(r,o.tree.rootNode).flatMap(u=>u.captures).sort((u,d)=>Fl.compare(u.node,d.node)),s=[];for(let u of a)u.name.endsWith(".exclude_captures")&&s.push(Fl.ofSyntaxNode(u.node));let c=new d4(0,n.length,"root",[]),l=[c];for(let u=0;uFl.isEqual(f,p)))continue;let m;do m=l.pop();while(m&&!Fl.doesContain(m,p));if(new Set(["export_statement","ambient_declaration"]).has(m.kind))m.kind=p.type,l.push(m);else{let f=p.type;(e==="typescript"||e==="tsx"||e==="javascript")&&f==="method_definition"&&p.namedChildren.some(_=>_.type==="property_identifier"&&_.text==="constructor")&&(f="constructor");let g=p.startIndex,h=p.previousSibling;if(h!==null){let w=n.substring(h.endIndex,p.startIndex).indexOf(` `);w===-1?g=h.endIndex:g=h.endIndex+w+1}let y=p.endIndex;if(p.nextSibling!==null){let _=p.nextSibling;if(e==="typescript"||e==="tsx"||e==="javascript"||e==="cpp")for(;_&&(_.type===";"||_.type===","||_.type==="comment"&&!n.substring(y,_.startIndex).includes(` `));)s.push(Fl.ofSyntaxNode(_)),y=_.endIndex,_=_.nextSibling;if(_!==null){let x=n.substring(y,_.startIndex).indexOf(` `);x!==-1&&(y=y+x+1)}}let v=new d4(g,y,f,[]);m.children.push(v),l.push(m,v)}}return c}catch(a){console.error(a instanceof Error?a:new Error(a))}finally{o.dispose()}}},a$r=new ken;async function s$r(t,e,n){let r=await Dd(t,e);try{let a=n.startIndex===n.endIndex?void 0:RY(r.tree,n,t);if(a)return{nodeIdentifier:kPe(a,t),nodeToDocument:k3.ofSyntaxNode(a),nodeSelectionBy:"matchingSelection"};let c=r.tree.rootNode.descendantForIndex(n.startIndex,n.endIndex),l=0;for(;!SPe(c,t)&&c.parent!==null;)c=c.parent,++l;return{nodeIdentifier:kPe(c,t),nodeToDocument:k3.ofSyntaxNode(c),nodeSelectionBy:"expanding"}}finally{r.dispose()}}async function c$r(t,e,n){let r=await Dd(t,e);try{let o=r.tree.rootNode.descendantForIndex(n.startIndex,n.endIndex);if(o.type.match(/identifier/)&&(o.parent===null||SPe(o.parent,t))){let a=o.parent,s=a===null?void 0:{startIndex:a.startIndex,endIndex:a.endIndex};return{identifier:o.text,nodeRange:s}}}finally{r.dispose()}}wr();pa();async function l$r(t,e,n){let r=await Dd(t,e);try{let o=$y(Een[t],r.tree.rootNode).flatMap(({captures:c})=>c),a=new Map;for(let c of o){let[l,u]=c.name.split(".");if(u!=="identifier")continue;let d=a.get(l)||[];d.push(c),a.set(l,d)}let s=null;for(let c of o){let[l,u]=c.name.split(".");if(u!==void 0||!Fl.doesContain(c.node,n)||s!==null&&Fl.len(s.node)Fl.doesContain(c.node,m.node));Nc(p!==void 0,`must have seen identifier for symbol '${l}' (lang: ${t})`),s={identifier:{name:p.node.text,range:Fl.ofSyntaxNode(p.node)},node:k3.ofSyntaxNode(c.node)}}return s}catch(o){return console.error("getTestableNode: Unexpected error",o),null}finally{r.dispose()}}async function u$r(t,e){let n=await Dd(t,e);try{let r=$y(Een[t],n.tree.rootNode).flatMap(({captures:s})=>s).filter(kFe(s=>[s.node.startIndex,s.node.endIndex].toString())),o=new Map;for(let s of r){let[c,l]=s.name.split(".");if(l!=="identifier")continue;let u=o.get(c)||[];u.push(s),o.set(c,u)}let a=[];for(let s of r){if(s.name.includes("."))continue;let c=s.name,l=o.get(c);Nc(l!==void 0,`must have seen identifier for symbol kind '${c}' (lang: ${t})`);let u=l.find(d=>Fl.doesContain(s.node,d.node));Nc(u!==void 0,`must have seen identifier for symbol '${c}' (lang: ${t})`),a.push({identifier:{name:u.node.text,range:Fl.ofSyntaxNode(u.node)},node:k3.ofSyntaxNode(s.node)})}return a}catch(r){return console.error("getTestableNodes: Unexpected error",r),null}finally{n.dispose()}}async function d$r(t,e){let n=await Dd(t,e);try{let o=$y(o$r[t],n.tree.rootNode).flatMap(s=>s.captures).sort((s,c)=>s.node.endIndex-c.node.endIndex).filter(s=>s.name==="test");if(o.length===0)return null;let a=o[o.length-1].node;return{startIndex:a.startIndex,endIndex:a.endIndex}}finally{n.dispose()}}var s6u=LTe();function hSa(t,e){let n=t$r[t];return $y(n,e)}function A$r(t,e){let n=Kqr[t];return $y(n,e)}function bSa(t,e){let n=Hqr[t];return n?$y(n,e):[]}function ySa(t,e){let n=Wqr[t];return n?$y(n,e):[]}function vSa(t,e){let n=Zqr[t];return n?$y(n,e):[]}function _Sa(t,e){let n=Vqr[t];return n?$y(n,e):[]}function CSa(t,e){let n=Yqr[t];return n?$y(n,e):[]}function f$r(t,e){let n=r$r[t];return $y(n,e)}async function wSa(t,e,n){let r=await Dd(t,e);try{return bSa(t,r.tree.rootNode).reduce((s,c)=>{let l=c.captures.find(u=>u.name==="call_expression").node;if(Fl.doIntersect(n,l)){let u,d;t==="ruby"&&(d=c.captures.find(p=>p.name==="symbol")?.node,u=d?.text?.slice(1)),d??=c.captures.find(p=>p.name==="identifier")?.node,u??=d?.text,s.push({identifier:u??"",text:l.text,startIndex:(d??l).startIndex,endIndex:(d??l).endIndex})}return s},[])}finally{r.dispose()}}async function xSa(t,e){let n=await Dd(t,e);try{return A$r(t,n.tree.rootNode).map(a=>{let s=a.captures.find(l=>l.name==="function").node;return{identifier:a.captures.find(l=>l.name==="identifier")?.node.text??"",text:s.text,startIndex:s.startIndex,endIndex:s.endIndex}})}finally{n.dispose()}}async function ESa(t,e){let n=await Dd(t,e);try{return ySa(t,n.tree.rootNode).map(a=>{let s=a.captures.find(l=>l.name==="class_declaration").node;return{identifier:s?.children.find(l=>l.type==="type_identifier"||l.type==="identifier"||l.type==="constant")?.text??"",text:s.text,startIndex:s.startIndex,endIndex:s.endIndex}})}finally{n.dispose()}}async function ISa(t,e){let n=await Dd(t,e);try{return vSa(t,n.tree.rootNode).map(a=>{let s=a.captures.find(l=>l.name==="type_declaration").node,c=a.captures.find(l=>l.name==="type_identifier")?.node.text;return c||(c=s?.children.find(l=>l.type==="type_identifier")?.text),{identifier:c??"",text:s.text,startIndex:s.startIndex,endIndex:s.endIndex}})}finally{n.dispose()}}async function kSa(t,e,n){let r=await Dd(t,e);try{return _Sa(t,r.tree.rootNode).reduce((s,c)=>{let l=c.captures.find(u=>u.name==="type_identifier").node;return Fl.doIntersect(n,l)&&s.push({identifier:l.text,text:l.text,startIndex:l.startIndex,endIndex:l.endIndex}),s},[])}finally{r.dispose()}}async function SSa(t,e,n){let r=await Dd(t,e);try{return CSa(t,r.tree.rootNode).reduce((s,c)=>{let l=c.captures.find(u=>u.name==="new_expression").node;return Fl.doIntersect(n,l)&&s.push({identifier:l.text,text:l.text,startIndex:l.startIndex,endIndex:l.endIndex}),s},[])}finally{r.dispose()}}async function TSa(t,e,n){let r=await Dd(t,e);try{let o=Jqr[t];return $y(o,r.tree.rootNode).reduce((c,l)=>{let u=l.captures.find(d=>d.name==="symbol").node;return Fl.doIntersect(n,u)&&c.push({identifier:u.text,text:u.text,startIndex:u.startIndex,endIndex:u.endIndex}),c},[])}finally{r.dispose()}}async function BSa(t,e){let n=await Dd(t,e);try{let r=f$r(t,n.tree.rootNode);return QSa(t,r,n.tree.rootNode)}finally{n.dispose()}}async function RSa(t,e){let n=await Dd(t,e);try{let r=f$r(t,n.tree.rootNode);return y$r(t,r,n.tree.rootNode)}finally{n.dispose()}}async function DSa(t,e){let n=await Dd(t,e);try{return A$r(t,n.tree.rootNode).map(a=>{let s=a.captures.find(c=>c.name==="body").node;return{startIndex:s.startIndex,endIndex:s.endIndex}})}finally{n.dispose()}}async function PSa(t,e,n){let r=await Dd(t,e);try{let o=hSa(t,r.tree.rootNode),a;for(let s of o){let c=s.captures[0].node,l=I3.ofSyntaxNode(c);if(I3.doesContain(l,n)&&(a=c),f1.isBefore(n.endPosition,l.startPosition))break}if(a)return I3.ofSyntaxNode(a);throw new Error("No parent node found")}finally{r.dispose()}}async function NSa(t,e,n,r){let o=await Dd(t,e);try{let a=o.tree.rootNode.descendantForPosition(n.startPosition,n.endPosition),s={startPosition:a.startPosition,endPosition:a.endPosition},c=h$r(t,a,r,n,!0);return I3.equals(s,c)?g$r(t,a):c}finally{o.dispose()}}function g$r(t,e){let n=e.parent,r={startPosition:e.startPosition,endPosition:e.endPosition};if(TPe(t,e)||!n)return r;let{filteredRanges:o,indexOfInterest:a}=b$r(t,n.children,r,!1);if(a-1>=0&&a+1<=o.length-1){let s=o[a-1],c=o[a+1];return{startPosition:s.startPosition,endPosition:c.endPosition}}return g$r(t,n)}function h$r(t,e,n,r,o){let a=e.children;if(e.endPosition.row-e.startPosition.row+1<=n){let c=TPe(t,e)?{startPosition:e.startPosition,endPosition:e.endPosition}:m$r(t,a,n,r,o),l=e.parent;return l?h$r(t,l,n,c,!1):c}return m$r(t,a,n,r,o)}function p$r(t,e){return e.endPosition.row-t.startPosition.row+1}function m$r(t,e,n,r,o){if(e.length===0)return r;let{filteredRanges:a,indexOfInterest:s}=b$r(t,e,r,o),c=0,l=a.length-1,u=a[c],d=a[l];for(;p$r(u,d)>n&&c!==l;)s-cTPe(t,s)||Ien(t,s)),a=B2n(o,n,(s,c)=>f1.isBefore(s.startPosition,c.startPosition)),o.splice(a,0,n)):(o=e.filter(s=>I3.doesContain(s,n)||TPe(t,s)||Ien(t,s)),a=o.findIndex(s=>I3.doesContain(s,n))),a===-1)throw new Error("Valid index not found");return{filteredRanges:o,indexOfInterest:a}}async function LSa(t,e,n){let r=[],s=(await Dd(t,e)).tree.rootNode.descendantForIndex(n.startIndex,n.endIndex);for(;s!==null;)i$r(t,s)&&r.push({startIndex:s.startIndex,endIndex:s.endIndex}),s=s.parent;return r}async function MSa(t,e,n){let r=await Dd(t,e);try{let o=n.startIndex===n.endIndex;if(o)return;let a=o?void 0:RY(r.tree,n,t),s=o?void 0:RY(r.tree,n,t,FSa);if(s&&a)return{nodeIdentifier:kPe(a,t),nodeToExplain:k3.ofSyntaxNode(s)}}finally{r.dispose()}}function FSa(t,e){return t.type.match(/definition/)}function y$r(t,e,n){let r=new Map;e.forEach(a=>{let c=a.captures.find(d=>d.name==="definition")?.node,l;t==="cpp"&&c?.type==="function_definition"?l=c?.childForFieldName("declarator")?.childForFieldName("declarator"):t==="rust"&&c?.type==="impl_item"?l=c?.childForFieldName("trait"):l=c?.childForFieldName("name");let u=c?.childForFieldName("body");if(c&&u){switch(t){case"typescript":case"javascript":{let{definition:p}=v$r(c);c=p;break}}r.get(c.id)||r.set(c.id,{mainBlock:p_.ofSyntaxNode(c),detailBlocks:{body:p_.ofSyntaxNode(u),name:l?.text}})}});let o=Array.from(r.values());return new IPe(o,p_.ofSyntaxNode(n))}function QSa(t,e,n){let r;switch(t){case"python":r=$Sa(e);break;case"ruby":r=qSa(e);break;default:{r=OSa(e,t);break}}return new IPe(r,p_.ofSyntaxNode(n))}function OSa(t,e){let n=new Map;return t.forEach(r=>{let a=r.captures.find(c=>c.name==="definition")?.node,s=a?.childForFieldName("body");if(a&&s){let c;switch(e){case"typescript":case"javascript":{let{definition:u,comments:d}=v$r(a);a=u,c=d;break}case"java":case"rust":c=zSa(a);break;default:{c=BPe(a);break}}n.get(a.id)||n.set(a.id,{mainBlock:p_.ofSyntaxNode(a),detailBlocks:{comments:c.map(u=>p_.ofSyntaxNode(u)),body:p_.ofSyntaxNode(s)}})}}),Array.from(n.values())}function USa(t){if(!(t.length<2))for(let e=1;e{let o=n.captures.find(a=>a.name==="definition")?.node;if(o){let a=o.namedChildren,s=USa(a);if(s){let c=a[a.length-1],l=o.text.substring(s.startIndex-o.startIndex,c.endIndex-o.startIndex),u=BPe(o);e.get(o.id)||e.set(o.id,{mainBlock:p_.ofSyntaxNode(o),detailBlocks:{comments:u.map(p=>p_.ofSyntaxNode(p)),body:{range:{startPosition:{row:s.startPosition.row,column:s.startPosition.column},endPosition:{row:c.endPosition.row,column:c.endPosition.column}},startIndex:s.startIndex,text:l,endIndex:c.endIndex}}})}}}),Array.from(e.values())}function $Sa(t){let e=new Map;return t.forEach(n=>{let o=n.captures.find(s=>s.name==="definition")?.node,a=o?.childForFieldName("body");if(o&&a){let s=GSa(a),c=jSa(o);e.set(o.id,{mainBlock:p_.ofSyntaxNode(o),detailBlocks:{docstring:s?p_.ofSyntaxNode(s):void 0,decorator:c?p_.ofSyntaxNode(c):void 0,body:p_.ofSyntaxNode(a)}});return}}),Array.from(e.values())}function BPe(t,e=["comment"]){let n=[],r=t.previousNamedSibling;for(;r&&e.some(o=>o===r?.type);)n.push(r),r=r.previousNamedSibling;return n.reverse()}function v$r(t){let e=t.parent;return e?.type==="export_statement"?{definition:e,comments:BPe(e)}:{definition:t,comments:BPe(t)}}function zSa(t){return BPe(t,["block_comment","line_comment"])}function jSa(t){let e=t.previousNamedSibling;return e?.type==="decorator"?e:void 0}function GSa(t){let e=t.firstChild;if(!e||e.type!=="expression_statement")return;let n=e.firstChild;return n?.type==="string"?n:void 0}function HSa(t,e){return a$r.getStructure(t,e)}async function WSa(t,e){let n=await Dd(t,e);try{let o=function(a){let s=a.type==="ERROR"?1:0;for(let c of a.children)s+=o(c);return s};var r=o;return n.tree.rootNode.hasError?o(n.tree.rootNode):0}finally{n.dispose()}}var ZSa=zr(__dirname,"worker2.js"),kat=class{constructor(e){this._parser=new Ten(Sen,ZSa,e)}dispose(){this._parser.dispose()}getTreeSitterAST(e){let n=p4(e.languageId);if(n)return this.getTreeSitterASTForWASMLanguage(n,e.getText())}getTreeSitterASTForWASMLanguage(e,n){let r=this._parser.proxy;return{getFunctionBodies:()=>r._getFunctionBodies(e,n),getCoarseParentScope:o=>r._getCoarseParentScope(e,n,o),getFixSelectionOfInterest:(o,a)=>r._getFixSelectionOfInterest(e,n,o,a),getCallExpressions:o=>r._getCallExpressions(e,n,o),getFunctionDefinitions:()=>r._getFunctionDefinitions(e,n),getClassReferences:o=>r._getClassReferences(e,n,o),getClassDeclarations:()=>r._getClassDeclarations(e,n),getTypeDeclarations:()=>r._getTypeDeclarations(e,n),getTypeReferences:o=>r._getTypeReferences(e,n,o),getSymbols:o=>r._getSymbols(e,n,o),getDocumentableNodeIfOnIdentifier:o=>r._getDocumentableNodeIfOnIdentifier(e,n,o),getTestableNode:o=>r._getTestableNode(e,n,o),getTestableNodes:()=>r._getTestableNodes(e,n),getNodeToExplain:o=>r._getNodeToExplain(e,n,o),getNodeToDocument:o=>r._getNodeToDocument(e,n,o),getFineScopes:o=>r._getFineScopes(e,n,o),getStructure:()=>r._getStructure(e,n),findLastTest:()=>r._findLastTest(e,n),getParseErrorCount:()=>r._getParseErrorCount(e,n)}}getSemanticChunkTree(e,n){return this._parser.proxy._getSemanticChunkTree(e,n)}getSemanticChunkNames(e,n){return this._parser.proxy._getSemanticChunkNames(e,n)}},VSa=3e3,Ten=class{constructor(e,n,r){this._workerPath=n;this._useWorker=r;this._local=new Proxy(e,{get:(o,a,s)=>{let c=o[a];return typeof c!="function"?c:async(...l)=>{let u=await c.apply(o,_$r(l));return _$r(u)}}}),this._worker=new Wr(()=>new SL(this._workerPath,{name:"Parser worker"})),this._workerProxy=this._createTimeoutProxy()}get proxy(){return this._useWorker?this._workerProxy:this._local}_restart(){this._worker.hasValue&&this._worker.value.terminate(),this._worker=new Wr(()=>new SL(this._workerPath,{name:"Parser worker"}))}_createTimeoutProxy(){let e=this;return new Proxy({},{get(n,r){return async(...o)=>{let a=Symbol(),c=e._worker.value.proxy[r](...o),l,u=new Promise(d=>{l=setTimeout(()=>d(a),VSa)});try{let d=await Promise.race([c,u]);if(d===a)throw e._restart(),new Jne;return d}finally{clearTimeout(l)}}}})}dispose(){this._worker.hasValue&&this._worker.value.terminate()}};function _$r(t){return typeof t>"u"?t:JSON.parse(JSON.stringify(t))}var C$r=require("util");yr();Ar();Ue();var Ben;(r=>{let t;(s=>{function o(c){return!!c&&typeof c=="object"&&typeof c.promptStrategy=="string"}s.is=o,s.validator=hs({promptStrategy:si()})})(t=r.Capabilities||={});let e;(s=>{s.validator=hs({serviceType:si(),name:si(),provider:si(),capabilities:t.validator});function a(c){return!!c&&typeof c=="object"&&typeof c.serviceType=="string"&&typeof c.name=="string"&&typeof c.provider=="string"&&t.is(c.capabilities)}s.is=a})(e=r.Model||={});let n;(s=>{s.validator=hs({models:cR(e.validator)});function a(c){return!!c&&typeof c=="object"&&Array.isArray(c.models)&&c.models.every(e.is)}s.is=a})(n=r.ModelList||={})})(Ben||={});var Efe=class extends fe{constructor(n,r,o,a){super();this._tokenStore=n;this._capiClient=r;this._fetchService=o;this._logService=a;this._onModelListUpdated=this._register(new lt);this.onModelListUpdated=this._onModelListUpdated.event;let s=To(this,this._tokenStore.onDidStoreUpdate,()=>this._tokenStore.copilotToken);this._register(fo(c=>{let l=s.read(c),u=new Oi;this._fetchLatestModels(l,u.token).then(d=>{d!==void 0&&(u.token.isCancellationRequested||(0,C$r.isDeepStrictEqual)(this._models,d)||(this._models=d,this._onModelListUpdated.fire()))}).catch(d=>{let p=jr.fromUnknown(d);this._logService.error(p,"Failed to fetch models in autorun")}),c.store.add({dispose:()=>u.dispose(!0)})}))}get models(){return this._models}get nesModels(){return this._models?.models.filter(n=>n.serviceType==="NESChat")}get instantApplyModels(){return this._models?.models.filter(n=>n.serviceType==="InstantApplyChat")}async _fetchLatestModels(n,r){if(!n)return;let o=`${this._capiClient.proxyBaseURL}/models`,a=this._fetchService.makeAbortController(),s=r.onCancellationRequested(()=>a.abort()),c;try{c=await this._fetchService.fetch(o,{headers:{Authorization:`Bearer ${n.token}`},method:"GET",timeout:1e4,callSite:"proxy-models",signal:a.signal})}catch(l){let u=jr.fromUnknown(l);this._logService.error(u,"Failed to fetch model list");return}finally{s.dispose()}if(!c.ok){this._logService.error(`Failed to fetch model list: ${c.status} ${c.statusText}`);return}try{let l=await c.json(),u=Ben.ModelList.validator.validate(l);if(u.error)throw new Error(`Invalid /models response data: ${u.error.message}`);return u.content}catch(l){let u=jr.fromUnknown(l);this._logService.error(u,"Failed to process /models response");return}}};Efe=S([b(0,sl),b(1,Mr),b(2,nr),b(3,Z)],Efe);var wm=O(Lt()),Ife=O(require("vscode"));var kfe=class{constructor(e,n){this._authService=e;this._authUpgradeService=n}async tryAuthenticating(e){let n=e?.fetchUrl,r={title:wm.t`Sign In`},o={title:wm.t`Cancel`,isCloseAffordance:!0};if(e?.repoId.type==="ado"){if(await Ife.window.showWarningMessage(wm.t`Sign in to use remote index`,{modal:!0,detail:n?wm.t`Sign in to Azure DevOps to use remote workspace index for: ${n.toString()}`:wm.t`Sign in to Azure DevOps to use remote workspace index for a repo in this workspace`},r,o)===r){await this._authService.getAdoAccessTokenBase64({createIfNone:!0});return}}else if(await Ife.window.showWarningMessage(wm.t`Sign in to use remote index`,{modal:!0,detail:n?wm.t`Sign in to GitHub to use remote workspace index for: ${n.toString()}`:wm.t`Sign in to GitHub to use remote workspace index for a repo in this workspace`},r,o)===r){await this._authService.getGitHubSession("any",{createIfNone:{detail:(0,wm.t)("Sign in to GitHub to use remote workspace index.")}});return}}async tryReauthenticating(e){let n=e?.fetchUrl,r={title:wm.t`Sign In`},o={title:wm.t`Cancel`,isCloseAffordance:!0};if(e?.repoId.type==="ado"){if(await Ife.window.showWarningMessage(wm.t`Reauthenticate to use remote workspace index`,{modal:!0,detail:n?wm.t`Sign in to Azure DevOps again to use remote workspace index for: ${n}`:wm.t`Sign in to Azure DevOps again to use remote workspace index for a repo in this workspace`},r,o)===r){await this._authService.getAdoAccessTokenBase64({createIfNone:!0});return}}else if(await Ife.window.showWarningMessage(wm.t`Reauthenticate to use remote workspace index`,{modal:!0,detail:n?wm.t`Sign in to GitHub again to use remote workspace index for: ${n}`:wm.t`Sign in to GitHub again to use remote workspace index for a repo in this workspace`},r,o)===r){await this._authUpgradeService.showPermissiveSessionModal();return}}async promptForExpandedLocalIndexing(e){let n={title:wm.t`Enable`},r={title:wm.t`Cancel`,isCloseAffordance:!0};return await Ife.window.showWarningMessage(wm.t`Build local index for this workspace?`,{modal:!0,detail:wm.t`This workspace contains ${e} files. Building a local index may take a while but will improve search performance.`},n,r)===n}};kfe=S([b(0,at),b(1,$d)],kfe);Je();var w$r=me("docsSearchClient");yr();En();Be();var Sfe=class extends Error{constructor(n,r){super(r);this.repo=n}},Ren=class extends Sfe{constructor(){super(...arguments);this.name="ERROR_TYPE_MISSING_INACCESSIBLE_REPO_ORG"}},Den=class extends Sfe{constructor(){super(...arguments);this.name="ERROR_TYPE_DOCS_EMBEDDINGS_UNAVAILABLE"}},Pen=class extends Sfe{constructor(){super(...arguments);this.name="ERROR_TYPE_NOT_INDEXED"}},Nen=class extends Error{constructor(){super(...arguments);this.name="ERROR_TYPE_MAX_RETRIES_EXCEEDED"}},Len=class extends Error{constructor(){super(...arguments);this.name="ERROR_TYPE_NO_ACCESS_TO_ENDPOINT"}};function x$r({error:t,message:e,repo:n}){switch(t){case"ERROR_TYPE_MISSING_INACCESSIBLE_REPO_ORG":return new Ren(n,e);case"ERROR_TYPE_DOCS_EMBEDDINGS_UNAVAILABLE":return new Den(n,e);case"ERROR_TYPE_NOT_INDEXED":return new Pen(n,e);default:return new Sfe(n,e)}}function Men({error:t,message:e}){switch(t){case"ERROR_TYPE_MAX_RETRIES_EXCEEDED":return new Nen(e);case"ERROR_TYPE_NO_ACCESS_TO_ENDPOINT":return new Len(e);default:return new Error(e)}}function E$r(t){let n=[`(repo:${(Array.isArray(t.repo)?t.repo:[t.repo]).join(" OR repo:")})`];return t.lang&&n.push(`(lang:${t.lang.join(" OR lang:")})`),t.notLang&&n.push(`NOT (lang:${t.notLang.join(" OR lang:")})`),t.path&&n.push(`(path:${t.path.join(" OR path:")})`),t.notPath&&n.push(`NOT (path:${t.notPath.join(" OR path:")})`),n.join(" ")}var Sat=class extends Error{constructor(n,r){super(r);this.status=n}},YSa=6,KSa=100,JSa=.766,DY=class{constructor(e,n,r,o){this._telemetryService=e;this._authenticationService=n;this._logService=r;this._instantiationService=o;this.slug="docs"}async search(e,n,r={},o){if(Array.isArray(n.repo)&&!n.repo.length)throw new Error("No repos specified");let a;try{a=await this.postRequestWithRetry(e,n,r,o??Yt.None)}catch(c){throw Jr(c)||this._telemetryService.sendGHTelemetryException(c,`${this.slug} search failed`),c}let s=a.errors?.map(x$r)??[];if(!Array.isArray(n.repo)){if(s.length)throw s.length>1?new AggregateError(s):s[0];return a.results}return{results:a.results,errors:s}}async postRequestWithRetry(e,n,r,o){let a=(await this._authenticationService.getGitHubSession("permissive",{silent:!0}))?.accessToken??(await this._authenticationService.getGitHubSession("any",{silent:!0}))?.accessToken;if(o.isCancellationRequested)throw new Jn;let s=3,c=0,l=new Set,u;for(;csetTimeout(m,p))}}throw o.isCancellationRequested?new Jn:(c>=s&&(this._logService.warn(`[repo:${n.repo}] Max Retry Error thrown while querying '${e}'`),u=Men({error:"ERROR_TYPE_MAX_RETRIES_EXCEEDED",message:`${this.slug} search timed out after ${s} retries. ${Array.from(l).join(` `)}`})),u)}async postCodeOrDocsSearchRequest(e,n,r,o,a,s){let c=Math.min(a.limit??YSa,KSa),l=a.similarity??JSa,u={urlOrRequestMetadata:e,tokenizer:"o200k_base",acquireTokenizer(){throw new Error("Method not implemented.")},family:"Code Or Doc Search",name:"Code Or Doc Search",version:"2023-12-12-preview",modelMaxPromptTokens:0,getExtraHeaders(){return{Accept:"application/json","X-GitHub-Api-Version":"2023-12-12-preview"}}},d=await this._instantiationService.invokeFunction(fw,{endpointOrUrl:u,secretKey:n??"",intent:"codesearch",requestId:st(),body:{query:r,scopingQuery:E$r(o),similarity:l,limit:c},cancelToken:s}),p=await d.text();if(d.status===404||d.status===400&&p.includes("unknown integration"))throw this._logService.debug(`${this.slug} search endpoint not available for this user.`),Men({error:"ERROR_TYPE_NO_ACCESS_TO_ENDPOINT",message:`${this.slug}: ${p}`});let m;try{m=JSON.parse(p)}catch{throw new Sat(d.status,p)}return m}};S([pf(e=>e._logService,"CodeOrDocsSearchClientImpl::search")],DY.prototype,"search",1),DY=S([b(0,Ee),b(1,at),b(2,Z),b(3,j)],DY);var RPe=require("vscode");En();var Tfe=class{constructor(e,n,r){this.parserService=e;this.languageFeaturesService=n;this.dialogService=r}async findEnclosingBlocks(e,n){let r=this.parserService.getTreeSitterAST(e);if(r===void 0)return;let o=xA(n,e);return(await r.getFineScopes(o))?.map(s=>{let c=d_(e,s);return{kind:"code",name:e.lineAt(c.start).text.trim(),range:c}})}findEnclosingSymbols(e,n){for(let r of e)if(r.range.contains(n)){let o=this.findEnclosingSymbols(r.children,n);return o?[r,...o]:[r]}}async selectEnclosingScope(e,n){let r=await this.languageFeaturesService.getDocumentSymbols(e.document.uri);if(!r||r.length>0&&!r[0].hasOwnProperty("children"))return;let o=e.selection;if(!o.isEmpty)return;let a=this.findEnclosingSymbols(r,e.selection.active);if(n?.includeBlocks&&a?.push(...await this.findEnclosingBlocks(xr.create(e.document),e.selection)??[]),a||(a=r),a?.length===1){let s=a[0];e.selection=new RPe.Selection(s.range.start,s.range.end)}else if(a&&a.length>1||!a&&r.length>1){let s=a.sort((l,u)=>u.range.start.line-l.range.start.line).map(l=>({label:`$(${l.kind==="code"?"code":I$r.toIcon(l.kind).id}) ${l.name}`,description:`:${l.range.start.line+1}-${l.range.end.line+1}`,symbol:l}));if(!await this.dialogService.showQuickPick(s,{placeHolder:n?.reason??RPe.l10n.t("Select an enclosing range"),onDidSelectItem(l){let u=l.symbol;u&&(e.selection=new RPe.Selection(u.range.start,u.range.end),e.revealRange(u.range))}}))throw e.selection=o,new Jn}return e.selection}};Tfe=S([b(0,Ai),b(1,og),b(2,PAe)],Tfe);var I$r;(n=>{let t=new Map;t.set(0,Oo.symbolFile),t.set(1,Oo.symbolModule),t.set(2,Oo.symbolNamespace),t.set(3,Oo.symbolPackage),t.set(4,Oo.symbolClass),t.set(5,Oo.symbolMethod),t.set(6,Oo.symbolProperty),t.set(7,Oo.symbolField),t.set(8,Oo.symbolConstructor),t.set(9,Oo.symbolEnum),t.set(10,Oo.symbolInterface),t.set(11,Oo.symbolFunction),t.set(12,Oo.symbolVariable),t.set(13,Oo.symbolConstant),t.set(14,Oo.symbolString),t.set(15,Oo.symbolNumber),t.set(16,Oo.symbolBoolean),t.set(17,Oo.symbolArray),t.set(18,Oo.symbolObject),t.set(19,Oo.symbolKey),t.set(20,Oo.symbolNull),t.set(21,Oo.symbolEnumMember),t.set(22,Oo.symbolStruct),t.set(23,Oo.symbolEvent),t.set(24,Oo.symbolOperator),t.set(25,Oo.symbolTypeParameter);function e(r){let o=t.get(r);return o||(console.info("No codicon found for SymbolKind "+r),o=Oo.symbolProperty),o}n.toIcon=e})(I$r||={});var PY=class extends hfe{constructor(n,r){super();this._ignoreService=n;this._logService=r}async findFilesWithDefaultExcludes(n,r,o){let a=await this._ignoreService.asMinimatchPattern(),s=await this._findFilesWithDefaultExcludesAndExcludes(n,a,r,o);return!this._ignoreService.isRegexExclusionsEnabled||!s?s:Array.isArray(s)?await mgt(this._ignoreService,s):await this._ignoreService.isCopilotIgnored(s)?void 0:s}async findFiles(n,r,o){let a=await this._ignoreService.asMinimatchPattern();r?.exclude?r={...r,exclude:a?r.exclude.map(c=>$Nn(c,a)):r.exclude}:r={...r,exclude:a?[a]:r?.exclude};let s=await super.findFiles(n,r,o);return this._ignoreService.isRegexExclusionsEnabled?await mgt(this._ignoreService,s):s}async findTextInFiles(n,r,o,a){let s=[],c={report:async u=>{s.push((async()=>{await this._ignoreService.isCopilotIgnored(u.uri)||o.report(u)})())}},l=await super.findTextInFiles(n,r,c,a);return await Promise.all(s),l}};S([pf(n=>n._logService,"SearchServiceImpl::findFiles")],PY.prototype,"findFiles",1),PY=S([b(0,Dt),b(1,Z)],PY);var k$r="7d7048df-6dd0-4048-bb23-b716c1461f8f",S$r="3fdd7f28-937a-48c8-9a21-ba337db23bd1";var H$r=O(require("path")),Lfe=O(require("vscode")),PPe=O(G$r());Of();pa();wr();dn();Ar();Ue();var Jen=class t extends fe{constructor(n,r){super();this.context=n;this._onDidChangeUserInfo=this._register(new lt);this.onDidChangeUserInfo=this._onDidChangeUserInfo.event;if(r){let o=()=>{if(r.copilotToken?.isVscodeTeamMember)return"vscode";if(r.copilotToken?.isGitHubInternal)return"github";if(r.copilotToken?.isMicrosoftInternal)return"microsoft"};if(r.onDidStoreUpdate(()=>{this.updateUserInfo(o(),r.copilotToken?.sku,r.copilotToken?.isFcv1(),r.copilotToken?.isSn(),r.copilotToken?.isVscodeTeamMember,r.copilotToken?.organizationList)}),r.copilotToken)this.updateUserInfo(o(),r.copilotToken.sku,r.copilotToken.isFcv1(),r.copilotToken.isSn(),r.copilotToken.isVscodeTeamMember,r.copilotToken.organizationList);else{let a=this.context.globalState.get(t.INTERNAL_ORG_STORAGE_KEY),s=this.context.globalState.get(t.SKU_STORAGE_KEY),c=this.context.globalState.get(t.IS_FCV1_STORAGE_KEY),l=this.context.globalState.get(t.IS_SN_STORAGE_KEY),u=this.context.globalState.get(t.IS_VSCODE_TEAM_MEMBER_STORAGE_KEY),d=this.context.globalState.get(t.ORGANIZATION_LIST_STORAGE_KEY);this.updateUserInfo(a,s,c,l,u,d)}}}static{this.INTERNAL_ORG_STORAGE_KEY="exp.github.copilot.internalOrg"}static{this.SKU_STORAGE_KEY="exp.github.copilot.sku"}static{this.IS_FCV1_STORAGE_KEY="exp.github.copilot.isFcv1"}static{this.IS_SN_STORAGE_KEY="exp.github.copilot.isSn"}static{this.IS_VSCODE_TEAM_MEMBER_STORAGE_KEY="exp.github.copilot.isVscodeTeamMember"}static{this.ORGANIZATION_LIST_STORAGE_KEY="exp.github.copilot.organizationList"}get internalOrg(){return this._internalOrg}get sku(){return this._sku}get isFcv1(){return this._isFcv1}get isSn(){return this._isSn}get isVscodeTeamMember(){return this._isVscodeTeamMember}get organizationList(){return this._organizationList}updateUserInfo(n,r,o,a,s,c){this._internalOrg===n&&this._sku===r&&this._isFcv1===o&&this._isSn===a&&this._isVscodeTeamMember===s&&ru(this._organizationList,c)||(this._internalOrg=n,this._sku=r,this._isFcv1=o,this._isSn=a,this._isVscodeTeamMember=s,this._organizationList=c,this.context.globalState.update(t.INTERNAL_ORG_STORAGE_KEY,this._internalOrg),this.context.globalState.update(t.SKU_STORAGE_KEY,this._sku),this.context.globalState.update(t.IS_FCV1_STORAGE_KEY,this._isFcv1),this.context.globalState.update(t.IS_SN_STORAGE_KEY,this._isSn),this.context.globalState.update(t.IS_VSCODE_TEAM_MEMBER_STORAGE_KEY,this._isVscodeTeamMember),this.context.globalState.update(t.ORGANIZATION_LIST_STORAGE_KEY,this._organizationList),this._onDidChangeUserInfo.fire())}},Pfe=class extends fe{constructor(n,r,o,a,s){super();this._configurationService=a;this._logService=s;this._refreshTimer=this._register(new Dv);this._previouslyReadTreatments=new Map;this._onDidTreatmentsChange=this._register(new lt);this.onDidTreatmentsChange=this._onDidTreatmentsChange.event;this._signalTreatmentsChangeEvent=()=>{let n=[];for(let[r,o]of this._previouslyReadTreatments){let a=this._delegate.getTreatmentVariable("vscode",r);a!==o&&(this._logService.trace(`[BaseExperimentationService] Treatment changed: ${r} from ${o} to ${a}`),this._previouslyReadTreatments.set(r,a),n.push(r))}n.length>0&&(this._onDidTreatmentsChange.fire({affectedTreatmentVariables:n}),this._configurationService.updateExperimentBasedConfiguration(n))};this._completionsFilters=new Map;this._userInfoStore=new Jen(r,o),this._register(this._userInfoStore.onDidChangeUserInfo(async()=>{await this._delegate.getTreatmentVariableAsync("vscode","refresh"),this._logService.trace("[BaseExperimentationService] User info changed, refreshed treatments"),this._signalTreatmentsChangeEvent()})),this._refreshTimer.cancelAndSet(async()=>{await this._delegate.getTreatmentVariableAsync("vscode","refresh"),this._logService.trace("[BaseExperimentationService] Refreshed treatments on timer"),this._signalTreatmentsChangeEvent()},60*60*1e3),this._delegate=n(r.globalState,this._userInfoStore),this._delegate.initialFetch.then(()=>{this._logService.trace("[BaseExperimentationService] Initial fetch completed")})}async hasTreatments(){return await this._delegate.initializePromise,this._delegate.initialFetch}getTreatmentVariable(n){let r=this._delegate.getTreatmentVariable("vscode",n);return this._previouslyReadTreatments.set(n,r),r}async setCompletionsFilters(n){if(!y1a(this._completionsFilters,n)){this._completionsFilters.clear();for(let[r,o]of n)this._completionsFilters.set(r,o);await this._delegate.initialFetch,await this._delegate.getTreatmentVariableAsync("vscode","refresh"),this._signalTreatmentsChangeEvent()}}getCompletionsFilters(){return this._completionsFilters}};Pfe=S([b(1,ut),b(2,sl),b(3,be),b(4,Z)],Pfe);function y1a(t,e){if(t.size!==e.size)return!1;for(let[n,r]of t)if(e.get(n)!==r)return!1;return!0}function v1a(t){return t?PPe.TargetPopulation.Insiders:PPe.TargetPopulation.Public}function _1a(t){return t.split("-")[0]}var zx="X-Copilot-RelatedPluginVersion-",Uat=(m=>(m.CopilotRelatedPluginVersionCppTools=zx+"msvscodecpptools",m.CopilotRelatedPluginVersionCMakeTools=zx+"msvscodecmaketools",m.CopilotRelatedPluginVersionMakefileTools=zx+"msvscodemakefiletools",m.CopilotRelatedPluginVersionCSharpDevKit=zx+"msdotnettoolscsdevkit",m.CopilotRelatedPluginVersionPython=zx+"mspythonpython",m.CopilotRelatedPluginVersionPylance=zx+"mspythonvscodepylance",m.CopilotRelatedPluginVersionJavaPack=zx+"vscjavavscodejavapack",m.CopilotRelatedPluginVersionTypescript=zx+"vscodetypescriptlanguagefeatures",m.CopilotRelatedPluginVersionTypescriptNext=zx+"msvscodevscodetypescriptnext",m.CopilotRelatedPluginVersionCSharp=zx+"msdotnettoolscsharp",m.CopilotRelatedPluginVersionCopilot=zx+"githubcopilot",m.CopilotRelatedPluginVersionCopilotChat=zx+"githubcopilotchat",m))(Uat||{}),Xen=class{constructor(e){this._logService=e}_getRelatedExtensions(){return["ms-vscode.cpptools","ms-vscode.cmake-tools","ms-vscode.makefile-tools","ms-dotnettools.csdevkit","ms-python.python","ms-python.vscode-pylance","vscjava.vscode-java-pack","vscode.typescript-language-features","ms-vscode.vscode-typescript-next","ms-dotnettools.csharp"].map(e=>{let n=Lfe.extensions.getExtension(e)?.packageJSON;if(n&&typeof n=="object"&&"version"in n&&typeof n.version=="string")return{name:e,version:n.version}}).filter(e=>e!==void 0)}getFilters(){this._logService.trace("[RelatedExtensionsFilterProvider]::getFilters looking up related extensions");let e=new Map;for(let n of this._getRelatedExtensions()){let r=zx+n.name.replace(/[^A-Za-z]/g,"").toLowerCase();if(!Object.values(Uat).includes(r)){this._logService.warn(`[RelatedExtensionsFilterProvider]::getFilters A filter could not be registered for the unrecognized related plugin "${n.name}".`);continue}e.set(r,_1a(n.version))}return this._logService.trace(`[RelatedExtensionsFilterProvider]::getFilters Filters: ${JSON.stringify(Array.from(e.entries()))}`),e}},etn=class{constructor(e){this._logService=e}getFilters(){let e=Lfe.extensions.getExtension("github.copilot")?.packageJSON.version,n=rd.version,r=rd.completionsCoreVersion;this._logService.trace(`[CopilotExtensionsFilterProvider]::getFilters Copilot Extension Version: ${e}, Copilot Chat Extension Version: ${n}, Completions Core Version: ${r}`);let o=new Map;return o.set(Uat.CopilotRelatedPluginVersionCopilot,e),o.set(Uat.CopilotRelatedPluginVersionCopilotChat,n),o.set("X-VSCode-CompletionsInChatExtensionVersion",r),o}},ttn=class{constructor(e,n){this._getCompletionsFilters=e;this._logService=n}getFilters(){let e=new Map;for(let[n,r]of this._getCompletionsFilters())r!==""&&e.set(n,r);return this._logService.trace(`[CopilotCompletionsFilterProvider]::getFilters Filters: ${JSON.stringify(Array.from(e.entries()))}`),e}},ntn=class{constructor(e,n){this._userInfoStore=e;this._logService=n}getFilters(){let e=this._userInfoStore.organizationList?.join(",");this._logService.trace(`[GithubAccountFilterProvider]::getFilters SKU: ${this._userInfoStore.sku}, Internal Org: ${this._userInfoStore.internalOrg}, IsFcv1: ${this._userInfoStore.isFcv1}, IsSn: ${this._userInfoStore.isSn}, IsVscodeTeamMember: ${this._userInfoStore.isVscodeTeamMember}, OrganizationList: ${e}`);let n=new Map;return n.set("X-GitHub-Copilot-SKU",this._userInfoStore.sku),n.set("X-Microsoft-Internal-Org",this._userInfoStore.internalOrg),n.set("X-GitHub-Copilot-IsFcv1",this._userInfoStore.isFcv1?"1":"0"),n.set("X-GitHub-Copilot-IsSn",this._userInfoStore.isSn?"1":"0"),n.set("X-GitHub-Copilot-IsVscodeTeamMember",this._userInfoStore.isVscodeTeamMember?"1":"0"),n.set("X-GitHub-Copilot-OrganizationList",e),n}},rtn=class{constructor(e){this._devDeviceId=e}getFilters(){let e=new Map;return e.set("X-VSCode-DevDeviceId",this._devDeviceId),e}},itn=class{constructor(e){this._logService=e;this._releaseDate=this._initReleaseDate()}_initReleaseDate(){try{let e=require(H$r.default.join(Lfe.env.appRoot,"product.json"));return this._formatReleaseDate(e.date??"")}catch(e){this._logService.warn(`[PlatformAndReleaseDateFilterProvider]::_initReleaseDate Failed to read product.json for release date: ${e}`);return}}_formatReleaseDate(e){if(!e)return"";let n=/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2})/.exec(e);return n?n.slice(1,5).join(""):""}getFilters(){let e=new Map,n=qpn(gFe);return e.set("X-VSCode-Platform",n),this._releaseDate&&e.set("X-VSCode-ReleaseDate",this._releaseDate),this._logService.trace(`[PlatformAndReleaseDateFilterProvider]::getFilters Filters: ${JSON.stringify(Array.from(e.entries()))}`),e}},Nfe=class extends Pfe{constructor(e,n,r,o,a,s,c){let l=n.extension.id,u=n.extension.packageJSON.version,d=v1a(r.isPreRelease()),p,m=(A,f)=>{let g=new DPe(A,r);return(0,PPe.getExperimentationService)(l,u,d,e,g,new ntn(f,c),new Xen(c),new etn(c),new ttn(()=>p?.getCompletionsFilters()??new Map,c),new rtn(Lfe.env.devDeviceId),new itn(c))};super(m,n,o,a,c),p=this,s instanceof SP&&s.setExperimentationService(this)}};Nfe=S([b(0,Ee),b(1,ut),b(2,Zt),b(3,sl),b(4,be),b(5,nr),b(6,Z)],Nfe);var DPe=class{constructor(e,n){this._actual=e;this._envService=n}keys(){return this._actual.keys()}get(e,n){let r=this._actual.get(e,n);if(!C1a(r)||r.extensionVersion!==this._envService.getVersion())return n;let o=new Date().getTime()-new Date(r.savedDateTime).getTime(),a=1e3*60*60*24*3;return o>a?n:r.value}update(e,n){let r={$$$isWrappedExpValue:!0,savedDateTime:new Date().toISOString(),extensionVersion:this._envService.getVersion(),value:n};return this._actual.update(e,r)}};DPe=S([b(1,Zt)],DPe);function C1a(t){return Bm(t)&&"$$$isWrappedExpValue"in t}Be();var qat=class{constructor(e,n,r,o){this._tokenStore=e;this._capiClientService=n;this._microsoftTelemetrySender=r;this._ghTelemetrySender=o;this._sharedProperties={};this._additionalExpAssignments=[];this._disposables=[];this._disposables.push(this._microsoftTelemetrySender,this._ghTelemetrySender),this._disposables.push(e.onDidStoreUpdate(()=>{let a=e.copilotToken;a&&this.sendMSFTTelemetryEvent("token",void 0,{snippyEnabled:a.isPublicSuggestionsEnabled()?1:0,telemetryEnabled:a.isTelemetryEnabled()?1:0,mcpEnabled:a.isMcpEnabled()?1:0,previewEnabled:a.isEditorPreviewFeaturesEnabled()?1:0,reviewEnabled:a.isCopilotCodeReviewEnabled?1:0})}))}dispose(){this._disposables.forEach(e=>e.dispose())}sendMSFTTelemetryEvent(e,n,r){this.sendTelemetryEvent(e,{github:!1,microsoft:!0},n,r)}sendMSFTTelemetryErrorEvent(e,n,r){this.sendTelemetryErrorEvent(e,{github:!1,microsoft:!0},n,r)}sendGHTelemetryEvent(e,n,r){let o=this._tokenStore.copilotToken?.sku,a={...n,sku:o??""};this.sendTelemetryEvent(e,{github:!0,microsoft:!1},a,r)}sendGHTelemetryErrorEvent(e,n,r){this.sendTelemetryErrorEvent(e,{github:!0,microsoft:!1},n,r)}sendGHTelemetryException(e,n){this._ghTelemetrySender.sendExceptionTelemetry(e,n)}sendEnhancedGHTelemetryEvent(e,n,r){n={...n,...this._sharedProperties},this._ghTelemetrySender.sendEnhancedTelemetryEvent(e,n,r)}sendEnhancedGHTelemetryErrorEvent(e,n,r){n={...n,...this._sharedProperties},this._ghTelemetrySender.sendEnhancedTelemetryErrorEvent(e,n,r)}sendInternalMSFTTelemetryEvent(e,n,r){n={...n,...this._sharedProperties},this._microsoftTelemetrySender.sendInternalTelemetryEvent(e,n,r)}_getEventName(e,n){let r="";return typeof n=="object"&&(r=n.eventNamePrefix),r+e}sendTelemetryEvent(e,n,r,o){r={...r,...this._sharedProperties},n.github&&this._ghTelemetrySender.sendTelemetryEvent(this._getEventName(e,n.github),r,o),n.microsoft&&this._microsoftTelemetrySender.sendTelemetryEvent(e,r,o)}sendTelemetryErrorEvent(e,n,r,o){r={...r,...this._sharedProperties},n.github&&this._ghTelemetrySender.sendTelemetryErrorEvent(this._getEventName(e,n.github),r,o),n.microsoft&&this._microsoftTelemetrySender.sendTelemetryErrorEvent(e,r,o)}_setOriginalExpAssignments(e){this._originalExpAssignments=e,this._updateExpAssignmentsSharedProperty()}setAdditionalExpAssignments(e){this._additionalExpAssignments=e,this._updateExpAssignmentsSharedProperty()}_updateExpAssignmentsSharedProperty(){let e=this._originalExpAssignments||"";for(let n of this._additionalExpAssignments)e.includes(n)||(e+=`;${n}`);this._capiClientService.abExpContext=e,this._sharedProperties["abexp.assignmentcontext"]=e}setSharedProperty(e,n){if(e==="abexp.assignmentcontext"){this._setOriginalExpAssignments(n);return}this._sharedProperties[e]=n}postEvent(e,n){for(let[r,o]of Object.entries(this._sharedProperties))n.set(r,o);this._microsoftTelemetrySender.postEvent(e,n)}};var PHr=O(require("https")),Gge=O(require("os")),fLe=O(require("vscode"));var wRa=async(t,e,n)=>{let r=await Promise.resolve().then(()=>(uK(),Bjr)),o=await Promise.resolve().then(()=>(AGr(),mGr)),a=new r.AppInsightsCore,s=new o.PostChannel,c={instrumentationKey:t,endpointUrl:"https://mobile.events.data.microsoft.com/OneCollector/1.0",loggingLevelTelemetry:0,loggingLevelConsole:0,disableCookiesUsage:!0,disableDbgExt:!0,disableInstrumentationKeyValidation:!0,channels:[[s]]};if(n){c.extensionConfig={};let d={alwaysUseXhrOverride:!0,httpXHROverride:n};c.extensionConfig[s.identifier]=d}let u=e.workspace.getConfiguration("telemetry").get("internalTesting");return a.initialize(c,[]),a.addTelemetryInitializer(d=>{d.ext=d.ext??{},d.ext.web=d.ext.web??{},d.ext.web.consentDetails='{"GPC_DataSharingOptIn":false}',u&&(d.ext.utc=d.ext.utc??{},d.ext.utc.flags=8462029)}),a},fGr=async(t,e,n)=>{let r=await wRa(t,e,n);return{logEvent:(s,c)=>{try{r?.track({name:s,baseData:{name:s,properties:c?.properties,measurements:c?.measurements}})}catch(l){throw new Error(`Failed to log event to app insights! `+l.message)}},flush:async()=>{try{return new Promise((c,l)=>{if(!r){c();return}r.flush(!0,u=>{if(!u){l("Failed to flush app 1DS!");return}})})}catch(s){throw new Error(`Failed to flush 1DS! `+s.message)}},dispose:async()=>new Promise(c=>{if(!r){c();return}r.unload(!1,()=>{c(),r=void 0},1e3)})}};qQ();var u$=class t{static applyReplacements(e,n){for(let r of Object.keys(e))for(let o of n)o.lookup.test(r)&&(o.replacementString!==void 0?e[r]=o.replacementString:delete e[r])}static shouldUseOneDataSystemSDK(e){return e.length===74&&e[32]==="-"&&e[41]==="-"&&e[46]==="-"&&e[51]==="-"&&e[56]==="-"&&e[69]==="-"}static getAdditionalCommonProperties(e){return{"common.os":e.platform,"common.nodeArch":e.architecture,"common.platformversion":(e.release||"").replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/,"$1$2$3"),"common.telemetryclientversion":"1.5.1"}}static getInstance(){return t._instance||(t._instance=new t),t._instance}};var DHr=async(t,e,n,r,o,a)=>{let s;try{let u=await Promise.resolve().then(()=>(RHr(),BHr)),d;t.startsWith("InstrumentationKey=")||(d=t);let m={...d?{instrumentationKey:d}:{connectionString:t},disableAjaxTracking:!0,disableExceptionTracking:!0,disableFetchTracking:!0,disableCorrelationHeaders:!0,disableCookiesUsage:!0,autoTrackPageVisitTime:!1,emitLineDelimitedJson:!1,disableInstrumentationKeyValidation:!0};if(a?.endpointUrl&&(m.endpointUrl=a.endpointUrl),r){m.extensionConfig=m.extensionConfig||{};let A={alwaysUseXhrOverride:!0,httpXHROverride:r};m.extensionConfig[tlt]=A}s=new u.ApplicationInsights(m)}catch(u){return Promise.reject(u)}let c=u=>{let d={...a?.commonProperties,...u?.properties};o?.length&&u$.applyReplacements(d,o);let p=a?.tagOverrides&&Object.keys(a.tagOverrides).length>0,m=u?.tagOverrides&&Object.keys(u.tagOverrides).length>0,A=p||m?{...a?.tagOverrides,...u?.tagOverrides}:void 0;return{finalProperties:A?{...d,...A}:d}};return{logEvent:(u,d)=>{let{finalProperties:p}=c(d);s?.track({name:u,data:p,baseType:"EventData",ext:{user:{id:e,authId:e},app:{sesId:n}},baseData:{name:u,properties:p,measurements:d?.measurements}})},logException:(u,d)=>{let{finalProperties:p}=c(d);s?.track({name:u.name,data:p,baseType:"ExceptionData",ext:{user:{id:e,authId:e},app:{sesId:n}},baseData:{exceptions:[{typeName:u.name,message:u.message,hasFullStack:!!u.stack,stack:u.stack,parsedStack:[]}],properties:p,measurements:d?.measurements}})},flush:async()=>{s?.flush(!1)},dispose:async()=>new Promise(d=>{s?.unload(!0,()=>{d(),s=void 0},1e3)})}};var plt=class{constructor(e,n,r){this.telemetrySender=e,this.vscodeAPI=n,this.userOptIn=!1,this.errorOptIn=!1,this.disposables=[],this._onDidChangeTelemetryLevel=new this.vscodeAPI.EventEmitter,this.onDidChangeTelemetryLevel=this._onDidChangeTelemetryLevel.event,this.contextTags={},this.telemetryLogger=this.vscodeAPI.env.createTelemetryLogger(this.telemetrySender,r),this.updateUserOptIn(),this.telemetryLogger.onDidChangeEnableStates(()=>{this.updateUserOptIn()})}updateUserOptIn(){this.errorOptIn=this.telemetryLogger.isErrorsEnabled,this.userOptIn=this.telemetryLogger.isUsageEnabled,(this.telemetryLogger.isErrorsEnabled||this.telemetryLogger.isUsageEnabled)&&this.telemetrySender.instantiateSender(),this._onDidChangeTelemetryLevel.fire(this.telemetryLevel)}mergeTagOverrides(e){let n=Object.keys(this.contextTags).length>0,r=e&&Object.keys(e).length>0;return n||r?{...this.contextTags,...e}:void 0}get telemetryLevel(){return this.errorOptIn&&this.userOptIn?"all":this.errorOptIn?"error":"off"}internalSendTelemetryEvent(e,n,r,o,a){let s=this.mergeTagOverrides(o);a?this.telemetrySender.sendEventData(e,{properties:n,measurements:r,tagOverrides:s}):this.telemetryLogger.logUsage(e,{properties:n,measurements:r,tagOverrides:s})}sendTelemetryEvent(e,n,r,o){this.internalSendTelemetryEvent(e,n,r,o,!1)}sendRawTelemetryEvent(e,n,r,o){let a={...n};for(let s of Object.keys(a??{})){let c=a[s];typeof s=="string"&&c!==void 0&&(a[s]=new this.vscodeAPI.TelemetryTrustedValue(typeof c=="string"?c:c.value))}this.sendTelemetryEvent(e,a,r,o)}sendDangerousTelemetryEvent(e,n,r,o){this.telemetrySender.instantiateSender(),this.internalSendTelemetryEvent(e,n,r,o,!0)}internalSendTelemetryErrorEvent(e,n,r,o,a){let s=this.mergeTagOverrides(o);a?this.telemetrySender.sendEventData(e,{properties:n,measurements:r,tagOverrides:s}):this.telemetryLogger.logError(e,{properties:n,measurements:r,tagOverrides:s})}sendTelemetryErrorEvent(e,n,r,o){this.internalSendTelemetryErrorEvent(e,n,r,o,!1)}sendDangerousTelemetryErrorEvent(e,n,r,o){this.telemetrySender.instantiateSender(),this.internalSendTelemetryErrorEvent(e,n,r,o,!0)}sendDangerousTelemetryException(e,n,r,o){this.telemetrySender.instantiateSender();let a=this.mergeTagOverrides(o);this.telemetrySender.sendErrorData(e,{properties:n,measurements:r,tagOverrides:a})}setContextTag(e,n){this.contextTags[e]=n}getContextTag(e){return this.contextTags[e]}async dispose(){return await this.telemetrySender.dispose(),this.telemetryLogger.dispose(),Promise.all(this.disposables.map(e=>e.dispose()))}};var WQ;(function(t){t[t.NOT_INSTANTIATED=0]="NOT_INSTANTIATED",t[t.INSTANTIATING=1]="INSTANTIATING",t[t.INSTANTIATED=2]="INSTANTIATED"})(WQ||(WQ={}));var mlt=class{constructor(e,n){this._instantiationStatus=WQ.NOT_INSTANTIATED,this._eventQueue=[],this._exceptionQueue=[],this._clientFactory=n,this._key=e}sendEventData(e,n){if(!this._telemetryClient){this._instantiationStatus!==WQ.INSTANTIATED&&this._eventQueue.push({eventName:e,data:n});return}this._telemetryClient.logEvent(e,n)}sendErrorData(e,n){if(!this._telemetryClient){this._instantiationStatus!==WQ.INSTANTIATED&&this._exceptionQueue.push({exception:e,data:n});return}if(this._telemetryClient.logException)this._telemetryClient.logException(e,n);else{let r={stack:e.stack,message:e.message,name:e.name},o=n,s={properties:{...o?.properties??n??{},...r},measurements:o?.measurements,tagOverrides:o?.tagOverrides};this._telemetryClient.logEvent("unhandlederror",s)}}async flush(){return this._telemetryClient?.flush()}async dispose(){this._telemetryClient&&(await this._telemetryClient.dispose(),this._telemetryClient=void 0)}_flushQueues(){this._eventQueue.forEach(({eventName:e,data:n})=>this.sendEventData(e,n)),this._eventQueue=[],this._exceptionQueue.forEach(({exception:e,data:n})=>this.sendErrorData(e,n)),this._exceptionQueue=[]}instantiateSender(){this._instantiationStatus===WQ.NOT_INSTANTIATED&&(this._instantiationStatus=WQ.INSTANTIATING,this._clientFactory(this._key).then(e=>{this._telemetryClient=e,this._instantiationStatus=WQ.INSTANTIATED,this._flushQueues()}).catch(e=>{console.error(e),this._instantiationStatus=WQ.INSTANTIATED}))}};function cDa(){return{sendPOST:(e,n)=>{let r={method:"POST",headers:{...e.headers,"Content-Type":"application/json","Content-Length":Buffer.byteLength(e.data)}};try{let o=PHr.request(e.urlString,r,a=>{a.on("data",function(s){n(a.statusCode??200,a.headers,s.toString())}),a.on("error",function(){n(0,{})})});o.write(e.data,a=>{a&&n(0,{})}),o.end()}catch{n(0,{})}}}}function lDa(t){return{sendPOST:(n,r)=>{let o=typeof n.data=="string"?n.data:Buffer.from(n.data).toString(),a={...n.headers};Object.keys(a).some(s=>s.toLowerCase()==="content-type")||(a["Content-Type"]="application/json"),t(n.urlString,{method:"POST",headers:a,body:o}).then(async s=>{let c={};for(let[u,d]of s.headers)c[u]=d;let l=await s.text();r(s.status,c,l)}).catch(()=>{r(0,{})})}}}var v$=class extends plt{constructor(e,n,r,o,a){let s=o?lDa(o):cDa(),c=p=>DHr(p,fLe.env.machineId,fLe.env.sessionId,s,n,a);u$.shouldUseOneDataSystemSDK(e)&&(c=p=>fGr(p,fLe,s));let l={release:Gge.release(),platform:Gge.platform(),architecture:Gge.arch()},u=new mlt(e,c);if(e&&e.indexOf("AIF-")===0)throw new Error("AIF keys are no longer supported. Please switch to 1DS keys for 1st party extensions");let d={...r,additionalCommonProperties:r?.additionalCommonProperties?{...r.additionalCommonProperties,...u$.getAdditionalCommonProperties(l)}:u$.getAdditionalCommonProperties(l)};super(u,fLe,d)}};var _$=O(require("os")),LHr=require("vscode");function NHr(t){return t.replace(/([\s|(]|file:\/\/)(\/[^\s]+)/g,"$1[redacted]").replace(/([\s|(]|file:\/\/)([a-zA-Z]:[(\\|/){1,2}][^\s]+)/gi,"$1[redacted]").replace(/([\s|(]|file:\/\/)(\\[^\s]+)/gi,"$1[redacted]")}Ue();var Alt=class{constructor(e,n,r,o,a,s){this._tokenStore=e;this._createTelemetryLogger=n;this._configService=r;this._telemetryConfig=o;this._envService=a;this._domainService=s;this._disposables=new it;this._processToken(this._tokenStore.copilotToken),this._standardTelemetryLogger=this._createTelemetryLogger(!1),this._disposables.add(this._tokenStore.onDidStoreUpdate(()=>{let c=this._tokenStore.copilotToken;this._processToken(c)})),this._disposables.add(this._domainService.onDidChangeDomains(()=>{this._standardTelemetryLogger.dispose(),this._standardTelemetryLogger=this._createTelemetryLogger(!1),this._enhancedTelemetryLogger&&(this._enhancedTelemetryLogger.dispose(),this._enhancedTelemetryLogger=this._createTelemetryLogger(!0))}))}_processToken(e){e||this._enhancedTelemetryLogger&&(this._enhancedTelemetryLogger.dispose(),this._enhancedTelemetryLogger=void 0),e?.getTokenValue("rt")==="1"?this._enhancedTelemetryLogger=this._createTelemetryLogger(!0):(this._enhancedTelemetryLogger&&this._enhancedTelemetryLogger.dispose(),this._enhancedTelemetryLogger=void 0)}sendTelemetryEvent(e,n,r){this._standardTelemetryLogger.logUsage(e,this.markAsIssuedAndMakeReadyForSending(n,r))}sendTelemetryErrorEvent(e,n,r){this._standardTelemetryLogger.logError(e,this.markAsIssuedAndMakeReadyForSending(n,r))}sendEnhancedTelemetryEvent(e,n,r){this._enhancedTelemetryLogger&&this._enhancedTelemetryLogger?.logUsage(e,this.markAsIssuedAndMakeReadyForSending(n,r))}sendEnhancedTelemetryErrorEvent(e,n,r){this._enhancedTelemetryLogger&&this._enhancedTelemetryLogger?.logError(e,this.markAsIssuedAndMakeReadyForSending(n,r))}sendExceptionTelemetry(e,n){let r=e instanceof Error?e:new Error("Non-error thrown: "+e),o=Mc.createAndMarkAsIssued({origin:NHr(n),reason:this._enhancedTelemetryLogger?"Exception logged to enhanced telemetry":"Exception, not logged due to opt-out"});if(o.makeReadyForSending(this._configService,this._envService,this._telemetryConfig),this.sendTelemetryEvent("exception",o.properties,o.measurements),!this._enhancedTelemetryLogger)return;let a=Mc.createAndMarkAsIssued({origin:n});a.makeReadyForSending(this._configService,this._envService,this._telemetryConfig),this._enhancedTelemetryLogger.logError(r,a)}markAsIssuedAndMakeReadyForSending(e,n){let r=Mc.createAndMarkAsIssued(wvn(e),n);r.makeReadyForSending(this._configService,this._envService,this._telemetryConfig);let o={};for(let a in r.properties)o[a]=new jee(r.properties[a]);return{properties:o,measurements:r.measurements}}dispose(){this._standardTelemetryLogger.dispose(),this._disposables.dispose(),this._enhancedTelemetryLogger&&this._enhancedTelemetryLogger.dispose()}};var Iin=class{constructor(e,n,r,o,a){this.oldReporter=e,this.newReporter=n,this.useNewTelemetryLibGetter=o,this.namespace=a,this.getTrackingId=r?S3e(r):()=>{}}get useNewTelemetryLib(){return this.cachedFlagValue===void 0&&(this.cachedFlagValue=this.useNewTelemetryLibGetter()),this.cachedFlagValue}massageEventName(e){return e.includes("wrapped-telemetry-event-name-")&&e.endsWith("-wrapped-telemetry-event-name")?BUt(e):e.includes(this.namespace)?e:`${this.namespace}/${e}`}extractPropertiesAndMeasurements(e){let n={},r={};if(e)if(e.properties!==void 0||e.measurements!==void 0)Object.assign(n,e.properties||{}),Object.assign(r,e.measurements||{});else for(let[o,a]of Object.entries(e))typeof a=="number"?r[o]=a:a!==void 0&&(n[o]=String(a));return{properties:n,measurements:r}}sendEventData(e,n){let{properties:r,measurements:o}=this.extractPropertiesAndMeasurements(n);if(this.useNewTelemetryLib&&this.newReporter){let a=this.massageEventName(e),s=this.getTrackingId(),c=s?{"ai.user.id":s}:void 0;this.newReporter.sendDangerousTelemetryEvent(a,r,o,c)}else{let a={...n,properties:r,measurements:o};this.oldReporter.sendEventData(e,a)}}sendErrorData(e,n){let{properties:r,measurements:o}=this.extractPropertiesAndMeasurements(n);if(this.useNewTelemetryLib&&this.newReporter){let a=this.getTrackingId(),s=a?{"ai.user.id":a}:void 0;this.newReporter.sendDangerousTelemetryException(e,r,o,s)}else{let a={...n,properties:r,measurements:o};this.oldReporter.sendErrorData(e,a)}}flush(){return Promise.all([this.oldReporter.flush(),this.newReporter?.dispose()]).then(()=>{})}};function uDa(t,e,n,r,o,a,s){let c=new fTe(e,n,o,a,t),l={common_os:_$.platform(),common_platformversion:_$.release(),common_arch:_$.arch(),common_cpu:Array.from(new Set(_$.cpus().map(p=>p.model))).join(),common_vscodemachineid:n.machineId,common_vscodesessionid:n.sessionId,client_deviceid:n.devDeviceId,common_uikind:n.uiKind,common_remotename:n.remoteName??"none",common_isnewappinstall:""},u={endpointUrl:e.copilotTelemetryURL,commonProperties:l,tagOverrides:{"ai.cloud.roleInstance":"REDACTED","ai.session.id":n.sessionId}},d=new v$(t,[],{ignoreBuiltInCommonProperties:!0,ignoreUnhandledErrors:!0},s,u);return new Iin(c,d,o,r,a)}var flt=class extends Alt{constructor(e,n,r,o,a,s,c,l,u,d,p){let m=A=>{let g=uDa(A?l:c,a,n,d,u,s,p);return LHr.env.createTelemetryLogger(g,{ignoreBuiltInCommonProperties:!0,ignoreUnhandledErrors:!0})};super(u,m,e,r,n,o)}};Ue();var glt=class{constructor(e,n){this._createTelemetryReporter=n;this._disposables=new it;this._vscodeTeamMember=!1;this._isInternal=!1;this._externalTelemetryReporter=this._createTelemetryReporter(!1,!1),this.processToken(e.copilotToken),this._disposables.add(e.onDidStoreUpdate(()=>this.processToken(e.copilotToken)))}postEvent(e,n){let r={};for(let[o,a]of n)r[o]=a;this._isInternal&&this.sendInternalTelemetryEvent(e,r),this.sendTelemetryEvent(e,r)}sendInternalTelemetryEvent(e,n,r){this._internalTelemetryReporter&&(n={...n,"common.tid":this._tid,"common.userName":this._username??"undefined"},r={...r,"common.isVscodeTeamMember":this._vscodeTeamMember?1:0},this._internalTelemetryReporter.sendRawTelemetryEvent(e,n,r),this._internalLargeEventTelemetryReporter&&this._internalLargeEventTelemetryReporter.sendRawTelemetryEvent(e,n,r))}sendTelemetryEvent(e,n,r){n={...n,"common.tid":this._tid??"","common.sku":this._sku??"undefined"},this._isInternal&&(r={...r,"common.internal":1}),this._externalTelemetryReporter.sendTelemetryEvent(e,n,r)}sendTelemetryErrorEvent(e,n,r){n={...n,"common.tid":this._tid??"","common.sku":this._sku??"undefined"},this._isInternal&&(r={...r,"common.internal":1}),this._externalTelemetryReporter.sendTelemetryErrorEvent(e,n,r)}dispose(){this._externalTelemetryReporter.dispose(),this._internalTelemetryReporter?.dispose()}processToken(e){this._username=e?.username,this._vscodeTeamMember=!!e?.isVscodeTeamMember;let n=e?.getTokenValue("tid");if(n&&(this._tid=n),this._sku=e?.sku,this._isInternal=!!e?.isInternal,this._isInternal&&(this._internalTelemetryReporter??=this._createTelemetryReporter(!0,!1),this._internalLargeEventTelemetryReporter??=this._createTelemetryReporter(!0,!0)),!e||!this._isInternal){this._internalTelemetryReporter?.dispose(),this._internalTelemetryReporter=void 0,this._internalLargeEventTelemetryReporter?.dispose(),this._internalLargeEventTelemetryReporter=void 0;return}}};var hlt=class extends glt{constructor(e,n,r,o,a){let s=(c,l)=>c&&!l?new v$(e,void 0,void 0,a):c&&l?new v$(n,void 0,void 0,a):new v$(r,void 0,void 0,a);super(o,s)}};var Hge=class extends qat{constructor(e,n,r,o,a,s,c,l,u,d,p,m,A,f){let g=async(_,w)=>A.fetch(_,{method:w?.method,headers:w?.headers,body:w?.body,callSite:d9}),h=new hlt(n,r,o,l,g),y=()=>{let _=f.invokeFunction(w=>w.get(Fe));return c.getExperimentBasedConfig(H.TeamInternal.UseVSCodeTelemetryLibForGH,_)},v=new flt(c,d,p,m,u,e,a,s,l,y,g);super(l,u,h,v),A instanceof SP&&A.setTelemetryService(this),d.isPreRelease()&&A.onDidCompleteFetch(_=>{_.callSite!==d9&&this.sendMSFTTelemetryEvent("fetchTelemetry",{callSite:new jee(_.callSite)},{latencyMs:_.latencyMs,statusCode:_.statusCode})})}};Hge=S([b(6,be),b(7,sl),b(8,Mr),b(9,Zt),b(10,k3e),b(11,ic),b(12,nr),b(13,j)],Hge);var mN=O(Lt());Je();Fd();Xa();dn();var blt={perFramework:new Map([["mocha",{name:"Mocha Test Explorer",id:"hbenl.vscode-mocha-test-adapter"}],["jest",{name:"Jest",id:"Orta.vscode-jest"}],["vitest",{name:"Vitest",id:"vitest.explorer"}],["playwright",{name:"Playwright Test for VSCode",id:"ms-playwright.playwright"}],["jasmine",{name:"Jasmine Test Explorer",id:"hbenl.vscode-jasmine-test-adapter"}]])},Wge=new Map([["python",{forLanguage:{extension:{id:"ms-python.python",name:"Python"},associatedFrameworks:["pytest","unittest"]}}],["rust",{forLanguage:{extension:{id:"rust-lang.rust-analyzer",name:"rust-analyzer"}}}],["java",{forLanguage:{extension:{id:"vscjava.vscode-java-test",name:"Test Runner for Java"},associatedFrameworks:["junit","testng"]}}],["csharp",{forLanguage:{extension:{id:"ms-dotnettools.csharp",name:"C#"}}}],["go",{forLanguage:{extension:{id:"golang.Go",name:"Go"}}}],["typescript",blt],["javascript",blt],["javascriptreact",blt],["typescriptreact",blt]]);var ylt=me("ISetupTestsDetector");var MHr="testing.setup.skipForWorkspace";var FHr=t=>t&&t.$isSetupSuggestion&&t.command==="workbench.action.chat.open",Zge=class{constructor(e,n,r,o,a,s){this._configurationService=e;this._testDepsResolver=n;this._testService=r;this._extensionContext=o;this._extensionsService=a;this._commandService=s}showSuggestion(e){this.setDidAlreadyPrompt();let n=[],r=o=>`@category:testing ${o}`;switch(e.type){case 1:case 0:n.push(new aL(mN.t("We recommend installing an extension to run {0} tests.",e.type===1?e.framework:e.language),mN.t("Install {0} (`{1}`)?",e.extension.name,e.extension.id),{$isSetupSuggestion:!0,command:"workbench.extensions.installExtension",arguments:[e.extension.id,{enable:!0}]}));break;case 2:n.push(new aL(mN.t("We recommend installing an extension to run {0} tests.",e.framework),mN.t("Would you like to search for one now?"),{$isSetupSuggestion:!0,command:"workbench.extensions.search",arguments:[r(e.framework)]}));break;case 3:n.push(new aL(mN.t("It looks like you may not have tests set up in this repository yet."),mN.t("Would you like to set them up?"),{$isSetupSuggestion:!0,command:"workbench.action.chat.open",arguments:[{query:"/setupTests"}]}));break;case 6:e.command?n.push(new aL(e.command.title,e.message,{$isSetupSuggestion:!0,command:e.command.command,arguments:e.command.arguments})):n.push(new su(e.message));break;case 4:{let o=e.action;switch(o.type){case 1:case 0:{let a=new je(mN.t("We recommend installing the {0} extension to run {1} tests.",o.extension.name,o.type===1?o.framework:o.language));a.appendMarkdown(` `),n.push(new su(a)),n.push(new FOe([o.extension.id]));break}case 2:{let a=new je(mN.t("We recommend [installing an extension]({0}) to run {1} tests.",dDa("workbench.extensions.search",[r(o.framework)]),o.framework));a.isTrusted={enabledCommands:["workbench.extensions.search"]},n.push(new su(a));break}}break}case 5:break;default:ai(e)}return n}async shouldSuggestSetup({document:e},n,r){if(n.rejectedConfirmationData?.some(s=>s.$isSetupSuggestion))return;let o=n.acceptedConfirmationData?.find(s=>s.$isSetupSuggestion);if(o){let s=this._commandService.executeCommand(o.command,...o.arguments);if(o.command==="workbench.extensions.installExtension"){r.progress(mN.t("Installing extension {0}...",o.arguments[0])),await this.waitForExtensionInstall(s,e,o.arguments[0]);return}return{type:5}}if(!this._configurationService.getConfig(H.SetupTests)||await this._testService.hasAnyTests())return;let a=await this.getSuggestActionInner(e);return a&&this.getDidAlreadyPrompt()?{type:4,action:a}:a}async waitForExtensionInstall(e,n,r){await e;let o;do o=this._extensionsService.getExtension(r),await vo(100);while(!o);let a=o.packageJSON?.copilot?.tests,s=a?.setupTests||a?.getSetupConfirmation;return s?await this.getDelegatedAction(s,n):void 0}getDidAlreadyPrompt(){return this._extensionContext.extensionMode===aw.Development?!!this._didAlreadyPrompt:this._extensionContext.workspaceState.get(MHr,!1)}setDidAlreadyPrompt(){this._extensionContext.extensionMode===aw.Development?this._didAlreadyPrompt=!0:this._extensionContext.workspaceState.update(MHr,!0)}async getDelegatedAction(e,n){try{let r=await this._commandService.executeCommand(e,n.uri);if(r)return{type:6,command:r.command,message:r.message}}catch{}}async getExtensionRecommendationAndDelegate(e,n,r){let o=this._extensionsService.getExtension(e.id);if(!o)return r;let a=o.packageJSON?.copilot?.tests?.getSetupConfirmation;return a?await this.getDelegatedAction(a,n):void 0}async getSuggestActionInner(e){let n=Wge.get(e.languageId),r=n?.forLanguage?.extension;if(r)return this.getExtensionRecommendationAndDelegate(r,e,{type:0,language:e.languageId,extension:r});if(!n?.perFramework)return{type:3,context:e};let o=await this._testDepsResolver.getTestDeps(e.languageId),a=Bv(o,s=>{let c=n.perFramework.get(s);return c&&{extension:c,framework:s}});return a?this.getExtensionRecommendationAndDelegate(a.extension,e,{type:1,...a}):o.length?{type:2,framework:o[0]}:{type:3,context:e}}};Zge=S([b(0,be),b(1,BAe),b(2,_D),b(3,ut),b(4,EA),b(5,Ql)],Zge);function dDa(t,e){return`command:${t}?${encodeURIComponent(JSON.stringify(e))}`}oR();Je();var QHr=me("IToolResultContentRenderer");var kB=O(Ye());async function kin(t){let n=(await(0,kB.renderPrompt)(class extends kB.PromptElement{render(){return vscpp(kB.UserMessage,null,vscpp("elementJSON",{data:t.value}))}},{},{modelMaxPromptTokens:1/0},{mode:kB.OutputMode.Raw,countMessageTokens:()=>0,tokenLength:()=>0})).messages[0].content;return typeof n=="string"?n:n.map(r=>r.type===kB.Raw.ChatCompletionContentPartKind.Text?r.text:r.type===kB.Raw.ChatCompletionContentPartKind.Image?``:void 0).join("")}function gLe(t){if(Object.values(cte).includes(t.mimeType)){let n=btoa(String.fromCharCode(...t.data));return`data:${t.mimeType};base64,${n}`}else try{return new TextDecoder().decode(t.data)}catch{return``}}var vlt=class{renderToolResultContent(e){let n=[];for(let r of e)if(r instanceof rn)n.push(r.value);else if(r instanceof Ii)try{n.push(JSON.stringify(r.value,null,2))}catch{n.push("[PromptTsxPart]")}else r instanceof rm&&n.push(gLe(r));return n}};var qK=O(Lt());dn();yr();Cp();var _lt=class{constructor(e){this._telemetryService=e}logConfiguredHooks(e){let n={},r=0;for(let o of Object.keys(e)){let a=e[o];a&&a.length>0&&(n[o]=a.length,r+=a.length)}r!==0&&this._telemetryService.sendMSFTTelemetryEvent("hooks.configured",{hookTypes:JSON.stringify(n)},{totalHookCount:r})}logHookExecuted(e,n,r,o,a){this._telemetryService.sendMSFTTelemetryEvent("hooks.executed",{hookType:e,hasError:String(o),hasCaughtException:String(a)},{hookCount:n,durationMs:r})}logPreToolUseResult(e){this._telemetryService.sendMSFTTelemetryEvent("hooks.preToolUse.result",{permissionDecision:e.permissionDecision,hasUpdatedInput:e.updatedInput?"true":void 0,hasAdditionalContext:e.additionalContext?"true":void 0})}logPostToolUseResult(e){this._telemetryService.sendMSFTTelemetryEvent("hooks.postToolUse.result",{didBlock:e.decision==="block"?"true":void 0,hasAdditionalContext:e.additionalContext?"true":void 0})}};var Sin={deny:2,ask:1,allow:0},pDa=new Map([["Stop","SubagentStop"],["SessionStart","SubagentStart"]]);function OHr(t,e){return t===e||pDa.get(t)===e}var mDa=["toolArgs","tool_input"],Vge=class{constructor(e,n,r,o,a,s,c){this._sessionTranscriptService=e;this._logService=n;this._hookExecutor=r;this._outputChannel=o;this._toolsService=s;this._otelService=c;this._requestCounter=0;this._telemetry=new _lt(a)}_log(e,n,r){this._outputChannel.appendLine(`[#${e}] [${n}] ${r}`)}_redactForLogging(e){let n={...e};for(let r of mDa)Object.hasOwn(n,r)&&(n[r]="...");return n}_logCommandResult(e,n,r,o){let a=Math.round(o),s=r.kind===1?"Success":r.kind===3?"NonBlockingError":"Error",c=typeof r.result=="string"?r.result:JSON.stringify(r.result);c.length>0&&c!=="{}"&&c!=="[]"?(this._log(e,n,`Completed (${s}) in ${a}ms`),this._log(e,n,`Output: ${c}`)):this._log(e,n,`Completed (${s}) in ${a}ms, no output`)}logConfiguredHooks(e){e&&this._telemetry.logConfiguredHooks(e)}async executeHook(e,n,r,o,a){if(!n)return[];let s=n[e];if(!s||s.length===0)return[];let c=s.length,l=Gi.create(),u=!1,d=!1;try{let p;o&&(await au(this._sessionTranscriptService.flush(o),500),p=this._sessionTranscriptService.getTranscriptPath(o));let m={timestamp:new Date().toISOString(),hook_event_name:e,...o?{session_id:o}:void 0,...p?{transcript_path:p.fsPath}:void 0},A=typeof r=="object"&&r!==null?{...m,...r}:m,f=[],g=a??Yt.None,h=this._requestCounter++;this._logService.debug(`[ChatHookService] Executing ${s.length} hook(s) for type '${e}'`),this._log(h,e,`Executing ${s.length} hook(s)`);let y=o;for(let v of s)try{let _=v.cwd?{...A,cwd:v.cwd.fsPath}:A;this._log(h,e,`Running: ${JSON.stringify(v)}`);let w=this._redactForLogging(_);this._log(h,e,`Input: ${JSON.stringify(w)}`);let x=this._otelService.startSpan(`execute_hook ${e}`,{kind:0,attributes:{[$e.OPERATION_NAME]:Xi.EXECUTE_HOOK,"copilot_chat.hook_type":e,"copilot_chat.hook_command":v.command,...y?{[Vn.CHAT_SESSION_ID]:y}:{}}});try{try{x.setAttribute("copilot_chat.hook_input",ns(JSON.stringify(_)))}catch{}let E=Gi.create(),I=await this._hookExecutor.executeCommand(v,_,g),k=E.elapsed();this._logCommandResult(h,e,I,k);let T=I.kind===1?"success":I.kind===3?"non_blocking_error":"error";if(x.setAttribute("copilot_chat.hook_result_kind",T),I.kind===2||I.kind===3)u=!0,I.exitCode!==void 0&&x.setAttribute("copilot_chat.hook_exit_code",I.exitCode),x.setStatus(2,typeof I.result=="string"?I.result:void 0);else{x.setStatus(1);try{let M=typeof I.result=="string"?I.result:JSON.stringify(I.result);M&&x.setAttribute("copilot_chat.hook_output",ns(M))}catch{}}let D=this._toHookResult(e,I);if(f.push(D),D.stopReason!==void 0){this._log(h,e,`Stopping: ${D.stopReason}`),this._logService.debug(`[ChatHookService] Stopping after hook: ${D.stopReason}`);break}}catch(E){let I=E instanceof Error?E:new Error(String(E));throw x.recordException(I),x.setStatus(2,I.message),E}finally{x.end()}}catch(_){d=!0;let w=_ instanceof Error?_.message:String(_);this._log(h,e,`Error: ${w}`),this._logService.error(_ instanceof Error?_:new Error(w),"[ChatHookService] Error running hook command"),f.push({resultKind:"warning",output:void 0,warningMessage:w})}return f}catch(p){return d=!0,this._logService.error(`[ChatHookService] Error executing ${e} hook`,p),[]}finally{this._telemetry.logHookExecuted(e,c,l.elapsed(),u,d)}}_toHookResult(e,n){switch(n.kind){case 2:return{resultKind:"error",output:typeof n.result=="string"?n.result:JSON.stringify(n.result)};case 3:return{resultKind:"warning",output:void 0,warningMessage:typeof n.result=="string"?n.result:JSON.stringify(n.result)};case 1:{if(typeof n.result!="object")return{resultKind:"success",output:n.result};let r=n.result,o=typeof r.stopReason=="string"?r.stopReason:void 0,a=r.continue,s=typeof r.systemMessage=="string"?r.systemMessage:void 0,c=o;a===!1&&!c&&(c="");let l=r.hookEventName;if(typeof l=="string"&&!OHr(l,e))return this._logService.trace(`[ChatHookService] Ignoring result with mismatched hookEventName '${l}' (expected '${e}')`),{resultKind:"success",output:void 0};let u=!1,d=r.hookSpecificOutput;if(typeof d=="object"&&d!==null){let A=d.hookEventName;typeof A=="string"&&!OHr(A,e)&&(this._logService.trace(`[ChatHookService] Stripping hookSpecificOutput with mismatched hookEventName '${A}' (expected '${e}')`),u=!0)}let p=new Set(["continue","stopReason","systemMessage"]);u&&p.add("hookSpecificOutput");let m={};for(let[A,f]of Object.entries(r))f!==void 0&&!p.has(A)&&(m[A]=f);return{resultKind:"success",stopReason:c,warningMessage:s,output:Object.keys(m).length>0?m:void 0}}default:return{resultKind:"warning",warningMessage:`Unexpected hook command result kind: ${n.kind}`,output:void 0}}}async executePreToolUseHook(e,n,r,o,a,s,c){let l={tool_name:e,tool_input:n,tool_use_id:r},u=await this.executeHook("PreToolUse",o,l,a,s);if(u.length===0)return;let d,p,m,A=[];if(oD({hookType:"PreToolUse",results:u,outputStream:c,logService:this._logService,onSuccess:g=>{if(typeof g!="object"||g===null)return;let y=g.hookSpecificOutput;if(!y)return;y.additionalContext&&A.push(y.additionalContext),y.updatedInput&&(m=y.updatedInput);let v=y.permissionDecision;if(v&&!(v in Sin)){let _=`Invalid permissionDecision value '${String(v)}'. Expected 'allow', 'deny', or 'ask'. Field was ignored.`;this._logService.warn(`[ChatHookService] ${_}`),this._outputChannel.appendLine(`[PreToolUse] ${_}`)}else v&&(d===void 0||(Sin[v]??0)>(Sin[d]??0))&&(d=v,p=y.permissionDecisionReason)},onError:g=>{let h=g?qK.t("Tried to use {0} - {1}",e,g):qK.t("Tried to use {0} - an unexpected error occurred",e);c?.hookProgress("PreToolUse",C3(h)),d="deny",p=h||p}}),m){let g=this._toolsService.validateToolInput(e,JSON.stringify(m));if(V8e(g)){let h=`Discarding updatedInput for tool '${e}': schema validation failed: ${g.error}`;this._logService.warn(`[ChatHookService] ${h}`),this._outputChannel.appendLine(`[PreToolUse] ${h}`),m=void 0}}if(!d&&!m&&A.length===0)return;let f={permissionDecision:d,permissionDecisionReason:p,updatedInput:m,additionalContext:A.length>0?A:void 0};return this._telemetry.logPreToolUseResult(f),f}async executePostToolUseHook(e,n,r,o,a,s,c,l){let u={tool_name:e,tool_input:n,tool_response:r,tool_use_id:o},d=await this.executeHook("PostToolUse",a,u,s,c);if(d.length===0)return;let p=!1,m,A=[];if(oD({hookType:"PostToolUse",results:d,outputStream:l,logService:this._logService,onSuccess:g=>{if(typeof g!="object"||g===null)return;let h=g;if(h.hookSpecificOutput?.additionalContext&&A.push(h.hookSpecificOutput.additionalContext),h.decision==="block"&&!p)p=!0,m=h.reason;else if(h.decision!==void 0&&h.decision!=="block"){let y=`Invalid PostToolUse decision value '${String(h.decision)}'. Expected 'block'. Field was ignored.`;this._logService.warn(`[ChatHookService] ${y}`),this._outputChannel.appendLine(`[PostToolUse] ${y}`)}},onError:g=>{if(p){let h=g?qK.t("Tried to use {0} - {1}",e,g):qK.t("Tried to use {0} - an unexpected error occurred",e);l?.hookProgress("PostToolUse",void 0,C3(h))}else{p=!0;let h=g?qK.t("Tried to use {0} - {1}",e,g):qK.t("Tried to use {0} - an unexpected error occurred",e);m=h||void 0,l?.hookProgress("PostToolUse",C3(h))}}}),!p&&A.length===0)return;let f={decision:p?"block":void 0,reason:m,additionalContext:A.length>0?A:void 0};return this._telemetry.logPostToolUseResult(f),f}};Vge=S([b(0,kp),b(1,Z),b(2,lat),b(3,cfe),b(4,Ee),b(5,Xn),b(6,On)],Vge);var UHr=require("vscode"),Clt=class{appendLine(e){this._channel||(this._channel=UHr.window.createOutputChannel("GitHub Copilot Chat Hooks",{log:!0})),this._channel.info(e)}};var qHr=O(require("fs"));fr();Ot();var ADa=1,fDa="copilot-agent",gDa=20;function Tin(t){return t.split("__vscode-")[0]}var Yge=class{constructor(e,n,r,o){this._fileSystemService=e;this._extensionContext=n;this._envService=r;this._logService=o;this._activeSessions=new Map}_getTranscriptsDir(){if(this._transcriptsDirUri)return this._transcriptsDirUri;let e=this._extensionContext.storageUri;if(e)return this._transcriptsDirUri=K.joinPath(e,"transcripts"),this._transcriptsDirUri}async startSession(e,n,r){if(this._activeSessions.has(e))return;let o=this._getTranscriptsDir();if(!o){this._logService.warn("[SessionTranscript] No workspace storage available, transcript will not be written");return}try{await mA(this._fileSystemService,o)}catch(u){this._logService.error("[SessionTranscript] Failed to create transcripts directory",u);return}let a=K.joinPath(o,`${e}.jsonl`),s={uri:a,lastEntryId:null,buffer:[],flushPromise:Promise.resolve()};this._activeSessions.set(e,s);let c=!1;try{await this._fileSystemService.stat(a),c=!0}catch{}if(c)return;let l=r&&r.length>0?new Date(r[0].timestamp).toISOString():new Date().toISOString();this._bufferEntry(e,{type:"session.start",data:{sessionId:e,version:ADa,producer:fDa,copilotVersion:this._envService.getVersion(),vscodeVersion:this._envService.vscodeVersion,startTime:l,context:n}}),r&&this._replayHistory(e,r),this.cleanupOldTranscripts().catch(()=>{})}logUserMessage(e,n,r){this._bufferEntry(e,{type:"user.message",data:{content:n,attachments:r??[]}})}logAssistantTurnStart(e,n){this._bufferEntry(e,{type:"assistant.turn_start",data:{turnId:n}})}logAssistantMessage(e,n,r,o){this._bufferEntry(e,{type:"assistant.message",data:{messageId:st(),content:n,toolRequests:r.map(a=>({...a,toolCallId:Tin(a.toolCallId)})),...o!==void 0?{reasoningText:o}:{}}})}logToolExecutionStart(e,n,r,o){this._bufferEntry(e,{type:"tool.execution_start",data:{toolCallId:Tin(n),toolName:r,arguments:o}})}logToolExecutionComplete(e,n,r,o){this._bufferEntry(e,{type:"tool.execution_complete",data:{toolCallId:Tin(n),success:r,...o!==void 0?{result:{content:o}}:{}}})}logAssistantTurnEnd(e,n){this._bufferEntry(e,{type:"assistant.turn_end",data:{turnId:n}})}async flush(e){let n=this._activeSessions.get(e);if(!n||n.buffer.length===0)return;let o=n.buffer.splice(0).join("");return n.flushPromise=n.flushPromise.then(()=>this._writeToFile(n,o),()=>this._writeToFile(n,o)),n.flushPromise}async endSession(e){await this.flush(e),this._activeSessions.delete(e)}getTranscriptPath(e){return this._activeSessions.get(e)?.uri}isTranscriptUri(e){let n=this._getTranscriptsDir();return n?Xr.isEqualOrParent(e,n):!1}async cleanupOldTranscripts(e=gDa){let n=this._getTranscriptsDir();if(n)try{let o=(await this._fileSystemService.readDirectory(n)).filter(([l,u])=>l.endsWith(".jsonl")&&u===1);if(o.length<=e)return;let a=await Promise.all(o.map(async([l])=>{let u=K.joinPath(n,l),d=l.replace(".jsonl","");try{let p=await this._fileSystemService.stat(u);return{name:l,uri:u,mtime:p.mtime,sessionId:d}}catch{return{name:l,uri:u,mtime:0,sessionId:d}}}));a.sort((l,u)=>l.mtime-u.mtime);let s=a.length-e,c=0;for(let l of a){if(c>=s)break;if(!this._activeSessions.has(l.sessionId))try{await this._fileSystemService.delete(l.uri),c++}catch{this._logService.warn(`[SessionTranscript] Failed to delete old transcript: ${l.name}`)}}}catch{}}_replayHistory(e,n){for(let[r,o]of n.entries()){let a=new Date(o.timestamp).toISOString();this._bufferEntry(e,{type:"user.message",data:{content:o.userMessage,attachments:[]}},a);for(let[s,c]of o.rounds.entries()){let l=c.timestamp?new Date(c.timestamp).toISOString():a,u=`${r}.${s}`;this._bufferEntry(e,{type:"assistant.turn_start",data:{turnId:u}},l);let d=c.toolCalls.map(p=>({toolCallId:p.id,name:p.name,arguments:p.arguments,type:"function"}));this._bufferEntry(e,{type:"assistant.message",data:{messageId:st(),content:c.response,toolRequests:d,...c.reasoningText!==void 0?{reasoningText:c.reasoningText}:{}}},l),this._bufferEntry(e,{type:"assistant.turn_end",data:{turnId:u}},l)}}}_bufferEntry(e,n,r){let o=this._activeSessions.get(e);if(!o)return;let a=st(),s={...n,id:a,timestamp:r??new Date().toISOString(),parentId:o.lastEntryId};o.lastEntryId=a,o.buffer.push(JSON.stringify(s)+` `)}async _writeToFile(e,n){try{await qHr.promises.appendFile(e.uri.fsPath,n,"utf-8")}catch(r){this._logService.error("[SessionTranscript] Failed to write transcript entries",r)}}};Yge=S([b(0,yt),b(1,ut),b(2,Zt),b(3,Z)],Yge);Ue();Be();var Kge=class extends fe{constructor(n){super();this._instantiationService=n}getOrCreateInstantiationService(){return this._completionsInstantiationService||(this._completionsInstantiationService=this._instantiationService.invokeFunction(V2r,this._store)),this._completionsInstantiationService}getOrCreateProvider(){return this._provider||(this._completionsInstantiationService=this.getOrCreateInstantiationService(),this._completionsInstantiationService.invokeFunction(Y2r,this._store),this._provider=this._register(this._completionsInstantiationService.createInstance(mpe))),this._provider}};Kge=S([b(0,j)],Kge);var Ss=O(require("vscode"));Ue();Be();Je();yr();En();Be();var Jge=O(Ye());var Bin={explain:{description:"Prompts asking the assistant to explain code, concepts, or technical topics. Includes requests for clarification, summaries, definitions, and step-by-step walkthroughs of implementations or workflows.",keywords:["explanation","understanding","clarification","how-it-works","summary","definitions","step-by-step","guidance"]},find_content:{description:"Prompts requesting the assistant to retrieve, read, or locate files, code references, definitions, and usage patterns within a codebase or project repository.",keywords:["retrieve","read","file contents","search","references","codebase","locate","fetch"]},research:{description:"Prompts requesting the assistant to research and investigate implementation details, usage patterns, and documentation of existing code or systems.",keywords:["research","implementation details","documentation","usage patterns","investigation"]},review:{description:"Prompts requesting code review, validation of implementations against requirements, analysis of code changes and quality, and identification of issues, vulnerabilities, and improvements. Covers both formal review feedback and structural/usage pattern analysis.",keywords:["code review","validation","compliance","correctness","code quality","vulnerability analysis","code changes","feedback"]},generate_docs:{description:"Prompts requesting the assistant to generate documentation, summary reports, and example or sample code.",keywords:["documentation","generate","summary reports","example code","technical writing"]},troubleshoot_debug:{description:"Prompts requesting help diagnosing and resolving failures, errors, bugs, and incidents. Includes troubleshooting build/code errors, root cause analysis, and investigation of test failures and operational incidents.",keywords:["troubleshoot","debug","failure","error","root cause","fix","build errors","incidents","bugs"]},git_ops:{description:"Prompts requesting help with Git branch operations including creating, switching, merging, rebasing branches, and resolving merge conflicts.",keywords:["branch","merge","rebase","conflicts","commit","Git operations"]},run_code:{description:"Prompts requesting the assistant to run, execute, or initiate code, scripts, commands, builds, or other defined processes.",keywords:["execute","run","build","script","process","commands"]},config_mgmt:{description:"Prompts requesting changes to application configuration, features, user interface design, or documentation, typically involving updates or modifications to existing settings and appearance.",keywords:["configuration","feature updates","UI modification","settings","design changes"]},new_feature:{description:"Prompts requesting the assistant to build a new user-facing feature or capability requiring coordinated code changes, typically spanning multiple files or components.",keywords:["build","implement","add feature","create feature","set up","integrate","new capability"]},refactor:{description:"Prompts requesting the assistant to restructure, reorganize, or improve existing code without changing its external behavior. Includes extracting functions, renaming, simplifying logic, and improving code organization.",keywords:["refactor","restructure","reorganize","clean up","extract","simplify","rename","improve structure"]},data_analysis_viz:{description:"Prompts requesting the assistant to analyze data, create visualizations, build charts or graphs, run queries, or explore datasets for insights and reporting.",keywords:["data analysis","visualization","charts","graphs","querying","reporting","dashboards","data exploration"]},need_info:{description:"Not enough information to determine the intent. The prompt may be too short, too vague, or lack sufficient context to make a determination.",keywords:[]},other:{description:"Prompts whose intent does not fit into any of the defined categories. These may involve niche actions or mixed intents outside the taxonomy.",keywords:[]}},Rin={cicd_cloud_infra:{description:"Prompts involving continuous integration/deployment pipeline configuration, cloud infrastructure provisioning and automation, container orchestration, and infrastructure-as-code workflows.",keywords:["CI/CD","build automation","deployment pipelines","cloud infrastructure","provisioning","IaC","containerization","configuration management","DevOps"]},cli_scripting:{description:"Prompts focused on building, customizing, and automating command-line interface tools, shell scripts, and terminal workflows for developer productivity.",keywords:["CLI","command-line","shell scripting","bash","PowerShell","terminal","task automation"]},automated_testing:{description:"Prompts focused on automated software testing tools, frameworks, and suites spanning unit, integration, and end-to-end testing, including test coverage and workflow analysis.",keywords:["automated testing","unit testing","integration testing","end-to-end testing","test frameworks","test suites","test coverage"]},ai_agent:{description:"Prompts focused on designing, configuring, and orchestrating AI agents and coding assistants, including their workflows, integration architectures, and framework capabilities.",keywords:["AI agents","orchestration","workflow automation","integration architecture","coding assistants","LLM integration","MCP"]},network_infra:{description:"Prompts focused on configuring, deploying, and managing network infrastructure, including remote access, multi-server environments, and network security.",keywords:["network configuration","server management","remote access","firewall","DNS","VPN","load balancing","routing","connectivity"]},project_mgmt:{description:"Prompts related to project management, issue tracking, and task management within development workflows.",keywords:["issue tracking","project management","task management","workflow management","project planning"]},data_pipelines:{description:"Prompts focused on building, configuring, and orchestrating data processing pipelines that handle ingestion, transformation, and formatting of structured data across various file formats and scales.",keywords:["data pipelines","ETL workflows","data transformation","file processing","pipeline orchestration","ingestion"]},web_ui:{description:"Prompts focused on designing, building, and architecting user interface components and layouts for web application frontends.",keywords:["UI","web application","user interface","frontend","components","layout","styling","responsive design"]},backend_dev:{description:"Prompts focused on building, designing, and maintaining server-side applications, APIs, business logic, authentication, and service architectures.",keywords:["API","server","endpoint","REST","GraphQL","backend","microservices","authentication","business logic"]},game_dev:{description:"Prompts focused on designing, building, and testing the architecture, mechanics, and subsystems of digital and tabletop games.",keywords:["game development","game engine","game mechanics","rendering","multiplayer","interactive gameplay","asset creation"]},package_mgmt:{description:"Prompts focused on managing software dependencies, package installations, version control of libraries, and release workflows across programming languages and platforms.",keywords:["dependency management","package managers","version management","software releases","dependency resolution"]},version_control:{description:"Prompts related to managing source code repositories, version control systems, branching and merging strategies, and collaborative development workflows.",keywords:["source code","repository","version control","Git","branching","merging","code management"]},incident_mgmt:{description:"Prompts focused on building, integrating, and querying incident management systems for tracking, triaging, investigating, and resolving operational and security incidents.",keywords:["incident management","security incidents","ticketing systems","workflow automation","incident response","triage"]},logging_observability:{description:"Prompts focused on designing, configuring, querying, and analyzing application and system logs, including logging frameworks, log aggregation, monitoring dashboards, and observability infrastructure.",keywords:["logging","log analysis","monitoring","observability","metrics","alerting","tracing","dashboards"]},database_mgmt:{description:"Prompts focused on designing, analyzing, managing, and querying relational database schemas, including data modeling for business intelligence and data warehouse contexts.",keywords:["database schema","relational database","data modeling","query design","schema management","SQL"]},ml_statistics:{description:"Prompts focused on machine learning model development, training, evaluation, and deployment, as well as statistical analysis, data science workflows, and mathematical modeling.",keywords:["machine learning","deep learning","neural networks","model training","statistics","regression","classification","data science","feature engineering","model evaluation"]},need_info:{description:"Not enough information to determine the domain. The prompt may be too short, too vague, or lack sufficient context to make a determination.",keywords:[]},other:{description:"Prompts that do not fit into any of the defined domain categories. These may involve niche or specialized topics outside the taxonomy.",keywords:[]}},Din={selection:{description:"Operates on user's currently selected/highlighted code",signals:["user has active selection",'uses "this"']},current_file:{description:"Entire file user is currently viewing/editing",signals:['"this file"',"mentions filename","file-level operation"]},few_files:{description:"Small set of related files (2-5 files)",signals:['"this component and its tests"',"specific file mentions"]},many_files:{description:"Large set of files or entire module/package",signals:['"all components"','"entire module"','"across files"']},codebase:{description:"Entire project/codebase understanding required",signals:['"project"','"codebase"','"application"','"system"',"architecture-level"]},multi_repository:{description:"Operates across multiple repositories (microservices, monorepo packages)",signals:['"other repo"','"microservice"','"shared library"',"cross-repo dependency","multi-package"]},scm_operations:{description:"Git operations, branch management, PR creation",signals:["git commands","branch","PR","merge","rebase","git history","cherry-pick","git push","git pull","git fetch","git commit","git diff","git stash"]},issue_tracker:{description:"Operates on issue tracking systems (GitHub Issues, JIRA, Linear)",signals:["issue","bug","ticket","backlog","sprint","tracking system"]},remote_service:{description:"Interacts with external services, APIs, cloud resources, or remote databases",signals:["external API","cloud service","SaaS","third-party","webhook","staging database","production database","remote connection","SSH"]},external:{description:"Requires knowledge outside the codebase (docs, web, general knowledge)",signals:["questions about languages","frameworks","best practices",'"how to" (general)']},ephemeral:{description:"One-off task, doesn't directly modify main codebase",signals:['"write a script to"','"analyze this data"',"temporary/throwaway work"]},unknown_scope:{description:"Scope cannot be determined from message",signals:[]}},hDa=new Set(Object.keys(Bin)),bDa=new Set(Object.keys(Rin)),yDa=new Set(Object.keys(Din));function $Hr(t){return hDa.has(t)}function zHr(t){return bDa.has(t)}function jHr(t){return yDa.has(t)}function Pin(t,e){let n=[`### \`${t}\``,e.description];return e.keywords?.length&&n.push(`- Keywords: ${e.keywords.join(", ")}`),e.signals?.length&&n.push(`- Signals: ${e.signals.join(", ")}`),e.examples?.length&&n.push(`Examples: ${e.examples.map(r=>`"${r}"`).join(", ")}`),e.notes&&n.push(e.notes),n.join(` `)}function vDa(){let t=`## Intent Categories `,e=Object.entries(Bin).map(([n,r])=>Pin(n,r)).join(` `);return t+e}function _Da(){let t=`## Domain Categories `,e=Object.entries(Rin).map(([n,r])=>Pin(n,r)).join(` `);return t+e}function CDa(){let t=`# SCOPE - What code context is needed (choose ONE) `,e=Object.entries(Din).map(([n,r])=>Pin(n,r)).join(` `);return t+e}var wDa=`# CLASSIFICATION GUIDANCE ## Domain vs Intent \u2014 these are separate dimensions Domain and intent are independent. Classify each on its own merits. Do NOT substitute one for the other. **Domain** is the technical subject area or problem space the user is operating in. - It describes a system, architecture, technology area, or problem space \u2014 never an activity. - Think of it as answering: "What area of technology is this about?" - If the prompt does not clearly indicate a technical domain, use \`need_info\`. **Intent** is the developer action or goal being performed within that domain. - It describes what the user is trying to accomplish \u2014 the verb, not the noun. - Think of it as answering: "What is the user trying to do?" - If the prompt does not clearly indicate an intent, use \`need_info\`. **Key rule**: A prompt about CI/CD pipelines (domain) might be asking for an explanation (intent), troubleshooting (intent), or code review (intent). Classify each dimension independently. Never let the domain influence your intent classification or vice versa. Focus on semantic meaning, not keyword matching. Keywords are illustrative, not exhaustive. ## Pre-classification check 1. **What technical area does this fall into?** Match to the most specific domain category. 2. **If multiple domains apply**, choose the primary one \u2014 the domain that best captures what the user is actually trying to accomplish. 3. **What is the user trying to do?** Match to the most specific intent category. 4. **If multiple intents apply**, choose the primary one \u2014 the intent that best captures the user's goal.`;function GHr(){return[wDa,_Da(),vDa(),"# TIME ESTIMATE","Estimate how long an **experienced developer familiar with the codebase** would take:","- Consider: understanding requirements, writing code, testing, debugging, code review",'- Format: ISO 8601 duration (e.g., "PT5M" for 5 minutes, "PT1H30M" for 1.5 hours)','- Provide both "bestCase" (everything goes smoothly) and "realistic" (typical complications)',"",CDa()].join(` `)}var hLe="categorize_prompt",HHr={type:"object",additionalProperties:!1,properties:{intent:{type:"string",enum:Object.keys(Bin),description:"The primary action the user wants to perform"},domain:{type:"string",enum:Object.keys(Rin),description:"The area of code or system the request relates to"},scope:{type:"string",enum:Object.keys(Din),description:"The code context required to fulfill the request"},timeEstimate:{type:"object",additionalProperties:!1,properties:{bestCase:{type:"string",description:'ISO 8601 duration for best case scenario (e.g., "PT5M" for 5 minutes)'},realistic:{type:"string",description:'ISO 8601 duration for realistic scenario (e.g., "PT15M" for 15 minutes)'}},required:["bestCase","realistic"]},confidence:{type:"number",minimum:0,maximum:1,description:"Confidence score between 0.0 and 1.0"},reasoning:{type:"string",description:"Brief 1-2 sentence explanation for the classification"}},required:["intent","domain","scope","timeEstimate","confidence","reasoning"]};var wlt=class extends Jge.PromptElement{async render(e,n){let r=["You are an expert classifier for AI coding assistant prompts. Classify developer requests in context of their workspace and active file across domain, intent, time estimate, and scope.","You MUST use the categorize_prompt tool to provide your classification.",GHr()].join(` `)+` `;return vscpp(vscppf,null,vscpp(Jge.SystemMessage,{priority:1e3},r,vscpp(Kr,null)),vscpp(Jge.UserMessage,{priority:900},vscpp(gD,{priority:600,flexGrow:0,maxSize:Math.min(300,Math.floor(n.tokenBudget*.1))}),vscpp("br",null),vscpp(D8,{priority:600,flexGrow:0}),vscpp("br",null),"User message:",vscpp("br",null),this.props.userRequest))}};var xDa="copilotchat.promptCategorization",xlt=me("IPromptCategorizerService"),ZQ={SUCCESS:"",TIMEOUT:"timeout",REQUEST_FAILED:"requestFailed",NO_TOOL_CALL:"noToolCall",PARSE_ERROR:"parseError",INVALID_CLASSIFICATION:"invalidClassification",PARTIAL_CLASSIFICATION:"partialClassification",ERROR:"error"},EDa=/^PT(?!$)(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?$/;function WHr(t){return EDa.test(t)}function IDa(t){return t.timeEstimate.bestCase!==""&&t.timeEstimate.realistic!==""}function kDa(t){if(typeof t!="object"||t===null)return;let e=t;if(typeof e.intent!="string"||!$Hr(e.intent)||typeof e.domain!="string"||!zHr(e.domain)||typeof e.scope!="string"||!jHr(e.scope)||typeof e.confidence!="number"||e.confidence<0||e.confidence>1||typeof e.reasoning!="string")return;let n="",r="";if(typeof e.timeEstimate=="object"&&e.timeEstimate!==null){let o=e.timeEstimate;typeof o.bestCase=="string"&&WHr(o.bestCase)&&(n=o.bestCase),typeof o.realistic=="string"&&WHr(o.realistic)&&(r=o.realistic)}return{intent:e.intent,domain:e.domain,scope:e.scope,confidence:e.confidence,reasoning:e.reasoning,timeEstimate:{bestCase:n,realistic:r}}}var Xge=class{constructor(e,n,r,o,a,s,c,l){this.logService=e;this.endpointProvider=n;this.instantiationService=r;this.telemetryService=o;this.experimentationService=a;this.tabsAndEditorsService=s;this.copilotTokenStore=c;this.requestLogger=l}categorizePrompt(e,n,r){if(!(this.copilotTokenStore.copilotToken?.isInternal===!0)&&!this.experimentationService.getTreatmentVariable(xDa)||e.location2!==void 0||e.subAgentName!==void 0||e.attempt!==0||n.history.length>0)return;let a=e.sessionId;this._categorizePromptAsync(e,n,r,a).catch(s=>{this.logService.error(`[PromptCategorizer] Error categorizing prompt: ${s instanceof Error?s.message:String(s)}`)})}async _categorizePromptAsync(e,n,r,o){let a=Date.now(),s=ZQ.ERROR,c="",l,u=this.tabsAndEditorsService.activeTextEditor?.document.languageId,d=1e4,p=new Oi,m=setTimeout(()=>p.cancel(),d);try{let v=await this.endpointProvider.getChatEndpoint("copilot-fast"),{messages:_}=await Tu(this.instantiationService,v,wlt,{userRequest:e.prompt}),w=[],x=new Zd("categorization",void 0,void 0,void 0,void 0,o,"categorization"),E=await this.requestLogger.captureInvocation(x,()=>v.makeChatRequest2({debugName:"promptCategorization",messages:_,finishedCb:async(I,k,T)=>{T.copilotToolCalls&&w.push(...T.copilotToolCalls)},location:1,userInitiatedRequest:!1,isConversationRequest:!1,requestOptions:{tools:[{type:"function",function:{name:hLe,description:"Classify a user prompt across intent, domain, scope, and time estimate dimensions",parameters:HHr}}],tool_choice:{type:"function",function:{name:hLe}}}},p.token));if(p.token.isCancellationRequested)s=ZQ.TIMEOUT,c=`Timed out after ${d}ms`,this.logService.debug("[PromptCategorizer] Request cancelled due to timeout");else if(E.type==="success"){let I=w.find(k=>k.name===hLe);if(I)try{let k=JSON.parse(I.arguments),T=kDa(k);T&&IDa(T)?(l=T,s=ZQ.SUCCESS):T?(l=T,s=ZQ.PARTIAL_CLASSIFICATION,c=`Recovered core fields; invalid timeEstimate (arguments length: ${I.arguments.length})`,this.logService.debug(`[PromptCategorizer] Partial classification recovered; ${c}`)):(s=ZQ.INVALID_CLASSIFICATION,c=`Invalid classification structure (arguments length: ${I.arguments.length})`,this.logService.warn(`[PromptCategorizer] Invalid classification structure; ${c}`))}catch(k){s=ZQ.PARSE_ERROR,c=`${k instanceof Error?k.message:String(k)} (arguments length: ${I.arguments.length}, timedOut: ${p.token.isCancellationRequested})`,this.logService.warn(`[PromptCategorizer] Failed to parse tool arguments: ${c}`)}else s=ZQ.NO_TOOL_CALL,c=`${w.length} tool calls returned, none matched ${hLe}`,this.logService.warn("[PromptCategorizer] No categorization tool call found in response")}else s=ZQ.REQUEST_FAILED,c=`Response type: ${E.type}`,this.logService.warn(`[PromptCategorizer] Request failed with type: ${E.type}`);w.length=0}catch(v){Jr(v)?(s=ZQ.TIMEOUT,c=`Request cancelled after ${Date.now()-a}ms`):c=v instanceof Error?v.message:String(v),this.logService.error(`[PromptCategorizer] Error during categorization: ${c}`)}finally{clearTimeout(m),p.dispose()}let A=Date.now()-a,f=500,g=c.length>f?c.slice(0,f):c;this.telemetryService.sendMSFTTelemetryEvent("promptCategorization",{taxonomyVersion:"v2",sessionId:e.sessionId??"",requestId:r,vscodeRequestId:e.id??"",modeName:e.modeInstructions2?.isBuiltin?e.modeInstructions2?.name.toLowerCase():"custom",currentLanguage:u??"",outcome:s,intent:l?.intent??"",domain:l?.domain??"",timeEstimateBestCase:l?.timeEstimate?.bestCase??"",timeEstimateRealistic:l?.timeEstimate?.realistic??"",scope:l?.scope??""},{promptLength:e.prompt.length,numReferences:e.references?.length??0,numToolReferences:e.toolReferences?.length??0,confidence:l?.confidence??0,latencyMs:A});let h=8192,y=e.prompt.length>h?e.prompt.slice(0,h):e.prompt;this.telemetryService.sendInternalMSFTTelemetryEvent("promptCategorization",{taxonomyVersion:"v2",sessionId:e.sessionId??"",requestId:r,vscodeRequestId:e.id??"",modeName:e.modeInstructions2?.isBuiltin?e.modeInstructions2?.name.toLowerCase():"custom",currentLanguage:u??"",outcome:s,errorDetail:g,intent:l?.intent??"",domain:l?.domain??"",timeEstimateBestCase:l?.timeEstimate?.bestCase??"",timeEstimateRealistic:l?.timeEstimate?.realistic??"",scope:l?.scope??"",reasoning:l?.reasoning??"",prompt:y},{promptLength:e.prompt.length,numReferences:e.references?.length??0,numToolReferences:e.toolReferences?.length??0,confidence:l?.confidence??0,latencyMs:A}),this.logService.debug(`[PromptCategorizer] Classification complete: outcome=${s||"success"}, latencyMs=${A}, intent=${l?.intent}, domain=${l?.domain}, scope=${l?.scope}`)}};Xge=S([b(0,Z),b(1,tt),b(2,j),b(3,Ee),b(4,Fe),b(5,co),b(6,sl),b(7,Fr)],Xge);var Elt=O(require("vscode"));function ZHr(t){let e=t.get(be),n=t.get(sl);if((!!n.copilotToken?.isInternal||!!n.copilotToken?.isVscodeTeamMember)&&!e.isConfigured(H.TeamInternal.InternalWelcomeHintEnabled)?!0:e.getConfig(H.TeamInternal.InternalWelcomeHintEnabled)){let a="workbench.action.openSettings",s=new Elt.MarkdownString(Elt.l10n.t({message:"If handling customer data, [disable telemetry]({0}).",args:[`command:${a}?${encodeURIComponent('["telemetry.telemetryLevel"]')}`],comment:["{Locked=']({'}"]}));return s.isTrusted={enabledCommands:[a]},s}}var ehe=class{constructor(e){this.instantiationService=e}debugGetCurrentChatAgents(){return this._lastChatAgents}register(){let e=this.instantiationService.createInstance(bLe);return e.register(),this._lastChatAgents=e,{dispose:()=>{e.dispose(),this._lastChatAgents=void 0}}}};ehe=S([b(0,j)],ehe);var bLe=class{constructor(e,n,r,o,a,s,c,l,u,d,p,m){this.authenticationService=e;this.instantiationService=n;this.userFeedbackService=r;this.endpointProvider=o;this.feedbackReporter=a;this.interactionService=s;this._chatQuotaService=c;this.configurationService=l;this.experimentationService=u;this.promptCategorizerService=d;this.telemetryService=p;this._disposables=new it;this._disposables.add(m.onDidDisposeChatSession(A=>fgt(A)))}dispose(){this._disposables.dispose()}register(){this.additionalWelcomeMessage=this.instantiationService.invokeFunction(ZHr),this._disposables.add(this.registerDefaultAgent()),this._disposables.add(this.registerEditingAgent()),this._disposables.add(this.registerEditingAgentEditor()),this._disposables.add(this.registerEditsAgent()),this._disposables.add(this.registerNotebookEditorDefaultAgent()),this._disposables.add(this.registerNotebookDefaultAgent()),this._disposables.add(this.registerVSCodeAgent()),this._disposables.add(this.registerTerminalAgent()),this._disposables.add(this.registerTerminalPanelAgent())}createAgent(e,n,r){let o=r?.id||_1(e),a=Ss.chat.createChatParticipant(o,this.getChatParticipantHandler(o,e,n));return a.onDidReceiveFeedback(s=>{this.userFeedbackService.handleFeedback(s,o)}),a.onDidPerformAction(s=>{this.userFeedbackService.handleUserAction(s,o)}),this._disposables.add(fo(s=>{a.supportIssueReporting=this.feedbackReporter.canReport.read(s)})),a}registerVSCodeAgent(){let e=Ss.env.appName.includes("Insiders")||Ss.env.appName.includes("OSS"),n=this.createAgent(Uqe,"vscode");return n.iconPath=e?new Ss.ThemeIcon("vscode-insiders"):new Ss.ThemeIcon("vscode"),n}registerTerminalAgent(){let e=this.createAgent(r8,"terminal");return e.iconPath=new Ss.ThemeIcon("terminal"),e}registerTerminalPanelAgent(){let e=this.createAgent(r8,"terminal",{id:"github.copilot.terminalPanel"});return e.iconPath=new Ss.ThemeIcon("terminal"),e}registerEditingAgent(){let e=this.createAgent(qqe,"edit");return e.iconPath=new Ss.ThemeIcon("copilot"),e.additionalWelcomeMessage=this.additionalWelcomeMessage,e.titleProvider=this.instantiationService.createInstance(s2),e}registerEditingAgentEditor(){let e=this.createAgent($qe,"inlineChat");return e.iconPath=new Ss.ThemeIcon("copilot"),e}registerEditsAgent(){let e=this.createAgent(Yj,"editAgent");return e.iconPath=new Ss.ThemeIcon("tools"),e.additionalWelcomeMessage=this.additionalWelcomeMessage,e.titleProvider=this.instantiationService.createInstance(s2),e}registerDefaultAgent(){let e=a=>this.configurationService.getExperimentBasedConfig(H.TeamInternal.AskAgent,this.experimentationService)&&a.model.capabilities.supportsToolCalling&&this.configurationService.getNonExtensionConfig("chat.agent.enabled")?"askAgent":"unknown",n=this.createAgent(Oqe,e);n.iconPath=new Ss.ThemeIcon("copilot"),n.helpTextPrefix=Ss.l10n.t("You can ask me general programming questions, or chat with the following participants which have specialized expertise and can perform actions:");let r=Ss.l10n.t({message:`To have a great conversation, ask me questions as if I was a real programmer: * **Show me the code** you want to talk about by having the files open and selecting the most important lines. * **Make refinements** by asking me follow-up questions, adding clarifications, providing errors, etc. * **Review my suggested code** and tell me about issues or improvements, so I can iterate on it. You can also ask me questions about your editor selection by [starting an inline chat session](command:inlineChat.start). Learn more about [GitHub Copilot](https://docs.github.com/copilot/using-github-copilot/getting-started-with-github-copilot?tool=vscode&utm_source=editor&utm_medium=chat-panel&utm_campaign=2024q3-em-MSFT-getstarted) in [Visual Studio Code](https://code.visualstudio.com/docs/copilot/overview). Or explore the [Copilot walkthrough](command:github.copilot.open.walkthrough).`,comment:"{Locked='](command:inlineChat.start)'}"}),o=new Ss.MarkdownString(r);return o.isTrusted={enabledCommands:["inlineChat.start","github.copilot.open.walkthrough"]},n.helpTextPostfix=o,n.additionalWelcomeMessage=this.additionalWelcomeMessage,n.titleProvider=this.instantiationService.createInstance(s2),n.summarizer=this.instantiationService.createInstance(N8),n}registerNotebookEditorDefaultAgent(){let e=this.createAgent("notebook","editor");return e.iconPath=new Ss.ThemeIcon("copilot"),e}registerNotebookDefaultAgent(){let e=this.createAgent(iLn,"notebookEditor");return e.iconPath=new Ss.ThemeIcon("copilot"),e}getChatParticipantHandler(e,n,r){return async(o,a,s,c)=>{NO(o.sessionId,PO.WillHandleParticipant);try{o=await this.switchToBaseModel(o,s);let l=q_n(o);if(l){let g=l.alwaysSwitchToAuto?"switchToAutoAlways":"switchToAuto";this.telemetryService.sendMSFTTelemetryEvent("chatRateLimitAction",{action:g,modelId:o.model?.id}),o=await this.switchToAutoModel(o,s,l.alwaysSwitchToAuto)}else u8e(o)&&this.telemetryService.sendMSFTTelemetryEvent("chatRateLimitAction",{action:"tryAgain",modelId:o.model?.id});o.subAgentInvocationId||this.interactionService.startInteraction();let u=a.history.length===0?st():void 0;u!==void 0&&this.promptCategorizerService.categorizePrompt(o,a,u);let d=typeof r=="function"?r(o):r,p=y3[d],m=o.command&&p?p[o.command]:d,f=await this.instantiationService.createInstance(W4,a.history,o,s,c,{agentName:n,agentId:e,intentId:m},()=>a.yieldRequested,u).getResult();if(f.metadata?.shouldAutoSwitchToAuto){let g=o.model?.id,h=await this.switchToAutoModel(o,s,!1);h.model?.id!==g&&(this.telemetryService.sendMSFTTelemetryEvent("chatRateLimitAction",{action:"autoSwitch",modelId:g}),o=h,f=await this.instantiationService.createInstance(W4,a.history,o,s,c,{agentName:n,agentId:e,intentId:m},()=>a.yieldRequested,u).getResult())}return f}finally{NO(o.sessionId,PO.DidHandleParticipant),fgt(o.sessionId)}}}async switchToBaseModel(e,n){let r=await this.endpointProvider.getChatEndpoint(e),o=await this.endpointProvider.getChatEndpoint("copilot-base");if(r.multiplier===0||e.model.vendor!=="copilot"||r.multiplier===void 0||this._chatQuotaService.overagesEnabled||!this._chatQuotaService.quotaExhausted)return e;let a=(await Ss.lm.selectChatModels({id:o.model,family:o.family,vendor:"copilot"}))[0];if(!a)return e;await Ss.commands.executeCommand("workbench.action.chat.changeModel",{vendor:a.vendor,id:a.id,family:a.family}),e={...e,model:a};let s;return this.authenticationService.copilotToken?.isIndividual?(s=new Ss.MarkdownString(Ss.l10n.t({message:"You have exceeded your premium request allowance. We have automatically switched you to {0} which is included with your plan. [Enable additional paid premium requests]({1}) to continue using premium models.",args:[o.name,"command:chat.enablePremiumOverages"],comment:["{Locked=']({'}"]})),s.isTrusted={enabledCommands:["chat.enablePremiumOverages"]}):s=new Ss.MarkdownString(Ss.l10n.t("You have exceeded your premium request allowance. We have automatically switched you to {0} which is included with your plan. To enable additional paid premium requests, contact your organization admin.",o.name)),n.warning(s),e}async switchToAutoModel(e,n,r){let o=(await Ss.lm.selectChatModels({id:"auto",vendor:"copilot"}))[0];return o&&(await Ss.commands.executeCommand("workbench.action.chat.changeModel",{vendor:o.vendor,id:o.id,family:o.family}),e={...e,model:o},r&&await Ss.workspace.getConfiguration("github.copilot").update("chat.rateLimitAutoSwitchToAuto",!0,Ss.ConfigurationTarget.Global),n.warning(new Ss.MarkdownString(Ss.l10n.t("You were rate-limited on the selected model. Switching to Auto and retrying your request.")))),e}};bLe=S([b(0,at),b(1,j),b(2,vce),b(3,tt),b(4,C2),b(5,tC),b(6,f3),b(7,be),b(8,Fe),b(9,xlt),b(10,Ee),b(11,h8)],bLe);var the=class{constructor(e){this._copilotService=e}async compute(e,n,r,o){try{let a=this._copilotService.getOrCreateInstantiationService(),s=hZ.createEmptyConfigForTesting(),{docs:c}=await a.invokeFunction(f=>mF.getNeighborFilesAndTraits(f,e,n,s)),u=a.invokeFunction(Ade,s,n).similarFilesOptions||a.invokeFunction(Oue,s,n),p=a.invokeFunction(f=>f.get(Zl)).getRelativePath({uri:e}),A=(await DJe({uri:e,source:r,languageId:n,offset:o,relativePath:p},Array.from(c.values()),u)).filter(f=>f.snippet.length>0).sort((f,g)=>f.score-g.score);return JSON.stringify({neighborFileCount:c.size,snippets:A.map(f=>({score:f.score,startLine:f.startLine,endLine:f.endLine,relativePath:f.relativePath,snippet:f.snippet}))})}catch{return}}};the=S([b(0,sU)],the);Je();var klt=me("ITestGenInfoStorage"),Ilt=class{constructor(){this.sourceFileToTest=void 0}};var VHr=require("vscode");dn();Ue();Ot();var Slt=class t extends fe{constructor(){super(...arguments);this.providers=[]}registerContextProvider(n,r){if(r.length===0)throw new Error("At least one ProviderTarget must be specified when registering a context provider.");return this.providers.push({provider:n,targets:r}),Fn(()=>{let o=this.providers.findIndex(a=>a.provider===n);o>-1&&this.providers.splice(o,1)})}getAllProviders(n){return this.providers.filter(r=>n.some(o=>r.targets.includes(o))).map(r=>r.provider)}getContextProviders(n,r){return this.getAllProviders([r]).filter(o=>VHr.languages.match(o.selector,n))}dispose(){super.dispose(),this.providers.length=0}getContextItems(n,r,o){let a=this.getContextProviders(n,r.source==="nes"?"nes":"completions");return new No(async l=>{async function u(d){let p=d.resolver.resolve(r,o);if(typeof p[Symbol.asyncIterator]=="function"){for await(let A of p)l.emitOne(A);return}let m=await p;if(Array.isArray(m))for(let A of m)l.emitOne(A);else typeof m[Symbol.asyncIterator]!="function"&&l.emitOne(m)}await Promise.allSettled(a.map(u))}).map(l=>t.convertCopilotContextItem(l))}static convertCopilotContextItem(n){if(n&&typeof n=="object"&&n.uri!==void 0){let o=n;return{kind:"snippet",priority:t.convertImportanceToPriority(o.importance),uri:K.parse(o.uri),value:o.value,additionalUris:o.additionalUris?.map(a=>K.parse(a))}}else{let o=n;return{kind:"trait",priority:t.convertImportanceToPriority(o.importance),name:o.name,value:o.value}}}static convertImportanceToPriority(n){return n===void 0||n<0?0:n>100?1:n/100}getContextItemsOnTimeout(n,r){let o=this.getContextProviders(n,r.source==="nes"?"nes":"completions");return Xne(o,l=>l.resolver.resolveOnTimeout?.(r)).flat().map(l=>t.convertCopilotContextItem(l))}};Ar();Be();var Tlt=me("IPowerService");var nhe=O(require("vscode"));Ar();Ue();var YHr=2*60*1e3,rhe=class extends fe{constructor(n){super();this._logService=n;this._activeCount=0;this._onDidSuspend=this._register(new lt);this.onDidSuspend=this._onDidSuspend.event;this._onDidResume=this._register(new lt);this.onDidResume=this._onDidResume.event;typeof nhe.env.power?.onDidSuspend=="function"&&(this._register(nhe.env.power.onDidSuspend(()=>this._onDidSuspend.fire())),this._register(nhe.env.power.onDidResume(()=>this._onDidResume.fire())))}acquirePowerSaveBlocker(){this._activeCount++,this._logService.debug(`[PowerService] Acquired power save blocker, active count: ${this._activeCount}`),this._releaseTimer!==void 0&&(clearTimeout(this._releaseTimer),this._releaseTimer=void 0),this._activeCount===1&&this._startBlocker();let n=!1;return Fn(()=>{n||(n=!0,this._release())})}async _startBlocker(){if(!this._blocker)try{if(typeof nhe.env.power?.startPowerSaveBlocker!="function"){this._logService.debug("[PowerService] Power save blocker API not available");return}this._blocker=await nhe.env.power.startPowerSaveBlocker("prevent-app-suspension"),this._logService.debug(`[PowerService] Started power save blocker, id: ${this._blocker.id}`)}catch(n){this._logService.warn(`[PowerService] Failed to start power save blocker: ${n}`)}}_release(){this._activeCount--,this._logService.debug(`[PowerService] Released power save blocker acquisition, active count: ${this._activeCount}`),this._activeCount<=0&&(this._activeCount=0,this._scheduleStopBlocker())}_scheduleStopBlocker(){this._releaseTimer===void 0&&(this._logService.debug(`[PowerService] Scheduling power save blocker release in ${YHr}ms`),this._releaseTimer=setTimeout(()=>{this._releaseTimer=void 0,this._stopBlocker()},YHr))}_stopBlocker(){this._blocker&&(this._activeCount>0||(this._logService.debug(`[PowerService] Stopping power save blocker, id: ${this._blocker.id}`),this._blocker.dispose(),this._blocker=void 0))}dispose(){this._releaseTimer!==void 0&&(clearTimeout(this._releaseTimer),this._releaseTimer=void 0),this._blocker&&(this._blocker.dispose(),this._blocker=void 0),super.dispose()}};rhe=S([b(0,Z)],rhe);var XHr=O(Ye());$s();var SDa=[{max_token_sequence_length:1,last_tokens_to_consider:10},{max_token_sequence_length:10,last_tokens_to_consider:30},{max_token_sequence_length:20,last_tokens_to_consider:45},{max_token_sequence_length:30,last_tokens_to_consider:60},{max_token_sequence_length:60,last_tokens_to_consider:120}];function Nin(t){if(t.length===0)return{numberOfRepetitions:0,mostRepeatedLine:"",totalLines:0};let e=new Map,n=t.split(` `);for(let a of n){if(a=a.trim(),a.length===0)continue;let s=e.get(a)||0;e.set(a,s+1)}let r="",o=0;for(let[a,s]of e.entries())s>o&&(o=s,r=a);return{numberOfRepetitions:o,mostRepeatedLine:r,totalLines:n.length}}function Lin(t){let e=t.slice();return e.reverse(),KHr(e)||KHr(e.filter(n=>n.trim().length>0))}function KHr(t){let e=TDa(t);for(let n of SDa){if(t.length=0&&t[n+1]!==t[r];)n=e[n];t[n+1]===t[r]&&n++,e[r]=n}return e}dn();En();Ar();Ue();So();Be();var VQ=class{static sendSuccessTelemetry(e,{chatCompletion:n,baseTelemetry:r,userInitiatedRequest:o,chatEndpointInfo:a,requestBody:s,maxResponseTokens:c,promptTokenCount:l,timeToFirstToken:u,timeToFirstTokenEmitted:d,hasImageMessages:p,transport:m,fetcher:A,bytesReceived:f,suspendEventSeen:g,resumeEventSeen:h}){e.sendTelemetryEvent("response.success",{github:!0,microsoft:!0},{reason:n.finishReason,filterReason:n.filterReason,source:r?.properties.messageSource??"unknown",initiatorType:o?"user":"agent",model:a?.model,modelInvoked:n.model,apiType:a?.apiType,requestId:n.requestId.headerRequestId,gitHubRequestId:n.requestId.gitHubRequestId,associatedRequestId:r?.properties.associatedRequestId,reasoningEffort:s.reasoning?.effort,reasoningSummary:s.reasoning?.summary,...A?{fetcher:A}:{},transport:m,...r?.properties.retryAfterError?{retryAfterError:r.properties.retryAfterError}:{},...r?.properties.retryAfterErrorGitHubRequestId?{retryAfterErrorGitHubRequestId:r.properties.retryAfterErrorGitHubRequestId}:{},...r?.properties.connectivityTestError?{connectivityTestError:r.properties.connectivityTestError}:{},...r?.properties.connectivityTestErrorGitHubRequestId?{connectivityTestErrorGitHubRequestId:r.properties.connectivityTestErrorGitHubRequestId}:{},...r?.properties.retryAfterFilterCategory?{retryAfterFilterCategory:r.properties.retryAfterFilterCategory}:{}},{totalTokenMax:a?.modelMaxPromptTokens??-1,tokenCountMax:c,promptTokenCount:n.usage?.prompt_tokens,promptCacheTokenCount:n.usage?.prompt_tokens_details?.cached_tokens,clientPromptTokenCount:l,tokenCount:n.usage?.total_tokens,reasoningTokens:n.usage?.completion_tokens_details?.reasoning_tokens,acceptedPredictionTokens:n.usage?.completion_tokens_details?.accepted_prediction_tokens,rejectedPredictionTokens:n.usage?.completion_tokens_details?.rejected_prediction_tokens,completionTokens:n.usage?.completion_tokens,timeToFirstToken:u,timeToFirstTokenEmitted:d,timeToComplete:Date.now()-r.issuedTime,issuedTime:r.issuedTime,isVisionRequest:p?1:-1,isBYOK:qL(a),isAuto:$S(a),bytesReceived:f,suspendEventSeen:g?1:0,resumeEventSeen:h?1:0})}static sendCancellationTelemetry(e,{source:n,requestId:r,model:o,apiType:a,transport:s,associatedRequestId:c,retryAfterError:l,retryAfterErrorGitHubRequestId:u,connectivityTestError:d,connectivityTestErrorGitHubRequestId:p,retryAfterFilterCategory:m,fetcher:A,suspendEventSeen:f,resumeEventSeen:g},{totalTokenMax:h,promptTokenCount:y,tokenCountMax:v,timeToFirstToken:_,timeToFirstTokenEmitted:w,timeToCancelled:x,isVisionRequest:E,isBYOK:I,isAuto:k,bytesReceived:T,issuedTime:D}){e.sendTelemetryEvent("response.cancelled",{github:!0,microsoft:!0},{apiType:a,source:n,requestId:r,model:o,associatedRequestId:c,...A?{fetcher:A}:{},transport:s,...l?{retryAfterError:l}:{},...u?{retryAfterErrorGitHubRequestId:u}:{},...d?{connectivityTestError:d}:{},...p?{connectivityTestErrorGitHubRequestId:p}:{},...m?{retryAfterFilterCategory:m}:{}},{totalTokenMax:h,promptTokenCount:y,tokenCountMax:v,timeToFirstToken:_,timeToFirstTokenEmitted:w,timeToCancelled:x,timeToComplete:x,issuedTime:D,isVisionRequest:E,isBYOK:I,isAuto:k,bytesReceived:T,suspendEventSeen:f?1:0,resumeEventSeen:g?1:0})}static sendResponseErrorTelemetry(e,{processed:n,telemetryProperties:r,chatEndpointInfo:o,requestBody:a,tokenCount:s,maxResponseTokens:c,timeToFirstToken:l,isVisionRequest:u,transport:d,fetcher:p,bytesReceived:m,issuedTime:A,wasRetried:f,suspendEventSeen:g,resumeEventSeen:h}){e.sendTelemetryEvent("response.error",{github:!0,microsoft:!0},{type:n.type,reason:n.reasonDetail||n.reason,source:r?.messageSource??"unknown",requestId:n.requestId,gitHubRequestId:n.serverRequestId,model:o.model,apiType:o.apiType,reasoningEffort:a.reasoning?.effort,reasoningSummary:a.reasoning?.summary,...p?{fetcher:p}:{},transport:d,associatedRequestId:r?.associatedRequestId,...r?.retryAfterError?{retryAfterError:r.retryAfterError}:{},...r?.retryAfterErrorGitHubRequestId?{retryAfterErrorGitHubRequestId:r.retryAfterErrorGitHubRequestId}:{},...r?.connectivityTestError?{connectivityTestError:r.connectivityTestError}:{},...r?.connectivityTestErrorGitHubRequestId?{connectivityTestErrorGitHubRequestId:r.connectivityTestErrorGitHubRequestId}:{},...r?.retryAfterFilterCategory?{retryAfterFilterCategory:r.retryAfterFilterCategory}:{}},{totalTokenMax:o.modelMaxPromptTokens??-1,promptTokenCount:s,tokenCountMax:c,timeToFirstToken:l,timeToComplete:Date.now()-A,issuedTime:A,isVisionRequest:u?1:-1,isBYOK:qL(o),isAuto:$S(o),wasRetried:f?1:0,bytesReceived:m,suspendEventSeen:g?1:0,resumeEventSeen:h?1:0})}};var Fin=class extends fe{constructor(n){super();this.options=n;this._onDidMakeChatMLRequest=this._register(new lt);this.onDidMakeChatMLRequest=this._onDidMakeChatMLRequest.event}preparePostOptions(n){return{temperature:this.options.temperature,top_p:this.options.topP,...n,stream:!0}}async fetchOne(n,r){let o=await this.fetchMany({...n,requestOptions:{...n.requestOptions,n:1}},r);return o.type==="success"?{...o,value:o.value[0]}:o}},C$=class extends Fin{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h){super(d);this._fetcherService=n;this._telemetryService=r;this._requestLogger=o;this._logService=a;this._authenticationService=s;this._interactionService=c;this._chatQuotaService=l;this._capiClientService=u;this._configurationService=p;this._experimentationService=m;this._powerService=A;this._instantiationService=f;this._webSocketManager=g;this._otelService=h;this.connectivityCheckDelays=[1e3,1e4,1e4];this._consecutiveWebSocketRetryFallbacks=0}static{this._maxConsecutiveWebSocketFallbacks=3}async fetchMany(n,r){let{debugName:o,endpoint:a,finishedCb:s,location:c,messages:l,requestOptions:u,source:d,telemetryProperties:p,userInitiatedRequest:m,requestKindOptions:A,conversationId:f,turnId:g,useWebSocket:h,ignoreStatefulMarker:y}=n;h&&this._consecutiveWebSocketRetryFallbacks>=C$._maxConsecutiveWebSocketFallbacks&&(this._logService.debug(`[ChatWebSocketManager] Disabling WebSocket for request due to ${this._consecutiveWebSocketRetryFallbacks} consecutive WebSocket failures with successful HTTP fallback.`),h=!1,y=!0),p||(p={}),p.messageSource||(p.messageSource=o);let v=h?"websocket":"http",_=p.requestId??p.messageId??st(),w=a.maxOutputTokens;u?.prediction||(u={max_tokens:w,...u}),u.prediction?.content||delete u.prediction;let x=this.preparePostOptions(u),E=a.createRequestBody({...n,ignoreStatefulMarker:y,requestId:_,postOptions:x}),I=Mc.createAndMarkAsIssued({...p,baseModel:a.model,uiKind:In.toString(c)}),k=this._requestLogger.logChatRequest(o,a,{messages:n.messages,model:a.model,ourRequestId:_,location:n.location,body:E,ignoreStatefulMarker:y,isConversationRequest:n.isConversationRequest,customMetadata:n.customMetadata}),T=-1,D=new Zee(s),M=n.enableRetryOnError??n.enableRetryOnFilter,q=n.canRetryOnceWithoutRollback??!(n.enableRetryOnFilter||n.enableRetryOnError),$,L,F,te,oe,Y,ge;try{let re,J=BDa(n.messages,x,a,this._configurationService,this._experimentationService);if(!J.isValid)re={type:"failed",modelRequestId:void 0,failKind:"validationFailed",reason:J.reason};else{let G=await this._authenticationService.getCopilotToken();$=G.username;let U=await this._fetchAndStreamChat(a,E,I,D.callback,u.secretKey,G,n.location,_,x.n,r,m,h,g,f,p,n.useFetcher,q,A);if(re=U.result,L=U.fetcher,F=U.bytesReceived,te=U.statusCode,oe=U.suspendEventSeen,Y=U.resumeEventSeen,ge=U.otelSpan,ge?.setAttribute($e.AGENT_NAME,o),ge){let xe=E.messages,ze=xe?.filter(se=>se.role==="user"),Me=ze?.[ze.length-1];Me?.content&&ge.setAttribute(Vn.USER_REQUEST,Me.content);let ce=xe?.find(se=>se.role==="system");ce?.content&&ge.setAttribute($e.SYSTEM_INSTRUCTIONS,ce.content)}if(ge){let xe=E.messages;xe&&ge.setAttribute($e.INPUT_MESSAGES,ns(JSON.stringify(F0t(xe))))}T=await a.acquireTokenizer().countMessagesTokens(l);let ie=d?.extensionId??CA;this._onDidMakeChatMLRequest.fire({messages:l,model:a.model,source:{extensionId:ie},tokenCount:T})}let Ae=Date.now()-I.issuedTime;switch(k?.markTimeToFirstToken(Ae),re.type){case"success":{let G=await this.processSuccessfulResponse(re,l,E,_,w,T,Ae,D,I,a,m,v,L,F,oe,Y);if(G.type==="filteredRetry"){if(n.enableRetryOnFilter){D.callback("",0,{text:"",retryReason:G.category});let U=G.value[0];if(U){let ie=G.category==="snippy"?`The previous response (copied below) was filtered due to being too similar to existing public code. Please suggest something similar in function that does not match public code. Here's the previous response: ${U} `:`The previous response (copied below) was filtered due to triggering our content safety filters, which looks for hateful, self-harm, sexual, or violent content. Please suggest something similar in content that does not trigger these filters. Here's the previous response: ${U} `,xe=[...l,{role:XHr.Raw.ChatRole.User,content:Nz(ie)}],ze=await this.fetchMany({...n,debugName:"retry-"+o,messages:xe,finishedCb:s,location:c,endpoint:a,source:d,requestOptions:u,userInitiatedRequest:!1,telemetryProperties:{...p,retryAfterFilterCategory:G.category??"uncategorized"},enableRetryOnFilter:!1,canRetryOnceWithoutRollback:!1,enableRetryOnError:M},r);if(k?.resolve(ze,D.deltas),ze.type==="success")return ze}}return{type:"filtered",category:G.category,reason:"Response got filtered.",requestId:G.requestId,serverRequestId:G.serverRequestId}}if(k?.resolve(G,D.deltas),G.type==="success"&&G.usage){let U={operationName:Xi.CHAT,providerName:EL.GITHUB,requestModel:a.model,responseModel:G.resolvedModel};G.usage.prompt_tokens&&ci.recordTokenUsage(this._otelService,G.usage.prompt_tokens,"input",U),G.usage.completion_tokens&&ci.recordTokenUsage(this._otelService,G.usage.completion_tokens,"output",U),ge?.setAttributes({[$e.USAGE_INPUT_TOKENS]:G.usage.prompt_tokens??0,[$e.USAGE_OUTPUT_TOKENS]:G.usage.completion_tokens??0,[$e.RESPONSE_MODEL]:G.resolvedModel??a.model,[$e.RESPONSE_ID]:G.requestId,[$e.RESPONSE_FINISH_REASONS]:["stop"],...G.usage.prompt_tokens_details?.cached_tokens?{[$e.USAGE_CACHE_READ_INPUT_TOKENS]:G.usage.prompt_tokens_details.cached_tokens}:{},[Vn.TIME_TO_FIRST_TOKEN]:Ae,...G.serverRequestId?{[Vn.SERVER_REQUEST_ID]:G.serverRequestId}:{},...G.usage.completion_tokens_details?.reasoning_tokens?{[$e.USAGE_REASONING_TOKENS]:G.usage.completion_tokens_details.reasoning_tokens}:{}})}if(ge&&G.type==="success"){let U=D.deltas.map(ze=>ze.text).join(""),ie=D.deltas.filter(ze=>ze.copilotToolCalls?.length).flatMap(ze=>ze.copilotToolCalls.map(Me=>({type:"tool_call",id:Me.id,name:Me.name,arguments:Me.arguments}))),xe=[];U&&xe.push({type:"text",content:U}),xe.push(...ie),xe.length>0&&ge.setAttribute($e.OUTPUT_MESSAGES,ns(JSON.stringify([{role:"assistant",parts:xe}])))}return Mz(this._otelService,{model:a.model,temperature:u?.temperature,maxTokens:u?.max_tokens},G.type==="success"?{id:G.requestId,model:G.resolvedModel,finishReasons:["stop"],inputTokens:G.usage?.prompt_tokens,outputTokens:G.usage?.completion_tokens}:void 0),ge?.end(),ge=void 0,Ae>0&&ci.recordTimeToFirstToken(this._otelService,a.model,Ae/1e3),h&&G.type==="success"&&(this._consecutiveWebSocketRetryFallbacks=0),G}case"canceled":return VQ.sendCancellationTelemetry(this._telemetryService,{source:p.messageSource??"unknown",requestId:_,model:a.model,apiType:a.apiType,transport:v,associatedRequestId:p.associatedRequestId,retryAfterError:p.retryAfterError,retryAfterErrorGitHubRequestId:p.retryAfterErrorGitHubRequestId,connectivityTestError:p.connectivityTestError,connectivityTestErrorGitHubRequestId:p.connectivityTestErrorGitHubRequestId,retryAfterFilterCategory:p.retryAfterFilterCategory,fetcher:L,suspendEventSeen:oe,resumeEventSeen:Y},{totalTokenMax:a.modelMaxPromptTokens??-1,promptTokenCount:T,tokenCountMax:w,timeToFirstToken:Ae,timeToFirstTokenEmitted:I&&D.firstTokenEmittedTime?D.firstTokenEmittedTime-I.issuedTime:-1,timeToCancelled:Date.now()-I.issuedTime,isVisionRequest:this.filterImageMessages(l)?1:-1,isBYOK:qL(a),isAuto:$S(a),bytesReceived:F,issuedTime:I.issuedTime}),k?.resolveWithCancelation(),ge?.setAttributes({[$e.RESPONSE_FINISH_REASONS]:["cancelled"],[Vn.CANCELED]:!0}),ge?.end(),ge=void 0,this.processCanceledResponse(re,_,D,p);case"failed":{let G=this.processFailedResponse(re,_,$S(a)===1),ie=this._configurationService.getExperimentBasedConfig(H.TeamInternal.RetryServerErrorStatusCodes,this._experimentationService).split(",").map(Me=>parseInt(Me.trim(),10)),xe=M&&te!==void 0&&ie.includes(te),ze=M&&h&&(re.failKind==="serverError"||re.failKind==="unknown");if(xe||ze){let{retryResult:Me}=await this._retryAfterError({opts:n,processed:G,telemetryProperties:p,requestBody:E,tokenCount:T,maxResponseTokens:w,timeToError:Ae,transport:v,actualFetcher:L,bytesReceived:F,baseTelemetry:I,streamRecorder:D,retryReason:"server_error",debugNamePrefix:"retry-server-error-",pendingLoggedChatRequest:k,token:r,usernameToScrub:$,suspendEventSeen:oe,resumeEventSeen:Y});if(Me)return Me}return VQ.sendResponseErrorTelemetry(this._telemetryService,{processed:G,telemetryProperties:p,chatEndpointInfo:a,requestBody:E,tokenCount:T,maxResponseTokens:w,timeToFirstToken:Ae,isVisionRequest:this.filterImageMessages(l),transport:v,fetcher:L,bytesReceived:F,issuedTime:I.issuedTime,wasRetried:!1,suspendEventSeen:oe,resumeEventSeen:Y}),k?.resolve(G),G}}}catch(re){ge&&(ge.setStatus(2,re instanceof Error?re.message:String(re)),ge.setAttribute(Lm.ERROR_TYPE,re instanceof Error?re.constructor.name:"Error"),ge.setAttribute($e.RESPONSE_FINISH_REASONS,["error"]),ge.recordException(re),ge.end());let J=Date.now()-I.issuedTime;re.fetcherId&&(L=re.fetcherId),re.suspendEventSeen&&(oe=!0),re.resumeEventSeen&&(Y=!0);let Ae=this.processError(re,_,re.gitHubRequestId,$,$S(a)===1),G=M&&Ae.type==="networkError"&&this._configurationService.getExperimentBasedConfig(H.TeamInternal.RetryNetworkErrors,this._experimentationService),U=M&&h&&(Ae.type==="networkError"||Ae.type==="failed");if(G||U){let{retryResult:ie,connectivityTestError:xe,connectivityTestErrorGitHubRequestId:ze}=await this._retryAfterError({opts:n,processed:Ae,telemetryProperties:p,requestBody:E,tokenCount:T,maxResponseTokens:w,timeToError:J,transport:v,actualFetcher:L,bytesReceived:re.bytesReceived,baseTelemetry:I,streamRecorder:D,retryReason:"network_error",debugNamePrefix:"retry-error-",pendingLoggedChatRequest:k,token:r,usernameToScrub:$,suspendEventSeen:oe,resumeEventSeen:Y});if(ie)return ie;p={...p,connectivityTestError:xe,connectivityTestErrorGitHubRequestId:ze}}return Ae.type==="canceled"?VQ.sendCancellationTelemetry(this._telemetryService,{source:p.messageSource??"unknown",requestId:_,model:a.model,apiType:a.apiType,transport:v,associatedRequestId:p.associatedRequestId,retryAfterError:p.retryAfterError,retryAfterErrorGitHubRequestId:p.retryAfterErrorGitHubRequestId,connectivityTestError:p.connectivityTestError,connectivityTestErrorGitHubRequestId:p.connectivityTestErrorGitHubRequestId,retryAfterFilterCategory:p.retryAfterFilterCategory,fetcher:L,suspendEventSeen:oe,resumeEventSeen:Y},{totalTokenMax:a.modelMaxPromptTokens??-1,promptTokenCount:T,tokenCountMax:w,timeToFirstToken:void 0,timeToCancelled:J,isVisionRequest:this.filterImageMessages(l)?1:-1,isBYOK:qL(a),isAuto:$S(a),bytesReceived:re.bytesReceived,issuedTime:I.issuedTime}):VQ.sendResponseErrorTelemetry(this._telemetryService,{processed:Ae,telemetryProperties:p,chatEndpointInfo:a,requestBody:E,tokenCount:T,maxResponseTokens:w,timeToFirstToken:J,isVisionRequest:this.filterImageMessages(l),transport:v,fetcher:L,bytesReceived:re.bytesReceived,issuedTime:I.issuedTime,wasRetried:!1,suspendEventSeen:oe,resumeEventSeen:Y}),k?.resolve(Ae),Ae}}async _checkNetworkConnectivity(n){let r=this.connectivityCheckDelays,o,a;for(let s of r){this._logService.info(`Waiting ${s}ms before pinging CAPI to check network connectivity...`),await new Promise(c=>setTimeout(c,s));try{let c=this._capiClientService.dotcomAPIURL!=="https://api.github.com",l=this._capiClientService.capiPingURL,u=await this._getAuthHeaders(c,l),d=await this._fetcherService.fetch(l,{headers:u,useFetcher:n,callSite:"capi-ping"});if(d.status>=200&&d.status<300)return this._logService.info("CAPI ping successful, proceeding with chat request retry..."),{retryRequest:!0,connectivityTestError:o,connectivityTestErrorGitHubRequestId:a};o=`Status ${d.status}: ${d.statusText}`,a=d.headers.get("x-github-request-id")??"",this._logService.info(`CAPI ping returned status ${d.status}, retrying ping...`)}catch(c){o=zf(c,!0),a=void 0,this._logService.info(`CAPI ping failed with error, retrying ping: ${o}`)}}return{retryRequest:!1,connectivityTestError:o,connectivityTestErrorGitHubRequestId:a}}async _getAuthHeaders(n,r){let o={};if(n){let a="";if(r===this._capiClientService.dotcomAPIURL)a=this._authenticationService.anyGitHubSession?.accessToken||"";else try{a=(await this._authenticationService.getCopilotToken()).token}catch{a=""}o.Authorization=`Bearer ${a}`}return o}async _retryAfterError(n){let{opts:r,processed:o,telemetryProperties:a,requestBody:s,tokenCount:c,maxResponseTokens:l,timeToError:u,transport:d,actualFetcher:p,bytesReceived:m,baseTelemetry:A,streamRecorder:f,retryReason:g,debugNamePrefix:h,pendingLoggedChatRequest:y,token:v,usernameToScrub:_,suspendEventSeen:w,resumeEventSeen:x}=n,E=["darwin","linux"].includes(process.platform)&&o.reason.indexOf("net::ERR_NETWORK_CHANGED")!==-1,I=this._configurationService.getExperimentBasedConfig(H.TeamInternal.FallbackNodeFetchOnNetworkProcessCrash,this._experimentationService),k=o.type==="networkError"&&o.isNetworkProcessCrash===!0&&I,T=E||k?"node-fetch":r.useFetcher;this._logService.info(`Retrying chat request with ${T||"default"} fetcher after: ${o.reasonDetail||o.reason}`);let D=await this._checkNetworkConnectivity(T),M=D.connectivityTestError?this.scrubErrorDetail(D.connectivityTestError,_):void 0,q=D.connectivityTestErrorGitHubRequestId;if(!D.retryRequest)return this._logService.info("Not retrying chat request as network connectivity could not be re-established."),{connectivityTestError:M,connectivityTestErrorGitHubRequestId:q};VQ.sendResponseErrorTelemetry(this._telemetryService,{processed:o,telemetryProperties:a,chatEndpointInfo:r.endpoint,requestBody:s,tokenCount:c,maxResponseTokens:l,timeToFirstToken:u,isVisionRequest:this.filterImageMessages(r.messages),transport:d,fetcher:p,bytesReceived:m,issuedTime:A.issuedTime,wasRetried:!0,suspendEventSeen:w,resumeEventSeen:x}),f.callback("",0,{text:"",retryReason:g});let $=await this.fetchMany({...r,useWebSocket:!1,ignoreStatefulMarker:r.useWebSocket||r.ignoreStatefulMarker,debugName:h+r.debugName,userInitiatedRequest:!1,telemetryProperties:{...a,retryAfterError:o.reasonDetail||o.reason,retryAfterErrorGitHubRequestId:o.serverRequestId,connectivityTestError:M,connectivityTestErrorGitHubRequestId:q},enableRetryOnError:!1,useFetcher:T},v);return y?.resolve($,f.deltas),r.useWebSocket&&$.type==="success"&&(this._consecutiveWebSocketRetryFallbacks++,this._logService.info(`[ChatWebSocketManager] WebSocket request failed with successful HTTP fallback (${this._consecutiveWebSocketRetryFallbacks} consecutive).`),r.conversationId&&r.turnId&&this._webSocketManager.closeConnection(r.conversationId,r.turnId)),{retryResult:$,connectivityTestError:M,connectivityTestErrorGitHubRequestId:q}}async _fetchAndStreamChat(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_){let x=this._configurationService.getExperimentBasedConfig(H.TeamInternal.ChatRequestPowerSaveBlocker,this._experimentationService)&&l!==6?this._powerService.acquirePowerSaveBlocker():void 0,E=!1,I=!1,k=this._powerService.onDidSuspend(()=>{E=!0,this._logService.info(`System suspended during streaming request ${u} (${In.toString(l)})`)}),T=this._powerService.onDidResume(()=>{I=!0,this._logService.info(`System resumed during streaming request ${u} (${In.toString(l)})`)});try{return{...await this._doFetchAndStreamChat(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_),suspendEventSeen:E||void 0,resumeEventSeen:I||void 0}}catch(D){throw E&&(D.suspendEventSeen=!0),I&&(D.resumeEventSeen=!0),D}finally{k.dispose(),T.dispose(),x?.dispose()}}async _doFetchAndStreamChat(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_){if(p.isCancellationRequested)return{result:{type:"canceled",reason:"before fetch request"}};let w=typeof n.urlOrRequestMetadata=="string"?(()=>{try{return new URL(n.urlOrRequestMetadata).hostname}catch{return}})():void 0,x=DR()?.chatSessionId,E=DR()?.parentChatSessionId,I=DR()?.debugLogLabel,k=this._otelService.startSpan(`chat ${n.model}`,{kind:2,attributes:{[$e.OPERATION_NAME]:Xi.CHAT,[$e.PROVIDER_NAME]:EL.GITHUB,[$e.REQUEST_MODEL]:n.model,[$e.CONVERSATION_ID]:h?.requestId??u,[$e.REQUEST_MAX_TOKENS]:r.max_tokens??r.max_output_tokens??r.max_completion_tokens??2048,...r.temperature!==void 0?{[$e.REQUEST_TEMPERATURE]:r.temperature}:{},...r.top_p!==void 0?{[$e.REQUEST_TOP_P]:r.top_p}:{},[Vn.MAX_PROMPT_TOKENS]:n.modelMaxPromptTokens,...w?{[Lm.SERVER_ADDRESS]:w}:{},...g?{[Vn.SESSION_ID]:g}:{},...x?{[Vn.CHAT_SESSION_ID]:x}:{},...E?{[Vn.PARENT_CHAT_SESSION_ID]:E}:{},...I?{[Vn.DEBUG_LOG_LABEL]:I}:{}}}),T=Date.now();try{if(this._logService.debug(`modelMaxPromptTokens ${n.modelMaxPromptTokens}`),this._logService.debug(`modelMaxResponseTokens ${r.max_tokens??2048}`),this._logService.debug(`chat model ${n.model}`),s??=c.token,!s){let M=e8e(n.urlOrRequestMetadata);return this._logService.error(`Failed to send request to ${M} due to missing key`),N9(this._telemetryService,`Failed to send request to ${M} due to missing key`),{result:{type:"failed",modelRequestId:void 0,failKind:"tokenExpiredOrInvalid",reason:"key is missing"}}}return A&&f&&g?{...await this._doFetchViaWebSocket(n,r,o,a,s,l,u,f,g,p,m,h,_),otelSpan:k}:{...await this._doFetchViaHttp(n,r,o,a,s,l,u,d,p,m,h,y,v,_),otelSpan:k}}catch(D){throw k.setStatus(2,D instanceof Error?D.message:String(D)),k.setAttribute(Lm.ERROR_TYPE,D instanceof Error?D.constructor.name:"Error"),k.recordException(D),D}finally{let D=(Date.now()-T)/1e3;ci.recordOperationDuration(this._otelService,D,{operationName:Xi.CHAT,providerName:EL.GITHUB,requestModel:n.model})}}async _doFetchViaWebSocket(n,r,o,a,s,c,l,u,d,p,m,A,f){let g=JHr(c),h=f?.kind==="subagent"?"conversation-subagent":f?.kind==="background"?"conversation-background":g==="conversation-agent"?g:void 0,y={Authorization:`Bearer ${s}`,"X-Request-Id":l,"OpenAI-Intent":g,"X-GitHub-Api-Version":"2025-05-01","X-Interaction-Id":this._interactionService.interactionId,...n.getExtraHeaders?n.getExtraHeaders(c):{}};h&&(y["X-Interaction-Type"]=h,y["X-Agent-Task-Id"]=l),r.messages?.some(q=>Array.isArray(q.content)?q.content.some($=>"image_url"in $):!1)&&n.supportsVision&&(y["Copilot-Vision-Request"]="true");let v=this._webSocketManager.getOrCreateConnection(d,u,y);try{await v.connect()}catch(q){throw q.gitHubRequestId=v.gitHubRequestId,q}let _=st(),w=Mc.createAndMarkAsIssued({endpoint:"completions",engineName:"chat",uiKind:In.toString(c),transport:"websocket",...A,modelCallId:_},{maxTokenWindow:n.modelMaxPromptTokens}),x=Vv(v.responseHeaders);w.extendWithRequestId(x);for(let[q,$]of Object.entries(r))q==="messages"||q==="input"||(w.properties[`request.option.${q}`]=JSON.stringify($)??"undefined");w.properties.headerRequestId=l,this._telemetryService.sendGHTelemetryEvent("request.sent",w.properties,w.measurements);let E=Date.now(),I=v.sendRequest(r,{userInitiated:!!m},p),k=o.extendedBy({modelCallId:_}),T=this._instantiationService.createInstance(qz,k,x.headerRequestId,x.gitHubRequestId),D=new No(async q=>{try{await new Promise((L,F)=>{I.onEvent(te=>{let oe=T.push(te,a);if(oe&&(Avt(this._telemetryService,this._logService,oe,k),q.emitOne(oe)),te.type==="response.completed"){let Y=te.copilot_quota_snapshots;Y&&typeof Y=="object"&&this._chatQuotaService.processQuotaSnapshots(Y)}}),I.onCAPIError(te=>{let oe=new Error(`${te.error.message} (${te.error.code})`);oe.gitHubRequestId=x.gitHubRequestId,oe.capiWebSocketError=te,F(oe)}),I.onError(te=>{if(te.gitHubRequestId=x.gitHubRequestId,Jr(te)){F(te);return}let oe=w.extendedBy({error:te.message});this._telemetryService.sendGHTelemetryEvent("request.shownWarning",oe.properties,oe.measurements);let Y=Date.now()-E;w.measurements.totalTimeMs=Y,w.properties.error=te.message,this._logService.debug(`request.error: [websocket], took ${Y} ms`),this._telemetryService.sendGHTelemetryEvent("request.error",w.properties,w.measurements),F(te)}),I.done.then(L,F)});let $=Date.now()-E;w.measurements.totalTimeMs=$,this._logService.debug(`request.response: [websocket], took ${$} ms`),this._telemetryService.sendGHTelemetryEvent("request.response",w.properties,w.measurements)}finally{let $=r.messages;if((!$||$.length===0)&&r.input)try{let L=C_e(r);$=SE(L)}catch(L){this._logService.error("Failed to convert Response API input to messages for telemetry:",L),$=[]}L9(this._telemetryService,$??[],w,!1,this._logService)}}),M=await I.firstEvent;if(p.isCancellationRequested)return{result:{type:"canceled",reason:"after first WebSocket event"}};if(G3e(M)){let q=Date.now()-E;return w.measurements.totalTimeMs=q,w.properties.error=`${M.error.message} (${M.error.code})`,this._logService.debug(`request.error: [websocket capi error], took ${q} ms`),this._telemetryService.sendGHTelemetryEvent("request.error",w.properties,w.measurements),{result:await this._handleWebSocketCAPIError(M,x)}}return this._authenticationService.copilotToken?.isFreeUser&&this._authenticationService.copilotToken?.isChatQuotaExceeded&&this._authenticationService.resetCopilotToken(),{result:{type:"success",chatCompletions:D}}}async _doFetchViaHttp(n,r,o,a,s,c,l,u,d,p,m,A,f,g){let h=st(),y=await this._fetchWithInstrumentation(n,l,r,s,c,d,p,{...m,modelCallId:h},A,f,g);if(d.isCancellationRequested){try{await y.body.destroy()}catch(x){this._logService.error(x,"Error destroying stream"),this._telemetryService.sendGHTelemetryException(x,"Error destroying stream")}return{result:{type:"canceled",reason:"after fetch request"},fetcher:y.fetcher,bytesReceived:y.bytesReceived}}if(y.status===200&&this._authenticationService.copilotToken?.isFreeUser&&this._authenticationService.copilotToken?.isChatQuotaExceeded&&this._authenticationService.resetCopilotToken(),y.status!==200){let x=RDa(n,c,l);return this._logService.info("Request ID for failed request: "+l),{result:await this._handleError(x,y,l),fetcher:y.fetcher,bytesReceived:y.bytesReceived,statusCode:y.status}}let v=o.extendedBy({modelCallId:h}),_,w=y.headers.get("x-github-request-id")??"";try{let x=await n.processResponseFromChatEndpoint(this._telemetryService,this._logService,y,u??1,a,v,d,c);_=new No(async E=>{try{for await(let I of x)E.emitOne(I)}catch(I){throw I.fetcherId=y.fetcher,I.gitHubRequestId=w,I.bytesReceived=y.bytesReceived,I}})}catch(x){throw x.fetcherId=y.fetcher,x.gitHubRequestId=w,x.bytesReceived=y.bytesReceived,x}return y.headers.get("Copilot-Edits-Session")&&(this._authenticationService.speculativeDecodingEndpointToken=y.headers.get("Copilot-Edits-Session")??void 0),this._chatQuotaService.processQuotaHeaders(y.headers),{result:{type:"success",chatCompletions:_},fetcher:y.fetcher,bytesReceived:y.bytesReceived}}async _fetchWithInstrumentation(n,r,o,a,s,c,l,u,d,p,m){let A={"X-Interaction-Id":this._interactionService.interactionId,"X-Initiator":l?"user":"agent"};o.messages?.some(y=>Array.isArray(y.content)?y.content.some(v=>"image_url"in v):!1)&&n.supportsVision&&(A["Copilot-Vision-Request"]="true");let f=Mc.createAndMarkAsIssued({endpoint:"completions",engineName:"chat",uiKind:In.toString(s),transport:"http",...u},{maxTokenWindow:n.modelMaxPromptTokens});for(let[y,v]of Object.entries(o))y==="messages"||y==="input"||(f.properties[`request.option.${y}`]=JSON.stringify(v)??"undefined");f.properties.headerRequestId=r,this._telemetryService.sendGHTelemetryEvent("request.sent",f.properties,f.measurements);let g=Date.now(),h=JHr(s);return this._instantiationService.invokeFunction(fw,{endpointOrUrl:n,secretKey:a,intent:h,requestId:r,body:o,additionalHeaders:A,cancelToken:c,useFetcher:d,canRetryOnce:p,location:s,requestKindOptions:m}).then(y=>{let v=y.headers.get("apim-request-id");v&&this._logService.debug(`APIM request id: ${v}`);let _=y.headers.get("x-github-request-id");_&&this._logService.debug(`GH request id: ${_}`);let w=Vv(y.headers);f.extendWithRequestId(w);let x=Date.now()-g;return f.measurements.totalTimeMs=x,this._logService.debug(`request.response: [${e8e(n.urlOrRequestMetadata)}], took ${x} ms`),this._telemetryService.sendGHTelemetryEvent("request.response",f.properties,f.measurements),y}).catch(y=>{if(this._fetcherService.isAbortError(y))throw y;let v=f.extendedBy({error:"Network exception"});this._telemetryService.sendGHTelemetryEvent("request.shownWarning",v.properties,v.measurements),f.properties.code=String(y.code??""),f.properties.errno=String(y.errno??""),f.properties.message=String(y.message??""),f.properties.type=String(y.type??"");let _=Date.now()-g;throw f.measurements.totalTimeMs=_,this._logService.debug(`request.response: [${e8e(n.urlOrRequestMetadata)}] took ${_} ms`),this._telemetryService.sendGHTelemetryEvent("request.error",f.properties,f.measurements),y}).finally(()=>{let y=o.messages;if((!y||y.length===0)&&o.input)try{let v=C_e(o);y=SE(v)}catch(v){this._logService.error("Failed to convert Response API input to messages for telemetry:",v),y=[]}L9(this._telemetryService,y??[],f,!1,this._logService)})}async _handleError(n,r,o){let a=Vv(r.headers);o=a.headerRequestId||o,a.headerRequestId=o,n.properties.error=`Response status was ${r.status}`,n.properties.status=String(r.status),this._telemetryService.sendGHTelemetryEvent("request.shownWarning",n.properties,n.measurements);let s=await r.text(),c;try{c=JSON.parse(s),c=c?.error??c}catch{}let l=`Server error: ${r.status}`,u=`${l} ${s}`;if(this._logService.error(u),400<=r.status&&r.status<500){if(r.status===400&&s.includes("off_topic"))return{type:"failed",modelRequestId:a,failKind:"offTopic",reason:"filtered as off_topic by intent classifier: message was not programming related"};if(r.status===401&&s.includes("authorize_url")&&c?.authorize_url)return{type:"failed",modelRequestId:a,failKind:"unauthorized",reason:r.statusText||r.statusText,data:c};if(r.status===400&&c?.code==="previous_response_not_found")return{type:"failed",modelRequestId:a,failKind:"invalidPreviousResponseId",reason:c.message||"Invalid previous response ID",data:c};if(r.status===401||r.status===403)return this._authenticationService.resetCopilotToken(r.status),{type:"failed",modelRequestId:a,failKind:"tokenExpiredOrInvalid",reason:c?.message||`token expired or invalid: ${r.status}`};if(r.status===402){this._authenticationService.copilotToken?.isChatQuotaExceeded||(this._authenticationService.resetCopilotToken(r.status),await this._authenticationService.getCopilotToken());let d=r.headers.get("retry-after"),m=(A=>{if(!A)return;let f=new Date(A);if(!isNaN(f.getDate()))return f;let g=parseInt(A,10);if(!isNaN(g))return new Date(Date.now()+g*1e3)})(d);return{type:"failed",modelRequestId:a,failKind:"quotaExceeded",reason:c?.message??"Free tier quota exceeded",data:{capiError:c,retryAfter:m}}}if(r.status===404){let d;return c?d=JSON.stringify(c):d=s,{type:"failed",modelRequestId:a,failKind:"notFound",reason:d}}if(r.status===422)return{type:"failed",modelRequestId:a,failKind:"contentFilter",reason:`Filtered by Responsible AI Service `+s};if(r.status===424)return{type:"failed",modelRequestId:a,failKind:"failedDependency",reason:s};if(r.status===429){let d=s;return d=c?.message??c?.code,s.includes("extension_blocked")&&c?.code==="extension_blocked"&&c?.type==="rate_limit_error"?{type:"failed",modelRequestId:a,failKind:"extensionBlocked",reason:"Extension blocked",data:{...c?.message,retryAfter:r.headers.get("retry-after")}}:{type:"failed",modelRequestId:a,failKind:"rateLimited",reason:d,data:{retryAfter:r.headers.get("retry-after"),rateLimitKey:r.headers.get("x-ratelimit-exceeded"),capiError:c}}}if(r.status===466)return this._logService.info(s),{type:"failed",modelRequestId:a,failKind:"clientNotSupported",reason:`client not supported: ${s}`};if(r.status===499)return this._logService.info("Cancelled by server"),{type:"failed",modelRequestId:a,failKind:"serverCanceled",reason:"canceled by server"}}else if(500<=r.status&&r.status<600)return r.status===503?{type:"failed",modelRequestId:a,failKind:"rateLimited",reason:"Upstream provider rate limit hit",data:{retryAfter:null,rateLimitKey:null,capiError:{code:"upstream_provider_rate_limit",message:s}}}:{type:"failed",modelRequestId:a,failKind:"serverError",reason:l};return this._logService.error(`Request Failed: ${r.status} ${s}`),N9(this._telemetryService,"Unhandled status from server: "+r.status,s),{type:"failed",modelRequestId:a,failKind:"unknown",reason:`Request Failed: ${r.status} ${s}`}}async processSuccessfulResponse(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y){let v=[];for await(let E of n.chatCompletions)VQ.sendSuccessTelemetry(this._telemetryService,{chatCompletion:E,baseTelemetry:d,userInitiatedRequest:m,chatEndpointInfo:p,requestBody:o,maxResponseTokens:s,promptTokenCount:c,timeToFirstToken:l,timeToFirstTokenEmitted:d&&u.firstTokenEmittedTime?u.firstTokenEmittedTime-d.issuedTime:-1,hasImageMessages:this.filterImageMessages(r),transport:A,fetcher:f,bytesReceived:g,suspendEventSeen:h,resumeEventSeen:y}),this.isRepetitive(E,d?.properties)||v.push(E);let _=new Set(["stop","client-trimmed","function_call","tool_calls"]),w=v.filter(E=>_.has(E.finishReason));if(w.length>=1)return{type:"success",resolvedModel:w[0].model,usage:w.length===1?w[0].usage:void 0,value:w.map(E=>Su(E.message.content)),requestId:a,serverRequestId:w[0].requestId.headerRequestId};let x=v.at(0);switch(x?.finishReason){case"content_filter":return{type:"filteredRetry",category:x.filterReason??"snippy",reason:"Response got filtered.",value:v.map(E=>Su(E.message.content)),requestId:a,serverRequestId:x.requestId.headerRequestId};case"length":return{type:"length",reason:"Response too long.",requestId:a,serverRequestId:x.requestId.headerRequestId,truncatedValue:Su(x.message.content)};case"error":return{type:"failed",reason:"Server error. Stream terminated",requestId:a,serverRequestId:x.requestId.headerRequestId,streamError:x.error}}return{type:"unknown",reason:w3e,requestId:a,serverRequestId:x?.requestId.headerRequestId}}filterImageMessages(n){return n?.some(r=>Array.isArray(r.content)?r.content.some(o=>"imageUrl"in o):!1)}isRepetitive(n,r){let o=Nin(Su(n.message.content)),a=Lin(n.tokens);if(a){let s=Mc.createAndMarkAsIssued();s.extendWithRequestId(n.requestId);let c=s.extendedBy(r);this._telemetryService.sendEnhancedGHTelemetryEvent("conversation.repetition.detected",c.properties,c.measurements)}return o.numberOfRepetitions>=10&&this._telemetryService.sendMSFTTelemetryEvent("conversation.repetition.detected",{requestId:n.requestId.headerRequestId,finishReason:n.finishReason},{numberOfRepetitions:o.numberOfRepetitions,lengthOfLine:o.mostRepeatedLine.length,totalLines:o.totalLines}),a}checkRepetitionInDeltas(n,r,o){let a=n.filter(u=>u.text?.length>0).map(u=>u.text).join("");if(!a||a.trim().length===0)return;let s=a.split(/\s+/).filter(u=>u.length>0),c=Nin(a);if(Lin(s)){let d=Mc.createAndMarkAsIssued().extendedBy(o);this._telemetryService.sendEnhancedGHTelemetryEvent("conversation.repetition.detected",d.properties,d.measurements)}c.numberOfRepetitions>=10&&this._telemetryService.sendMSFTTelemetryEvent("conversation.repetition.detected",{requestId:r,finishReason:"canceled"},{numberOfRepetitions:c.numberOfRepetitions,lengthOfLine:c.mostRepeatedLine.length,totalLines:c.totalLines})}processCanceledResponse(n,r,o,a){return o&&o.deltas.length>0&&this.checkRepetitionInDeltas(o.deltas,r,a),{type:"canceled",reason:n.reason,requestId:r,serverRequestId:void 0}}processFailedResponse(n,r,o){let a=n.modelRequestId?.gitHubRequestId,s=n.reason;if(n.failKind==="rateLimited")return{type:"rateLimited",reason:s,requestId:r,serverRequestId:a,retryAfter:n.data?.retryAfter,rateLimitKey:n.data?.rateLimitKey||"",isAuto:o,capiError:n.data?.capiError};if(n.failKind==="quotaExceeded")return{type:"quotaExceeded",reason:s,requestId:r,serverRequestId:a,retryAfter:n.data?.retryAfter,capiError:n.data?.capiError};if(n.failKind==="offTopic")return{type:"offTopic",reason:s,requestId:r,serverRequestId:a};if(n.failKind==="tokenExpiredOrInvalid"||n.failKind==="clientNotSupported"||s.includes("Bad request: "))return{type:"badRequest",reason:s,requestId:r,serverRequestId:a};if(n.failKind==="serverError")return{type:"failed",reason:s,requestId:r,serverRequestId:a};if(n.failKind==="contentFilter")return{type:"promptFiltered",reason:s,category:"prompt",requestId:r,serverRequestId:a};if(n.failKind==="unauthorized")return{type:"agent_unauthorized",reason:s,authorizationUrl:n.data.authorize_url,requestId:r,serverRequestId:a};if(n.failKind==="failedDependency")return{type:"agent_failed_dependency",reason:s,requestId:r,serverRequestId:a};if(n.failKind==="extensionBlocked"){let c=typeof n.data?.retryAfter=="number"?n.data.retryAfter:300;return{type:"extensionBlocked",reason:s,requestId:r,retryAfter:c,learnMoreLink:n.data?.learnMoreLink??"",serverRequestId:a}}return n.failKind==="notFound"?{type:"notFound",reason:s,requestId:r,serverRequestId:a}:n.failKind==="invalidPreviousResponseId"?{type:"invalid_stateful_marker",reason:s,requestId:r,serverRequestId:a}:{type:"failed",reason:s,requestId:r,serverRequestId:a}}processError(n,r,o,a,s){let c=n?.capiWebSocketError;if(c)return this._handleWebSocketError(c,r,o,s);let l=this._fetcherService;if(l.isAbortError(n))return{type:"canceled",reason:"network request aborted",requestId:r,serverRequestId:o};if(Jr(n))return{type:"canceled",reason:"Got a cancellation error",requestId:r,serverRequestId:o};if(n&&(n instanceof Error&&n.message==="Premature close"||typeof n=="object"&&n.code==="ERR_STREAM_PREMATURE_CLOSE"))return{type:"canceled",reason:"Stream closed prematurely",requestId:r,serverRequestId:o};this._logService.error(jr.fromUnknown(n),"Error on conversation request"),this._telemetryService.sendGHTelemetryException(n,"Error on conversation request");let u=l.getUserMessageForFetcherError(n),d=zf(n,!0),p=this.scrubErrorDetail(d,a);if(l.isInternetDisconnectedError(n))return{type:"networkError",reason:"It appears you're not connected to the internet, please check your network connection and try again.",reasonDetail:p,requestId:r,serverRequestId:o};if(l.isFetcherError(n)){let m=l.isNetworkProcessCrashedError(n);return{type:"networkError",reason:u,reasonDetail:p,requestId:r,serverRequestId:o,...m?{isNetworkProcessCrash:!0}:{}}}else return{type:"failed",reason:"Error on conversation request. Check the log for more details.",reasonDetail:p,requestId:r,serverRequestId:o}}async _handleWebSocketCAPIError(n,r){let{code:o,message:a}=n.error,s={code:o,message:a},c=o.split(":")[0];return this._logService.error(`WebSocket CAPI error: ${a} (${o})`),c==="rate_limited"||c==="user_model_rate_limited"||c==="user_global_rate_limited"||c==="integration_rate_limited"||c==="model_overloaded"||c==="agent_mode_limit_exceeded"?{type:"failed",modelRequestId:r,failKind:"rateLimited",reason:a,data:{capiError:s}}:c==="quota_exceeded"||c==="free_quota_exceeded"||c==="overage_limit_reached"||c==="billing_not_configured"?(this._authenticationService.copilotToken?.isChatQuotaExceeded||(this._authenticationService.resetCopilotToken(402),await this._authenticationService.getCopilotToken()),{type:"failed",modelRequestId:r,failKind:"quotaExceeded",reason:a,data:{capiError:s}}):o==="content_filter"?{type:"failed",modelRequestId:r,failKind:"contentFilter",reason:a}:o==="not_found"?{type:"failed",modelRequestId:r,failKind:"notFound",reason:a}:o==="request_too_large"?{type:"failed",modelRequestId:r,failKind:"unknown",reason:`Request Failed: ${o} ${a}`}:o==="service_unavailable"?{type:"failed",modelRequestId:r,failKind:"serverError",reason:`Request Failed: ${o} ${a}`}:o==="bad_request"?{type:"failed",modelRequestId:r,failKind:"unknown",reason:`Request Failed: ${o} ${a}`}:{type:"failed",modelRequestId:r,failKind:"serverError",reason:`Request Failed: ${o} ${a||"WebSocket server error"}`}}_handleWebSocketError(n,r,o,a){let{code:s,message:c}=n.error,l={code:s,message:c},u=s.split(":")[0];return u==="rate_limited"||u==="user_model_rate_limited"||u==="user_global_rate_limited"||u==="integration_rate_limited"||u==="model_overloaded"||u==="agent_mode_limit_exceeded"?{type:"rateLimited",reason:c,requestId:r,serverRequestId:o,retryAfter:void 0,rateLimitKey:"",isAuto:a,capiError:l}:u==="quota_exceeded"||u==="free_quota_exceeded"||u==="overage_limit_reached"||u==="billing_not_configured"?{type:"quotaExceeded",reason:c,requestId:r,serverRequestId:o,capiError:l,retryAfter:void 0}:s==="content_filter"?{type:"promptFiltered",reason:c,category:"prompt",requestId:r,serverRequestId:o}:s==="not_found"?{type:"notFound",reason:c,requestId:r,serverRequestId:o}:s==="bad_request"?{type:"badRequest",reason:c,requestId:r,serverRequestId:o}:{type:"failed",reason:`Request Failed: ${s} ${c||"WebSocket server error"}`,requestId:r,serverRequestId:o}}scrubErrorDetail(n,r){if(r){let o=new RegExp(ch(r),"ig");n=n.replaceAll(o,"")}return n.replaceAll(/(?<=logged in as )(?!)[^\s]+/ig,"!!")}};C$=S([b(0,nr),b(1,Ee),b(2,Fr),b(3,Z),b(4,at),b(5,tC),b(6,f3),b(7,Mr),b(8,T_),b(9,be),b(10,Fe),b(11,Tlt),b(12,j),b(13,od),b(14,On)],C$);function BDa(t,e,n,r,o){if(t.length===0)return{isValid:!1,reason:Min("No messages provided")};if(e?.max_tokens&&e?.max_tokens<1)return{isValid:!1,reason:Min("Invalid response token parameter")};let a=/^[a-zA-Z0-9_-]+$/;return e?.functions?.some(s=>!s.name.match(a))||e?.function_call?.name&&!e.function_call.name.match(a)?{isValid:!1,reason:Min("Function names must match ^[a-zA-Z0-9_-]+$")}:e?.tools&&e.tools.length>iw&&!rf(n,r)?{isValid:!1,reason:`Tool limit exceeded (${e.tools.length}/${iw}). Click "Configure Tools" in the chat input to disable ${e.tools.length-iw} tools and retry.`}:{isValid:!0,reason:""}}function Min(t){return`Prompt failed validation with the reason: ${t}. Please file an issue.`}function RDa(t,e,n){return Mc.createAndMarkAsIssued({endpoint:"completions",engineName:"chat",uiKind:In.toString(e),headerRequestId:n})}function JHr(t){switch(t){case 1:return"conversation-panel";case 4:return"conversation-inline";case 5:return"conversation-edits";case 3:return"conversation-notebook";case 2:return"conversation-terminal";case 6:return"conversation-other";case 7:return"conversation-agent";case 8:return"responses-proxy";case 9:return"messages-proxy"}}var eWr=O(require("vscode"));sr();Be();So();Be();var w$=O(Ye());var Blt=class extends w$.PromptElement{render(){return vscpp(vscppf,null,vscpp(w$.SystemMessage,null,vscpp(Qin,null),vscpp(Kr,null)),vscpp(w$.UserMessage,null,vscpp(Oin,{templates:this.props.templates,features:this.props.features,filenames:this.props.filenames})))}},Qin=class extends w$.PromptElement{render(){return vscpp(vscppf,null,"You are an AI programming assistant.",vscpp("br",null),"You are helping a software developer to configure a Dev Container by picking a configuration template and features.")}},Oin=class extends w$.PromptElement{render(){return vscpp(vscppf,null,"This is a partial list of workspace files:",vscpp("br",null),this.props.filenames.map(e=>`- ${e} `).join(""),vscpp("br",null),"Based on the workspace files, please suggest the best template from the list of templates below.",vscpp("br",null),"First identify the relevant files ignoring common files, then pick the best template and reply with the best template's id.",vscpp("br",null),"This is the list of available templates:",vscpp("br",null),this.props.templates.map(e=>`- ${e.id}: ${e.name||e.id}: ${e.description||e.name||e.id} `).join(""),vscpp("br",null),"Also based on the workspace files, please suggest all relevant features from the list of features below.",vscpp("br",null),"First identify the relevant files ignoring common files, then pick all relevant features and reply with the relevant features' ids.",vscpp("br",null),"This is the list of available features:",vscpp("br",null),this.props.features.map(e=>`- ${e.id}: ${e.name||e.id}: ${e.description||e.name||e.id} `).join(""),vscpp("br",null))}};var DDa=["alpine","debian","docker-existing-docker-compose","docker-existing-dockerfile","docker-in-docker","docker-outside-of-docker","docker-outside-of-docker-compose","ubuntu","universal"].map(t=>`ghcr.io/devcontainers/templates/${t}`),PDa=["common-utils","git"].map(t=>`ghcr.io/devcontainers/features/${t}`),ihe=class{constructor(e,n,r){this.telemetryService=e;this.endpointProvider=n;this.instantiationService=r}async generate(e,n,r){if(!n.length)return{type:"success",template:void 0,features:[]};let o=Date.now(),a=await this.endpointProvider.getChatEndpoint("copilot-base"),s=Math.floor(a.modelMaxPromptTokens*4/3),c=this.processFilenames(n,s),l=e.templates.filter(g=>!DDa.includes(g.id)),u=(e.features||[]).filter(g=>!PDa.includes(g.id)),p=await en.create(this.instantiationService,a,Blt,{filenames:c,templates:l,features:u}).render(),m=Date.now(),A=await a.makeChatRequest("devContainerConfigGenerator",p.messages,void 0,r,6),f=A.type==="success"?this.processGeneratedConfig(A.value,l,u):void 0;return this.telemetryService.sendMSFTTelemetryEvent("devcontainer.generateConfig",{model:a.model,requestId:A.requestId,responseType:A.type,templateId:f?.template,featureIds:f?.features.join(",")},{originalFilenameCount:n.length,originalFilenameLength:n.join("").length,processedFilenameCount:c.length,processedFilenameLength:c.join("").length,timeToRequest:m-o,timeToComplete:Date.now()-o}),{type:"success",template:f?.template,features:f?.features||[]}}processFilenames(e,n){let r=[...e],o=Math.floor(n*.9),a=r.join(` `).length;if(a>o)for(;a>o&&r.length>0;){let s=r.pop();a-=s.length}return r}processGeneratedConfig(e,n,r){let o=n.find(a=>new RegExp(`\\b${ch(a.id)}\\b`).test(e))?.id;return o==="ghcr.io/devcontainers/templates/javascript-node"&&(o="ghcr.io/devcontainers/templates/typescript-node"),{template:o,features:r.filter(a=>new RegExp(`\\b${ch(a.id)}\\b`).test(e)).map(a=>a.id)}}};ihe=S([b(0,Ee),b(1,tt),b(2,j)],ihe);var ohe=class{constructor(e,n){this.instantiationService=e;this.searchService=n}async generateConfiguration(e,n){if(n.isCancellationRequested)return{type:"cancelled"};let r=(await Promise.all(["*","*/*","*/*/*"].map(a=>this.searchService.findFilesWithDefaultExcludes(new eWr.RelativePattern(e.rootUri,a),1e3,n)))).flat().map(a=>Qi.relative(e.rootUri.path,a.path));return this.instantiationService.createInstance(ihe).generate(e.index,r,n)}};ohe=S([b(0,j),b(1,cg)],ohe);var ahe=class{constructor(e,n){this._modelInfo=e;this._tokenizerProvider=n;this.name=this._modelInfo.name;this.version=this._modelInfo.version;this.family=this._modelInfo.capabilities.family;this.tokenizer=this._modelInfo.capabilities.tokenizer;this.maxBatchSize=this._modelInfo.capabilities.limits?.max_inputs??256,this.modelMaxPromptTokens=8192}acquireTokenizer(){return this._tokenizerProvider.acquireTokenizer(this)}get urlOrRequestMetadata(){return{type:qn.CAPIEmbeddings}}};ahe=S([b(1,cl)],ahe);Ar();Ue();Be();var iS=class extends fe{constructor(n,r,o,a,s,c,l,u,d){super();this._isModelLab=n;this._octoKitService=r;this._requestLogger=o;this._configService=a;this._expService=s;this._envService=c;this._authService=l;this._logService=u;this._instantiationService=d;this._familyMap=new Map;this._completionsFamilyMap=new Map;this._lastFetchTime=0;this._taskSingler=new b3;this._onDidModelRefresh=new lt;this.onDidModelsRefresh=this._onDidModelRefresh.event;this._register(this._authService.onDidAuthenticationChange(()=>{this._familyMap.clear(),this._completionsFamilyMap.clear(),this._lastFetchTime=0}))}static{this.ALL_MODEL_KEY="allModels"}async getAllCompletionModels(n){await this._taskSingler.getOrCreate(iS.ALL_MODEL_KEY,()=>this._fetchModels(n));let r=[];for(let[,o]of this._completionsFamilyMap)for(let a of o)W0t(a)&&r.push(a);return r}async getAllChatModels(){await this._taskSingler.getOrCreate(iS.ALL_MODEL_KEY,this._fetchModels.bind(this));let n=[];for(let[,r]of this._familyMap)for(let o of r)Hee(o)&&n.push(o);return n}async _hydrateResolvedModel(n){if(!n)throw this._lastFetchError??new Error(await this._getErrorMessage("Unable to resolve model"));if(Hee(n)&&n.capabilities.limits){n.capabilities.limits.max_prompt_tokens=this._getMaxPromptTokensOverride(n);let r=Math.floor(Math.min(n.capabilities.limits.max_output_tokens??4096,n.capabilities.limits.max_prompt_tokens*.15)),o=n.capabilities.limits.max_context_window_tokens??r+n.capabilities.limits.max_prompt_tokens;n.capabilities.limits.max_prompt_tokens=Math.min(n.capabilities.limits.max_prompt_tokens,o-r)}return Hee(n)&&(n.model_picker_enabled=this._getShowInModelPickerOverride(n)),n.preview&&!n.name.endsWith("(Preview)")&&(n.name=`${n.name} (Preview)`),n}async getChatModelFromFamily(n){await this._taskSingler.getOrCreate(iS.ALL_MODEL_KEY,this._fetchModels.bind(this));let r;if(n=O9.resolveAlias(n),n==="copilot-base"?r=this._copilotBaseModel:r=this._familyMap.get(n)?.[0],!r||!Hee(r))throw new Error(await this._getErrorMessage(`Unable to resolve chat model with family selection: ${n}`));return r}async getChatModelFromApiModel(n){await this._taskSingler.getOrCreate(iS.ALL_MODEL_KEY,this._fetchModels.bind(this));let r;for(let o of this._familyMap.values())if(r=o.find(a=>a.id===n.id&&a.version===n.version&&a.capabilities.family===n.family),r)break;if(r){if(!Hee(r))throw new Error(await this._getErrorMessage(`Unable to resolve chat model: ${n.id},${n.name},${n.version},${n.family}`));return r}}async getEmbeddingsModel(n){await this._taskSingler.getOrCreate(iS.ALL_MODEL_KEY,this._fetchModels.bind(this));let r=this._familyMap.get(n)?.[0];if(!r||!Yvn(r))throw new Error(await this._getErrorMessage(`Unable to resolve embeddings model with family selection: ${n}`));return r}_shouldRefreshModels(){if(this._familyMap.size===0)return!0;let n=10*60*1e3,r=Date.now();return this._lastFetchTime?this._envService.isActive?r-this._lastFetchTime>n:!1:!0}async _fetchModels(n){if(!n&&!this._shouldRefreshModels())return;let r=Date.now(),o=(await this._authService.getCopilotToken()).token,a=st(),s={type:qn.Models,isModelLab:this._isModelLab};try{let c=await this._instantiationService.invokeFunction(tte,{endpointOrUrl:s,secretKey:o,intent:"model-access",requestId:a});if(this._lastFetchTime=Date.now(),this._logService.info(`Fetched model metadata in ${Date.now()-r}ms ${a}`),c.status<200||c.status>=300){if(c.status===429&&this._familyMap.size>0){this._logService.warn(`Rate limited while fetching models ${a}`);return}throw new Error(await this._getErrorMessage(`Failed to fetch models (${a}): ${await c.text()||c.statusText||`HTTP ${c.status}`}`))}this._familyMap.clear();let l=(await c.json()).data;this._requestLogger.logModelListCall(a,s,l);for(let u of l){u=await this._hydrateResolvedModel(u);let d=W0t(u);u.is_chat_fallback&&!d&&(this._copilotBaseModel=u);let p=u.capabilities.family,m=d?this._completionsFamilyMap:this._familyMap;m.has(p)||m.set(p,[]),m.get(p)?.push(u)}this._lastFetchError=void 0,this._onDidModelRefresh.fire()}catch(c){this._logService.error(c,`Failed to fetch models (${a})`),this._lastFetchError=c,this._lastFetchTime=0}}_getMaxPromptTokensOverride(n){let r=this._configService.getConfig(H.TeamInternal.DebugOverrideChatMaxTokenNum),o=-3;if(r>0)return o+=r,o;let a={};try{let s=this._expService.getTreatmentVariable("copilotchat.contextWindows");a=JSON.parse(s??"{}")}catch{}return a[n.id]?(o+=a[n.id],o):n.capabilities?.limits?.max_prompt_tokens?(o+=n.capabilities.limits.max_prompt_tokens,o):(n.capabilities.limits?.max_context_window_tokens&&(o+=n.capabilities.limits.max_context_window_tokens),o)}async _getErrorMessage(n){try{if(await this._octoKitService.getGitHubOutageStatus()!==0)return"Error fetching models! It appears that GitHub is experiencing an outage. Please check the [GitHub Status Page](https://githubstatus.com) for more info"}catch{}return n}_getShowInModelPickerOverride(n){let r={},o=this._expService.getTreatmentVariable("copilotchat.showInModelPicker");try{r=JSON.parse(o||"{}")}catch{}return r[n.id]??n.model_picker_enabled}};iS=S([b(1,Ua),b(2,Fr),b(3,be),b(4,Fe),b(5,Zt),b(6,at),b(7,Z),b(8,j)],iS);var AN=O(Ye()),iA=O(require("vscode"));Be();$s();var x$=O(Ye());Xa();var NDa=3,LDa=3,Rlt=class{constructor(e){this.languageModel=e;this.mode=x$.OutputMode.Raw}async tokenLength(e){if(typeof e=="string")return this._textTokenLength(e);switch(e.type){case x$.Raw.ChatCompletionContentPartKind.Text:return this._textTokenLength(e.text);case x$.Raw.ChatCompletionContentPartKind.Opaque:return e.tokenUsage||0;case x$.Raw.ChatCompletionContentPartKind.Image:if(e.imageUrl.url.startsWith("data:image/"))try{return J3e(e.imageUrl.url,e.imageUrl.detail)}catch{return this._textTokenLength(e.imageUrl.url)}return this._textTokenLength(e.imageUrl.url);case x$.Raw.ChatCompletionContentPartKind.CacheBreakpoint:return 0;case x$.Raw.ChatCompletionContentPartKind.Document:return dvt(e.documentData.data);default:ai(e,`unknown content part (${JSON.stringify(e)})`)}}async _textTokenLength(e){return e?this.languageModel.countTokens(e):0}async countMessageTokens(e){let n=Uin([e]);if(n.length===0)return 0;let r=await this.languageModel.countTokens(n[0]);return LDa+r}async countMessagesTokens(e){let n=NDa;for(let r of e)n+=await this.countMessageTokens(r);return n}async countToolTokens(e){let r=0;e.length&&(r+=16);let o=8;for(let a of e)r+=o,r+=await this._countObjectTokens({name:a.name,description:a.description,parameters:a.inputSchema});return Math.floor(r*1.1)}async _countObjectTokens(e){let n=0;for(let[r,o]of Object.entries(e))o&&(n+=await this._textTokenLength(r),typeof o=="string"?n+=await this._textTokenLength(o):typeof o=="object"&&(n+=await this._countObjectTokens(o)));return n}};var fN=class{constructor(e,n,r){this.languageModel=e;this._instantiationService=n;this._otelService=r;this.isDefault=!1;this.isFallback=!1;this.isPremium=!1;this.multiplier=0;this.isExtensionContributed=!0;this._maxTokens=e.maxInputTokens,this.supportedEditTools=e.capabilities.editToolsHint?.filter(Q3e)}get modelProvider(){return this.languageModel.vendor}get modelMaxPromptTokens(){return this._maxTokens}get maxOutputTokens(){return 8192}get urlOrRequestMetadata(){return""}get model(){return this.languageModel.id}get name(){return this.languageModel.name}get version(){return this.languageModel.version}get family(){return this.languageModel.family}get tokenizer(){return"o200k_base"}get showInModelPicker(){return!0}get supportsToolCalls(){return this.languageModel.capabilities?.supportsToolCalling??!1}get supportsVision(){return this.languageModel?.capabilities?.supportsImageToText??!1}get supportsPrediction(){return!1}get policy(){return"enabled"}async processResponseFromChatEndpoint(e,n,r,o,a,s,c){throw new Error("processResponseFromChatEndpoint not supported for extension contributed endpoints")}async acceptChatPolicy(){return!0}acquireTokenizer(){return new Rlt(this.languageModel)}async makeChatRequest(e,n,r,o,a,s,c,l,u){return this.makeChatRequest2({debugName:e,messages:n,finishedCb:r,location:a,source:s,requestOptions:c,userInitiatedRequest:l,telemetryProperties:u},o)}async makeChatRequest2({debugName:e,messages:n,requestOptions:r,finishedCb:o,location:a,source:s},c){let l=Uin(n),u=st(),d=this._otelService.getActiveTraceContext(),p={tools:(r?.tools??[]).map(A=>({name:A.function.name,description:A.function.description,inputSchema:A.function.parameters})),modelOptions:{_capturingTokenCorrelationId:u,_otelTraceContext:d??null}};zvn(u);let m=new Zee(o);try{let A=await this.languageModel.sendRequest(l,p,c),f="",g=0,h=u;for await(let y of A.stream)if(y instanceof iA.LanguageModelTextPart)f+=y.value,m.callback&&await m.callback(f,0,{text:y.value});else if(y instanceof iA.LanguageModelToolCallPart){if(m.callback){let v=[y].map(_=>({name:_.name??"",arguments:JSON.stringify(_.input)??"",id:_.callId}));g++,await m.callback(f,0,{text:"",copilotToolCalls:v})}}else if(y instanceof iA.LanguageModelDataPart){if(y.mimeType===rc.StatefulMarker){let v=$3e(y.data);await m.callback?.(f,0,{text:"",statefulMarker:v.marker})}else if(y.mimeType===rc.ContextManagement){let v=JSON.parse(new TextDecoder().decode(y.data));await m.callback?.(f,0,{text:"",contextManagement:v})}}else y instanceof iA.LanguageModelThinkingPart&&m.callback&&await m.callback(f,0,{text:"",thinking:{text:y.value,id:y.id||"",metadata:y.metadata}});return f||g>0?{type:"success",requestId:h,serverRequestId:h,usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0,prompt_tokens_details:{cached_tokens:0}},value:f,resolvedModel:this.languageModel.id}:{type:"unknown",reason:"No response from language model",requestId:h,serverRequestId:void 0}}catch(A){return{type:"failed",reason:Mm(A,!0),requestId:st(),serverRequestId:void 0}}finally{Q9(u)}}createRequestBody(e){throw new Error("unreachable")}cloneWithTokenOverride(e){return this._instantiationService.createInstance(fN,{...this.languageModel,maxInputTokens:e})}};fN=S([b(1,j),b(2,On)],fN);function Uin(t){let e=[];for(let n of t){let r=[];for(let o of n.content)if(o.type===AN.Raw.ChatCompletionContentPartKind.Text)r.push(new iA.LanguageModelTextPart(o.text));else if(o.type===AN.Raw.ChatCompletionContentPartKind.Image)if(o.imageUrl.url.startsWith("data:")){let a=/^data:([^;]+);base64,(.*)$/,s=o.imageUrl.url.match(a);if(s){let[,c,l]=s;r.push(new iA.LanguageModelDataPart(Buffer.from(l,"base64"),c))}}else continue;else if(o.type===AN.Raw.ChatCompletionContentPartKind.CacheBreakpoint)r.push(new iA.LanguageModelDataPart(new TextEncoder().encode("ephemeral"),rc.CacheControl));else if(o.type===AN.Raw.ChatCompletionContentPartKind.Opaque){let a=y_e(o);a&&r.push(new iA.LanguageModelDataPart(q3e(a.modelId,a.marker),rc.StatefulMarker));let s=BR(o);s&&r.push(new iA.LanguageModelThinkingPart(s.text,s.id,s.metadata))}if(n.role===AN.Raw.ChatRole.System||n.role===AN.Raw.ChatRole.User)e.push({role:n.role===AN.Raw.ChatRole.System?iA.LanguageModelChatMessageRole.System:iA.LanguageModelChatMessageRole.User,name:n.name,content:r});else if(n.role===AN.Raw.ChatRole.Assistant){if(n.toolCalls)for(let o of n.toolCalls)r.push(new iA.LanguageModelToolCallPart(o.id,o.function.name,JSON.parse(o.function.arguments)));e.push({role:iA.LanguageModelChatMessageRole.Assistant,name:n.name,content:r})}else if(n.role===AN.Raw.ChatRole.Tool){let o=new iA.LanguageModelToolResultPart2(n.toolCallId??"",r);e.push({role:iA.LanguageModelChatMessageRole.User,name:"",content:[o]})}}return e}Ar();Ue();Be();var E$=class extends fe{constructor(n,r,o,a,s){super();this._autoModeService=n;this._logService=r;this._configService=o;this._instantiationService=a;this._authService=s;this._onDidModelsRefresh=this._register(new lt);this.onDidModelsRefresh=this._onDidModelsRefresh.event;this._chatEndpoints=new Map;this._embeddingEndpoints=new Map;this._modelFetcher=this._instantiationService.createInstance(iS,!1),this._register(this._modelFetcher.onDidModelsRefresh(()=>{this._chatEndpoints.clear(),this._embeddingEndpoints.clear(),this._onDidModelsRefresh.fire()}))}getOrCreateChatEndpointInstance(n){let r=n.id,o=this._chatEndpoints.get(r);return o||(o=this._instantiationService.createInstance(q9,n),this._chatEndpoints.set(r,o)),o}async getChatEndpoint(n){if(this._logService.trace("Resolving chat model"),typeof n=="string"){let a=await this._modelFetcher.getChatModelFromFamily(n);return this.getOrCreateChatEndpointInstance(a)}let r="model"in n?n.model:n;if(!r)return this.getChatEndpoint("copilot-base");if(r.vendor!=="copilot")return this._instantiationService.createInstance(fN,r);if(r.id===sd.pseudoModelId)try{let a=await this.getAllChatEndpoints();return this._autoModeService.resolveAutoModeEndpoint(n,a)}catch{return this.getChatEndpoint("copilot-base")}let o=await this._modelFetcher.getChatModelFromApiModel(r);return o?this.getOrCreateChatEndpointInstance(o):this.getChatEndpoint("copilot-base")}async getEmbeddingsEndpoint(n){this._logService.trace("Resolving embedding model");let r=await this._modelFetcher.getEmbeddingsModel("text-embedding-3-small"),o=await this.getOrCreateEmbeddingEndpointInstance(r);return this._logService.trace("Resolved embedding model"),o}async getOrCreateEmbeddingEndpointInstance(n){let r="text-embedding-3-small",o=this._embeddingEndpoints.get(r);return o||(o=this._instantiationService.createInstance(ahe,n),this._embeddingEndpoints.set(r,o)),o}async getAllCompletionModels(n){return this._modelFetcher.getAllCompletionModels(n??!1)}async getAllChatEndpoints(){return(await this._modelFetcher.getAllChatModels()).map(r=>this.getOrCreateChatEndpointInstance(r))}};E$=S([b(0,m0),b(1,Z),b(2,be),b(3,j),b(4,at)],E$);var $in=O(Lt()),zK=require("vscode");yr();Ue();fr();Be();Be();var $K=O(Ye());sr();var Dlt=class extends $K.PromptElement{render(){return vscpp(vscppf,null,vscpp($K.SystemMessage,{priority:1e3},vscpp(qin,null),vscpp(Kr,null),vscpp(kn,null)),vscpp($K.UserMessage,null,vscpp(z,{priority:850,name:"repository-context"},"# REPOSITORY DETAILS:",vscpp("br",null),"Repository name: ",this.props.repositoryName,vscpp("br",null),"Branch name: ",this.props.branchName,vscpp("br",null)),this.props.recentCommitMessages.user.length>0&&vscpp(z,{priority:700,name:"user-commits"},"# RECENT USER COMMITS (For reference only, do not copy!):",vscpp("br",null),this.props.recentCommitMessages.user.map(e=>`- ${e} `).join("")),this.props.recentCommitMessages.repository.length>0&&vscpp(z,{priority:600,name:"recent-commits"},"# RECENT REPOSITORY COMMITS (For reference only, do not copy!):",vscpp("br",null),this.props.recentCommitMessages.repository.map(e=>`- ${e} `).join("")),vscpp(z,{priority:900,name:"changes"},this.props.changes.map(e=>vscpp(vscppf,null,vscpp(z,{name:"original-code",priority:800},"# ORIGINAL CODE:",vscpp("br",null),vscpp(Eh,{filePathMode:1,lineNumberStyle:"legacy",passPriority:!0,variableName:dr(e.uri.toString()),variableValue:e.uri})),vscpp(z,{name:"code-changes",priority:900},"# CODE CHANGES:",vscpp("br",null),vscpp(ql,{code:e.diff,languageId:"diff"}))))),vscpp(z,{priority:950,name:"reminder"},"Now generate a commit messages that describe the CODE CHANGES.",vscpp("br",null),"DO NOT COPY commits from RECENT COMMITS, but use it as reference for the commit style.",vscpp("br",null),"ONLY return a single markdown code block, NO OTHER PROSE!",vscpp("br",null),vscpp(ql,{languageId:"text",code:"commit message goes here"})),vscpp(z,{priority:950,name:"custom-instructions"},vscpp(Vi,{chatVariables:void 0,customIntroduction:"When generating the commit message, please use the following custom instructions provided by the user.",languageId:void 0,includeCodeGenerationInstructions:!1,includeCommitMessageGenerationInstructions:!0}))))}},qin=class extends $K.PromptElement{render(){return vscpp(vscppf,null,"You are an AI programming assistant, helping a software developer to come with the best git commit message for their code changes.",vscpp("br",null),"You excel in interpreting the purpose behind code changes to craft succinct, clear commit messages that adhere to the repository's guidelines.",vscpp("br",null),vscpp("br",null),"# First, think step-by-step:",vscpp("br",null),"1. Analyze the CODE CHANGES thoroughly to understand what's been modified.",vscpp("br",null),"2. Use the ORIGINAL CODE to understand the context of the CODE CHANGES. Use the line numbers to map the CODE CHANGES to the ORIGINAL CODE.",vscpp("br",null),"3. Identify the purpose of the changes to answer the *why* for the commit messages, also considering the optionally provided RECENT USER COMMITS.",vscpp("br",null),"4. Review the provided RECENT REPOSITORY COMMITS to identify established commit message conventions. Focus on the format and style, ignoring commit-specific details like refs, tags, and authors.",vscpp("br",null),"5. Generate a thoughtful and succinct commit message for the given CODE CHANGES. It MUST follow the the established writing conventions. 6. Remove any meta information like issue references, tags, or author names from the commit message. The developer will add them.",vscpp("br",null),"7. Now only show your message, wrapped with a single markdown ```text codeblock! Do not provide any explanations or details",vscpp("br",null))}};var she=class{constructor(e,n,r,o,a,s,c){this.conversationOptions=e;this.endpointProvider=n;this.instantiationService=r;this.telemetryService=o;this.notificationService=a;this.interactionService=s;this.authService=c}async generateGitCommitMessage(e,n,r,o,a,s){let c=Date.now(),l=await this.endpointProvider.getChatEndpoint("copilot-fast"),d=await en.create(this.instantiationService,l,Dlt,{repositoryName:e,branchName:n,changes:r,recentCommitMessages:o}).render(void 0,void 0),p=Math.min(this.conversationOptions.temperature*(1+a),2),m=Date.now();this.interactionService.startInteraction();let A=await l.makeChatRequest("gitCommitMessageGenerator",d.messages,void 0,s,6,void 0,{temperature:p},!0);if(this.telemetryService.sendMSFTTelemetryEvent("git.generateCommitMessage",{model:l.model,requestId:A.requestId,responseType:A.type},{attemptCount:a+1,diffFileCount:r.length,diffLength:r.map(h=>h.diff).join("").length,timeToRequest:m-c,timeToComplete:Date.now()-c}),A.type==="quotaExceeded"||A.type==="rateLimited"&&this.authService.copilotToken?.isNoAuthUser){await this.notificationService.showQuotaExceededDialog({isNoAuthUser:this.authService.copilotToken?.isNoAuthUser??!1});return}if(A.type!=="success")return;let[f,g]=this.processGeneratedCommitMessage(A.value);return f!=="oneTextCodeBlock"&&this.telemetryService.sendMSFTTelemetryEvent("git.generateCommitMessageIncorrectResponseFormat",{requestId:A.requestId,responseFormat:f}),g}processGeneratedCommitMessage(e){let r=/^```text\s*([\s\S]+?)\s*```$/m.exec(e);return r===null?["noTextCodeBlock",e]:r.length!==2?["multipleTextCodeBlocks",e]:["oneTextCodeBlock",r[1]]}};she=S([b(0,T_),b(1,tt),b(2,j),b(3,Ee),b(4,eC),b(5,tC),b(6,at)],she);var che=class{constructor(e,n,r,o){this._gitExtensionService=e;this._instantiationService=n;this._telemetryService=r;this._gitDiffService=o;this._commitMessages=new Map;this._disposables=new it;this._repositoryDisposables=new dA;let a=()=>{this._disposables.add(this._gitExtensionApi.onDidOpenRepository(this._onDidOpenRepository,this)),this._disposables.add(this._gitExtensionApi.onDidCloseRepository(this._onDidCloseRepository,this));for(let s of this._gitExtensionApi.repositories)this._onDidOpenRepository(s)};this._gitExtensionApi=this._gitExtensionService.getExtensionApi(),this._gitExtensionApi?a():this._disposables.add(this._gitExtensionService.onDidChange(s=>{s.enabled&&(this._gitExtensionApi=this._gitExtensionService.getExtensionApi(),a())}))}async generateCommitMessage(e,n=Yt.None){if(!n.isCancellationRequested)return zK.window.withProgress({location:zK.ProgressLocation.SourceControl},async()=>{try{await e.status()}catch{}let r=e.state.indexChanges.length,o=e.state.workingTreeChanges.length,a=e.state.untrackedChanges?.length??0;if(r+o+a===0){zK.window.showInformationMessage($in.t("Cannot generate a commit message because there are no changes."));return}let s=e.state.indexChanges.length>0?e.state.indexChanges:[...e.state.workingTreeChanges,...e.state.untrackedChanges??[]],c=await this._gitDiffService.getChangeDiffs(e,s);if(c.length===0){zK.window.showInformationMessage($in.t("Cannot generate a commit message because the changes were excluded from the context due to content exclusion rules."));return}let l=c.map(g=>g.diff),u=this._getAttemptCount(e,l),d=await this._getRecentCommitMessages(e),p=Ni(e.rootUri),m=e.state.HEAD?.name??"",f=await this._instantiationService.createInstance(she).generateGitCommitMessage(p,m,c,d,u,n);if(f&&e.state.HEAD&&e.state.HEAD.commit){let g=this._commitMessages.get(e.rootUri.toString())??new Map;g.set(e.state.HEAD.commit,{attemptCount:u,changes:l,message:f}),this._commitMessages.set(e.rootUri.toString(),g)}return f})}async getRepository(e){if(!this._gitExtensionApi)return null;if(e===void 0&&this._gitExtensionApi.repositories.length===1)return this._gitExtensionApi.repositories[0];if(e=e??zK.window.activeTextEditor?.document.uri,!e)return null;let n=await this._gitExtensionApi.openRepository(e);return n?(await n.status(),n):null}_getAttemptCount(e,n){let o=this._commitMessages.get(e.rootUri.toString())?.get(e.state.HEAD?.commit??"");if(!o||o.changes.length!==n.length)return 0;for(let a=0;ac.message.split(` `)[0]));let a=await e.getConfig("user.name")??await e.getGlobalConfig("user.name"),s=await e.log({maxEntries:5,author:a});r.push(...s.map(c=>c.message.split(` `)[0]))}catch{}return{repository:n,user:r}}_onDidOpenRepository(e){typeof e.onDidCommit!==void 0&&this._repositoryDisposables.set(e,e.onDidCommit(()=>this._onDidCommit(e),this))}_onDidCloseRepository(e){this._repositoryDisposables.deleteAndDispose(e),this._commitMessages.delete(e.rootUri.toString())}async _onDidCommit(e){let n=e.state.HEAD;if(!n?.commit)return;let r=this._commitMessages.get(e.rootUri.toString());if(!r)return;let o=await e.getCommit(n.commit),a=o.parents.length>0?o.parents[0]:"",s=r.get(a);if(!s)return;let c=Exe(o.message,s.message);this._telemetryService.sendMSFTTelemetryEvent("git.generateCommitMessageSurvival",void 0,{attemptCount:s.attemptCount,survivalRateFourGram:c}),r.delete(a),this._commitMessages.set(e.rootUri.toString(),r)}dispose(){this._repositoryDisposables.dispose(),this._disposables.dispose()}};che=S([b(0,is),b(1,j),b(2,Ee),b(3,MD)],che);var jin=require("vscode");En();sr();fr();var MDa=1*1024*1024,zin=1e5,lhe=class{constructor(e,n,r){this._gitExtensionService=e;this._ignoreService=n;this._logService=r}async _resolveRepository(e){if(ti(e)){let n=this._gitExtensionService.getExtensionApi();return n?.getRepository(e)??await n?.openRepository(e)??n?.repositories.find(r=>Un(r.rootUri,e))}return e}async getWorkingTreeDiffsFromRef(e,n,r,o){this._logService.debug(`[GitDiffService] Getting working tree diffs from ref ${r} for ${n.length} file(s)`);let a=await this._resolveRepository(e);if(!a)return this._logService.debug(`[GitDiffService] Repository not found for uri: ${e.toString()}`),[];let s=[];for(let c of n){if(o?.isCancellationRequested)throw new Jn;if(await this._ignoreService.isCopilotIgnored(c.uri)){this._logService.debug(`[GitDiffService] Ignoring change due to content exclusion rule based on uri: ${c.uri.toString()}`);continue}let l;c.status===7?l=await this._getUntrackedChangePatch(a,c.uri):l=await a.diffWith(r,c.uri.fsPath),s.push({originalUri:c.originalUri,renameUri:c.renameUri,status:c.status,uri:c.uri,diff:this._truncateDiff(l,c.uri)})}return this._logService.debug(`[GitDiffService] Working tree diffs from ref (after context exclusion): ${s.length} file(s)`),s}async getChangeDiffs(e,n,r){this._logService.debug(`[GitDiffService] Changes (before context exclusion): ${n.length} file(s)`);let o=await this._resolveRepository(e);if(!o)return this._logService.debug(`[GitDiffService] Repository not found for uri: ${e.toString()}`),[];let a=[];for(let s of n){if(r?.isCancellationRequested)throw new Jn;if(await this._ignoreService.isCopilotIgnored(s.uri)){this._logService.debug(`[GitDiffService] Ignoring change due to content exclusion rule based on uri: ${s.uri.toString()}`);continue}let c;switch(s.status){case 0:case 1:case 2:case 3:case 4:c=await o.diffIndexWithHEAD(s.uri.fsPath);break;case 7:c=await this._getUntrackedChangePatch(o,s.uri);break;default:c=await o.diffWithHEAD(s.uri.fsPath);break}a.push({originalUri:s.originalUri,renameUri:s.renameUri,status:s.status,uri:s.uri,diff:this._truncateDiff(c,s.uri)})}return this._logService.debug(`[GitDiffService] Changes (after context exclusion): ${a.length} file(s)`),a}async _getUntrackedChangePatch(e,n){let r=[],o=va(e.rootUri.fsPath,n.fsPath);try{let a=await jin.workspace.fs.stat(n);if(a.size>MDa)return this._logService.debug(`[GitDiffService] Skipping untracked file (too large: ${a.size} bytes): ${n.toString()}`),r.push(`diff --git a/${o} b/${o}`),r.push("new file mode 100644"),r.push("--- /dev/null",`+++ b/${o}`),r.push(`\\ File too large to diff (${Math.round(a.size/1024)} KB)`),r.join(` `)+` `}catch{}try{let s=(await jin.workspace.fs.readFile(n)).toString();if(r.push(`diff --git a/${o} b/${o}`),r.push("new file mode 100644"),r.push("--- /dev/null",`+++ b/${o}`),s.length>0){let c=s.split(` `);s.endsWith(` `)&&c.pop(),r.push(`@@ -0,0 +1,${c.length} @@`),r.push(...c.map(l=>`+${l}`)),s.endsWith(` `)||r.push("\\ No newline at end of file")}}catch(a){this._logService.warn(`[GitDiffService] Failed to generate patch file for untracked file: ${n.toString()}: ${a}`)}return r.join(` `)+` `}_truncateDiff(e,n){return e.length>zin?(this._logService.debug(`[GitDiffService] Truncating diff for ${n.toString()} (${e.length} chars -> ${zin} chars)`),e.substring(0,zin)+` ... [diff truncated] `):e}};lhe=S([b(0,is),b(1,Dt),b(2,Z)],lhe);var Gin=O(require("vscode"));var uhe=class{constructor(e,n,r){this.chatDebugFileLoggerService=e;this.promptPathRepresentationService=n;this.extensionContext=r;this._resolvers=new Map([["VSCODE_USER_PROMPTS_FOLDER",()=>{let o=this.extensionContext.globalStorageUri,a=Gin.Uri.joinPath(o,"..","..");return Gin.Uri.joinPath(a,"prompts").fsPath}],["VSCODE_TARGET_SESSION_LOG",(o,a)=>{if(a&&a.length>0)return a.map(c=>{let l=this.chatDebugFileLoggerService.getSessionDir(c);return l?this.promptPathRepresentationService.getFilePath(l):void 0}).filter(c=>c!==void 0).join(", ");if(!o)return;let s=this.chatDebugFileLoggerService.getSessionDir(o);if(s)return this.promptPathRepresentationService.getFilePath(s)}]])}async resolveVariablesInPrompt(e,n){for(let r of this._reverseSortRefsWithRange(n))e=e.slice(0,r.range[0])+`[#${r.name}](#${r.name}-context)`+e.slice(r.range[1]);return{message:e}}async resolveToolReferencesInPrompt(e,n){let r;for(let o of this._reverseSortRefsWithRange(n)){let a=o.range;if(r&&a[0]===r[0]&&a[1]===r[1])continue;let s=A0(o.name);e=e.slice(0,o.range[0])+`'${s}'`+e.slice(o.range[1]),r=a}return e}buildTemplateVariablesContext(e,n){let r=[];for(let[a,s]of this._resolvers){let c=s(e,n);c!==void 0&&r.push([a,c])}return r.length===0?"":["The following template variables are available for this session:",...r.map(([a,s])=>`- ${a}: ${s}`),"When a skill or instruction references {{VSCODE_VARIABLE_NAME}}, substitute the corresponding value above."].join(` `)}_reverseSortRefsWithRange(e){return e.filter(r=>!!r.range).sort((r,o)=>o.range[0]-r.range[0])}};uhe=S([b(0,f0),b(1,Vt),b(2,ut)],uhe);var Sm=require("vscode");var I$=O(Ye());Fd();function tWr(t,e,n){let r=xL(t.role),o=r.charAt(0).toUpperCase()+r.slice(1),a=n?`### ${o} `:`### ${o} ~~~md `;t.role===I$.Raw.ChatRole.Tool&&(a+=`\u{1F6E0}\uFE0F ${t.toolCallId}`,t.content&&(a+=` `)),Array.isArray(t.content)?a+=t.content.map(c=>{if(c.type===I$.Raw.ChatCompletionContentPartKind.Text)return c.text;if(c.type===I$.Raw.ChatCompletionContentPartKind.Image)return JSON.stringify(c);if(c.type===I$.Raw.ChatCompletionContentPartKind.Opaque){let l=BR(c);if(l){let u=[];if(l.text){let d=Array.isArray(l.text)?l.text.join(` `):l.text;u.push(`reasoning: ${d}`)}if(l.encrypted?.length&&u.push(`encrypted_content=${l.encrypted.length} chars`),u.length)return u.join(` `)}}}).join(` `):a+=t.content,t.role===I$.Raw.ChatRole.Assistant&&t.toolCalls?.length&&(t.content&&(a+=` `),a+=t.toolCalls.map(c=>{let l=c.function.arguments;try{let u=JSON.parse(c.function.arguments);l=JSON.stringify(u,void 0,2).replace(/(?c.type===I$.Raw.ChatCompletionContentPartKind.CacheBreakpoint)&&(a+=` [copilot_cache_control: { type: 'ephemeral' }]`);let s=Bv(t.content,c=>c.type===I$.Raw.ChatCompletionContentPartKind.Opaque?y_e(c):void 0);return s&&!e&&(a+=` [response_id: ${s.marker} with ${s.modelId}]`),n?a+=` `:a+=` ~~~ `,a}Xa();Ar();ah();Be();var Plt=O(require("vscode"));Ue();Be();var dhe=class extends fe{constructor(n){super();this._instantiationService=n;this._workspace=this._instantiationService.createInstance(fk);let r=this._instantiationService.createInstance(E2);this._workspaceDocumentEditHistory=this._register(new Qpe(this._workspace,r,100))}getEditsAndReset(){let n=[];return this._workspace.openDocuments.get().forEach(r=>{let o=this._workspaceDocumentEditHistory.getRecentEdits(r.id);if(o&&o.edits.replacements.length>0){let a=Plt.Uri.parse(r.id.path),s=Plt.workspace.asRelativePath(a,!1);n.push({path:s,edits:JSON.stringify(o.edits)})}}),this._workspaceDocumentEditHistory.resetEditHistory(),n}};dhe=S([b(0,j)],dhe);function FDa(t){return t.map((e,n)=>{let r="";if(e.text&&(r+=e.text),e.copilotToolCalls&&(n>0&&(r+=` `),r+=e.copilotToolCalls.map(o=>{let a=o.arguments;try{let s=JSON.parse(o.arguments);a=JSON.stringify(s,void 0,2).replace(/(?0||r.length>0)&&(r+=` `);let o=e.contextManagement?.applied_edits?.reduce((l,u)=>l+(u.cleared_input_tokens||0),0)||0,a=e.contextManagement?.applied_edits?.reduce((l,u)=>l+(u.cleared_tool_uses||0),0)||0,s=e.contextManagement?.applied_edits?.reduce((l,u)=>l+(u.cleared_thinking_turns||0),0)||0,c=[];o>0&&c.push(`${o} tokens`),a>0&&c.push(`${a} tool uses`),s>0&&c.push(`${s} thinking turns`),c.length>0&&(r+=`\u{1F9F9} Context cleared: ${c.join(", ")}`)}return r}).join("")}var Hin=class{constructor(e,n,r,o,a,s){this.id=e;this.name=n;this.tokens=r;this.maxTokens=o;this.trace=a;this.token=s;this.kind=0}toJSON(){return{id:this.id,kind:"element",name:this.name,tokens:this.tokens,maxTokens:this.maxTokens}}},Win=class{constructor(e,n,r){this.id=e;this.entry=n;this.token=r;this.kind=1}toJSON(){let e={id:this.id,kind:"request",type:this.entry.type,name:this.entry.debugName};if(this.entry.type==="MarkdownContentRequest")return{...e,startTime:new Date(this.entry.startTimeMs).toISOString(),content:z0t(this.entry)};let n;if(!this.entry.chatParams.ignoreStatefulMarker){let l=Ta.first(z3e(this.entry.chatParams.messages));l&&(n={marker:l.statefulMarker.marker,modelId:l.statefulMarker.modelId})}let r,o;this.entry.type==="ChatMLSuccess"?r={type:"success",message:this.entry.result.value}:this.entry.type==="ChatMLFailure"?this.entry.result.type==="length"?r={type:"truncated",message:this.entry.result.truncatedValue}:o={type:"failure",reason:this.entry.result.reason}:this.entry.type==="ChatMLCancelation"&&(o={type:"canceled"});let a={url:typeof this.entry.chatEndpoint.urlOrRequestMetadata=="string"?this.entry.chatEndpoint.urlOrRequestMetadata:void 0,requestType:typeof this.entry.chatEndpoint.urlOrRequestMetadata=="object"?this.entry.chatEndpoint.urlOrRequestMetadata?.type:void 0,model:this.entry.chatParams.model,maxPromptTokens:this.entry.chatEndpoint.modelMaxPromptTokens,maxResponseTokens:this.entry.chatParams.body?.max_tokens??this.entry.chatParams.body?.max_output_tokens??this.entry.chatParams.body?.max_completion_tokens,location:this.entry.chatParams.location,reasoning:this.entry.chatParams.body?.reasoning,intent:this.entry.chatParams.intent,startTime:this.entry.startTime?.toISOString(),endTime:this.entry.endTime?.toISOString(),duration:this.entry.endTime&&this.entry.startTime?this.entry.endTime.getTime()-this.entry.startTime.getTime():void 0,ourRequestId:this.entry.chatParams.ourRequestId,lastResponseId:n,requestId:this.entry.type==="ChatMLSuccess"||this.entry.type==="ChatMLFailure"?this.entry.result.requestId:void 0,serverRequestId:this.entry.type==="ChatMLSuccess"||this.entry.type==="ChatMLFailure"?this.entry.result.serverRequestId:void 0,timeToFirstToken:this.entry.type==="ChatMLSuccess"?this.entry.timeToFirstToken:void 0,usage:this.entry.type==="ChatMLSuccess"?this.entry.usage:void 0,tools:this.entry.chatParams.body?.tools},s={messages:this.entry.chatParams.messages,prediction:this.entry.chatParams.body?.prediction},c=r||o?{...r,...o}:void 0;return{...e,metadata:a,requestMessages:s,response:c}}},Nlt=class{constructor(e,n,r,o,a,s,c,l,u){this.id=e;this.name=n;this.args=r;this.response=o;this.token=a;this.time=s;this.thinking=c;this.edits=l;this.toolMetadata=u;this.kind=2}async toJSON(){let e=[];for(let r of this.response.content)r instanceof Sm.LanguageModelTextPart?e.push(r.value):r instanceof Sm.LanguageModelDataPart?e.push(gLe(r)):r instanceof Sm.LanguageModelPromptTsxPart&&e.push(await kin(r));let n=this.thinking?.text?{id:this.thinking.id,text:Array.isArray(this.thinking.text)?this.thinking.text.join(` `):this.thinking.text}:void 0;return{id:this.id,kind:"toolCall",tool:this.name,args:this.args,time:new Date(this.time).toISOString(),response:e,thinking:n,edits:this.edits?this.edits.map(r=>({path:r.path,edits:JSON.parse(r.edits)})):void 0,toolMetadata:this.toolMetadata}}},phe=class extends F3e{constructor(n,r,o,a){super();this._logService=n;this._configService=r;this._instantiationService=o;this._chatDebugFileLoggerService=a;this._didRegisterLinkProvider=!1;this._entries=[];this._entryDisposables=new Map;this._onDidChangeDocument=this._register(new lt);this._onDidChangeRequests=this._register(new lt);this.onDidChangeRequests=this._onDidChangeRequests.event;this._isFirst=!0;this._register(Sm.workspace.registerTextDocumentContentProvider(hA.chatRequestScheme,{onDidChange:this._onDidChangeDocument.event,provideTextDocumentContent:s=>{let c=hA.parseUri(s.toString());if(!c)return`Invalid URI: ${s}`;let{data:l,format:u}=c,d=l.kind==="latest"?this._entries.at(-1):this._entries.find(p=>p.id===l.id);if(!d)return"Request not found";if(u==="json")return this._renderToJson(d);if(u==="rawrequest")return this._renderRawRequestToJson(d);switch(d.kind){case 0:return"Not available";case 2:return this._renderToolCallToMarkdown(d);case 1:return this._renderRequestToMarkdown(d.id,d.entry);default:ai(d)}}}))}getRequests(){return[...this._entries]}getRequestById(n){return this._entries.find(r=>r.id===n)}logModelListCall(n,r,o){this._chatDebugFileLoggerService.setModelSnapshot(o),this.addEntry({type:"MarkdownContentRequest",debugName:"modelList",startTimeMs:Date.now(),icon:Oo.fileCode,markdownContent:this._renderModelListToMarkdown(n,r,o),isConversationRequest:!1})}logContentExclusionRules(n,r,o){this.addEntry({type:"MarkdownContentRequest",debugName:"contentExclusion",startTimeMs:Date.now(),icon:Oo.shield,markdownContent:this._renderContentExclusionToMarkdown(n,r,o),isConversationRequest:!1})}logToolCall(n,r,o,a,s){let c=this._workspaceEditRecorder?.getEditsAndReset(),l="toolMetadata"in a?a.toolMetadata:void 0;this._addEntry(new Nlt(n,r,o,a,this.currentRequest,Date.now(),s,c,l))}logServerToolCall(n,r,o,a){this._addEntry(new Nlt(n,`${r} [server]`,o,a,this.currentRequest,Date.now(),void 0,void 0,void 0))}enableWorkspaceEditTracing(){this._workspaceEditRecorder||(this._workspaceEditRecorder=this._instantiationService.createInstance(dhe))}disableWorkspaceEditTracing(){this._workspaceEditRecorder&&(this._workspaceEditRecorder.dispose(),this._workspaceEditRecorder=void 0)}addPromptTrace(n,r,o,a){let s=st().substring(0,8);this._addEntry(new Hin(s,n,o.tokenCount,r.modelMaxPromptTokens,a,this.currentRequest)).catch(c=>this._logService.error(c))}addEntry(n){let r=st().substring(0,8);this._shouldLog(n)&&this._addEntry(new Win(r,n,this.currentRequest)).then(o=>{if(o){if(this._ensureLinkProvider(),n.type==="MarkdownContentRequest"&&n.onDidChange){let s,c=n.onDidChange(()=>{this._onDidChangeDocument.fire(Sm.Uri.parse(hA.buildUri({kind:"request",id:r}))),this._entries.at(-1)?.id===r&&this._onDidChangeDocument.fire(Sm.Uri.parse(hA.buildUri({kind:"latest"}))),s!==void 0&&clearTimeout(s),s=setTimeout(()=>{this._onDidChangeRequests.fire(),s=void 0},200)});this._entryDisposables.set(r,c)}let a;if(n.type==="MarkdownContentRequest")a="markdown";else{let s=n.type==="ChatMLCancelation"?"cancelled":n.result.type,c=n.chatEndpoint.model;n.type==="ChatMLSuccess"&&n.result.resolvedModel&&n.result.resolvedModel!==n.chatEndpoint.model&&(c+=` -> ${n.result.resolvedModel}`);let l=`${n.endTime.getTime()-n.startTime.getTime()}ms`;a=`${s} | ${c} | ${l} | [${n.debugName}]`}this._logService.info(`${hA.buildUri({kind:"request",id:r})} | ${a}`)}}).catch(o=>this._logService.error(o))}_shouldLog(n){return!(n.debugName===BX&&!this._configService.getConfig(H.TeamInternal.InlineEditsLogCancelledRequests)&&n.type==="ChatMLCancelation")}async _addEntry(n){this._isFirst&&(this._isFirst=!1,this._logService.info(`Latest entry: ${hA.buildUri({kind:"latest"})}`)),this._entries.push(n);let r=this._configService.getConfig(H.Advanced.RequestLoggerMaxEntries);if(this._entries.length>r){let o=this._entries.shift();o&&(this._entryDisposables.get(o.id)?.dispose(),this._entryDisposables.delete(o.id))}return this._onDidChangeRequests.fire(),this._onDidChangeDocument.fire(Sm.Uri.parse(hA.buildUri({kind:"latest"}))),!0}_ensureLinkProvider(){if(this._didRegisterLinkProvider)return;this._didRegisterLinkProvider=!0;let n=new class{provideDocumentLinks(r,o){return hA.findAllUris(r.getText()).map(a=>new Sm.DocumentLink(new Sm.Range(r.positionAt(a.range.start),r.positionAt(a.range.endExclusive)),Sm.Uri.parse(a.uri)))}};this._register(Sm.languages.registerDocumentLinkProvider({scheme:"output"},n))}_renderMarkdownStyles(){return` `}async _renderToJson(n){try{let r=await n.toJSON();return JSON.stringify(r,null,2)}catch(r){return JSON.stringify({id:n.id,kind:"error",error:r?.toString()||"Unknown error",timestamp:new Date().toISOString()},null,2)}}async _renderToolCallToMarkdown(n){let r=[];r.push(`# Tool Call - ${n.id}`),r.push(""),r.push("## Request"),r.push("~~~");let o;if(typeof n.args=="string")try{o=JSON.stringify(JSON.parse(n.args),void 0,2).replace(/\\n/g,` `).replace(/(?!=\\)\\t/g," ")}catch{o=n.args}else o=JSON.stringify(n.args,void 0,2);r.push(`id : ${n.id}`),r.push(`tool : ${n.name}`),r.push(`args : ${o}`),r.push("~~~"),r.push("## Response");for(let a of n.response.content)r.push("~~~"),a instanceof Sm.LanguageModelTextPart?r.push(a.value):a instanceof Sm.LanguageModelDataPart?r.push(gLe(a)):a instanceof Sm.LanguageModelPromptTsxPart&&r.push(await kin(a)),r.push("~~~");return n.thinking?.text&&(r.push("## Thinking"),n.thinking.id&&r.push(`thinkingId: ${n.thinking.id}`),r.push("~~~"),r.push(Array.isArray(n.thinking.text)?n.thinking.text.join(` `):n.thinking.text),r.push("~~~")),r.join(` `)}_renderRequestToMarkdown(n,r){if(r.type==="MarkdownContentRequest")return z0t(r);let o=[];o.push("> \u{1F6A8} Note: This log may contain personal information such as the contents of your files or terminal output. Please review the contents carefully before sharing."),o.push(`# ${r.debugName} - ${n}`),o.push("");let a={};for(let u of["temperature","stream","store"])r.chatParams.body?.[u]!==void 0&&(a[u]=r.chatParams.body[u]);let s=r.endTime.getTime()-r.startTime.getTime(),c=[];if(c.push("- [Request Messages](#request-messages)"),c.push(" - [System](#system)"),c.push(" - [User](#user)"),r.chatParams.body?.prediction&&c.push("- [Prediction](#prediction)"),c.push("- [Response](#response)"),c.length){for(let u of c)o.push(u);o.push("")}o.push("## Metadata"),o.push("
"),typeof r.chatEndpoint.urlOrRequestMetadata=="string"?o.push(`url              : ${r.chatEndpoint.urlOrRequestMetadata}`):r.chatEndpoint.urlOrRequestMetadata&&o.push(`requestType      : ${r.chatEndpoint.urlOrRequestMetadata?.type}`),o.push(`model            : ${r.chatParams.model}`),o.push(`maxPromptTokens  : ${r.chatEndpoint.modelMaxPromptTokens}`),o.push(`maxResponseTokens: ${r.chatParams.body?.max_tokens??r.chatParams.body?.max_output_tokens??r.chatParams.body?.max_completion_tokens}`),o.push(`location         : ${r.chatParams.location}`),o.push(`otherOptions     : ${JSON.stringify(a)}`),r.chatParams.body?.reasoning&&o.push(`reasoning        : ${JSON.stringify(r.chatParams.body.reasoning)}`),o.push(`intent           : ${r.chatParams.intent}`),o.push(`startTime        : ${r.startTime.toJSON()}`),o.push(`endTime          : ${r.endTime.toJSON()}`),o.push(`duration         : ${s}ms`),o.push(`ourRequestId     : ${r.chatParams.ourRequestId}`);let l=r.chatParams.ignoreStatefulMarker;if(!l){let u=Ta.first(z3e(r.chatParams.messages));u&&o.push(`lastResponseId   : ${u.statefulMarker.marker} using ${u.statefulMarker.modelId}`)}if(r.type==="ChatMLSuccess"?(o.push(`requestId        : ${r.result.requestId}`),o.push(`serverRequestId  : ${r.result.serverRequestId}`),o.push(`timeToFirstToken : ${r.timeToFirstToken}ms`),o.push(`resolved model   : ${r.result.resolvedModel}`),o.push(`usage            : ${JSON.stringify(r.usage)}`)):r.type==="ChatMLFailure"&&(o.push(`requestId        : ${r.result.requestId}`),o.push(`serverRequestId  : ${r.result.serverRequestId}`)),r.chatParams.body?.tools){let u=r.chatParams.body.tools.map(p=>T3e(p)?p.function.name:p.name),d=`(${u.length})`;o.push("
",`tools ${d}${" ".repeat(9-d.length)}: ${u.join(", ")}${JSON.stringify(r.chatParams.body.tools,void 0,4)}`,"
")}if(r.customMetadata){for(let[u,d]of Object.entries(r.customMetadata))if(d!==void 0){let p=u.padEnd(16);o.push(`${p} : ${d}`)}}o.push("
"),o.push("## Request Messages");for(let u of r.chatParams.messages)o.push(tWr(u,l));if(typeof r.chatParams.body?.prediction?.content=="string"&&(o.push("## Prediction"),o.push(Zc("markdown",r.chatParams.body.prediction.content,!1))),o.push(""),r.type==="ChatMLSuccess")if(o.push(""),o.push("## Response"),r.deltas?.length)o.push(this._renderDeltasToMarkdown("assistant",r.deltas));else{let u=r.result.value,d="";Array.isArray(u)&&(u.length===1?d=u[0]:d=`${u.map(p=>`<<${p}>>`).join(", ")}`),o.push(this._renderStringMessageToMarkdown("assistant",d))}else r.type==="ChatMLFailure"?(o.push(""),o.push(''),r.result.type==="length"?(o.push("## Response (truncated)"),o.push(this._renderStringMessageToMarkdown("assistant",r.result.truncatedValue))):o.push(`## FAILED: ${r.result.reason}`)):r.type==="ChatMLCancelation"&&(o.push(""),o.push(''),o.push("## CANCELED"));return o.push(this._renderMarkdownStyles()),o.join(` `)}_renderStringMessageToMarkdown(n,r){return`### ${n.charAt(0).toUpperCase()+n.slice(1)} ${Zc("markdown",r)} `}_renderDeltasToMarkdown(n,r){let o=n.charAt(0).toUpperCase()+n.slice(1),a=FDa(r);return`### ${o} ~~~md ${a} ~~~ `}_renderModelListToMarkdown(n,r,o){let a=[];return a.push("# Model List Request"),a.push(""),a.push("## Metadata"),a.push("~~~"),a.push(`requestId : ${n}`),a.push(`requestType : ${r?.type||"unknown"}`),a.push(`isModelLab : ${r?"yes":"no"}`),r.type===qn.ListModel&&a.push(`requestedModel : ${r?.modelId||"unknown"}`),a.push(`modelsCount : ${o.length}`),a.push("~~~"),o.length>0&&(a.push("## Available Models (Raw API Response)"),a.push(""),a.push("```json"),a.push(JSON.stringify(o,null,2)),a.push("```"),a.push(""),a.push("## Summary"),a.push("~~~"),a.push(`Total models : ${o.length}`),a.push(`Chat models : ${o.filter(s=>s.capabilities.type==="chat").length}`),a.push(`Completion models: ${o.filter(s=>s.capabilities.type==="completion").length}`),a.push(`Premium models : ${o.filter(s=>s.billing?.is_premium).length}`),a.push(`Preview models : ${o.filter(s=>s.preview).length}`),a.push(`Default chat : ${o.find(s=>s.is_chat_default)?.id||"none"}`),a.push(`Fallback chat : ${o.find(s=>s.is_chat_fallback)?.id||"none"}`),a.push("~~~")),a.push(this._renderMarkdownStyles()),a.join(` `)}_renderContentExclusionToMarkdown(n,r,o){let a=[];a.push("# Content Exclusion Rules"),a.push("");let s=r.reduce((c,l)=>(c.patterns+=l.patterns.length,c.ifAnyMatch+=l.ifAnyMatch.length,c.ifNoneMatch+=l.ifNoneMatch.length,c),{patterns:0,ifAnyMatch:0,ifNoneMatch:0});a.push("## Metadata"),a.push("~~~"),a.push(`fetchTime : ${o}ms`),a.push(`repoCount : ${n.length}`),a.push(`totalGlobRules : ${s.patterns}`),a.push(`totalIfAnyMatch : ${s.ifAnyMatch}`),a.push(`totalIfNoneMatch : ${s.ifNoneMatch}`),a.push("~~~");for(let c=0;c0){a.push(`### Glob Patterns (${u.patterns.length})`),a.push("~~~");for(let d of u.patterns)a.push(d);a.push("~~~")}if(u.ifAnyMatch.length>0){a.push(`### ifAnyMatch Regex (${u.ifAnyMatch.length})`),a.push("~~~");for(let d of u.ifAnyMatch)a.push(d);a.push("~~~")}if(u.ifNoneMatch.length>0){a.push(`### ifNoneMatch Regex (${u.ifNoneMatch.length})`),a.push("~~~");for(let d of u.ifNoneMatch)a.push(d);a.push("~~~")}}return a.push(this._renderMarkdownStyles()),a.join(` `)}_renderRawRequestToJson(n){if(n.kind!==1)return"Not available";let r=n.entry;if(r.type==="MarkdownContentRequest"||!r.chatParams.body)return"Not available";try{return JSON.stringify(r.chatParams.body,null,2)}catch(o){return`Failed to render body: ${o}`}}};phe=S([b(0,Z),b(1,be),b(2,j),b(3,f0)],phe);var nWr=require("vscode");var Llt=class extends E${async getChatEndpoint(e){let n=!!this._configService.getConfig(H.Shared.DebugOverrideCAPIUrl)||!!this._configService.getConfig(H.Shared.DebugOverrideProxyUrl);if(this._authService.copilotToken?.isNoAuthUser&&!n){let r=async()=>{let s=(await nWr.lm.selectChatModels()).find(c=>c.vendor!=="copilot");if(s)return this._logService.trace("Using custom contributed chat model"),this._instantiationService.createInstance(fN,s);throw new Error("No custom contributed chat models found.")};if(typeof e=="string"||("model"in e?e.model:e).vendor==="copilot")return r()}return super.getChatEndpoint(e)}};var yLe=require("vscode");Be();dn();Be();var k$=O(Ye());var Mlt=class extends k$.PromptElement{render(){return vscpp(vscppf,null,vscpp(k$.SystemMessage,null,"You are a Visual Studio Code assistant. Your job is to assist users in using Visual Studio Code by returning settings that answer their question.",vscpp("br",null),vscpp(Xt,null,"Additional Rules",vscpp("br",null),"If a setting references another setting, you must respond with both the original and the referenced settings.",vscpp("br",null),"Return up to two settings from the list that the user is most likely to be looking for.",vscpp("br",null),"If you believe the context given to you is incorrect or not relevant you may ignore it.",vscpp("br",null),"List each setting on a new line.",vscpp("br",null),"Only list the setting names. Do not list anything else.",vscpp("br",null),"Do not indent the lines.",vscpp("br",null))),vscpp(k$.UserMessage,null,'Below is a list of information we found which might be relevant to the question. For view related commands "Toggle" often means Show or Hide. A setting may reference another setting, that will appear as \\`#setting.id#\\`, you must return the referenced setting as well. You may use this context to help you formulate your response, but are not required to.',vscpp("br",null),this.props.settings.length>0&&vscpp(vscppf,null,vscpp(z,{name:"settings"},"Here are some possible settings:",vscpp("br",null),this.props.settings.map(e=>vscpp(k$.TextChunk,null,bSe(e))))),'What are some settings for "',this.props.query,'"?'))}};var S$=class{constructor(e,n){this.instantiationService=e;this.interactionService=n}static{this.DEFAULT_TIMEOUT=1e4}async selectTopSearchResults(e,n,r,o){if(o.isCancellationRequested)return[];let s=await en.create(this.instantiationService,e,Mlt,{query:n,settings:r}).render(void 0,o);this.interactionService.startInteraction();let c=await au(e.makeChatRequest("settingsEditorSearchSuggestions",s.messages,void 0,o,6,void 0,{temperature:.1}),S$.DEFAULT_TIMEOUT);return o.isCancellationRequested||c===void 0||c.type!=="success"?[]:c.value.split(` `).map(u=>u.trim())}};S$=S([b(0,j),b(1,tC)],S$);var mhe=class{constructor(e,n,r,o,a){this.authenticationService=e;this.endpointProvider=n;this.embeddingIndex=r;this.embeddingsComputer=o;this.instantiationService=a}async provideSettingsSearchResults(e,n,r,o){if(!e||n.limit<=0)return;let a;try{a=await this.embeddingsComputer.computeEmbeddings(eo.text3small_512,[e],{},new Aa("SettingsEditorSearchServiceImpl::provideSettingsSearchResults"),o)}catch{this.reportEmptyEmbeddingsResult(e,r),n.embeddingsOnly||this.reportEmptyLLMRankedResult(e,r);return}if(o.isCancellationRequested||!a||a.values.length===0){this.reportEmptyEmbeddingsResult(e,r),n.embeddingsOnly||this.reportEmptyLLMRankedResult(e,r);return}await this.embeddingIndex.loadIndexes();let s=this.embeddingIndex.settingsIndex.nClosestValues(a.values[0],25);if(o.isCancellationRequested){this.reportEmptyEmbeddingsResult(e,r),n.embeddingsOnly||this.reportEmptyLLMRankedResult(e,r);return}if(r.report({query:e,kind:yLe.SettingsSearchResultKind.EMBEDDED,settings:s.map(m=>m.key)}),n.embeddingsOnly)return;let c=await this.authenticationService.getCopilotToken();if(s.length===0||c.isFreeUser||c.isNoAuthUser){this.reportEmptyLLMRankedResult(e,r);return}let u=await this.endpointProvider.getChatEndpoint("copilot-base"),p=await this.instantiationService.createInstance(S$).selectTopSearchResults(u,e,s,o);if(o.isCancellationRequested){this.reportEmptyLLMRankedResult(e,r);return}r.report({query:e,kind:yLe.SettingsSearchResultKind.LLM_RANKED,settings:p})}reportEmptyEmbeddingsResult(e,n){n.report({query:e,kind:yLe.SettingsSearchResultKind.EMBEDDED,settings:[]})}reportEmptyLLMRankedResult(e,n){n.report({query:e,kind:yLe.SettingsSearchResultKind.LLM_RANKED,settings:[]})}};mhe=S([b(0,at),b(1,tt),b(2,$5),b(3,Ep),b(4,j)],mhe);Ue();vi();Ot();var QDa="chat-session-resources",ODa=8*60*60*1e3,UDa=60*60*1e3;function Zin(t){return t.replace(/[^a-zA-Z0-9_.-]/g,"_")}var Ahe=class extends fe{constructor(n,r,o){super();this.extensionContext=n;this.fileSystem=r;this.logService=o;this.accessTimestamps=new Hn;this.baseStorageUri=this.extensionContext.storageUri?K.joinPath(this.extensionContext.storageUri,QDa):void 0,this.cleanupTimer=setInterval(()=>{this.currentCleanup=this.cleanupStaleResources().catch(a=>{this.logService.warn(`[ChatDiskSessionResources] Cleanup error: ${a}`)})},UDa),this.currentCleanup=this.cleanupStaleResources().catch(a=>{this.logService.warn(`[ChatDiskSessionResources] Initial cleanup error: ${a}`)})}dispose(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),super.dispose()}async ensure(n,r,o){if(!this.baseStorageUri)throw new Error("Storage URI not available");let a=Zin(n),s=Zin(r),c=K.joinPath(this.baseStorageUri,a,s);if(await this.ensureDirectoryExists(c),typeof o=="string"){let l=K.joinPath(c,"content.txt");await this.writeFileIfNotExists(l,o)}else await this.writeFileTree(c,o);return this.markAccessed(c),c}isSessionResourceUri(n){if(!this.baseStorageUri)return!1;let r=this.baseStorageUri.path.toLowerCase(),o=n.path.toLowerCase();return n.scheme===this.baseStorageUri.scheme&&o.startsWith(r)}async writeFileTree(n,r){for(let[o,a]of Object.entries(r)){let s=Zin(o),c=K.joinPath(n,s);typeof a=="string"?await this.writeFileIfNotExists(c,a):a!==void 0&&(await this.ensureDirectoryExists(c),await this.writeFileTree(c,a))}}async writeFileIfNotExists(n,r){try{await this.fileSystem.stat(n),this.markAccessed(n)}catch{await this.fileSystem.writeFile(n,new TextEncoder().encode(r)),this.markAccessed(n)}}async ensureDirectoryExists(n){try{(await this.fileSystem.stat(n)).type!==2&&(await this.fileSystem.delete(n,{recursive:!1}),await this.fileSystem.createDirectory(n))}catch{await this.fileSystem.createDirectory(n)}}markAccessed(n){this.accessTimestamps.set(n,Date.now())}async cleanupStaleResources(){if(this.baseStorageUri)try{try{if((await this.fileSystem.stat(this.baseStorageUri)).type!==2)return}catch{return}let r=Date.now()-ODa,a=(await this.fileSystem.readDirectory(this.baseStorageUri)).filter(([,s])=>s===2);for(let[s]of a){let c=K.joinPath(this.baseStorageUri,s);await this.cleanupSessionDirectory(c,r)}for(let[s]of a){let c=K.joinPath(this.baseStorageUri,s);try{(await this.fileSystem.readDirectory(c)).length===0&&(await this.fileSystem.delete(c,{recursive:!0}),this.logService.debug(`[ChatDiskSessionResources] Deleted empty session directory: ${c.fsPath}`))}catch{}}}catch(n){this.logService.warn(`[ChatDiskSessionResources] Error during cleanup: ${n}`)}}async cleanupSessionDirectory(n,r){try{let o=await this.fileSystem.readDirectory(n);for(let[a,s]of o){let c=K.joinPath(n,a),l=this.accessTimestamps.get(c);if(!(l&&l>=r)){try{let u=await this.fileSystem.stat(c);if(u.mtime>=r){this.accessTimestamps.set(c,u.mtime);continue}}catch{}try{await this.fileSystem.delete(c,{recursive:s===2}),this.accessTimestamps.delete(c),this.logService.debug(`[ChatDiskSessionResources] Deleted stale resource: ${c.fsPath}`)}catch(u){this.logService.warn(`[ChatDiskSessionResources] Failed to delete ${c.fsPath}: ${u}`)}}}}catch(o){this.logService.debug(`[ChatDiskSessionResources] Error cleaning session directory ${n.fsPath}: ${o}`)}}};Ahe=S([b(0,ut),b(1,yt),b(2,Z)],Ahe);var fhe=O(Lt()),gN=O(Ye());yr();ah();Ot();Be();var qDa=5,ghe=class{constructor(e){this.instantiationService=e;this.requests=new Map}create(e,n){let r=this.instantiationService.createInstance(vLe,n);return this.requests.set(e,r),this.requests.size>qDa&&this.requests.delete(Ta.first(this.requests.keys())),r}get(e){let n=this.requests.get(e);if(!n)throw new Error(fhe.t("No request found, or it has expired. Please re-submit your query."));return n}};ghe=S([b(0,j)],ghe);var vLe=class{constructor(e,n,r,o,a,s){this.opts=e;this.fileSystemService=n;this.endpointProvider=r;this.instantiationService=o;this.workspaceService=a;this.promptPathRepresentationService=s;this.fileDescriptions=this.getFileDescriptions();this.fileContents=new Map;this.applied=!1;this.fileDescriptions=this.getFileDescriptions()}get(e){e=e.replaceAll("\\","/").replace(/^\//,"");let n=this.getInner(e),r=this.opts.files.indexOf(e);return r!==-1&&rthis.getInner(this.opts.files[r+1])),n}async apply(e,n){if(this.applied)throw new Error(fhe.t("Edits have already been applied"));try{this.applied=!0;for(let r of this.opts.files){if(n.isCancellationRequested)return;e?.report({message:fhe.t("Generating {0}",r)});let o=await this.getInner(r);await this.fileSystemService.writeFile(K.joinPath(this.opts.baseURI,r),new TextEncoder().encode(o))}e?.report({message:fhe.t("Edits applied successfully")})}catch(r){throw this.applied=!1,r}}async getInner(e){let n=this.fileContents.get(e);if(n)return n;let r=this.generateContent(e);return this.fileContents.set(e,r),r}async generateContent(e){let n=await this.fileDescriptions,r;try{r=await this.workspaceService.openTextDocumentAndSnapshot(K.joinPath(this.opts.baseURI,e))}catch{}let o=r?.getText(),a=await this.endpointProvider.getChatEndpoint("copilot-fast"),c=await en.create(this.instantiationService,a,Yin,{file:e,document:r,allInstructions:n?.response,fileTree:this.opts.fileTree,query:this.opts.query,instructionsForThisFile:n?.perFile.find(u=>u.file===e)?.description}).render(),l=await a.makeChatRequest("workspaceMutationFileGenerator",c.messages,void 0,Yt.None,6);if(l.type!=="success")throw this.fileContents.delete(e),new Error(fhe.t("Encountered an error while generating the file: ({0}) {1}",l.type,l.reason));if(o&&r){let u=T$e(this.promptPathRepresentationService).process(l.value,o,r.uri);return uLn(o,u.edits)}return l.value}async getFileDescriptions(){let e=await this.endpointProvider.getChatEndpoint("copilot-fast"),r=await en.create(this.instantiationService,e,Vin,{fileTreeStr:this.opts.fileTree,query:this.opts.query}).render(),o=await e.makeChatRequest("workspaceMutationSummarizer",r.messages,void 0,Yt.None,6);if(o.type!=="success")return;let a=[];for(let[,s,c]of o.value.matchAll(/^`?(.*?)`?:\s*(.+)$/gm))a.push({file:s,description:c});return{perFile:a,response:o.value}}};vLe=S([b(1,yt),b(2,tt),b(3,j),b(4,Te),b(5,Vt)],vLe);var Vin=class extends gN.PromptElement{render(){return vscpp(vscppf,null,vscpp(gN.SystemMessage,{priority:1e3},"You are a VS Code assistant. Your job is to generate the project specification when given the user description and file tree structure of the project that a user wants to create. ",vscpp("br",null),vscpp(lo,null),vscpp(Kr,null),vscpp(kn,null),vscpp("br",null),"Additional Rules",vscpp("br",null),"You will be given a user query and a tree of files they wish to edit or create in order to accomplish a task. Think step by step and respond with a text description that lists and summarizes what needs to be done in each file to accomplish the user's task.",vscpp("br",null),"Below you will find a set of examples of what you should respond with. Please follow these examples as closely as possible.",vscpp("br",null),vscpp("br",null),"## Valid question",vscpp("br",null),"User: I want to: add the sequelize ORM to my project and add a user model",vscpp("br",null),"This is the project tree structure:",vscpp("br",null),"```markdown ",vscpp("br",null),"my-express-app",vscpp("br",null),"\u251C\u2500\u2500 src",vscpp("br",null),"\u2502 \u2514\u2500\u2500 models",vscpp("br",null),"\u2502 \u2514\u2500\u2500 user.ts",vscpp("br",null),"\u251C\u2500\u2500 package.json",vscpp("br",null),"\u2514\u2500\u2500 README.md",vscpp("br",null),"```",vscpp("br",null),"## Valid response",vscpp("br",null),"`src/models/user.ts`: This file defines and exports the User model for use in the application.",vscpp("br",null),"`src/routes/index.ts`: This file exports a function `setRoutes` which sets up the routes for the application. It uses the `IndexController` to handle the root route.",vscpp("br",null),"`package.json`: We need to edit the package.json to ensure Sequelize is defined as a dependency",vscpp("br",null),"`README.md`: We should add documentation to the readme file to make consumers aware of the new setup steps.",vscpp("br",null)),vscpp(gN.UserMessage,{priority:900},"I want to: ",this.props.query,vscpp("br",null),"This is the project tree structure:",vscpp("br",null),"```markdown' ",vscpp("br",null),this.props.fileTreeStr,vscpp("br",null),"```",vscpp("br",null)))}},Yin=class extends gN.PromptElement{render(){let{file:e,query:n,fileTree:r,allInstructions:o,instructionsForThisFile:a,document:s}=this.props;return vscpp(vscppf,null,vscpp(gN.SystemMessage,{priority:1e3},"You are a VS Code assistant. Your job is to generate the project specification when given the user description and file tree structure of the project that a user wants to create. ",vscpp("br",null),vscpp(lo,null),vscpp(Kr,null),vscpp(kn,null),vscpp("br",null),"Additional Rules",vscpp("br",null),"The user will describe the task they're trying to accomplish, and ask you to generate or edit a file in persuit of that task.",vscpp("br",null),s?vscpp(xD,null):vscpp(vscppf,null,"Print the entire contents of the file you propose.",vscpp("br",null),"If asked to generate a test file, create a file with a self-contained 'hello world' test case without dependency on any other files or imports aside from the testing framwork.",vscpp("br",null)),"Do not include comments in json files.",vscpp("br",null),"Do not use code blocks or backticks.",vscpp("br",null),"Do not include any other explanation.",vscpp("br",null),vscpp("br",null),s?vscpp(vI,{changes:[{uri:K.file("/package.json"),find:['"dependencies": {',' "typescript": "^4.5.4",'],replace:['"dependencies": {',' "mocha": "latest"',' "typescript": "^4.5.4",']}]}):vscpp(vscppf,null,"# Example",vscpp("br",null),"## Question:",vscpp("br",null),"I want to: set up mocha in my workspace",vscpp("br",null),"Please print the contents of the file `src/index.test.ts`",vscpp("br",null),"## Response:",` const assert = require('assert'); test('hello world!', () => { assert.strictEqual(1 + 1, 2); }); `)),vscpp(gN.UserMessage,{priority:900},"I want to: ",n,vscpp("br",null),"Please print the contents of the file `",e,"`",vscpp("br",null),a?vscpp(vscppf,null,"Description of this file: ",a):vscpp(vscppf,null,"Here are the files in my workspace, including this one: ",o,"`"),vscpp("br",null),"This is the project tree structure:",vscpp("br",null),"```filetree",vscpp("br",null),r,vscpp("br",null),"```",vscpp("br",null),vscpp("br",null),s&&vscpp(_Le,{flexGrow:1,document:s})))}},_Le=class extends gN.PromptElement{constructor(n,r){super(n);this.parserService=r}async render(n,r){let{document:o}=this.props,a=await Qj(this.parserService,o,void 0,new gt(0,0,0,0),r.tokenBudget*(2/3));return vscpp(hn,{uri:o.uri,languageId:o.languageId,code:a.text})}};_Le=S([b(1,Ai)],_Le);var $Da=new Set(["run_in_terminal","get_terminal_output","runSubagent","runTests","vscode_askQuestions","tool_search","task_complete"]),Flt=class{isNonDeferredTool(e){return $n.nonDeferredToolNames.has(e)||$Da.has(e)}};var YQ=O(require("vscode"));$s();wr();ah();iu();Ue();Be();var hhe=class extends xte{constructor(n,r,o){super(r);this._instantiationService=n;this._otelService=o;this._connectedModelSpecificTools=!1;this._contributedToolCache={input:[],output:[]};this._copilotTools=new Wr(()=>new Map($n.getTools().map(a=>[a.toolName,n.createInstance(a)]))),this._toolExtensions=new Wr(()=>new Map($n.getToolExtensions().map(a=>[a.toolName,n.createInstance(a)])))}get modelSpecificTools(){return this.getModelSpecificTools(),super.modelSpecificTools}get tools(){let n=YQ.lm.tools;if(ru(this._contributedToolCache.input,n))return this._contributedToolCache.output;let r=[...n],a=[...r].sort((s,c)=>{let l=s.name.startsWith("vscode_")||s.name.startsWith("copilot_"),u=c.name.startsWith("vscode_")||c.name.startsWith("copilot_");return l&&u||!l&&!u?s.name.localeCompare(c.name):l?-1:1}).map(s=>this.getCopilotTool(A0(s.name))?.alternativeDefinition?.(s)??s).map(s=>({...s,name:A0(s.name),description:yvt(s.description),inputSchema:s.inputSchema&&D_n(s.inputSchema)}));return this._contributedToolCache.input=r,this._contributedToolCache.output=a,a}get copilotTools(){return this._copilotTools.value}getModelSpecificTools(){return this._connectedModelSpecificTools||(this._register(A0e(n=>$n.modelSpecificTools.read(n),({addedValues:n,removedValues:r})=>{for(let{definition:o}of r){let a=this._modelSpecificTools.get(o.name);EO(a)&&a.dispose(),this._modelSpecificTools.delete(o.name)}for(let{definition:o,tool:a}of n){let s=this._instantiationService.createInstance(a);this._modelSpecificTools.set(o.name,{definition:o,tool:s})}},n=>n.definition)),this._connectedModelSpecificTools=!0),this._modelSpecificTools}invokeTool(n,r,o){this._onWillInvokeTool.fire({toolName:n});let a=String(n).includes("mcp_"),s=this.tools.find(f=>f.name===String(n)),c=DR()?.chatSessionId,l=r.parentTraceContext,u=this._otelService.startSpan(`execute_tool ${n}`,{kind:0,parentTraceContext:l,attributes:{[$e.OPERATION_NAME]:Xi.EXECUTE_TOOL,[$e.TOOL_NAME]:String(n),[$e.TOOL_TYPE]:a?P3e.EXTENSION:P3e.FUNCTION,[$e.TOOL_CALL_ID]:r.chatStreamToolCallId??"",...s?.description?{[$e.TOOL_DESCRIPTION]:s.description}:{},...c?{[Vn.CHAT_SESSION_ID]:c}:{}}});if(r.input!==void 0)try{u.setAttribute($e.TOOL_CALL_ARGUMENTS,ns(JSON.stringify(r.input)))}catch{}let d=r.chatStreamToolCallId,p=r.chatRequestId,m=r.subAgentInvocationId;if(String(n)==="runSubagent"){let f=u.getSpanContext();f&&(d&&this._otelService.storeTraceContext(`subagent:toolcall:${d}`,f),m&&this._otelService.storeTraceContext(`subagent:invocation:${m}`,f),p&&this._otelService.storeTraceContext(`subagent:request:${p}`,f))}let A=Date.now();return YQ.lm.invokeTool(zz(n),r,o).then(f=>{u.setStatus(1);try{let h=[];for(let y of f.content)y instanceof YQ.LanguageModelTextPart?h.push(y.value):y instanceof YQ.LanguageModelPromptTsxPart?h.push(JSON.stringify(y.value)):y instanceof YQ.LanguageModelDataPart&&h.push(`[${y.mimeType}: ${y.data.byteLength} bytes]`);h.length>0&&u.setAttribute($e.TOOL_CALL_RESULT,ns(h.join("")))}catch{}u.end();let g=Date.now()-A;return ci.recordToolCallCount(this._otelService,String(n),!0),ci.recordToolCallDuration(this._otelService,String(n),g),L3e(this._otelService,String(n),g,!0),f},f=>{u.setStatus(2,f instanceof Error?f.message:String(f)),u.setAttribute(Lm.ERROR_TYPE,f instanceof Error?f.constructor.name:"Error"),u.setAttribute($e.TOOL_CALL_RESULT,ns(`ERROR: ${f instanceof Error?f.message:String(f)}`)),u.recordException(f),u.end();let g=Date.now()-A;throw ci.recordToolCallCount(this._otelService,String(n),!1),ci.recordToolCallDuration(this._otelService,String(n),g),L3e(this._otelService,String(n),g,!1,f instanceof Error?f.constructor.name:"Error"),f})}invokeToolWithEndpoint(n,r,o,a){if(o){let s=A0(n);for(let[c]of this.getToolOverridesForEndpoint(o))if(c===s)return this.invokeTool(s,r,a)}return this.invokeTool(n,r,a)}getCopilotTool(n){return this._copilotTools.value.get(n)||this.getModelSpecificTools().get(n)?.tool}getTool(n){return this.tools.find(r=>r.name===n)}getToolByToolReferenceName(n){throw new Error("This method for tests only")}getEnabledTools(n,r,o){let a=this.tools,s=new Map(a.map(d=>[d.name,d])),c=new Map(Ta.map(n.tools,([d,p])=>[typeof d=="string"?d:d.name,p])),l=new Map(this.getToolOverridesForEndpoint(r,a)),u=this.getModelSpecificTools();return a.filter(d=>{if(u.get(d.name)?.tool.overridesTool)return!1;let p=c.get(zz(d.name));if(p===!1)return!1;let m=o?.(d);if(m!==void 0)return m;for(let A of n.toolReferences)if(s.get(A.name)?.tags.includes(`enable_other_tool_${d.name}`))return!0;return!!(p===void 0&&d.tags.includes("extension_installed_by_tool")||p===!0)}).map(d=>{let p=A0(d.name),m=l.get(p),A=d;m?.tool&&(A={...m.info,name:A.name});let f=m?.tool||this.getCopilotTool(p);f?.alternativeDefinition&&(A=f.alternativeDefinition(A,r));let g=this._toolExtensions.value.get(p);return g?.alternativeDefinition&&(A=g.alternativeDefinition(A,r)),A})}*getToolOverridesForEndpoint(n,r=this.tools){for(let o of r){let a=this.getModelSpecificTools().get(o.name);a&&j_n(a.definition,n)&&a.tool.overridesTool&&(yield[a.tool.overridesTool,{info:o,tool:a.tool}])}}};hhe=S([b(0,j),b(1,Z),b(2,On)],hhe);var Ult=require("vscode");Ar();Ue();var Qlt=class extends fe{constructor(){super();this._serviceBrand=void 0;this._onStructuredData=this._register(new lt);this.onStructuredData=this._onStructuredData.event;this._onHandleChangeReason=this._register(new lt);this.onHandleChangeReason=this._onHandleChangeReason.event;this._register(new Olt("editor.inlineSuggest.logChangeReason.commandId",n=>this._handleStructuredLogData(n))),this._register(new Olt("editor.inlineSuggest.logFetch.commandId",n=>this._handleStructuredLogData(n)))}_handleStructuredLogData(n){this._onStructuredData.fire(n);let r=n;r.sourceId==="TextModel.setChangeReason"&&this._onHandleChangeReason.fire({documentUri:r.modelUri.toString(),documentVersion:r.modelVersion,reason:r.source,metadata:r})}},Olt=class extends fe{constructor(e,n){super();let r=Ult.env.getDataChannel("structuredLogger:"+e);this._register(r.onDidReceiveData(a=>{n(a.data)}));let o="structuredLogger.enabled:"+e;rWr(o,!0),this._register({dispose:()=>{rWr(o,void 0)}})}};function rWr(t,e){Ult.commands.executeCommand("setContext",t,e)}var Aut=require("vscode");var hN=O(Lt());wr();Fd();Ar();Ue();Ot();var bhe=class extends fe{constructor(n,r,o,a,s){super();this._authenticationService=n;this.gitService=r;this.logService=o;this.ghRepoService=a;this.configurationService=s;this.hasRequestedPermissiveSessionUpgrade=!1;this._permissionRequest=hN.t("Permission Request");this._permissionRequestGrant=hN.t("Grant");this._permissionRequestNotNow=hN.t("Not Now");this._permissionRequestNeverAskAgain=hN.t("Never Ask Again");this._onDidGrantAuthUpgrade=this._register(new lt);this.onDidGrantAuthUpgrade=this._onDidGrantAuthUpgrade.event;this._register(this._authenticationService.onDidAuthenticationChange(()=>{this._authenticationService.anyGitHubSession&&(this.hasRequestedPermissiveSessionUpgrade=!1)}))}async shouldRequestPermissiveSessionUpgrade(){let n="true";try{return this.hasRequestedPermissiveSessionUpgrade?(n="false - already requested",!1):this._authenticationService.isMinimalMode?(n="false - minimal mode",!1):await this._authenticationService.getGitHubSession("permissive",{silent:!0})?(n="false - already have permissive session",!1):await this._authenticationService.getGitHubSession("any",{silent:!0})?await this._canAccessAllRepositories()?(n="false - access to all repositories",!1):!0:(n="false - not signed in",!1)}finally{this.logService.trace(`Should request permissive session upgrade: ${n}`)}}async showPermissiveSessionModal(n=!1){if(this.hasRequestedPermissiveSessionUpgrade&&!n)return this.logService.trace("Already requested permissive session upgrade"),!1;this.logService.trace("Requesting permissive session upgrade"),this.hasRequestedPermissiveSessionUpgrade=!0;try{return await this._authenticationService.getGitHubSession("permissive",{forceNewSession:{detail:hN.t("To get more relevant Chat results, we need permission to read the contents of your repository on GitHub."),learnMore:K.parse("https://aka.ms/copilotRepoScope")},clearSessionPreference:!0}),!0}catch{return await this._authenticationService.getGitHubSession("permissive",{}),!1}}showPermissiveSessionUpgradeInChat(n,r,o,a){this.logService.trace("Requesting permissive session upgrade in chat"),this.hasRequestedPermissiveSessionUpgrade=!0,n.confirmation(this._permissionRequest,o||hN.t("To get more relevant Chat results, we need permission to read the contents of your repository on GitHub."),{authPermissionPrompted:!0,...r,context:a},[this._permissionRequestGrant,this._permissionRequestNotNow,this._permissionRequestNeverAskAgain])}async handleConfirmationRequest(n,r,o){let a=r.acceptedConfirmationData?.find(c=>c?.authPermissionPrompted);if(!a)return r;switch(this.logService.trace("Handling confirmation request"),r.prompt){case`${this._permissionRequestGrant}: "${this._permissionRequest}"`:this.logService.trace("User granted permission");try{await this._authenticationService.getGitHubSession("permissive",{createIfNone:{detail:hN.t("Sign in to GitHub with additional permissions for enhanced features.")}}),this._onDidGrantAuthUpgrade.fire()}catch{await this._authenticationService.getGitHubSession("permissive",{})}break;case`${this._permissionRequestNotNow}: "${this._permissionRequest}"`:this.logService.trace("User declined permission"),n.markdown(hN.t("Ok. I won't bother you again for now. If you change your mind, you can react to the authentication request in the Account menu.")+` `),await this._authenticationService.getGitHubSession("permissive",{});break;case`${this._permissionRequestNeverAskAgain}: "${this._permissionRequest}"`:this.logService.trace("User chose never ask again for permission"),await this.configurationService.setConfig(H.Shared.AuthPermissions,"minimal"),this.hasRequestedPermissiveSessionUpgrade=!1,n.markdown(hN.t("Ok. I saved this decision to the `{0}` setting",H.Shared.AuthPermissions.fullyQualifiedId)+` `);break}let s=rh(o,c=>c instanceof YX);return s?{prompt:s.prompt,command:s.command,references:s.references,toolReferences:s.toolReferences,toolInvocationToken:r.toolInvocationToken,attempt:r.attempt,enableCommandDetection:r.enableCommandDetection,isParticipantDetected:a.isParticipantDetected,location:r.location,location2:r.location2,model:r.model,tools:new Map,id:r.id,sessionId:"1",sessionResource:r.sessionResource,hasHooksEnabled:r.hasHooksEnabled}:{prompt:a.prompt,command:a.command,references:[],toolReferences:[],toolInvocationToken:r.toolInvocationToken,attempt:r.attempt,enableCommandDetection:r.enableCommandDetection,isParticipantDetected:a.isParticipantDetected,location:r.location,location2:r.location2,model:r.model,tools:new Map,id:r.id,sessionId:"1",sessionResource:r.sessionResource,hasHooksEnabled:r.hasHooksEnabled}}async _canAccessAllRepositories(){let n=this.gitService?.repositories;if(!n)return this.logService.debug("No git repositories found"),!1;let r=er(n.map(a=>gR(a)?.id));return(await Promise.all(r.map(a=>this.ghRepoService.isAvailable(a.org,a.repo)))).every(a=>a)}};bhe=S([b(0,at),b(1,ei),b(2,Z),b(3,yE),b(4,be)],bhe);Ue();var yhe=class extends fe{constructor(n){super();this._authService=n;this._register(this._authService.onDidAuthenticationChange(()=>{this.processUserInfoQuotaSnapshot(this._authService.copilotToken?.quotaInfo)}))}get quotaExhausted(){return this._quotaInfo?this._quotaInfo.used>=this._quotaInfo.quota&&!this._quotaInfo.overageEnabled&&!this._quotaInfo.unlimited:!1}get overagesEnabled(){return this._quotaInfo?this._quotaInfo.overageEnabled:!1}clearQuota(){this._quotaInfo=void 0}processQuotaHeaders(n){let r=this._authService.copilotToken?.isFreeUser?n.get("x-quota-snapshot-chat"):n.get("x-quota-snapshot-premium_models")||n.get("x-quota-snapshot-premium_interactions");if(r)try{let o=new URLSearchParams(r),a=parseInt(o.get("ent")||"0",10),s=parseFloat(o.get("ov")||"0.0"),c=o.get("ovPerm")==="true",l=parseFloat(o.get("rem")||"0.0"),u=o.get("rst"),d;u?d=new Date(u):(d=new Date,d.setMonth(d.getMonth()+1));let p=Math.max(0,a*(1-l/100));this._quotaInfo={quota:a,unlimited:a===-1,used:p,overageUsed:s,overageEnabled:c,resetDate:d}}catch(o){console.error("Failed to parse quota header",o)}}processQuotaSnapshots(n){let r=this._authService.copilotToken?.isFreeUser?n.chat:n.premium_models??n.premium_interactions;if(r)try{let o=parseInt(r.entitlement,10),a=r.reset_date?new Date(r.reset_date):(()=>{let c=new Date;return c.setMonth(c.getMonth()+1),c})(),s=Math.max(0,o*(1-r.percent_remaining/100));this._quotaInfo={quota:o,unlimited:o===-1,used:s,overageUsed:r.overage_count,overageEnabled:r.overage_permitted,resetDate:a}}catch(o){console.error("Failed to process quota snapshots",o)}}processUserInfoQuotaSnapshot(n){!n||!n.quota_snapshots||!n.quota_reset_date||(this._quotaInfo={unlimited:n.quota_snapshots.premium_interactions.unlimited,overageEnabled:n.quota_snapshots.premium_interactions.overage_permitted,overageUsed:n.quota_snapshots.premium_interactions.overage_count,quota:n.quota_snapshots.premium_interactions.entitlement,resetDate:new Date(n.quota_reset_date),used:Math.max(0,n.quota_snapshots.premium_interactions.entitlement*(1-n.quota_snapshots.premium_interactions.percent_remaining/100))})}};yhe=S([b(0,at)],yhe);var iWr=O(require("vscode")),qlt=class{get onDidDisposeChatSession(){return iWr.chat.onDidDisposeChatSession}};var oWr=O(require("vscode"));Ue();var vhe=class extends fe{constructor(n){super();this.telemetryService=n}async executeCommand(n,...r){try{let o=oWr.commands.executeCommand(n,...r);return this.telemetryService.sendMSFTTelemetryEvent("automaticCommandExecutedSucceeded",{command:n,args:r?.join(",")}),o}catch(o){this.telemetryService.sendMSFTTelemetryEvent("automaticCommandExecutedFailed",{command:n,args:r?.join(","),e:o})}}};vhe=S([b(0,Ee)],vhe);var Zg=O(require("vscode"));wr();function aWr(t){return typeof t=="string"?t:JSON.stringify(t)}var _he=class extends EQe{constructor(e){super(e),this.config=Zg.workspace.getConfiguration(Sb),Zg.workspace.onDidChangeConfiguration(n=>{n.affectsConfiguration(Sb)&&(this.config=Zg.workspace.getConfiguration(Sb)),this._onDidChangeConfiguration.fire({affectsConfiguration:(r,o)=>{if(n.affectsConfiguration(r,o))return!0;let a=qO.configs.get(r)?.fullyQualifiedOldId;return!!(a&&n.affectsConfiguration(a,o))}})})}getConfig(e,n){if(e.options?.valueIgnoredForExternals&&!this._isInternal)return this.getDefaultValue(e);let r=n===void 0?this.config:Zg.workspace.getConfiguration(Sb,n),o;if(e.advancedSubKey){let s=r.get(e.id);s!==void 0?o=s:o=r.get("advanced")?.[e.advancedSubKey]}else e.oldId&&e.oldId.startsWith("chat.advanced")?this.isConfigured(e,n)&&(o=r.get(e.id)??(e.oldId?r.get(e.oldId):void 0)):o=r.get(e.id)??(e.oldId?r.get(e.oldId):void 0);if(o===void 0)return this.getDefaultValue(e);if(!e.validator)return o;let a=e.validator.validate(o);return a.error?(console.error(`Could not read "${e.fullyQualifiedId}": ${a.error.message}`),this.getDefaultValue(e)):a.content}inspectConfig(e,n){if(e.options?.valueIgnoredForExternals&&!this._isInternal)return{defaultValue:this.getDefaultValue(e)};let r=n===void 0?this.config:Zg.workspace.getConfiguration(Sb,n),o=r.inspect(e.id);if(!e.oldId)return o;let a=r.inspect(e.oldId),s=IFe([...o?.languageIds??[],...a?.languageIds??[]]);return{defaultValue:o?.defaultValue??a?.defaultValue,globalValue:o?.globalValue??a?.globalValue,workspaceValue:o?.workspaceValue??a?.workspaceValue,workspaceFolderValue:o?.workspaceFolderValue??a?.workspaceFolderValue,defaultLanguageValue:o?.defaultLanguageValue??a?.defaultLanguageValue,globalLanguageValue:o?.globalLanguageValue??a?.globalLanguageValue,workspaceLanguageValue:o?.workspaceLanguageValue??a?.workspaceLanguageValue,workspaceFolderLanguageValue:o?.workspaceFolderLanguageValue??a?.workspaceFolderLanguageValue,languageIds:s.length?s:void 0}}getNonExtensionConfig(e){return Zg.workspace.getConfiguration().get(e)}_getTargetFromInspect(e){let n;return e?e.workspaceFolderValue!==void 0?n=Zg.ConfigurationTarget.WorkspaceFolder:e.workspaceValue!==void 0?n=Zg.ConfigurationTarget.Workspace:n=Zg.ConfigurationTarget.Global:n=Zg.ConfigurationTarget.Global,n}async setConfig(e,n){if(e.advancedSubKey){let o=this.config.inspect(e.id);if(o?.globalValue!==void 0||o?.workspaceFolderValue!==void 0||o?.workspaceValue!==void 0)throw new Error(`Cannot write to "${e.fullyQualifiedId}". Please update the setting manually to ${JSON.stringify(n)}.`);let s=this.config.get("advanced");return s?s[e.advancedSubKey]=n:s={[e.advancedSubKey]:n},this.config.update("advanced",s,this._getTargetFromInspect(this.config.inspect("advanced")))}let r=this.config.inspect(e.id);if(n===void 0){if(!r)return this.config.update(e.id,n,Zg.ConfigurationTarget.Global);r.workspaceFolderValue!==void 0&&await this.config.update(e.id,n,Zg.ConfigurationTarget.WorkspaceFolder),r.workspaceValue!==void 0&&await this.config.update(e.id,n,Zg.ConfigurationTarget.Workspace),r.globalValue!==void 0&&await this.config.update(e.id,n,Zg.ConfigurationTarget.Global);return}return this.config.update(e.id,n,this._getTargetFromInspect(r))}getExperimentBasedConfig(e,n,r){let o=this._getUserConfiguredValueForExperimentBasedConfig(e,r);if(o!==void 0)return o;if(e.experimentName){let c=n.getTreatmentVariable(e.experimentName);if(c!==void 0)return c}let a=n.getTreatmentVariable(`copilotchat.config.${e.id}`);if(a!==void 0)return a;let s=n.getTreatmentVariable(`config.${e.fullyQualifiedId}`);if(s!==void 0)return s;if(e.fullyQualifiedOldId){let c=n.getTreatmentVariable(`copilotchat.config.${e.oldId}`);if(c!==void 0)return c;let l=n.getTreatmentVariable(`config.${e.fullyQualifiedOldId}`);if(l!==void 0)return l}return this.getDefaultValue(e)}_getUserConfiguredValueForExperimentBasedConfig(e,n){if(e.options?.valueIgnoredForExternals&&!this._isInternal)return;let r=n===void 0?this.config:Zg.workspace.getConfiguration(Sb,n);if(this.isConfigured(e,n))return r.get(e.id)??(e.oldId?r.get(e.oldId):void 0)}dumpConfig(){let e={};try{let r=rd.contributes.configuration.map(a=>a.properties),o=Object.assign({},...r);for(let a in o){let c=a.replace(`${Sb}.`,"").split(".").reduce((l,u)=>l[u],this.config);typeof c=="object"&&c!==null?Object.keys(c).filter(l=>l!=="secret_key").forEach(l=>e[`${a}.${l}`]=aWr(c[l])):e[a]=aWr(c)}}catch(n){console.error(`Failed to retrieve configuration properties ${n}`)}return e}updateExperimentBasedConfiguration(e){e.length!==0&&(this.config=Zg.workspace.getConfiguration(Sb),this._onDidChangeConfiguration.fire({affectsConfiguration:(n,r)=>{if(e.some(a=>a.startsWith(`config.${n}`)))return!0;let o=qO.configs.get(n)?.fullyQualifiedOldId;return!!(o&&e.some(a=>a.startsWith(`config.${o}`)))}}))}getDefaultValueForConfig(e){return(this.config.inspect(e.id)??(e.oldId?this.config.inspect(e.oldId):void 0))?.defaultValue}};_he=S([b(0,sl)],_he);Ue();var Xin=require("vscode"),sWr=[];function cWr(){return sWr.join(` `)}function zDa(t,e){t.push(jDa(e)),t.length>40&&t.shift()}var Kin=class{constructor(e){this.session=e}onWillStartSession(){}onWillReceiveMessage(e){}onDidSendMessage(e){if(Xin.debug.activeDebugSession!==this.session)return;let n=this.extractOutput(e);n&&zDa(sWr,n)}extractOutput(e){if(e.event==="output"&&(e.body.category==="stdout"||e.body.category==="stderr"))return e.body.output}onWillStopSession(){}onError(e){}onExit(e,n){}};function jDa(t){let e=/(:?\x1b\[|\x9B)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/g;return t&&(t=t.replace(e,"")),t}function lWr(){return[Xin.debug.registerDebugAdapterTrackerFactory("*",new Jin)]}var Jin=class{createDebugAdapterTracker(e){return new Kin(e)}};var $lt=class extends fe{constructor(){super();for(let e of lWr())this._register(e)}get consoleOutput(){return cWr()}};var eon=O(require("vscode")),zlt=class{showQuickPick(e,n,r){return eon.window.showQuickPick(e,n,r)}showOpenDialog(e){return eon.window.showOpenDialog(e).then(n=>n)}};dn();Be();M9();$s();var Che=class{constructor(e,n,r,o,a,s,c){this._authService=e;this._envService=n;this._logService=r;this._telemetryService=o;this._endpointProvider=a;this._instantiationService=s;this._otelService=c;this.batchSize=100}async computeEmbeddings(e,n,r,o,a){let s=this._otelService.startSpan(`embeddings ${e.id}`,{kind:2,attributes:{[$e.OPERATION_NAME]:Xi.EMBEDDINGS,[$e.PROVIDER_NAME]:EL.OPENAI,[$e.REQUEST_MODEL]:e.id,"gen_ai.embeddings.input_count":n.length}});try{return await Xd(this._logService,"RemoteEmbeddingsComputer::computeEmbeddings",async()=>{if((await this._authService.getCopilotToken()).isNoAuthUser)return await this.computeCAPIEmbeddings(n,r,a)??{type:e,values:[]};let l=(await this._authService.getGitHubSession("any",{silent:!0}))?.accessToken;if(!l)throw new Error("No authentication token available");let u=[];for(let d=0;d({type:g,value:h.embedding})))}return{type:e,values:u}})}catch(c){throw s.setStatus(2,c instanceof Error?c.message:String(c)),s.setAttribute("error.type",c instanceof Error?c.constructor.name:"Error"),s.recordException(c),c}finally{s.end()}}async computeCAPIEmbeddings(e,n,r){let o=IL(eo.text3small_512);if(!o)throw new Error(`Embeddings type info not found: ${eo.text3small_512}`);let a=await this._endpointProvider.getEmbeddingsEndpoint("text3small"),s=a.maxBatchSize,c=a.modelMaxPromptTokens-1;return this.fetchResponseWithBatches(o,a,e,r,c,s)}async fetchResponseWithBatches(e,n,r,o,a,s,c=1){for(let p of r)if(await n.acquireTokenizer().tokenLength(p)>a)return;let l=[],u=[],d=new $f(c);try{for(let p=0;p{if(o?.isCancellationRequested)return;let A=await this.rawEmbeddingsFetchWithTelemetry(e,n,st(),m,o);if(A.type==="failed")throw new Error("Embeddings request failed "+A.reason);return A}))}l=(await Promise.all(u)).flatMap(p=>p?.embeddings??[])}catch{return}finally{d.dispose()}if(!o?.isCancellationRequested&&l.length!==0)return{type:eo.text3small_512,values:l.map(p=>({type:eo.text3small_512,value:p}))}}async rawEmbeddingsFetchWithTelemetry(e,n,r,o,a){let s=Date.now(),c=await this.rawEmbeddingsFetch(e,n,r,o,a);if(c.type==="failed")return this._telemetryService.sendMSFTTelemetryErrorEvent("embedding.error",{type:c.type,reason:c.reason}),c;let l=n.acquireTokenizer(),d=(await Promise.all(o.map(p=>l.tokenLength(p)))).reduce((p,m)=>p+m,0);return this._telemetryService.sendMSFTTelemetryEvent("embedding.success",{},{batchSize:o.length,inputTokenCount:d,timeToComplete:Date.now()-s}),c}async rawEmbeddingsFetch(e,n,r,o,a){try{let s=await this._authService.getCopilotToken(),c={input:o,model:e.model,dimensions:e.dimensions};n.interceptBody?.(c);let l=await this._instantiationService.invokeFunction(fw,{endpointOrUrl:n,secretKey:s.token,intent:"copilot-panel",requestId:r,body:c,cancelToken:a}),u=l.status===200?await l.json():await l.text();return l.status===200&&u.data?{type:"success",embeddings:u.data.map(d=>d.embedding)}:{type:"failed",reason:u.error}}catch(s){let c=s?.message??"Unknown error";return c.match(/Unexpected.*JSON/i)&&(c="timeout"),{type:"failed",reason:c}}}};Che=S([b(0,at),b(1,Zt),b(2,Z),b(3,Ee),b(4,tt),b(5,j),b(6,On)],Che);var CLe=O(require("vscode")),jlt=class{get all(){return CLe.extensions.all}get allAcrossExtensionHosts(){return CLe.extensions.allAcrossExtensionHosts}get onDidChange(){return CLe.extensions.onDidChange}get getExtension(){return CLe.extensions.getExtension}};var T$=O(require("vscode"));var whe=class{constructor(e){this._logService=e;this._onDidChange=new T$.EventEmitter;this.onDidChange=this._onDidChange.event;this._extensionEnablement=void 0;this._disposables=[];this._logService.info("[GitExtensionServiceImpl] Initializing Git extension service."),this._disposables.push(...this._initializeExtensionApi())}getExtensionApi(){return this._api}get extensionAvailable(){return this._extensionEnablement===void 0?!!T$.extensions.getExtension("vscode.git"):this._extensionEnablement}_initializeExtensionApi(){let e=[],n=T$.extensions.getExtension("vscode.git"),r=async()=>{let o;try{o=await n.activate(),this._logService.info("[GitExtensionServiceImpl] Successfully activated the vscode.git extension.")}catch(s){this._logService.error(s,"[GitExtensionServiceImpl] Failed to activate the vscode.git extension.");return}let a=s=>{this._logService.info(`[GitExtensionServiceImpl] Enablement state of the vscode.git extension: ${s}.`),this._extensionEnablement=s,s?(this._api=o.getAPI(1),this._onDidChange.fire({enabled:!0}),this._logService.info("[GitExtensionServiceImpl] Successfully registered Git commit message provider.")):(this._api=void 0,this._onDidChange.fire({enabled:!1}))};e.push(o.onDidChangeEnablement(a)),a(o.enabled)};if(n)r();else{this._logService.info("[GitExtensionServiceImpl] vscode.git extension is not yet activated.");let o=T$.extensions.onDidChange(()=>{!n&&T$.extensions.getExtension("vscode.git")&&(n=T$.extensions.getExtension("vscode.git"),r(),o.dispose())})}return e}};whe=S([b(0,Z)],whe);var uWr=require("vscode"),Glt=class{transferActiveChat(e){return uWr.interactive.transferActiveChat(e)}};var Hlt=O(require("vscode"));var Wlt=class t extends p$e{constructor(){super(...arguments);this.onDidChangeDiagnostics=Hlt.languages.onDidChangeDiagnostics}static{this.ignoredSchemes=new Set(["git","chat-editing-snapshot-text-model","chat-editing-text-model"])}getDiagnostics(n){return Hlt.languages.getDiagnostics(n)}getAllDiagnostics(){return Hlt.languages.getDiagnostics().filter(([n])=>!t.ignoredSchemes.has(n.scheme))}};var B$=O(require("vscode")),Zlt=class{constructor(){}async getDefinitions(e,n){return await B$.commands.executeCommand("vscode.executeDefinitionProvider",e,n)}async getImplementations(e,n){return await B$.commands.executeCommand("vscode.executeImplementationProvider",e,n)}async getReferences(e,n){return await B$.commands.executeCommand("vscode.executeReferenceProvider",e,n)}async getWorkspaceSymbols(e){return await B$.commands.executeCommand("vscode.executeWorkspaceSymbolProvider",e)}async getDocumentSymbols(e){return await B$.commands.executeCommand("vscode.executeDocumentSymbolProvider",e)}getDiagnostics(e){return B$.languages.getDiagnostics(e)}};var Vlt=require("vscode");vi();var ton=class{constructor(e,n){this._gateway=e;this._onDispose=n}get servers(){return this._gateway.servers}get onDidChangeServers(){return this._gateway.onDidChangeServers}dispose(){this._onDispose(),this._gateway.dispose()}},xhe=class extends y7e{constructor(n){super();this._logService=n;this._gateways=new Hn}get mcpServerDefinitions(){return Vlt.lm.mcpServerDefinitions}get onDidChangeMcpServerDefinitions(){return Vlt.lm.onDidChangeMcpServerDefinitions}startMcpGateway(n){let r=this._gateways.get(n);if(r!==void 0)return r;let o=this._doStartMcpGateway(n);return this._gateways.set(n,o),o}async _doStartMcpGateway(n){try{let r=await Vlt.lm.startMcpGateway();if(r)return new ton(r,()=>this._gateways.delete(n))}catch(r){this._logService.warn(`Failed to start MCP Gateway: ${r instanceof Error?r.message:String(r)}`)}this._gateways.delete(n)}dispose(){let n=[...this._gateways.values()];this._gateways.clear();for(let r of n)r.then(o=>{try{o?.dispose()}catch{}})}};xhe=S([b(0,Z)],xhe);var Vy=require("vscode");var dWr=require("vscode");Ar();var Ylt=class{constructor(){this._onDidChangeNotebookCellExecutionStateEmitter=new lt;this.onDidChangeNotebookCellExecutionState=this._onDidChangeNotebookCellExecutionStateEmitter.event;this._disposables=[];this._cellExecution=new WeakMap;this._disposables.push(dWr.workspace.onDidChangeNotebookDocument(e=>{for(let n of e.cellChanges)n.executionSummary&&(n.executionSummary.success===void 0?this._cellExecution.has(n.cell)||(this._cellExecution.set(n.cell,!0),this._onDidChangeNotebookCellExecutionStateEmitter.fire({cell:n.cell,state:2})):(this._cellExecution.delete(n.cell),this._onDidChangeNotebookCellExecutionStateEmitter.fire({cell:n.cell,state:1})))}))}dispose(){this._disposables.forEach(e=>e.dispose())}};var GDa="github.copilot.notebookAgentModeUsage",Ehe=class{constructor(e,n,r,o){this._configurationService=e;this._experimentationService=n;this._workspaceService=r;this._logger=o;this._cellExecution=new Map;this._cellSymbols=new WeakMap;this._executionService=new Ylt;this._disposables=[];this._isVariableFilteringEnabled=!1;this._notebookEditorContribInitFlag=!1;this._notebookEditorContributions=[];this.followExecutionState=!1;this._isVariableFilteringEnabled=this._experimentationService.getTreatmentVariable("copilotchat.notebookVariableFiltering")||this._configurationService.getConfig(H.Advanced.NotebookVariableFilteringEnabled),this._registerExecutionListener()}get isVariableFilteringEnabled(){return this._isVariableFilteringEnabled}_hasJupyterExtension(){return Vy.extensions.getExtension("ms-toolsai.jupyter")?.isActive}trackAgentUsage(){Vy.commands.executeCommand("setContext",GDa,!0)}setFollowState(e){this.followExecutionState=e}getFollowState(){return this.followExecutionState}async getVariables(e){if(!this._hasJupyterExtension())try{let n=await Vy.commands.executeCommand("vscode.executeNotebookVariableProvider",e);if(n&&Array.isArray(n)){let r=n.map(this._convertResult);return this._filterVariables(e,r)}return[]}catch(n){return this._logger.error(`Failed to get notebook variables (vscode.executeNotebookVariableProvider) for ${e.toString()}: ${n}`),[]}try{let n=await Vy.commands.executeCommand("jupyter.listVariables",e);if(n&&Array.isArray(n)){let r=n.map(this._convertResult);return this._filterVariables(e,r)}return[]}catch(n){return this._logger.error(`Failed to get notebook variables (jupyter.listVariables) for ${e.toString()}: ${n}`),[]}}_convertResult(e){return"variable"in e?e:{variable:e,hasNamedChildren:!1,indexedChildrenCount:0}}_filterVariables(e,n){if(!this.isVariableFilteringEnabled)return n;let r=new Set;return Jo(e,Vy.workspace.notebookDocuments)?.getCells().forEach(o=>{let a=this._cellSymbols.get(o);a&&a.forEach(s=>r.add(s.name))}),n.filter(o=>r.has(o.variable.name))}async getPipPackages(e){if(!this._hasJupyterExtension())return[];try{return await Vy.commands.executeCommand("jupyter.listPipPackages",e)}catch(n){return this._logger.error(`Failed to get pip packages (jupyter.listPipPackages) for ${e.toString()}: ${n}`),[]}}setVariables(e,n){}populateNotebookEditorContributions(){let e=[],n=Vy.extensions.all;for(let r of n){let o=r.packageJSON.contributes?.notebooks;Array.isArray(o)&&e.push(...o)}for(let r of e)tbn(r)&&this._notebookEditorContributions.push(r)}hasSupportedNotebooks(e){this._notebookEditorContribInitFlag||(this.populateNotebookEditorContributions(),this._notebookEditorContribInitFlag=!0);let n=this._configurationService.getNonExtensionConfig("workbench.editorAssociations"),r=nbn(n??{});return rbn(e,this._workspaceService.notebookDocuments,this._notebookEditorContributions,r)}_registerExecutionListener(){this._disposables.push(this._executionService.onDidChangeNotebookCellExecutionState(e=>{let n=e.cell,o=n.notebook.uri.toString(),a=this._cellExecution.get(o);a||(a=[],this._cellExecution.set(o,a));let s=a.findIndex(c=>c.cell===n);s!==-1&&a.splice(s,1),a.push({cell:n,executionCount:n.executionSummary?.executionOrder})})),this._disposables.push(Vy.workspace.onDidChangeNotebookDocument(e=>{if(this.isVariableFilteringEnabled){for(let n of e.cellChanges)n.executionSummary&&n.executionSummary.success&&Vy.commands.executeCommand("vscode.executeDocumentSymbolProvider",n.cell.document.uri).then(o=>{this._cellSymbols.set(n.cell,o||[])}),n.document&&this._cellSymbols.delete(n.cell);for(let n of e.contentChanges)n.removedCells.forEach(r=>{this._cellSymbols.delete(r)})}}))}getCellExecutions(e){return this._cellExecution.get(e.toString())?.map(n=>n.cell)||[]}async runCells(e,n,r){await Vy.commands.executeCommand("notebook.cell.execute",{ranges:[n],document:e,autoReveal:r})}async ensureKernelSelected(e){Vy.window.visibleNotebookEditors.find(n=>n.notebook.uri.toString()===e.toString())&&await Vy.commands.executeCommand("notebook.selectKernel",{notebookUri:e,skipIfAlreadySelected:!0})}dispose(){this._disposables.forEach(e=>e.dispose())}};Ehe=S([b(0,be),b(1,Fe),b(2,Te),b(3,Z)],Ehe);Ue();var Ihe=class extends it{constructor(n,r){super();this.workspaceService=n;this.trackedNotebooks=new WeakSet;this.notebooksWithChanges=new WeakSet;r.subscriptions.push(this),this.add(this.workspaceService.onDidChangeNotebookDocument(o=>{this.trackedNotebooks.has(o.notebook)&&(o.contentChanges.length&&this.notebooksWithChanges.add(o.notebook),o.cellChanges.some(a=>a.executionSummary)&&this.notebooksWithChanges.add(o.notebook))}))}trackNotebook(n){this.trackedNotebooks.add(n)}clearState(n){this.notebooksWithChanges.delete(n)}listNotebooksWithChanges(){return this.workspaceService.notebookDocuments.filter(n=>this.notebooksWithChanges.has(n))}};Ihe=S([b(0,Te),b(1,ut)],Ihe);var jK=require("vscode"),Klt=class{async showInformationMessage(e,n,...r){return typeof n=="object"&&n!==null&&!Array.isArray(n)?jK.window.showInformationMessage(e,n,...r):jK.window.showInformationMessage(e,n,...r)}async withProgress(e,n){return jK.window.withProgress(e,n)}async showWarningMessage(e,...n){return jK.window.showWarningMessage(e,...n)}async showQuotaExceededDialog(e){return jK.commands.executeCommand(e.isNoAuthUser?"workbench.action.chat.triggerSetup":"workbench.action.chat.openQuotaExceededDialog")}};Je();var pWr=me("IUrlOpener"),Jlt=class{constructor(){this.openedUrls=[]}open(e){this.openedUrls.push(e)}};var eut=O(require("vscode")),Xlt=class{async open(e){await eut.commands.executeCommand("vscode.open",eut.Uri.parse(e))}};dn();fr();var khe=class{constructor(e,n){this.workspaceService=e;this.fileService=n}async parseFile(e,n){let o=await qt((async a=>{let s=this.workspaceService.textDocuments.find(c=>Xr.isEqual(c.uri,a));if(s)return s.getText();{let c=await this.fileService.readFile(a);return new TextDecoder().decode(c)}})(e),n);return new FHe().parse(e,o)}};khe=S([b(0,Te),b(1,yt)],khe);Je();var tut=me("releaseNotesService");var R$=class{constructor(e,n){this.envService=e;this.fetcherService=n}static{this.BASE_URL="https://code.visualstudio.com/raw"}async fetchLatestReleaseNotes(){let e=this.getUrl();return e?await(await this.fetcherService.fetch(e,{method:"GET",callSite:"release-notes"})).text():void 0}async fetchReleaseNotesForVersion(e){let n=this.getUrl(e);return n?await(await this.fetcherService.fetch(n,{method:"GET",callSite:"release-notes-version"})).text():void 0}getUrl(e){let n=e&&e.trim().length>0?e.trim():this.envService.getEditorInfo().version,r,o;if(/^\d+\.\d+(?:\.\d+)?$/.test(n)){let a=tx(n),s=/^(\d+)\.(\d+)$/.exec(a);if(!s)return;r=s[1],o=s[2]}else return;return`${R$.BASE_URL}/v${r}_${o}.md`}};R$=S([b(0,Zt),b(1,nr)],R$);var nut=require("vscode");Je();var iut=me("IRemoteRepositoriesService"),rut=class{async loadWorkspaceContents(e){return await(await this.getApi()).loadWorkspaceContents?.(e)??!1}getApi(){return this.getRemoteExtension().activate()}getRemoteExtension(){if(this._remoteHub!==void 0)return this._remoteHub;if(this._remoteHub=nut.extensions.getExtension("ms-vscode.remote-repositories")??nut.extensions.getExtension("GitHub.remoteHub")??nut.extensions.getExtension("GitHub.remoteHub-insiders"),this._remoteHub===void 0)throw new Error("No Remote repository extension found.");return this._remoteHub}};var Ld=O(require("vscode")),She=require("vscode");Ue();Ot();var mWr="github.copilot.chat.reviewDiff.enabled",HDa="github.copilot.chat.reviewDiff.enabledRootUris",non="github.copilot.chat.review.numberOfComments",The=class{constructor(e,n,r,o){this._configurationService=e;this._authenticationService=n;this._contextService=r;this._gitExtensionService=o;this._disposables=new it;this._repositoryDisposables=new it;this._commentController=Ld.comments.createCommentController("github-copilot-review","Code Review");this._comments=[];this._disposables.add(Ld.workspace.onDidChangeConfiguration(a=>{a.affectsConfiguration(H.CodeFeedback.fullyQualifiedId)&&Ld.commands.executeCommand("setContext",H.CodeFeedback.fullyQualifiedId,this.isCodeFeedbackEnabled()),(a.affectsConfiguration("github.copilot.advanced")||a.affectsConfiguration("github.copilot.advanced.review.intent"))&&Ld.commands.executeCommand("setContext",H.Advanced.ReviewIntent.fullyQualifiedId,this.isIntentEnabled())})),this._disposables.add(this._authenticationService.onDidAuthenticationChange(()=>{Ld.commands.executeCommand("setContext",mWr,this.isReviewDiffEnabled())})),this._disposables.add(this._repositoryDisposables),this._disposables.add(this._gitExtensionService.onDidChange(()=>{this.updateRepositoryListeners()})),this.updateRepositoryListeners(),this.updateContextValues(),Ld.commands.executeCommand("setContext",non,0)}updateRepositoryListeners(){this._repositoryDisposables.clear();let e=this._gitExtensionService.getExtensionApi();e&&(this._repositoryDisposables.add(e.onDidOpenRepository(()=>{this.updateRepositoryListeners()})),this._repositoryDisposables.add(e.onDidCloseRepository(()=>{this.updateRepositoryListeners()})),e.repositories.forEach(n=>{this._repositoryDisposables.add(n.state.onDidChange(()=>{this.updateReviewDiffReposContext()}))})),this.updateReviewDiffReposContext()}updateReviewDiffReposContext(){let e=this.getRepositoriesWithUncommitedChanges(),n=e.map(r=>r.toString()).sort().join(",");n!==this._reviewDiffReposString&&(this._reviewDiffReposString=n,Ld.commands.executeCommand("setContext",HDa,e))}getRepositoriesWithUncommitedChanges(){return this._gitExtensionService.getExtensionApi()?.repositories.filter(({state:n})=>n.workingTreeChanges.length||n.indexChanges.length||n.untrackedChanges.length||n.mergeChanges.length).map(n=>n.rootUri)||[]}updateContextValues(){Ld.commands.executeCommand("setContext",H.CodeFeedback.fullyQualifiedId,this.isCodeFeedbackEnabled()),Ld.commands.executeCommand("setContext",mWr,this.isReviewDiffEnabled()),Ld.commands.executeCommand("setContext",H.Advanced.ReviewIntent.fullyQualifiedId,this.isIntentEnabled())}isCodeFeedbackEnabled(){let e=this._configurationService.inspectConfig(H.CodeFeedback);return e?.workspaceFolderValue??e?.workspaceValue??e?.globalValue??this._configurationService.getDefaultValue(H.CodeFeedback)}isReviewDiffEnabled(){return this._configurationService.getConfig(H.ReviewAgent)&&this._authenticationService.copilotToken?.isCopilotCodeReviewEnabled||!1}isIntentEnabled(){return this._configurationService.getConfig(H.Advanced.ReviewIntent)}getDiagnosticCollection(){return this._diagnosticCollection||this._disposables.add(this._diagnosticCollection=Ld.languages.createDiagnosticCollection("github.copilot.chat.review"))}getReviewComments(){return this._comments.map(({comment:e})=>e)}addReviewComments(e){for(let n of e){let r=this._commentController.createCommentThread(n.uri,n.range,this.createUIComments(n));r.contextValue="hasNoSuggestion",r.canReply=!1,this._comments.find(o=>o.comment.uri.toString()===n.uri.toString())||(r.collapsibleState=Ld.CommentThreadCollapsibleState.Expanded),this._comments.push({comment:n,thread:r}),this.updateThreadLabels(),this._comments.length===1&&(Ld.commands.executeCommand("github.copilot.chat.review.next"),this._monitorActiveThread=setInterval(()=>{let o=this._commentController.activeCommentThread,a=o&&this._comments.find(s=>s.thread.label===o.label)?.thread;a!==this._activeThread&&(this._activeThread=a,a&&Ld.commands.executeCommand("github.copilot.chat.review.current",a))},500))}Ld.commands.executeCommand("setContext",non,this._comments.length)}updateReviewComment(e){let n=this.findCommentThread(e);n&&(n.comments=this.createUIComments(e))}createUIComments(e){let n="",r=e.suggestion?"edits"in e.suggestion?e.suggestion.edits.length?` *** ${She.l10n.t("Suggested change:")}${e.suggestion.edits.map(a=>` \`\`\`diff ${WDa(a)} \`\`\``).join("")} ***`:` ${She.l10n.t("No change found to suggest.")}`:` ${She.l10n.t("Looking up change to suggest...")}`:"";return[{body:typeof e.body=="string"?`${e.body}${r}${n}`:new Ld.MarkdownString(`${e.body.value}${r}${n}`),mode:Ld.CommentMode.Preview,author:{name:She.l10n.t("Code Review"),iconPath:K.joinPath(this._contextService.extensionUri,"assets","copilot.png")}}]}collapseReviewComment(e){let n=this._comments.find(a=>a.comment===e);if(!n)return;let r=n.thread;r.dispose();let o=this._commentController.createCommentThread(e.uri,e.range,r.comments);o.contextValue=r.contextValue,o.canReply=!1,o.label=r.label,n.thread=o}removeReviewComments(e){for(let n of e){let r=this._comments.findIndex(o=>o.comment===n);r!==-1&&(this._comments[r].thread.dispose(),this._comments.splice(r,1))}this.updateThreadLabels(),this._comments.length===0&&this._monitorActiveThread&&(clearInterval(this._monitorActiveThread),this._monitorActiveThread=void 0),Ld.commands.executeCommand("setContext",non,this._comments.length)}updateThreadLabels(){this._comments.forEach((e,n)=>{e.thread.label=She.l10n.t("Comment {0} of {1}",n+1,this._comments.length)})}findReviewComment(e){return this._comments.find(r=>r.thread===e||r.thread.comments[0]===e)?.comment}findCommentThread(e){return this._comments.find(r=>r.comment===e)?.thread}dispose(){this._disposables.dispose()}};The=S([b(0,be),b(1,at),b(2,ut),b(3,is)],The);function WDa(t){let e=t.oldText.split(/\r?\n/),n=t.newText.split(/\r?\n/);for(;e.length&&n.length&&e[0]===n[0];)e.shift(),n.shift();for(;e.length&&n.length&&e[e.length-1]===n[n.length-1];)e.pop(),n.pop();return`${e.map(r=>`- ${r}`).join(` `)} ${n.map(r=>`+ ${r}`).join(` `)}`}yr();Be();var wLe=new RegExp("[_\\p{L}\\p{Nd}]+|====+|----+|####+|////+|\\*\\*\\*\\*+|[\\p{P}\\p{S}]","gu"),aut=65;function ZDa(t){let e=0,n;wLe.lastIndex=0;do if(n=wLe.exec(t),n&&(e+=1),e>=aut)break;while(n);return e}function VDa(t,e){let n=0,r;wLe.lastIndex=0;do if(r=wLe.exec(t),r&&(n+=1,n>=e))return wLe.lastIndex;while(r);return t.length}function AWr(t,e){let n=t.split("").reverse().join(""),r=VDa(n,e);return n.length-r}function ron(t){return ZDa(t)>=aut}En();var fWr;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.matched_source=="string"&&typeof n.occurrences=="string"&&typeof n.capped=="boolean"&&typeof n.cursor=="string"&&typeof n.github_url=="string"}e.is=t})(fWr||={});var ion;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.kind=="string"&&typeof n.reason=="string"&&typeof n.code=="number"&&typeof n.msg=="string"}e.is=t})(ion||={});var gWr;(e=>{function t(n){return typeof n=="object"&&n!==null&&"snippets"in n&&Array.isArray(n.snippets)&&n.snippets.every(fWr.is)}e.is=t})(gWr||={});var oon;(e=>{function t(n){if(ion.is(n))return vt.error(n);if(gWr.is(n))return vt.ok(n)}e.to=t})(oon||={});var hWr;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.commit_id=="string"&&typeof n.license=="string"&&typeof n.nwo=="string"&&typeof n.path=="string"&&typeof n.url=="string"}e.is=t})(hWr||={});var bWr;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.has_next_page=="boolean"&&typeof n.cursor=="string"}e.is=t})(bWr||={});var yWr;(e=>{function t(n){return typeof n=="object"&&n!==null&&typeof n.count=="object"&&Object.values(n.count).every(r=>typeof r=="string")}e.is=t})(yWr||={});var vWr;(e=>{function t(n){return typeof n=="object"&&n!==null&&"file_matches"in n&&Array.isArray(n.file_matches)&&n.file_matches.every(hWr.is)&&"page_info"in n&&bWr.is(n.page_info)&&"license_stats"in n&&yWr.is(n.license_stats)}e.is=t})(vWr||={});var aon;(e=>{function t(n){if(ion.is(n))return vt.error(n);if(vWr.is(n))return vt.ok(n)}e.to=t})(aon||={});var Bhe=class{constructor(e,n,r){this.fetcherService=e;this.capiClientService=n;this.authService=r}async fetchMatch(e,n){let r={source:e};return this.fetch({type:qn.SnippyMatch},r,oon.to,n)}async fetchFilesForMatch(e,n){let r={cursor:e};return this.fetch({type:qn.SnippyFilesForMatch},r,aon.to,n)}async fetch(e,n,r,o){let a=this.fetcherService.makeAbortController(),s=o.onCancellationRequested(()=>{a.abort()}),c=a.signal,u={callSite:"snippy-match",method:"POST",headers:await this.getHeaders(),json:n,signal:c},d;try{d=await this.capiClientService.makeRequest(u,e)}catch(m){throw this.fetcherService.isAbortError(m)?new Jn:m}finally{s.dispose()}if(d.status!==200)throw new Error(`Failed with status ${d.status} and body: ${await d.text()}`);let p=await d.json();return r(p)}async getHeaders(){return{authorization:`Bearer ${(await this.authService.getCopilotToken()).token}`}}};Bhe=S([b(0,nr),b(1,Mr),b(2,at)],Bhe);Ot();var zC=class{constructor(e,n,r,o){this.notificationService=e;this.context=n;this.logService=r;this.envService=o}static{this.matchCodeMessage="We found a reference to public code in a recent suggestion. To learn more about public code references, review the [documentation](https://aka.ms/github-copilot-match-public-code)."}static{this.MatchAction="View Reference"}static{this.SettingAction="Change Setting"}static{this.CodeReferenceKey="copilot.chat.codeReference.notified"}notify(){if(this.context.globalState.get(zC.CodeReferenceKey))return;let n=[zC.MatchAction,zC.SettingAction];this.notificationService.showInformationMessage(zC.matchCodeMessage,...n).then(r=>{switch(r){case zC.MatchAction:{this.logService.show(!0);break}case zC.SettingAction:{this.envService.openExternal(K.parse("https://aka.ms/github-copilot-settings"));break}case void 0:break}}),this.context.globalState.update(zC.CodeReferenceKey,!0)}};zC=S([b(0,eC),b(1,ut),b(2,Z),b(3,Zt)],zC);var Rhe=class{constructor(e,n){this.instantiationService=e;this.logService=n;this.notifier=this.instantiationService.createInstance(zC),this.fetcher=this.instantiationService.createInstance(Bhe)}async handlePostInsertion(e,n,r){let o=this.computeSourceToCheck(n,r);if(!o)return;let a;try{a=await this.fetcher.fetchMatch(o.source,Yt.None)}catch(d){throw d}if(!a)throw new Error(`Failed to parse match response: ${a}`);if(a.isError())throw new Error(`Failed to match: ${a.err}`);if(a.val.snippets.length===0)return;let{snippets:s}=a.val,c=s.map(async d=>{let p=await this.fetcher.fetchFilesForMatch(d.cursor,Yt.None);if(!p||p.isError())return;let{file_matches:m,license_stats:A}=p.val;return{match:d,files:m,licenseStats:A}});this.notifier.notify();let u=(await Promise.all(c)).filter(d=>!!d);if(u.length!==0)for(let d of u){let p=new Set(Object.keys(d.licenseStats?.count??{}));p.delete("NOASSERTION")&&p.add("unknown");let m=Array.from(p).sort(),A=`[Ln ${o.startPosition.lineNumber}, Col ${o.startPosition.column}]`,f=`${d.match.matched_source.slice(0,100).replace(/[\r\n\t]+|^[ \t]+/gm," ").trim()}...`;this.logService.info(["[CODE REFERENCING]",e,`Similar code with ${JDa(m.length,"license type")}`,`[${m.join(", ")}]`,`${d.match.github_url.replace(/,\s*$/,"")}&editor=vscode`,A,f].join(" "))}}computeSourceToCheck(e,n){if(n.newText==="")return;let r=Cn.single(n),a=r.getNewRanges().reduce((p,m)=>p.join(m)),s=r.applyOnText(e),c=a.start,l=s.value.substring(a.start,a.endExclusive);if(!ron(l)){let p=s.value.slice(0,a.start),m=AWr(p,aut);c=m,l=s.value.slice(m,a.start+n.newText.length)}if(!ron(l))return;let d=s.getTransformer().getPosition(c);return{source:l,startPosition:d}}};Rhe=S([b(0,j),b(1,Z)],Rhe);var JDa=(t,e,n="s")=>`${t} ${e}${t!==1?n:""}`;var sut=O(require("vscode")),xLe=require("vscode");var XDa="https://aka.ms/vscode-gh-copilot",_Wr="survey.usage",CWr="survey.nextSurveyDate",son=14*24*60*60*1e3,e2a=7,t2a=90,n2a=3*60*1e3,r2a=5*60*1e3,i2a=2,o2a=2,a2a=20,s2a=1,Dhe=class{constructor(e,n,r,o,a){this.telemetryService=e;this.vscodeExtensionContext=n;this.envService=r;this.experimentationService=o;this.authenticationService=a;this.debounceTimeout=null;this.lastSource=null;this.lastLanguageId=null;this.surveyUri=Qn.parse(XDa),this.sessionSeed=Math.random(),setTimeout(async()=>{await this.updateUsageData(!1),await this.checkInactiveUserHeuristic()&&this.promptSurvey("churn")},r2a)}async signalUsage(e,n){await this.updateUsageData(!0),this.lastSource=e,n&&(this.lastLanguageId=n),this.debounceTimeout||(this.debounceTimeout=setTimeout(async()=>{await this.checkEligibility()&&this.promptSurvey("usage"),this.debounceTimeout=null},n2a))}async checkInactiveUserHeuristic(){let e=await this.getUsageData(),n=await this.getNextSurveyDate(),r=Date.now(),o=e.activeDays.length,a=e.firstActive>0&&e.firstActive=i2a&&a&&s){let u=this.experimentationService.getTreatmentVariable("copilotchat.feedback.sessionProbability")??o2a;if(this.sessionSeedo>=r-son),await this.vscodeExtensionContext.globalState.update(_Wr,n)}async updateNextSurveyDate(e){await this.vscodeExtensionContext.globalState.update(CWr,Date.now()+e*24*60*60*1e3)}async promptSurvey(e){let n=await this.getUsageData(),r=this.lastSource||"",o=this.lastLanguageId||"",a=Math.floor((Date.now()-n.firstActive)/(1e3*60*60*24));this.telemetryService.sendMSFTTelemetryEvent("survey.show",{source:r,language:o,surveyType:e},{activeDays:n.activeDays.length,firstActive:a}),await this.updateNextSurveyDate(t2a);let s=xLe.l10n.t("Give Feedback"),c=xLe.l10n.t("Later"),l=xLe.l10n.t("Skip");sut.window.showInformationMessage(xLe.l10n.t("Got a minute? Help us make GitHub Copilot better."),s,c,l).then(async u=>{let d=u===s,p=u===c;if(this.telemetryService.sendMSFTTelemetryEvent("survey.action",{source:r,language:o,selection:d?"accepted":p?"postponed":"skipped",surveyType:e}),d){let m=await this.authenticationService.getCopilotToken(),A={m:this.envService.machineId,s:this.envService.sessionId,k:m.sku??"",d:n.activeDays.length.toString(),f:a.toString(),v:this.envService.getVersion(),l:o,src:r,type:e},f=this.surveyUri.with({query:new URLSearchParams(A).toString()});sut.env.openExternal(f)}else p&&await this.updateNextSurveyDate(e2a)})}};Dhe=S([b(0,Ee),b(1,ut),b(2,Zt),b(3,Fe),b(4,at)],Dhe);var Lf=O(require("vscode"));Ar();Ue();vi();var cut=class{constructor(){this._store=new it;this._tabGroupsUseInfo=new Map;this._tabClock=0;this.onDidChangeActiveTextEditor=Lf.window.onDidChangeActiveTextEditor;this._onDidChangeTabs=this._store.add(new lt);this.onDidChangeTabs=this._onDidChangeTabs.event;let e=()=>this._tabGroupsUseInfo.set(Lf.window.tabGroups.activeTabGroup,this._tabClock++);e(),this._store.add(Lf.window.tabGroups.onDidChangeTabGroups(n=>{n.closed.forEach(r=>this._tabGroupsUseInfo.delete(r)),e()})),this._store.add(Lf.window.tabGroups.onDidChangeTabs(n=>{this._onDidChangeTabs.fire({changed:n.changed.map(r=>this._asTabInfo(r)),closed:n.closed.map(r=>this._asTabInfo(r)),opened:n.opened.map(r=>this._asTabInfo(r))})}))}dispose(){this._store.dispose()}get activeTextEditor(){let e=Lf.window.activeTextEditor;if(e&&e.document.uri.scheme!=="output")return e;let n=new Hn;Lf.window.visibleTextEditors.forEach(o=>n.set(o.document.uri,o));let r=[...this._tabGroupsUseInfo];r.sort((o,a)=>a[1]-o[1]);for(let[o]of r)if(o.activeTab){let a=this._asTabInfo(o.activeTab);if(a.uri&&n.has(a.uri))return n.get(a.uri)}}get visibleTextEditors(){return Lf.window.visibleTextEditors}get activeNotebookEditor(){return Lf.window.activeNotebookEditor}get visibleNotebookEditors(){return Lf.window.visibleNotebookEditors}get tabs(){return Lf.window.tabGroups.all.flatMap(e=>e.tabs).map(this._asTabInfo,this)}_asTabInfo(e){let n;return e.input instanceof Lf.TabInputText||e.input instanceof Lf.TabInputNotebook?n=e.input.uri:(e.input instanceof Lf.TabInputTextDiff||e.input instanceof Lf.TabInputNotebookDiff)&&(n=e.input.modified),{tab:e,uri:n}}};var oA=O(require("vscode"));En();Ue();Ot();var Phe=class extends it{constructor(n,r,o,a){super();this.workspaceService=n;this.fileSystemService=r;this.languageDiagnosticsService=o;this.logService=a;this.latestTerminalForTaskDefinition=new Map;this.add(oA.tasks.onDidStartTask(s=>{let c=s.execution.terminal;if(!c)return;this.latestTerminalForTaskDefinition.set(s.execution.task.definition,c);let l=oA.window.onDidCloseTerminal(d=>{d===c&&this.latestTerminalForTaskDefinition.has(s.execution.task.definition)&&(this.latestTerminalForTaskDefinition.delete(s.execution.task.definition),l.dispose())});this.add(l);let u=oA.tasks.onDidEndTask(d=>{d.execution.task.definition===s.execution.task.definition&&(l.dispose(),u.dispose())});this.add(u)}))}getTasksFromConfig(n){return oA.workspace.getConfiguration("tasks",n).get("tasks")||[]}matchesTask(n,r){return n.type===r.type&&n.label===r.label}hasTask(n,r){return this.getTasksFromConfig(n).some(a=>this.matchesTask(a,r))}getTerminalForTask(n){for(let[r,o]of this.latestTerminalForTaskDefinition.entries()){if(r.id&&this._getTaskId(n)===r.id||n.type===r.type&&(r.label||r.script||r.command)&&(!r.label||n.label===r.label)&&(!r.script||n.script===r.script)&&(!r.command||n.command===r.command))return o;this.logService.debug(`getTerminalForTask: no terminal found for task definition: ${JSON.stringify(n)} matching ${JSON.stringify(r)}`),this.logService.debug(`getTerminalForTask: current stored terminals: ${[...this.latestTerminalForTaskDefinition.values()].map(a=>a.name).join(", ")}`)}}_getTaskId(n){if(!(!n.type||n.command===void 0&&n.script===void 0))return n.type+","+(n.command??n.script)+","}async getTaskConfigPosition(n,r){let o=this.getTasksFromConfig(n).findIndex(d=>this.matchesTask(d,r));if(o===-1)return;let a=K.joinPath(n,".vscode","tasks.json"),s;try{let d=await this.fileSystemService.readFile(a);s=new TextDecoder().decode(d)}catch{return}let c=Obn(s);if(!c)return;let l=Ubn(c,["tasks",o]);if(!l)return;let u=new I0(s);return{uri:a,range:zt.fromPositions(u.offsetToPosition(l.offset),u.offsetToPosition(l.offset+l.length))}}async ensureTask(n,r,o){let a=this.getTasksFromConfig(n);if(a.some(c=>this.matchesTask(c,r)))return;await oA.workspace.getConfiguration("tasks",n).update("tasks",o?[r]:[...a,r],oA.ConfigurationTarget.WorkspaceFolder)}isTaskActive(n){let r=oA.tasks.taskExecutions;for(let o of r)if(o.task.definition.type===n.type&&o.task.name===n.label)return!0;return!1}getTasks(n){return n?this.getTasksFromConfig(n):this.workspaceService.getWorkspaceFolders().map(r=>[r,this.getTasksFromConfig(r)]).filter(([,r])=>r.length>0)}async getBestMatchingContributedTask(n){let r=await oA.tasks.fetchTasks({type:n?.type}),o,a=-1;return r.forEach(s=>{let c=0;for(let[l,u]of Object.entries(s.definition)){if(!FO(n[l],u))return;c++}c>a&&(o=s,a=c)}),o}async executeTask(n,r,o){let a=new it;try{let s=await this.getBestMatchingContributedTask(n);if(r.isCancellationRequested)throw new Jn;return await new Promise(c=>{let l;a.add(oA.tasks.onDidEndTaskProcess(m=>{m.execution.task===s&&(l=m.exitCode)})),a.add(oA.tasks.onDidEndTask(m=>{m.execution.task===s&&c(l!==void 0&&l!==0?{status:"error",error:new Error(`Task exited with code ${l}`)}:{status:"finished"})}));let u=!1,d;function p(){c({status:"error",error:new Jn}),!u&&d&&d.terminate()}if(n.isBackground||a.add(r.onCancellationRequested(p)),s){let m=oA.tasks.taskExecutions.find(A=>FO(A.task.definition,s.definition));u=!!m,Promise.resolve(m||oA.tasks.executeTask(s)).then(A=>{if(d=A,r.isCancellationRequested)p();else if(s.isBackground){let f=!1;a.add(oA.tasks.onDidEndTaskProblemMatchers(async g=>{if(f=!0,g.execution.task===s)if(g.hasErrors){let h=[];o&&(h=this.languageDiagnosticsService.getAllDiagnostics().map(y=>y[0]+" "+y[1].map(v=>v.message).join(", "))),c({status:"error",error:new Error("Task exited with errors in the following files: "+h.join(", "))})}else c({status:"finished"})})),setTimeout(()=>{f||c({status:"started"})},s?.isBackground&&s.problemMatchers.length?1e4:0)}else c({status:"started"})},A=>c({status:"error",error:A}))}else oA.commands.executeCommand("workbench.action.tasks.runTask",n.label||n),a.add(oA.tasks.onDidStartTask(m=>{s=m.execution.task,c({status:"started"})})),a.add(oA.tasks.onDidEndTask(m=>{m.execution.task.name===n.label&&c(l!==void 0&&l!==0?{status:"error",error:new Error(`Task exited with code ${l}`)}:{status:"finished"})}))})}finally{a.dispose()}}};Phe=S([b(0,Te),b(1,yt),b(2,Ga),b(3,Z)],Phe);var kLe=O(Lt()),GK=require("vscode");wr();Ue();sr();var SB=require("vscode");sr();Zye();So();var ELe=new Map,lut=new Map;function xWr(){let t=SB.window.activeTerminal;return t===void 0?"":ELe.get(t)?.join("")||""}function EWr(t,e=16e3){if(!t)return"";let n=ELe.get(t);if(!n)return"";let r=n.join(""),o=Math.max(0,r.length-e);return r.slice(o)}function IWr(t){return lut.get(t)?.at(-1)}function kWr(){let t=SB.window.activeTerminal;if(t!==void 0)return lut.get(t)?.at(-1)}function SWr(){try{return SB.window.activeTerminal?.selection??""}catch{return""}}var ILe;function TWr(){let t=SB.window.activeTerminal;if(t?.state.shell)return t.state.shell;if(t&&"shellPath"in t.creationOptions){let e=t.creationOptions.shellPath;if(e){let n,r=dr(e);if(r==="bash.exe")n="Git Bash";else{let o=r.replace(/\..+/,"");switch(o){case"pwsh":case"powershell":n="powershell";break;case"":break;default:n=o}}if(n)return ILe=n,n}}return ILe||(hFe==="win32"?"powershell":"bash")}function wWr(t,e){t.push(e),t.length>40&&t.shift()}function BWr(){return[SB.window.onDidChangeTerminalState(t=>{if(SB.window.activeTerminal&&t.processId===SB.window.activeTerminal.processId){let e=t.state.shell;e&&e!==ILe&&(ILe=e)}}),SB.window.onDidWriteTerminalData(t=>{let e=ELe.get(t.terminal);e||(e=[],ELe.set(t.terminal,e)),wWr(e,iX(t.data))}),SB.window.onDidExecuteTerminalCommand(t=>{let e=lut.get(t.terminal);e||(e=[],lut.set(t.terminal,e)),wWr(e,t)}),SB.window.onDidCloseTerminal(t=>{ELe.delete(t)})]}var Nhe=class extends fe{constructor(n){super();this.context=n;this.pathContributions=[];this.context.environmentVariableCollection.delete("GH_TOKEN");for(let r of BWr())this._register(r)}get terminals(){return GK.window.terminals}get onDidChangeTerminalShellIntegration(){return GK.window.onDidChangeTerminalShellIntegration}get onDidEndTerminalShellExecution(){return GK.window.onDidEndTerminalShellExecution}get onDidCloseTerminal(){return GK.window.onDidCloseTerminal}get onDidWriteTerminalData(){return GK.window.onDidWriteTerminalData}createTerminal(n,r,o){return GK.window.createTerminal(n,r,o)}getBufferForTerminal(n,r){return EWr(n,r)}async getBufferWithPid(n,r){let o;for(let a of this.terminals)if(await a.processId===n){o=a;break}return o?this.getBufferForTerminal(o,r):""}getLastCommandForTerminal(n){return IWr(n)}get terminalBuffer(){return xWr()}get terminalLastCommand(){return kWr()}get terminalSelection(){return SWr()}get terminalShellType(){return TWr()}contributePath(n,r,o,a=!1){let s=this.pathContributions.find(c=>c.contributor===n);s?(s.path=r,s.description=o,s.prepend=a):this.pathContributions.push({contributor:n,path:r,description:o,prepend:a}),this.updateEnvironmentPath()}removePathContribution(n){let r=this.pathContributions.findIndex(o=>o.contributor===n);r!==-1&&this.pathContributions.splice(r,1),this.updateEnvironmentPath()}updateEnvironmentPath(){let n="PATH";if(this.context.environmentVariableCollection.delete(n),this.pathContributions.length===0)return;let r=er(this.pathContributions.map(u=>u.description&&typeof u.description=="string"?u.description:void 0).filter(u=>u)),o="";r.length===1?o=r[0]:r.length>1&&(o=`${r.slice(0,-1).join(", ")} ${kLe.t("and")} ${r[r.length-1]}`);let a=er(this.pathContributions.map(u=>u.description&&typeof u.description!="string"?`\`${u.description.command}\``:void 0).filter(u=>u)),s="";if(a.length===1)s=kLe.t("Enables use of {0} command in the terminal",a[0]);else if(a.length>1){let u=`${a.slice(0,-1).join(", ")} ${kLe.t("and")} ${a[a.length-1]}`;s=kLe.t("Enables use of {0} commands in the terminal",u)}let c=[o,s].filter(u=>u).join(" and ");this.context.environmentVariableCollection.description=c||"Enables additional commands in the terminal.";let l=this.pathContributions.map(u=>u.path);if(this.pathContributions.some(u=>u.prepend)){let u=l.join(Vye)+Vye;this.context.environmentVariableCollection.prepend(n,u)}else{let u=Vye+l.join(Vye);this.context.environmentVariableCollection.append(n,u)}}};Nhe=S([b(0,ut)],Nhe);var JA=O(require("vscode"));Fd();ah();Ue();vi();var uut=class extends fe{constructor(){super();this.resultsDocs=new Hn;this._register(JA.tests.onDidChangeTestResults(()=>this.setHasFailureContextKey())),this.setHasFailureContextKey()}setHasFailureContextKey(){JA.commands.executeCommand("setContext","github.copilot.chat.fixTestFailures.hasFailure",!!Ta.first(this.getAllFailures()))}get onDidChangeResults(){return JA.tests.onDidChangeTestResults}get lastResultsFrom(){return JA.tests.testResults.find(n=>n.completedAt&&n.results.length)?.completedAt}getAllFailures(){let n=JA.tests.testResults.find(r=>r.results.length);return n?this.dfsFailures(n.results):Ta.empty()}getLastFailureFor(n){let r=[];for(let o=n;o;o=o.parent)r.push(o.id);r.reverse();for(let o of JA.tests.testResults)for(let a of o.results){let s=a;for(let l of r)if(s=s.children.find(u=>u.id===l),!s)break;let c=s?.taskStates.find(l=>l.state===JA.TestResultState.Failed||l.state===JA.TestResultState.Errored);if(c&&s)return{snapshot:s,task:c}}}getFailureAtPosition(n,r){let o=JA.tests.testResults.find(c=>c.results.length);if(this.resultsDocsAreForTestRun!==o&&this.makeResultsDocs(o),!o)return;let a=this.resultsDocs.get(n)||[],s=rh(a,c=>!!c.range&&c.range.start.line<=r.line);if(s){for(let c of s.taskStates)if(c.state===JA.TestResultState.Failed||c.state===JA.TestResultState.Errored)return{snapshot:s,task:c}}}async hasAnyTests(){return!!(await JA.commands.executeCommand("vscode.testing.getControllersWithTests")).length}async hasTestsInUri(n){try{return!!(await JA.commands.executeCommand("vscode.testing.getTestsInFile",n)).length}catch{return!1}}*dfsFailures(n){for(let r of n){yield*this.dfsFailures(r.children);for(let o of r.taskStates)(o.state===JA.TestResultState.Failed||o.state===JA.TestResultState.Errored)&&(yield{snapshot:r,task:o})}}makeResultsDocs(n){if(this.resultsDocs.clear(),this.resultsDocsAreForTestRun=n,!n)return;let r=[n.results];for(;r.length;)for(let a of r.pop()){if(r.push(a.children),!a.uri)continue;let s=this.resultsDocs.get(a.uri);s?s.push(a):this.resultsDocs.set(a.uri,[a])}let o=new JA.Range(0,0,0,0);for(let a of this.resultsDocs.values())a.sort((s,c)=>(s.range||o).start.compareTo((c.range||o).start)||c2a(s.taskStates,c.taskStates))}},c2a=(t,e)=>{let n=0,r=0;for(let o of t)n=Math.max(n,o.state);for(let o of e)r=Math.max(r,o.state);return n-r};var SLe=O(require("vscode")),dut=class{getAllExtensions(){return SLe.extensions.all}async getAllCommands(e){return SLe.commands.executeCommand("_getAllCommands",e)}async getAllSettings(){return SLe.commands.executeCommand("_getAllSettings")}};var Md=require("vscode");var Lhe=class extends m9e{constructor(n,r){super();this._logService=n;this._remoteRepositoriesService=r;this.onDidOpenTextDocument=Md.workspace.onDidOpenTextDocument;this.onDidChangeTextDocument=Md.workspace.onDidChangeTextDocument;this.onDidOpenNotebookDocument=Md.workspace.onDidOpenNotebookDocument;this.onDidCloseNotebookDocument=Md.workspace.onDidCloseNotebookDocument;this.onDidCloseTextDocument=Md.workspace.onDidCloseTextDocument;this.onDidChangeWorkspaceFolders=Md.workspace.onDidChangeWorkspaceFolders;this.onDidChangeNotebookDocument=Md.workspace.onDidChangeNotebookDocument;this.onDidChangeTextEditorSelection=Md.window.onDidChangeTextEditorSelection}get textDocuments(){return Md.workspace.textDocuments}async openTextDocument(n){return await Md.workspace.openTextDocument(n)}get fs(){return Md.workspace.fs}async showTextDocument(n){await Md.window.showTextDocument(n)}async openNotebookDocument(n,r){return typeof n=="string"?await Md.workspace.openNotebookDocument(n,r):Jo(n,Md.workspace.notebookDocuments)||await Md.workspace.openNotebookDocument(n)}get notebookDocuments(){return Md.workspace.notebookDocuments}getWorkspaceFolders(){return Md.workspace.workspaceFolders?.map(n=>n.uri)??[]}getWorkspaceFolderName(n){let r=Md.workspace.getWorkspaceFolder(n);return r?r.name:""}asRelativePath(n,r){return Md.workspace.asRelativePath(n,r)}applyEdit(n){return Md.workspace.applyEdit(n)}ensureWorkspaceIsFullyLoaded(){return this._fullyLoadedPromise??=(async()=>{for(let n of this.getWorkspaceFolders())if(Gie(n)){this._logService.debug(`Preloading virtual workspace contents for ${n}`);try{let r=await this._remoteRepositoriesService.loadWorkspaceContents(n);this._logService.info(`loading virtual workspace contents resulted in ${r} for: ${n}`)}catch(r){this._logService.error(`Error loading virtual workspace contents for ${n}: ${r}`)}}})(),this._fullyLoadedPromise}async showWorkspaceFolderPicker(){if(this.getWorkspaceFolders())return Md.window.showWorkspaceFolderPick()}requestResourceTrust(n){return Md.workspace.requestResourceTrust(n)}requestWorkspaceTrust(n){return Md.workspace.requestWorkspaceTrust(n)}};Lhe=S([b(0,Z),b(1,iut)],Lhe);oR();var put=O(require("vscode"));Ue();var bN=O(require("vscode")),con="<<<<<<<",RWr="|||||||",l2a="=======",lon=">>>>>>>",TLe=class t{static scanDocument(e){let n=null,r=[];for(let o=0;o{let c=s[a+1]||n.splitter;return{header:o.range,decoratorContent:new bN.Range(o.rangeIncludingLineBreak.end,t.shiftBackOneCharacter(e,c.range.start,o.rangeIncludingLineBreak.end)),content:new bN.Range(o.rangeIncludingLineBreak.end,c.range.start),name:o.text.substring(RWr.length+1)}}),splitter:n.splitter.range,incoming:{header:n.endFooter.range,decoratorContent:new bN.Range(n.splitter.rangeIncludingLineBreak.end,t.shiftBackOneCharacter(e,n.endFooter.range.start,n.splitter.rangeIncludingLineBreak.end)),content:new bN.Range(n.splitter.rangeIncludingLineBreak.end,n.endFooter.range.start),name:n.endFooter.text.substring(lon.length+1)},range:new bN.Range(n.startHeader.range.start,n.endFooter.rangeIncludingLineBreak.end)}}static shiftBackOneCharacter(e,n,r){if(n.isEqual(r))return n;let o=n.line,a=n.character-1;return a<0&&(o--,a=e.lineAt(o).range.end.character),new bN.Position(o,a)}};var Mhe=class extends fe{constructor(n,r){super();this.gitService=n;this.ignoreService=r}async resolveMergeConflicts(n,r){if(r?.isCancellationRequested)return;let o=[],a=[],s=[];for(let c of n){if(await this.ignoreService.isCopilotIgnored(c,r))continue;let l=await put.workspace.openTextDocument(c);if(!TLe.containsConflict(l))continue;let u=TLe.scanDocument(l);if(u.length===0)continue;o.push(c);let d=u[0].current.name,p=u[0].incoming.name,m=await this.gitService.getMergeBase(c,d,p);m&&(a.push({uri:Y_(c,m),historyItemId:m}),s.push({start:{uri:Y_(c,m),historyItemId:m},end:{uri:Y_(c,d),historyItemId:d}}),s.push({start:{uri:Y_(c,m),historyItemId:m},end:{uri:Y_(c,p),historyItemId:p}}))}r?.isCancellationRequested||o.length>0&&await put.commands.executeCommand("workbench.action.chat.open",{mode:"agent",attachFiles:o,attachHistoryItemChanges:a,attachHistoryItemChangeRanges:s,query:"Resolve all merge conflicts"})}};Mhe=S([b(0,ei),b(1,Dt)],Mhe);var nE=O(require("vscode"));Ot();var mut=class{async add(e,n){let r=nE.workspace.getConfiguration("launch",e),o=r.get("configurations");n.configurations.length&&await r.update("configurations",[...n.configurations,...o||[]],nE.ConfigurationTarget.WorkspaceFolder);let a=r.get("inputs");n.inputs?.length&&await r.update("inputs",[...n.inputs,...a||[]],nE.ConfigurationTarget.WorkspaceFolder)}async show(e,n){let r=K.joinPath(e,".vscode","launch.json"),o;try{o=await nE.workspace.openTextDocument(r)}catch{return}let a;if(n)try{let s=o.getText(),c=[],l=!1;t9e(s,{onObjectBegin(u){c.push(u)},onObjectEnd(u,d){let p=c.pop();if(l){l=!1;let m=new I0(s),A=m.offsetToPosition(p),f=m.offsetToPosition(u+d);a=new nE.Range(A.lineNumber-1,A.column-1,f.lineNumber-1,f.column-1)}},onLiteralValue(u,d,p,m,A,f){if(u===n){let g=f();g[g.length-1]==="name"&&(l=!0)}}})}catch{}await nE.window.showTextDocument(o,{selection:a})}async launch(e){let n="configurations"in e&&e.configurations.length?e.configurations[0]:e;n&&await nE.debug.startDebugging(void 0,n)}async resolveConfigurationInputs(e,n,r){r||(r={isGenerating:()=>{},ensureTask:()=>Promise.resolve(!0),prompt:async(s,c)=>await nE.window.showInputBox({prompt:s,value:c,ignoreFocusOut:!0})});let o=new Map;for(let s of e.inputs||[]){let c=`\${input:${s.id}}`,l=await r.prompt(s.description,n?.get(c));if(l===void 0)return;o.set(c,l)}return{config:AX(e.configurations[0],s=>{if(typeof s=="string"){for(let[c,l]of o)s=s.replaceAll(c,l);return s}}),inputs:o}}};vi();Be();wr();ah();Be();var yN="activate_",BLe=yN+"embeddings",Cb=class t{constructor(e,n,r,o,a=[]){this.name=e;this.description=n;this.lastUsedOnTurn=r;this.metadata=o;this.contents=a;this.isExpanded=!1;if(!e.startsWith(yN))throw new Error(`Virtual tool name must start with '${yN}'`)}cloneWithNewName(e){let n=new t(e,this.description,this.lastUsedOnTurn,{...this.metadata},this.contents);return n.isExpanded=this.isExpanded,n}copyStateFrom(e){this.isExpanded=e.isExpanded,this.metadata.wasExpandedByDefault=e.metadata.wasExpandedByDefault,this.metadata.canBeCollapsed=e.metadata.canBeCollapsed,this.metadata.wasEmbeddingsMatched=e.metadata.wasEmbeddingsMatched,this.lastUsedOnTurn=e.lastUsedOnTurn}find(e){if(this.name===e)return{tool:this,path:[]};for(let n of this.contents)if(n instanceof t){let r=n.find(e);if(r)return r.path.unshift(this),r}else if(n.name===e)return{tool:n,path:[this]}}getLowestExpandedTool(){let e;for(let n of this.all())n instanceof t&&n.isExpanded&&(!e||n.lastUsedOnTurn!jz.hasOwnProperty(l.name)),r=e.filter(l=>jz.hasOwnProperty(l.name)),o=r.filter(l=>jz[l.name]!=="Core"),a=r.filter(l=>jz[l.name]==="Core"),s=zJ(o,l=>jz[l.name]);return[...Object.entries(s).flatMap(([l,u])=>u.lengtha.map(()=>{})))}return(await Promise.all(r)).flat()}async function f2a(t,e,n){let o=await new KQ.PromptRenderer(t,don,{toolGroups:e},t.acquireTokenizer()).render(void 0,n),a=await g2a(t,o,n),s=Array.from({length:e.length},()=>{});if(!a||!Array.isArray(a))return s;for(let c of a){let l=Number(c.groupIndex)-1;!isNaN(l)&&e[l]&&typeof c.groupName=="string"&&typeof c.summary=="string"&&(s[l]={name:A2a(c.groupName),summary:c.summary,tools:e[l]})}return s}var uon=class extends KQ.PromptElement{render(){let{tool:e}=this.props;return vscpp(vscppf,null,`${e.description}`,vscpp("br",null))}},don=class extends KQ.PromptElement{render(){return vscpp(vscppf,null,vscpp(KQ.SystemMessage,null,"Context: You are given multiple groups of tools that have been clustered together based on semantic similarity. Your task is to provide a descriptive name and summary for each group that accurately reflects the common functionality and purpose of the tools within that group.",vscpp("br",null),vscpp("br",null),"For each group, analyze the tools and determine what they have in common, what domain or functionality they serve, and how they might be used together. Create a concise but descriptive name and a comprehensive summary for each group.",vscpp("br",null)),vscpp(KQ.UserMessage,null,"You will be given ",this.props.toolGroups.length," groups of tools. For each group, provide a name and summary that describes the group's purpose and capabilities.",vscpp("br",null),vscpp("br",null),this.props.toolGroups.map((e,n)=>{let r=n+1;return vscpp(vscppf,null,``,vscpp("br",null),e.map(o=>vscpp(uon,{tool:o})),"",vscpp("br",null))}),vscpp("br",null),"Your response must follow the JSON schema:",vscpp("br",null),vscpp("br",null),"```",vscpp("br",null),JSON.stringify({type:"array",items:{type:"object",required:["groupIndex","groupName","summary"],properties:{groupIndex:{type:"integer",description:'The index of the group as provided above (e.g., "1", "2", etc.)',example:1},groupName:{type:"string",description:"A short, descriptive name for the group. It may only contain the characters a-z, A-Z, 0-9, and underscores.",example:"file_management_tools"},summary:{type:"string",description:"A comprehensive summary of the group capabilities, including what the tools do and how they can be used together. This may be up to five paragraphs long, be careful not to leave out important details.",example:"These tools provide comprehensive file management capabilities including reading, writing, searching, and organizing files and directories."}}}},null,2),vscpp("br",null),"```",vscpp("br",null),vscpp("br",null),"Provide descriptions for the groups presented above. You must include the exact groupIndex as shown in the input. You must generate a description for every group and each groupName must be unique.",vscpp("br",null)))}};async function g2a(t,e,n){let r=await t.makeChatRequest("summarizeVirtualTools",e.messages,void 0,n,6);if(r.type!=="success")return;for(let a of xh(r.value))try{return wE(a.code)}catch{}let o=r.value.indexOf("{");return wE(r.value.slice(o))||void 0}var h2a="copilot-fast",PWr=`Call this tool when you need access to a new category of tools. The category of tools is described as follows: `,NWr=` Be sure to call this tool if you need a capability related to the above.`,D$=class{constructor(e,n,r,o,a,s,c,l,u){this._endpointProvider=e;this._cache=n;this._telemetryService=r;this._logService=o;this.embeddingsComputer=a;this._configurationService=s;this._expService=c;this._toolEmbeddingsComputer=l;this.builtInToolGroupHandler=new HK}shouldTriggerBuiltInGrouping(e){let n=this._configurationService.getExperimentBasedConfig(H.Advanced.DefaultToolsGrouped,this._expService);return e.length>oUr&&n}async addGroups(e,n,r,o){if(!this.shouldTriggerBuiltInGrouping(r)&&r.lengthf.source instanceof Qbt?"ext_"+f.source.id:f.source instanceof _R?"mcp_"+f.source.label:HK.BUILT_IN_GROUP_KEY),c=new Map;for(let f of n.all())f instanceof Cb&&c.set(f.name,f);let l=new Gi,u=this._getPredictedTools(e,r,o).then(f=>({tools:f,durationMs:l.elapsed()})),d=s[HK.BUILT_IN_GROUP_KEY]||[],p=Object.entries(s).filter(([f])=>f!==HK.BUILT_IN_GROUP_KEY).filter(f=>f[1]!==void 0),m=[];if(this.shouldTriggerBuiltInGrouping(d)){let f=this.builtInToolGroupHandler.createBuiltInToolGroups(d);m.push(...f)}else m.push(...d);if(p.length>0){let f=m.length,g=sUr-f,h=this._allocateSlots(p,g),y=await Promise.all([...p].map(async([v,_])=>{let w=h.get(v)||0;return w>0?await this._processToolset(_,w,o):[]}));m.push(...y.flat())}if(this._cache.flush(),n.contents=D$.deduplicateGroups(m),p.length>0){let f=p.reduce((h,[,y])=>h+y.length,0),g=m.filter(h=>h instanceof Cb).length;this._telemetryService.sendMSFTTelemetryEvent("virtualTools.perToolsetGenerate",{},{toolsetsProcessed:p.length,toolsBefore:f,groupsAfter:g,builtinTools:d.length})}for(let f of n.all())if(f instanceof Cb){let g=c.get(f.name);g&&f.copyStateFrom(g)}await this._addEmbeddingMatchedTools(n,u)}async recomputeEmbeddingRankings(e,n,r){let o=new Gi,a=[...n.all()].filter(c=>!(c instanceof Cb)),s=this._getPredictedTools(e,a,r).then(c=>({tools:c,durationMs:o.elapsed()}));await this._addEmbeddingMatchedTools(n,s)}_addPredictedToolsGroup(e,n){let r=new Cb(BLe,"Tools with high predicted relevancy for this query",1/0,{wasEmbeddingsMatched:!0,wasExpandedByDefault:!0,canBeCollapsed:!1});r.isExpanded=!0;for(let a of n)r.contents.push(a);let o=e.contents.findIndex(a=>a.name===BLe);o>=0?e.contents[o]=r:e.contents.push(r)}async _addEmbeddingMatchedTools(e,n){let r=new Gi,o,a;try{let{tools:s,durationMs:c}=await n;a=c,this._addPredictedToolsGroup(e,s)}catch(s){o=s}finally{this._telemetryService.sendMSFTTelemetryEvent("virtualTools.expandEmbedding",{error:o?o.message:void 0},{blockingMs:r.elapsed(),computeMs:a,hadError:o?1:0})}}static deduplicateGroups(e){let n=new Set,r=[];for(let o of e){let a=o.name,s=1;for(;n.has(a);)s++,a=`${o.name}_${s}`;if(o instanceof Cb&&a!==o.name){let c=o.cloneWithNewName(a);n.add(a),r.push(c)}else n.add(a),r.push(o)}return r}_allocateSlots(e,n){let r=new Map;if(e.length>=n){for(let s=0;ss+c.length,0),a=n-e.length;for(let[s]of e)r.set(s,1);if(a>0){let s=e.map(([c,l])=>({toolsetKey:c,proportion:l.length/o,toolCount:l.length}));s.sort((c,l)=>l.proportion-c.proportion);for(let{toolsetKey:c,proportion:l}of s){let u=Math.round(l*a),d=Math.min(u,a);r.set(c,r.get(c)+d),a-=d}for(;a>0;)for(let{toolsetKey:c}of s){if(a<=0)break;r.set(c,r.get(c)+1),a--}}return r}async _processToolset(e,n,r){if(n>=e.length)return e;if(n===1){let a=(await this._generateBulkGroupDescriptions([e],r)).groups[0];return[new Cb(yN+a.name,PWr+a.summary+NWr,0,{},a.tools)]}return await this._generateEmbeddingBasedGroups(e,n,r)}async _getPredictedTools(e,n,r){if(!e)return[];let o=await this.embeddingsComputer.computeEmbeddings(bXt,[e],{},new Aa("VirtualToolGrouper::_getPredictedTools"),r);if(!o||o.values.length===0)return[];let a=o.values[0],s=n.filter(d=>d.source instanceof Qbt||d.source instanceof _R),c=await this._toolEmbeddingsComputer.retrieveSimilarEmbeddingsForAvailableTools(a,s,10,r);if(!c)return[];let l=new Map(n.map(d=>[d.name,d]));return c.map(d=>l.get(d)).filter(d=>d!==void 0)}async _generateEmbeddingBasedGroups(e,n,r){if(e.length<=wY)return[];let o=[];try{o=await this._toolEmbeddingsComputer.computeToolGroupings(e,n,r),this._logService.trace(`[virtual-tools] Embedding-based grouping created ${o.length} groups from ${e.length} tools`)}catch(l){throw this._logService.error(`Failed to create embedding-based groups: ${l}`),l}let a=o.filter(l=>l.length===1).map(l=>l[0]),s=o.filter(l=>l.length>1),c=await this._generateBulkGroupDescriptions(s,r);return this._logService.trace(`[virtual-tools] Embedding-based grouping created ${c.groups.length} groups from ${e.length} tools`),c.groups.map(l=>new Cb(yN+l.name,PWr+l.summary+NWr,0,{},l.tools)).concat(a)}async _generateBulkGroupDescriptions(e,n){let r=await Promise.all(e.map(u=>this._cache.getDescription(u))),o=[],a=[];for(let u of r)u.category?a.push(u.category):o.push(u);let s=await this._endpointProvider.getChatEndpoint(h2a),c=await DWr(s,o.map(u=>u.tools),n),l=0;for(let u=0;um.name).join(", ")}`,tools:p.tools}))}return{groups:a,missed:l}}};D$=S([b(0,tt),b(1,loe),b(2,Ee),b(3,Z),b(4,Ep),b(5,be),b(6,Fe),b(7,$Ae),b(8,j)],D$);function LWr(t,e){return e.getExperimentBasedConfigObservable(H.VirtualToolThreshold,t).map(n=>{let r=n??iw;return r<=0?1/0:r})}var Fhe=class{constructor(e,n,r){this._tools=e;this._instantiationService=n;this._telemetryService=r;this._root=new Cb(yN,"",1/0,{wasExpandedByDefault:!0});this._grouper=this._instantiationService.createInstance(D$);this._didToolsChange=!0;this._turnNo=0;this._trimOnNextCompute=!1;this._root.isExpanded=!0}get tools(){return this._tools}set tools(e){ru(this._tools,e,(n,r)=>n.name===r.name)||(this._tools=e,this._didToolsChange=!0)}didCall(e,n){let r=this._root.find(n);if(!r)return;let{path:o,tool:a}=r;for(let s of o)s.lastUsedOnTurn=this._turnNo;if(o.length>1&&this._telemetryService.sendMSFTTelemetryEvent("virtualTools.called",{callName:a.name},{turnNo:e,isVirtual:a instanceof Cb?1:0,depth:o.length-1,preExpanded:o.every(s=>s.metadata.wasExpandedByDefault)?1:0,wasEmbedding:o.some(s=>s.name===BLe)?1:0,totalTools:this._tools.length}),a instanceof Cb)return a.isExpanded=!0,new Zn([new rn(`Tools activated: ${[...a.tools()].map(s=>s.name).join(", ")}`)])}getContainerFor(e){let r=this._root.find(e)?.path.at(-1);return r===this._root?void 0:r}didTakeTurn(){this._turnNo++}didInvalidateCache(){this._trimOnNextCompute=!0}ensureExpanded(e){this._expandOnNext??=new Set,this._expandOnNext.add(e)}async compute(e,n){return await this._doCompute(e,n),[...this._root.tools()].filter(kFe(r=>r.name))}async computeAll(e,n){return await this._doCompute(e,n),this._root.contents}async _doCompute(e,n){if(this._didToolsChange&&(await this._grouper.addGroups(e,this._root,this._tools.slice(),n),this._didToolsChange=!1),this._expandOnNext){for(let o of this._expandOnNext)this._root.find(o)?.path.forEach(a=>{a.isExpanded=!0,a.lastUsedOnTurn=this._turnNo});this._expandOnNext=void 0}let r=iw;for(this._trimOnNextCompute&&(await this._grouper.recomputeEmbeddingRankings(e,this._root,n),r=aUr,this._trimOnNextCompute=!1),this._root.lastUsedOnTurn=1/0;Ta.length(this._root.tools())>r;){let o=this._root.getLowestExpandedTool();if(!o||!isFinite(o.lastUsedOnTurn))break;if(o.metadata.canBeCollapsed===!1){o.lastUsedOnTurn=1/0;continue}o.isExpanded=!1,o.metadata.wasExpandedByDefault=!1}this._trimOnNextCompute=!1}};Fhe=S([b(1,j),b(2,Ee)],Fhe);var Qhe=class{constructor(e,n,r){this._instantiationService=e;this._groups=new Tm(3);this.threshold=LWr(r,n)}create(e,n){let r=this._groups.get(e);if(r)return r.tools=n,r;let o=this._instantiationService.createInstance(Fhe,n);return this._groups.set(e,o),o}};Qhe=S([b(0,j),b(1,be),b(2,Fe)],Qhe);vi();var b2a=128,pon="virtToolGroupCache",Ohe=class{constructor(e){this._extContext=e;this._value=new Tm(b2a);this._changed=!1;let n=e.globalState.get(pon);if(n?.version===2)try{n.lru.forEach(([r,o])=>this._value.set(r,o))}catch{}}async clear(){this._changed=!1,this._value.clear(),await this._extContext.globalState.update(pon,void 0)}async flush(){if(!this._changed)return Promise.resolve();this._changed=!1;let e={version:2,lru:this._value.toJSON()};await this._extContext.globalState.update(pon,e)}async getDescription(e){let n=await this.getKey(e),r=this._value.get(n);return{category:r?this.hydrate(e,r):void 0,tools:e,update:o=>{this._changed=!0,this._value.set(n,{summary:o.summary,name:o.name})}}}hydrate(e,n){return{summary:n.summary,name:n.name,tools:e}}async getKey(e){let n=e.map(o=>o.name+"\0"+o.description).sort().join(","),r=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(n));return zX(Pl.wrap(new Uint8Array(r)))}};Ohe=S([b(0,ut)],Ohe);function MWr(t,e){let n=e.extensionMode===Aut.ExtensionMode.Test;t.define(tC,new Qe(vZe)),t.define(sl,new xOe),t.define(xZe,new $lt),t.define(PAe,new zlt),t.define(Zt,new Afe),t.define(yt,new gfe),t.define(h_n,new X3e),t.define(wi,new Qe(Ehe)),t.define(Kne,new Qe(Ihe)),t.define(ma,new Qe(oee)),t.define(x_,new Qe(mie)),t.define(iut,new rut),t.define(co,new cut),t.define(Vd,new Qe(Nhe)),t.define(_D,new Qe(uut)),t.define(pWr,n&&!$c?new Jlt:new Xlt),t.define(eC,n&&!$c?new nZe:new Klt),t.define(ut,e),t.define(Y1,new dut),t.define(T_,{_serviceBrand:void 0,maxResponseTokens:void 0,temperature:.1,topP:1,rejectionMessage:Aut.l10n.t("Sorry, but I can only assist with programming related questions.")}),t.define(h8,new Qe(qlt)),t.define(be,new Qe(_he)),t.define(Z,new Qe(VFe,[[new PZe(e)]])),t.define(f3,new Qe(yhe)),t.define(lI,new Qe(Phe)),t.define(is,new Qe(whe)),t.define(Ua,$c?new Qe(o4):new Qe(g3)),t.define(q0,new Qe(The)),t.define(Ga,new Qe(Wlt)),t.define(og,new Qe(Zlt)),t.define(Ql,new Qe(vhe)),t.define(dg,new Qe(F$e)),t.define(Te,new Qe(Lhe)),t.define(boe,new Qe(xhe)),t.define(EA,new Qe(jlt)),t.define($5,new Qe($se,[!0])),t.define(sZe,new Qe(Kse,[!0])),t.define(U3e,new Qe(O3e)),t.define(kh,new Qe(rie)),t.define(hie,new Qe(gie)),t.define(wh,new Qe(ire)),t.define(lq,new Qe(mut)),t.define(EI,new Qe(Dhe)),t.define(w_,new Qe(pie)),t.define(Vt,new Qe(zne)),t.define(E5,new Qe(khe)),t.define(tut,new Qe(R$)),t.define(qtt,new Qe(Rhe)),t.define(Sot,new Glt),t.define($d,new Qe(bhe)),t.define(Ep,new Qe(Che)),t.define(coe,new Qe(Qhe)),t.define($Ae,new Qe(qAe)),t.define(loe,new Qe(Ohe)),t.define(YWe,new Qe(Mhe)),t.define(ED,new Qe(Eie))}function gsi(t,e){let n=e.extensionMode===fO.ExtensionMode.Test;MWr(t,e),t.define(m0,new Qe(rte)),t.define(m1,new iUe),t.define(ny,new uat),t.define(cl,new Qe(Jee,[!0])),t.define(Xn,new Qe(hhe)),t.define(wL,new Flt),t.define(are,new Qe(ore)),t.define(NUe,new Qe(sre)),t.define(nj,new Qe(Ahe)),t.define(Fr,new Qe(phe)),t.define(wp,new Qe(dat)),t.define(nr,new Qe(SP,[void 0])),t.define(ic,new Qe(mfe)),t.define(Mr,new Qe(pfe)),t.define(NL,new Qe(wfe)),t.define(k3e,new Qe(zee,[void 0,void 0]));let r=e.extension.packageJSON.internalAIKey??"",o=e.extension.packageJSON.internalLargeStorageAriaKey??"",a=e.extension.packageJSON.ariaKey??"";n||$c?(Asi(t,e,r,o,a),t.define(oL,eDn(fO.env.devDeviceId))):(Asi(t,e,r,o,a),t.define(oL,new Qe(Qne))),$c?(t.define(at,new Qe(afe,[XRn()])),t.define(tt,new Qe(Llt)),t.define(Dt,new Qe(GFe))):(t.define(at,new Qe(sfe)),t.define(tt,new Qe(E$)),t.define(Dt,new Qe(_fe))),t.define(klt,new Qe(Ilt)),t.define(Ai,new Qe(kat,[!0])),t.define(kw,new Qe(_re)),t.define(KUr,new Qe(dfe)),t.define(Jb,new Qe(Dre)),t.define($ie,new Qe(ufe)),t.define(Ih,new Qe(Cre)),t.define(w$r,new Qe(DY)),t.define(cg,new Qe(PY)),t.define(BAe,new Qe(TAe)),t.define(ylt,new Qe(Zge)),t.define(EAe,new Qe(ghe)),t.define(aR,new Qe(Tfe)),t.define(ei,new Qe(jk)),t.define(MD,new Qe(lhe)),t.define(_se,new Qe(che)),t.define(yE,new Qe(ffe)),t.define(HWe,new Qe(ohe)),t.define(Qqe,new Qe(ehe)),t.define(xlt,new Qe(Xge)),t.define(Fm,new Qe(Vge)),t.define(lat,new Qe(lfe)),t.define(cfe,new Qe(Clt)),t.define(kp,new Qe(Yge)),t.define(f0,new Qe(Pne)),t.define(aoe,new Qe(ooe)),t.define(Ip,new Qe(C$)),t.define(od,new Qe(Vee)),t.define(C2,new Qe(hpe)),t.define(_Xt,new Qe(zAe,[!0])),t.define(V$e,new Qe(Qie)),t.define(Zie,new Qe(Wie)),t.define(jie,new Qe(zie)),t.define(S_,new Qe(roe)),t.define(VWe,new Qe(mhe)),t.define(kSe,new Qe(nce)),t.define(ww,new Qe(uhe)),t.define(uqe,new Qe(Ere)),t.define(vce,new Qe(yce)),t.define(Wit,new Qe(nAe)),t.define(Xit,new Qe(sAe)),t.define(Jit,new Qe(aAe)),t.define(df,new Qe(wie)),t.define(E$e,new Qe(xfe)),t.define(bre,new Qe(hre)),t.define(Wre,new Qe($x)),t.define(Rm,new Qe(Slt)),t.define(rat,new Qe(Qlt)),t.define(E8,new Qe(kfe)),t.define(LUe,new Qe(ure)),t.define(x8,new Qe(Oie)),t.define(qie,new Qe(Uie)),t.define(y8,new Qe(Efe)),t.define(Tlt,new Qe(rhe)),t.define(bpe,new Qe(QP)),t.define(_tt,new Qe(ben.Manager)),t.define(sU,new Qe(Kge)),t.define(Ttt,new Qe(the)),t.define(aee,new Qe(u9)),t.define(QHr,new Qe(vlt));let s=e.globalStorageUri?cpn.join(e.globalStorageUri.fsPath,"agent-traces.db"):cpn.join(fsi.tmpdir(),"copilot-agent-traces.db"),c=new eot(s);t.define(tot,c);let l=fO.workspace.getConfiguration("github.copilot.chat.otel"),u=O0t({env:process.env,settingEnabled:l.get("enabled"),settingExporterType:l.get("exporterType"),settingOtlpEndpoint:l.get("otlpEndpoint"),settingCaptureContent:l.get("captureContent"),settingOutfile:l.get("outfile")||void 0,settingDbSpanExporter:l.get("dbSpanExporter.enabled"),extensionVersion:e.extension.packageJSON.version??"0.0.0",sessionId:fO.env.sessionId});if(u.enabled){let{NodeOTelService:d}=(msi(),ya(psi)),p=(m,A)=>{m==="error"?console.error(A):m==="warn"?console.warn(A):console.info(A)};t.define(On,new d(u,p,u.dbSpanExporter?c:void 0))}else t.define(On,new xat(u))}function EUa(t,e){fO.ExtensionMode.Production===e.extensionMode&&!$c?t.define(Fe,new Qe(Nfe)):t.define(Fe,new WFe)}function Asi(t,e,n,r,o){fO.ExtensionMode.Production===e.extensionMode&&!$c?t.define(Ee,new Qe(Hge,[e.extension.packageJSON.name,n,r,o,k$r,S$r])):t.define(Ee,new vie),EUa(t,e)}oR();var pye=O(Lt()),vsi=O(Lee());wr();dn();vi();So();pa();Be();var vp=O(Ye());var ysi=250,hsi=100,bsi=25,dye=class extends vp.PromptElement{constructor(n,r){super(n);this._promptPathRepresentationService=r}render(n,r){let o=this.props.snapshotAtRequest,a=this.props.data.selection,s=this.props.isLargeFile??!1,c=this.props.readToolName,l=new qi(this.props.request.references),u=this._promptPathRepresentationService.getFilePath(o.uri);return vscpp(vscppf,null,vscpp(vp.SystemMessage,{priority:1e3},vscpp(lo,null),vscpp(Kr,null),vscpp(z,{name:"instructions"},"You are an AI coding assistant that is used for quick, inline code changes. Changes are scoped to a single file or to some selected code in that file. You can ONLY edit that file and must use a tool to make these edits.",vscpp("br",null),"The user is interested in code changes grounded in the user's prompt. So, focus on coding, no wordy explanations, and do not ask back for clarifications.",vscpp("br",null),"Make all changes in a single invocation of the edit-tool (there is no tool calling loop).",vscpp("br",null),s&&c&&vscpp(vscppf,null,"The file is large and only a portion is shown below. If you need to see more of the file to make the requested change, use the ",c," tool to read additional parts of this file before editing. Do NOT use it to read other files.",vscpp("br",null)),"Do not make code changes that are not directly and logically related to the user's prompt. When you cannot make a code change, reply with just a few words.",vscpp("br",null)),vscpp("cacheBreakpoint",{type:Wv})),vscpp(vp.UserMessage,null,s?vscpp(vft,{snapshot:o,selection:a,filepath:u}):vscpp(vscppf,null,vscpp(vscppf,null,"The filepath is `",u,"` and this is its content:",vscpp("br",null)),vscpp(z,{name:"file"},vscpp(hn,{includeFilepath:!1,languageId:o.languageId,uri:o.uri,references:[new vp.PromptReference(o.uri,void 0,void 0)],code:o.getText()}))),a.isEmpty?vscpp(lpn,{snapshot:o,position:a.start}):vscpp(upn,{snapshot:o,selection:a}),vscpp(Ds,{flexGrow:3,priority:898,chatVariables:l,useFixCookbook:!0}),vscpp(z,{name:"reminder"},a.isEmpty?vscpp(vscppf,null,"Make changes or write new code anywhere in the file.",vscpp("br",null)):vscpp(vscppf,null,"Focus on the selection, and try to make changes to the selected code and its context.",vscpp("br",null)),"Do not make code changes that are not directly and logically related to the user's prompt.",vscpp("br",null),"ONLY change the `",u,"` file, make all changes in a single invocation of the edit-tool, and change NO other file."),vscpp("cacheBreakpoint",{type:Wv})),vscpp(vp.UserMessage,null,vscpp(z,{name:"prompt"},vscpp(Cc,{flexGrow:7,priority:900,chatVariables:l,query:this.props.request.prompt})),vscpp("cacheBreakpoint",{type:Wv})),vscpp(dpn,{previousRounds:this.props.previousRounds,hasFailedEdits:this.props.hasFailedEdits,data:this.props.data,documentVersionAtRequest:this.props.snapshotAtRequest.version,isLargeFile:this.props.isLargeFile??!1,selection:a,filepath:u}))}};dye=S([b(1,Vt)],dye);var vft=class extends vp.PromptElement{render(){let{snapshot:e,selection:n,filepath:r}=this.props,o=e.lineCount,a,s;if(n.isEmpty){let d=n.start.line,p=Math.floor(hsi*.4),m=hsi-p;a=Math.max(0,d-p),s=Math.min(o-1,d+m)}else{let d=n.start.line,p=n.end.line;a=Math.max(0,d-bsi),s=Math.min(o-1,p+bsi)}let c=e.getText(new gt(n.start.with({line:a,character:0}),n.start.with({line:s,character:Number.MAX_SAFE_INTEGER}))),l=a+1,u=s+1;return vscpp(vscppf,null,vscpp(vscppf,null,"The filepath is `",r,"` (",o," lines total). Showing lines ",l,"-",u,":",vscpp("br",null)),vscpp(z,{name:"file"},vscpp(hn,{includeFilepath:!1,languageId:e.languageId,uri:e.uri,references:[new vp.PromptReference(e.uri,void 0,void 0)],code:c})))}},lpn=class extends vp.PromptElement{render(e,n,r,o){let a=this.props.position.line,s=this.props.position.line,c=0,l=!1;for(;a>0&&(l=l||!this.props.snapshot.lineAt(a).isEmptyOrWhitespace,a--,c++,!(c>=3&&l)););for(c=0,l=!1;s=3&&l)););let u=this.props.snapshot.getText(new gt(this.props.position.with({line:a,character:0}),this.props.position)),d=this.props.snapshot.getText(new gt(this.props.position,this.props.position.with({line:s,character:Number.MAX_SAFE_INTEGER}))),p=`${u}$CURSOR$${d}`;return vscpp(vscppf,null,vscpp(z,{name:"file-cursor-context"},vscpp(hn,{includeFilepath:!1,languageId:this.props.snapshot.languageId,uri:this.props.snapshot.uri,references:[new vp.PromptReference(this.props.snapshot.uri,void 0,void 0)],code:p})))}},upn=class extends vp.PromptElement{render(e,n,r,o){let a=this.props.snapshot.getText(this.props.selection.with({start:this.props.selection.start.with({character:0}),end:this.props.selection.end.with({character:Number.MAX_SAFE_INTEGER})}));return vscpp(vscppf,null,vscpp(z,{name:"file-selection"},vscpp(hn,{includeFilepath:!1,languageId:this.props.snapshot.languageId,uri:this.props.snapshot.uri,references:[new vp.PromptReference(this.props.snapshot.uri,void 0,void 0)],code:a})))}},dpn=class extends vp.PromptElement{render(){if(this.props.previousRounds.length===0)return;let e=this.props.data.document;return vscpp(vscppf,null,this.props.previousRounds.map(n=>{let r=(0,vp.useKeepWith)();return vscpp(vscppf,null,vscpp(vp.AssistantMessage,{toolCalls:n.calls.map(([o])=>({type:"function",id:o.id,function:{name:o.name,arguments:o.arguments},keepWith:r}))}),n.calls.map(([o,a])=>vscpp(r,null,vscpp(vp.ToolMessage,{toolCallId:o.id},vscpp(v0,{content:a.content,toolCallId:o.id})))))}),this.props.hasFailedEdits&&vscpp(vp.UserMessage,null,e.version===this.props.documentVersionAtRequest&&vscpp(vscppf,null,vscpp(z,{name:"feedback"},"Editing this file did not produce the desired result. No changes were made. Understand the previous edit attempts and the original file content, and ",vscpp("br",null),"produce a better edit.",vscpp("br",null))),e.version!==this.props.documentVersionAtRequest&&vscpp(vscppf,null,vscpp(z,{name:"feedback"},"Editing this file did not produce the desired result. Understand the previous edit attempts and the current file content, and ",vscpp("br",null),"produce a better edit. This is the current file content:",vscpp("br",null)),this.props.isLargeFile?vscpp(vft,{snapshot:xr.create(e),selection:this.props.selection,filepath:this.props.filepath}):vscpp(z,{name:"file"},vscpp(hn,{includeFilepath:!1,languageId:e.languageId,uri:e.uri,references:[new vp.PromptReference(e.uri,void 0,void 0)],code:e.getText()})))))}};yr();fr();Be();var YB=O(Ye());var _ft=class extends YB.PromptElement{render(){let e=this.props.scenario==="generate"?"generating new code from scratch based on a user request":"editing and improving existing code based on a user request";return vscpp(vscppf,null,vscpp(YB.SystemMessage,{priority:1e3},"You are an expert in writing short, catchy, and encouraging progress messages for a coding assistant.",vscpp("br",null),"The messages are shown to users while they wait for an AI to ",e,".",vscpp("br",null),vscpp("br",null),vscpp(Kr,null),vscpp(kn,null),vscpp("br",null),"Guidelines for the messages:",vscpp("br",null),"- Each message should be 2-4 words",vscpp("br",null),"- Be encouraging and slightly playful",vscpp("br",null),"- Reference coding/programming themes",vscpp("br",null),"- Avoid technical jargon that would confuse beginners",vscpp("br",null),"- Do not use emojis",vscpp("br",null),"- Do not use punctuation at the end",vscpp("br",null),"- Each message should be unique and different from the others",vscpp("br",null),"- Return messages as a JSON array of strings, nothing else",vscpp("br",null),vscpp("br",null),"Examples of good progress messages:",vscpp("br",null),"- Warming up the algorithms",vscpp("br",null),"- Brewing some fresh code",vscpp("br",null),"- Crafting your solution",vscpp("br",null),"- Thinking through the logic",vscpp("br",null),"- Almost there, hang tight",vscpp("br",null)),vscpp(YB.UserMessage,{priority:900},"Please generate exactly ",this.props.count,' unique progress messages for the "',this.props.scenario,' code" scenario.',vscpp("br",null),"Return only a JSON array of strings, no other text."))}},Cft=class extends YB.PromptElement{render(){let e=this.props.selectedCode?"editing existing code":"generating new code";return vscpp(vscppf,null,vscpp(YB.SystemMessage,{priority:1e3},"You are an expert in writing short, catchy, and encouraging progress messages for a coding assistant.",vscpp("br",null),"The user is waiting for an AI to help them with ",e,".",vscpp("br",null),vscpp("br",null),vscpp(Kr,null),vscpp(kn,null),vscpp("br",null),"Guidelines for the message:",vscpp("br",null),"- The message should be 2-5 words",vscpp("br",null),"- Make it specific to what the user is trying to do based on their prompt",vscpp("br",null),"- Be encouraging and slightly playful",vscpp("br",null),"- You may reference the programming language (",this.props.languageId,") if relevant",vscpp("br",null),"- Avoid technical jargon that would confuse beginners",vscpp("br",null),"- Do not use emojis",vscpp("br",null),"- Do not use punctuation at the end",vscpp("br",null),"- Return only the message text, nothing else",vscpp("br",null),vscpp("br",null),"Examples of good contextual progress messages:",vscpp("br",null),'- For "add a function": Crafting your function',vscpp("br",null),'- For "fix the bug": Hunting down the bug',vscpp("br",null),'- For "add comments": Documenting the code',vscpp("br",null),'- For "refactor this": Polishing your code',vscpp("br",null),"- For Python file: Pythonizing your logic",vscpp("br",null)),vscpp(YB.UserMessage,{priority:900},vscpp(z,{name:"prompt"},this.props.prompt),this.props.selectedCode?vscpp(z,{name:"selected-code"},vscpp(hn,{includeFilepath:!0,languageId:this.props.languageId,uri:this.props.uri,references:[new YB.PromptReference(this.props.uri,void 0,void 0)],code:this.props.selectedCode})):vscpp(z,{name:"file",attrs:{name:this.props.fileName}}),vscpp("br",null),"Generate a single short progress message that is specific to this request."))}};var IUa=10,kUa=3,KB=class{constructor(e,n,r,o){this._logService=e;this._endpointProvider=n;this._instantiationService=r;this._envService=o;this._caches=new Map;this._pendingFetches=new Map;this._caches.set("generate",{messages:[...KB._FALLBACK_GENERATE],fetchInProgress:!1}),this._caches.set("edit",{messages:[...KB._FALLBACK_EDIT],fetchInProgress:!1}),this.prewarm()}static{this._FALLBACK_GENERATE=["Working..."]}static{this._FALLBACK_EDIT=["Working..."]}getNextMessage(e){let n=this._caches.get(e);if(!n||n.messages.length===0){let s=e==="generate"?KB._FALLBACK_GENERATE:KB._FALLBACK_EDIT;return s[Math.floor(Math.random()*s.length)]}let r=Math.floor(Math.random()*n.messages.length),o=n.messages[r],a=[...n.messages];return a.splice(r,1),this._caches.set(e,{messages:a,fetchInProgress:n.fetchInProgress}),a.length0&&r.length<60)return r}prewarm(){this._triggerBackgroundFetch("generate"),this._triggerBackgroundFetch("edit")}_triggerBackgroundFetch(e){if(this._pendingFetches.has(e)||this._envService.isSimulation())return;let n=this._caches.get(e);n&&this._caches.set(e,{messages:n.messages,fetchInProgress:!0});let r=this._fetchMessages(e).finally(()=>{this._pendingFetches.delete(e);let o=this._caches.get(e);o&&this._caches.set(e,{messages:o.messages,fetchInProgress:!1})});this._pendingFetches.set(e,r)}async _fetchMessages(e){try{let n=await this._endpointProvider.getChatEndpoint("copilot-fast"),r={scenario:e,count:IUa},{messages:o}=await Tu(this._instantiationService,n,_ft,r),a=await n.makeChatRequest2({debugName:"progressMessages",messages:o,finishedCb:void 0,location:4,userInitiatedRequest:!1,isConversationRequest:!1},Yt.None);if(a.type==="success"){let s=this._parseMessages(a.value);if(s.length>0){let l=this._caches.get(e)?.messages??[];this._caches.set(e,{messages:[...l,...s],fetchInProgress:!1}),this._logService.trace(`[InlineChatProgressMessages] Fetched ${s.length} messages for ${e}`)}}else this._logService.warn(`[InlineChatProgressMessages] Failed to fetch messages for ${e}: ${a.reason}`)}catch(n){this._logService.error(`[InlineChatProgressMessages] Error fetching messages for ${e}`,n)}}_parseMessages(e){try{let n=e.trim(),r=n,o=n.match(/```(?:json)?\s*([\s\S]*?)```/);o&&(r=o[1].trim());let a=JSON.parse(r);if(Array.isArray(a)&&a.every(s=>typeof s=="string"))return a.filter(s=>s.length>0&&s.length<50)}catch(n){this._logService.error("[InlineChatProgressMessages] Failed to parse response as JSON",n)}return[]}};KB=S([b(0,Z),b(1,tt),b(2,j),b(3,Zt)],KB);var wft="inline_chat_exit",JB=class{constructor(e,n,r,o,a,s,c,l,u,d,p,m){this._instantiationService=e;this._endpointProvider=n;this._authenticationService=r;this._logService=o;this._toolsService=a;this._ignoreService=s;this._editSurvivalTrackerService=c;this._intentService=l;this._configurationService=u;this._parserService=d;this._experimentationService=p;this._octoKitService=m;this.id=JB.ID;this.locations=[4];this.description="";this._progressMessages=this._instantiationService.createInstance(KB)}static{this.ID="inlineChat"}static{this._EDIT_TOOLS=new Set(["apply_patch","insert_edit_into_file","replace_string_in_file","multi_replace_string_in_file"])}async handleRequest(e,n,r,o,a,s,c,l){if(Nc(n.location2 instanceof Wf),Nc(a),await this._ignoreService.isCopilotIgnored(n.location2.document.uri,o))return{errorDetails:{message:pye.t("inlineChat.ignored","Copilot is disabled for this file.")}};let u=await this._endpointProvider.getChatEndpoint(n);return u.supportsToolCalls?this._configurationService.getNonExtensionConfig("inlineChat.enableV2")?this._handleRequestWithNewWorld(u,e,n,r,o,a,l):this._handleRequestWithOldWorld(e,n,r,o,a,l):{errorDetails:{message:pye.t("inlineChat.model","{0} cannot be used for inline chat",u.name)}}}async _handleRequestWithOldWorld(e,n,r,o,a,s){let c=!1;r=Ml.spy(r,p=>{p instanceof cu&&(c=!0)});let l=await this._selectIntent(e.turns,a,n);t0(n.prompt)&&(n={...n,prompt:l.description});let d=await this._instantiationService.createInstance(B_,l,e,n,r,o,a,4,s,void 0,void 0).getResult();return!c&&!d.errorDetails&&await this._toolsService.invokeTool(wft,{toolInvocationToken:n.toolInvocationToken,input:void 0},o),d}async _selectIntent(e,n,r){if(r.command){let a=this._intentService.getIntent(r.command,4);if(a)return a}let o;return n&&r.attempt===0&&e.length===1&&(n.selection.isEmpty&&n.document.lineAt(n.selection.start.line).text.trim()===""?o="generate":!n.selection.isEmpty&&n.selection.start.line!==n.selection.end.line&&(o="edit")),o?this._intentService.getIntent(o,4)??this._intentService.unknownIntent:this._intentService.unknownIntent}async _handleRequestWithNewWorld(e,n,r,o,a,s,c){Nc(r.location2 instanceof Wf),Nc(s);let l=this._editSurvivalTrackerService.initialize(r.location2.document);o=Ml.spy(o,f=>{f instanceof cu&&l.collectAIEdits(f.edits)});let u=!0,d=MR(this._configurationService.getExperimentBasedConfig(H.Advanced.InlineChatSelectionRatioThreshold,this._experimentationService),0,1);if(!s.selection.isEmpty&&d>0&&p4(s.document.languageId)){let f=await ty.create(this._parserService,s.document,s.fileIndentInfo,s.selection,0),{adjusted:g,original:h}=f.offsetSelections,y=h.length/g.length;y<=1&&y>=d&&(r={...r,command:"edit"},u=!1)}let p=this._progressMessages.getContextualMessage(r.prompt,s,a);vo(1e3,a).then(async()=>{let f=await p;o.progress(f)});let m;try{m=await(u?this._instantiationService.createInstance(QMe,this):this._instantiationService.createInstance(OMe,this)).executeEdit(e,n,r,o,a,s,c)}catch(f){return this._logService.error(f,"InlineChatIntent: prompt rendering failed"),{errorDetails:{message:f instanceof vsi.BudgetExceededError?pye.t("Sorry, this document is too large for inline chat."):Mm(f)}}}if(a.isCancellationRequested)return R9;if(m.needsExitTool&&(this._logService.warn("[InlineChat], BAIL_OUT because of needsExitTool"),await this._toolsService.invokeTool(wft,{toolInvocationToken:r.toolInvocationToken,input:{response:m.lastResponse.type==="success"?m.lastResponse.value:void 0}},a)),n.getLatestTurn().setMetadata(new s_(void 0,{...s,query:r.prompt,intent:this},m.telemetry.telemetryMessageId,m.telemetry,l)),m.errorMessage)return{errorDetails:{message:m.errorMessage}};if(m.lastResponse.type!=="success"){let f=await this._octoKitService.getGitHubOutageStatus(),g=Lb(m.lastResponse,(await this._authenticationService.getCopilotToken()).copilotPlan,f);return{errorDetails:{message:g.message,responseIsFiltered:g.responseIsFiltered}}}return{}}invoke(){throw new TypeError}};JB=S([b(0,j),b(1,tt),b(2,at),b(3,Z),b(4,Xn),b(5,Dt),b(6,w_),b(7,kw),b(8,be),b(9,Ai),b(10,Fe),b(11,Ua)],JB);var QMe=class{constructor(e,n,r,o){this._intent=e;this._instantiationService=n;this._logService=r;this._toolsService=o;this.id=JB.ID;this.locations=[4];this.description=""}async executeEdit(e,n,r,o,a,s,c){Nc(r.location2 instanceof Wf),Nc(s);let l=s.document.lineCount>ysi,u=await this._getAvailableTools(r,l),d=[],p=0,m=[],A=0,f,g,h;for(;;){let _=await en.create(this._instantiationService,e,dye,{request:r,previousRounds:d,hasFailedEdits:p>0,snapshotAtRequest:s.document,data:r.location2,exitToolName:wft,isLargeFile:l,readToolName:l?"read_file":void 0}).render(void 0,a,{trace:!0}),w=u.length>0?await e.acquireTokenizer().countToolTokens(u):0;f=c.makeRequest(this._intent,4,n,_.messages,_.tokenCount,_.references,e,[],u.length,w),o=Ml.spy(o,k=>{k instanceof cu&&f.markEmittedEdits(k.uri,k.edits)});let x=await this._makeRequestAndRunTools(e,r,o,_.messages,u,f,a);h=new s4(f.editCount>0?"inlineEdit":"none",[]),g=x.fetchResult;{let k=g.type==="success"?g.value:"";f.sendTelemetry(g.requestId,g.type,k,h,x.toolCalls),m.push(BL.create({response:k,toolCalls:x.toolCalls,toolInputRetry:p}))}if(x.toolCalls.length===0)break;let E=[];for(let k of x.toolCalls){let T=x.allCallResults.get(k.id);T&&E.push([k,T])}if(d.push({calls:E}),!x.toolCalls.some(k=>k.name!=="read_file")){if(A++,A>9){this._logService.warn("Aborting inline chat edit: too many read-only rounds");break}continue}if(x.failedEdits.length===0||a.isCancellationRequested)break;if(p+=x.failedEdits.length,p>5){this._logService.error("Aborting inline chat edit: too many failed edit attempts");break}}f.sendToolCallingTelemetry(m,u,a.isCancellationRequested?"cancelled":g.type);let y=g.type==="success"&&(m.length===0||m.length>0&&m[m.length-1].toolCalls.length===0);return!y&&p>0&&f.editCount===0&&g.type==="success"?{lastResponse:g,telemetry:f,needsExitTool:!1,errorMessage:pye.t("Failed to edit the file. The requested change could not be applied.")}:{lastResponse:g,telemetry:f,needsExitTool:y}}async _makeRequestAndRunTools(e,n,r,o,a,s,c){let l={tool_choice:"auto",tools:E3(e.family,a.map(f=>({type:"function",function:{name:f.name,description:f.description,parameters:f.inputSchema&&Object.keys(f.inputSchema).length?f.inputSchema:void 0}})),(f,g)=>{this._logService.warn(`Tool ${f} failed validation: ${g}`)})},u=[],d=[],p=new Map,m=[],A=await e.makeChatRequest2({debugName:"InlineChat2Intent",messages:o,userInitiatedRequest:!0,location:4,requestOptions:l,telemetryProperties:{messageId:s.telemetryMessageId,conversationId:s.sessionId,messageSource:this._intent.id},finishedCb:async(f,g,h)=>{if(s.markReceivedToken(),!$ft(h.copilotToolCalls))return;let y=h.copilotToolCalls.find(_=>_.name===wft),v=y?[y]:h.copilotToolCalls;for(let _ of v){u.push(_);let w=this._toolsService.validateToolInput(_.name,_.arguments);if(V8e(w)){this._logService.warn(`Tool ${_.name} invocation failed validation: ${w}`);let x=new Zn([new rn(w.error)]);p.set(_.id,x),d.push([_,x]);continue}m.push((async()=>{try{let x=xxn(w)?w.inputObj:JSON.parse(_.arguments),E=this._toolsService.getCopilotTool(_.name);E?.resolveInput&&(x=await E.resolveInput(x,{request:n,stream:r,query:n.prompt,chatVariables:new qi([...n.references]),history:[],allowedEditUris:n.location2 instanceof Wf?new Ji([n.location2.document.uri]):void 0},1));let I=await this._toolsService.invokeToolWithEndpoint(_.name,{input:x,toolInvocationToken:n.toolInvocationToken,chatStreamToolCallId:_.id.split("__vscode")[0]},e,c);p.set(_.id,I),I.hasError&&(d.push([_,I]),r.progress(pye.t("Looking not yet good, trying again..."))),this._logService.trace(`Tool ${_.name} invocation result: ${JSON.stringify(I)}`)}catch(x){this._logService.error(x,`Tool ${_.name} invocation failed`);let E=new Zn([new rn(Mm(x))]);p.set(_.id,E),d.push([_,E])}})())}}},c);return await Promise.allSettled(m),{fetchResult:A,toolCalls:u,failedEdits:d,allCallResults:p}}async _getAvailableTools(e,n){Nc(e.location2 instanceof Wf);let r=new Set(JB._EDIT_TOOLS);e.location2.selection.isEmpty||r.delete("multi_replace_string_in_file");let o={...e,tools:new Map(Array.from(r).map(l=>this._toolsService.getTool(l)).filter(zo).map(l=>[l,!0]))},s=(await this._instantiationService.invokeFunction(ZTt,o)).filter(l=>r.has(l.name));if(s.length===0)throw this._logService.error("MISSING inline chat edit tools"),new Error("MISSING inline chat edit tools");s.length>1&&(s=s.filter(l=>l.name!=="insert_edit_into_file"));let c=[...s];if(n){let l=this._toolsService.getTool("read_file");if(l)c.push(l);else throw this._logService.error("MISSING inline chat read tool for large file"),new Error("MISSING inline chat read tool for large file")}return c}};QMe=S([b(1,j),b(2,Z),b(3,Xn)],QMe);var OMe=class{constructor(e,n){this._intent=e;this._instantiationService=n;this.id=JB.ID;this.locations=[4];this.description=""}async executeEdit(e,n,r,o,a,s,c){Nc(r.location2 instanceof Wf);let l=new _3(r.location2.document.uri),d=await en.create(this._instantiationService,e,A8,{ignoreCustomInstructions:!0,documentContext:s,promptContext:{query:r.prompt,chatVariables:new qi([...r.references]),history:n.turns.slice(0,-1)}}).render(void 0,a,{trace:!0}),p=d.metadata.get(IA)?.replyInterpreter??new u8,m=d.metadata.getAll(hD),A=c.makeRequest(this._intent,4,n,d.messages,d.tokenCount,d.references,e,m,0,0);o=Ml.spy(o,w=>{w instanceof cu&&A.markEmittedEdits(w.uri,w.edits)});let f,g=d.metadata.get(fxe)?.split;g&&(f={type:"content",content:""},f.content=`\`\`\`${s.document.languageId} ${g.codeSelected} \`\`\``);let h=new Pv,y=p.processResponse(new Hne(n.sessionId,n.getLatestTurn(),d.messages,l),h.asyncIterable,o,a),v=await e.makeChatRequest2({debugName:"InlineChat2Intent",messages:d.messages,userInitiatedRequest:!0,location:4,telemetryProperties:{messageId:A.telemetryMessageId,conversationId:A.sessionId,messageSource:this._intent.id},requestOptions:{stream:!0,prediction:f},finishedCb:async(w,x,E)=>{A.markReceivedToken(),h.emitOne({delta:E})}},a);h.resolve(),await y;let _=v.type==="success"?v.value:"";return A.sendTelemetry(v.requestId,v.type,_,new s4(A.editCount>0?"inlineEdit":"none",[]),[]),{needsExitTool:A.editCount===0&&v.type==="success",lastResponse:v,telemetry:A}}};OMe=S([b(1,j)],OMe);$s();Be();var SUa=(t,e)=>t.invokeFunction(async n=>{let r=n.get(Xn),o=new Set(["vscode_codesearch"]),s=await n.get(tt).getChatEndpoint(e);return r.getEnabledTools(e,s,c=>c.tags.some(l=>o.has(l))||e.toolReferences.some(l=>l.name===c.name))}),h7=class{constructor(e,n,r){this.instantiationService=e;this.endpointProvider=n;this.configurationService=r;this.id=h7.ID;this.description="unused";this.locations=[1]}static{this.ID="askAgent"}getIntentHandlerOptions(e){return{maxToolCallIterations:Gz(e)??this.instantiationService.invokeFunction(Nie),temperature:this.configurationService.getConfig(H.Advanced.AgentTemperature)??0,overrideRequestLocation:5}}async handleRequest(e,n,r,o,a,s,c,l){return await this.instantiationService.createInstance(B_,this,e,n,r,o,a,c,l,this.getIntentHandlerOptions(n),void 0).getResult()}async invoke(e){let{location:n,request:r}=e,o=await this.endpointProvider.getChatEndpoint(r);return this.instantiationService.createInstance(UMe,this,n,o,r)}};h7=S([b(0,j),b(1,tt),b(2,be)],h7);var UMe=class extends j4{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_,w,x){super(n,r,o,a,{processCodeblocks:!0},s,c,l,u,d,p,m,A,f,g,h,y,v,_,w,x);this.prompt=v1;this.extraPromptProps={codesearchMode:!0}}get linkification(){return{disable:!1}}async getAvailableTools(){return SUa(this.instantiationService,this.request)}};UMe=S([b(4,j),b(5,df),b(6,Zt),b(7,Vt),b(8,tt),b(9,Te),b(10,Xn),b(11,be),b(12,kh),b(13,Ih),b(14,Ee),b(15,wi),b(16,Z),b(17,Fe),b(18,m0),b(19,On)],UMe);var _si=O(Lt()),mye=O(Ye());Be();var b7=class{constructor(e,n,r,o){this.endpointProvider=e;this.telemetryService=n;this.parserService=r;this.instaService=o;this.id=b7.ID;this.description=_si.t("Add documentation comment for this symbol");this.locations=[4];this.commandInfo={}}static{this.ID="doc"}async invoke(e){let{documentContext:n,request:r}=e;if(!n)throw new Error("Open a file to add documentation.");let o=await q3(this.parserService,this.telemetryService,n),a=await this.endpointProvider.getChatEndpoint(r);return this.instaService.createInstance(qMe,a,n,this,o)}};b7=S([b(0,tt),b(1,Ee),b(2,Ai),b(3,j)],b7);var qMe=class{constructor(e,n,r,o,a,s,c){this.endpoint=e;this.context=n;this.intent=r;this.nodeToDocument=o;this.parserService=a;this.telemetryService=s;this.instantiationService=c;this.location=4}async buildPrompt(e,n,r){let{query:o,history:a,chatVariables:s}=e,c=this.nodeToDocument??await q3(this.parserService,this.telemetryService,this.context);return await en.create(this.instantiationService,this.endpoint,ppn,{userQuery:o,documentContext:this.context,nodeToDocument:c,endpointInfo:this.endpoint,history:a,chatVariables:s,promptContext:e}).render(n,r)}processResponse(e,n,r,o){let a=this.context.document,s=new Ch(a.getText(),Cn.empty,a.languageId),c=this.nodeToDocument?.range??this.context.selection,l;if(a.languageId==="python"){let u=a.getText(c).split(` `).filter(p=>p!=="").map(p=>p.trim()),d=new Set(u);l=new p8(this.context.document.uri,s,this.context.fileIndentInfo,uf.Mute,1,(p,m)=>new s8(m,c.start,p),Sp.createCodeBlockClassifier(),p=>!p.value.includes("FILEPATH")&&!d.has(p.value.trim()))}else l=new p8(this.context.document.uri,s,this.context.fileIndentInfo,uf.Mute,1,(u,d)=>new jre(d,c,c,1,!1,u),Sp.createCodeBlockClassifier(),u=>!u.value.includes("FILEPATH"));return l.processResponse(e,n,r,o)}};qMe=S([b(4,Ai),b(5,Ee),b(6,j)],qMe);var ppn=class extends mye.PromptElement{render(e,n){let r=Bwe(this.props.documentContext.language.languageId),o=this.props.chatVariables.substituteVariablesWithReferences(this.props.userQuery),a=`${this.getQueryPrefix()} ${o}`.trim();return vscpp(vscppf,null,vscpp(mye.SystemMessage,null,"You are an AI programming assistant.",vscpp("br",null),'When asked for your name, you must respond with "GitHub Copilot".',vscpp("br",null),"You must follow user's requirements carefully.",vscpp("br",null),"You must follow Microsoft content policies.",vscpp("br",null),"You must avoid content that violates copyrights.",vscpp("br",null),"For questions not related to software development, you should give a reminder that you are an AI programming assistant.",vscpp("br",null)),vscpp(fi,{priority:750,promptContext:this.props.promptContext,flexGrow:1,embeddedInsideUserMessage:!1}),vscpp(Ds,{chatVariables:this.props.chatVariables,embeddedInsideUserMessage:!1}),vscpp(U3,{documentContext:this.props.documentContext,nodeToDocument:this.props.nodeToDocument,endpointInfo:this.props.endpointInfo}),vscpp(Zi,{inline:!0,history:this.props.history,passPriority:!0,historyPriority:700},vscpp(Xt,null,"When user asks you to document something, you must answer in the form of a ",r," markdown code block.",vscpp("br",null))),vscpp(mye.UserMessage,null,a))}getQueryPrefix(){let e=this.props.nodeToDocument?.identifier,n=e!==void 0&&e!=="",r=n?e:"the selection",o;switch(this.props.documentContext.language.languageId){case"typescript":case"typescriptreact":o=n?"a TSDoc comment":"TSDoc comment";break;case"javascript":case"javascriptreact":o=n?"a JSDoc comment":"JSDoc comment";break;case"python":o="docstring";break;default:o="documentation comment"}return`Please, given ${r}, generate ${o} only. Do not repeat given code, only reply with ${o} in a code block.`}};var Esi=O(Lt());Be();Be();var Aye=class{constructor(e,n,r,o,a,s,c){this.intent=e;this.location=n;this.endpoint=r;this.prompt=o;this.documentContext=a;this.features=s;this.instantiationService=c;this.replyInterpreter=null}async buildPrompt(e,n,r){let a=await en.create(this.instantiationService,this.endpoint,this.prompt,{documentContext:this.documentContext,promptContext:e,features:this.features}).render(n,r);return this.replyInterpreter=a.metadata.get(IA)?.replyInterpreter??(a.hasIgnoredFiles?new u8:null),a}processResponse(e,n,r,o){if(!this.replyInterpreter)throw new Error("Could not process response without a reply interpreter.");return this.replyInterpreter.processResponse(e,n,r,o)}};Aye=S([b(6,j)],Aye);var zMe=O(Lt()),AE=O(Ye());En();fr();Be();function Csi(t,e,n,r){let o=t.modelMaxPromptTokens*4/3,a=new mD(o),s=e.document,c=e.language,l=new Zb(a,s,c),u=new Zb(a,s,c),d=new Zb(a,s,c),p=()=>(u.trim(),l.trim(),d.trim(),{contextInfo:{language:c,above:u,range:l,below:d},tracker:a});if(!TUa(l,n,r))return p();let A={aboveLineIndex:r.start.line-1,belowLineIndex:r.end.line+1,minimumLineIndex:0,maximumLineIndex:s.lineCount-1};return K1t(A,u,d),p()}function TUa(t,e,n){let r=Math.floor((e.start.line+e.end.line)/2),o=Math.max(r-n.start.line,n.end.line-r);t.appendLine(r);for(let a=1;a<=o;a++){let s=r-a,c=r+a;if(s>=n.start.line&&!t.prependLine(s)||c<=n.end.line&&!t.appendLine(c))return!1}return!0}function fye(t,e,n,r){let o=t.getDiagnostics(e).filter(a=>!!a.range.intersection(n));if(r){let a=o.filter(s=>r.includes(s.message));if(a.length>0)return a}return o}async function wsi(t,e,n){let r=kUe(e),o=Math.max(n,e.end.line-e.start.line+n),a=await t.getFixSelectionOfInterest(r,o);return SUe(a)}var xsi=O(Ye());var xft=class extends xsi.PromptElement{render(e,n){let{useWorkspaceChunksFromSelection:r,useWorkspaceChunksFromDiagnostics:o}=this.props;if(!r&&!o)return null;let a=n.tokenBudget;return r&&o&&(a=a/2),vscpp(vscppf,null,r&&vscpp(T8,{...this.getChunkSearchPropsForSelection()}),o&&vscpp(T8,{...this.getChunkSearchPropsForDiagnostics(a)}))}getChunkSearchPropsForSelection(){let{document:e,wholeRange:n}=this.props.documentContext,r=e.validateRange(n);this.props.diagnostics.forEach(s=>{r=r.union(s.range)});let a=[`Please find code that is similar to the following code block: `,"```",e.getText(r),"```"].join(` `);return{telemetryInfo:new Aa("InlineChatWorkspaceSearch::getChunkSearchPropsForSelection"),query:{queryText:a},globPatterns:{exclude:[e.uri.fsPath]},maxResults:3}}getChunkSearchPropsForDiagnostics(e){let n=this.props.documentContext.document,o=`Please find code that can help me fix the following problems: ${this.props.diagnostics.map(a=>a.message).join(" ")}`;return{telemetryInfo:new Aa("InlineChatWorkspaceSearch::getChunkSearchPropsForDiagnostics"),query:{queryText:o},globPatterns:{exclude:[n.uri.fsPath]},maxResults:3}}};var gye=class extends AE.PromptElement{constructor(n,r,o,a,s,c,l){super(n);this.ignoreService=r;this.fileSystemService=o;this.parserService=a;this.languageDiagnosticsService=s;this.configurationService=c;this.instantiationService=l}async render(n,r){let{document:o,wholeRange:a,fileIndentInfo:s,selection:c,language:l}=this.props.documentContext;if(await this.ignoreService.isCopilotIgnored(o.uri))return vscpp("ignoredFiles",{value:[o.uri]});if(Ts(o.uri))throw $o("InlineFix3PlusPrompt should not be used with a notebook!");let d=r.endpoint.modelMaxPromptTokens/3*4,p,m=!1;if(o.getText().length>d){let D=await sI(this.parserService,o,s);p=cD(d,o,a,D,{tryPreserveTypeChecking:!0}),m=!0}else p=new Ch(o.getText(),Cn.empty,o.languageId);let{query:A,history:f,chatVariables:g}=this.props.promptContext,{useWorkspaceChunksFromDiagnostics:h,useWorkspaceChunksFromSelection:y}=this.props.features,v=p.projectRange(c),_=o.getText(new gt(c.start.line,0,c.end.line+1,0)).trimEnd(),w=fye(this.languageDiagnosticsService,o.uri,c,A),x=this.configurationService.getConfig(H.TeamInternal.InlineChatUseCodeMapper),E=x?this.instantiationService.createInstance($Me,o.uri):this.instantiationService.createInstance(MJ,p,o.uri,v),I=x?Apn:mpn,k=x?GMe:E_,T=await Pre(g,this.fileSystemService);return vscpp(vscppf,null,vscpp("references",{value:[new AE.PromptReference(o.uri)]}),vscpp("meta",{value:new IA(E)}),vscpp(AE.SystemMessage,{priority:1e3},"You are an AI programming assistant.",vscpp("br",null),'When asked for your name, you must respond with "GitHub Copilot".',vscpp("br",null),"The user has a ",l.languageId," file opened in a code editor.",vscpp("br",null),"The user expects you to propose a fix for one or more problems in that file.",vscpp("br",null),vscpp(Fc,null)),vscpp(Zi,{inline:!0,historyPriority:700,passPriority:!0,history:f},vscpp(Xt,{priority:1e3},"For the response always follow these instructions:",vscpp("br",null),"Describe in a single sentence how you would solve the problem. After that sentence, add an empty line. Then provide code changes or a terminal command to run.",vscpp("br",null),vscpp(I,null))),vscpp(AE.UserMessage,{priority:700},vscpp(Vi,{languageId:l.languageId,chatVariables:g}),vscpp(hI,{priority:700,document:o,position:c.start,requestId:this.props.promptContext.requestId,source:"fix"}),vscpp(ry,{priority:750},...T),vscpp(ry,{priority:600},p.text.length>0?vscpp(vscppf,null,"I have the following code open in the editor, starting from line 1 to line ",p.lineCount,".",vscpp("br",null)):vscpp(vscppf,null,"I am in an empty file:",vscpp("br",null)),vscpp(k,{uri:o.uri,languageId:l.languageId,code:p.text,shouldTrim:!1,isSummarized:m}),vscpp("br",null)),vscpp(ry,null,c.isEmpty?vscpp(vscppf,null,"I have the selection at line ",v.start.line+1,", column ",v.start.character+1,vscpp("br",null)):vscpp(vscppf,null,"I have currently selected from line ",v.start.line+1,", column ",v.start.character+1," to line ",v.end.line+1," column ",v.end.character+1,".",vscpp("br",null))),vscpp(ry,null,_.length&&!w.some(D=>D.range.contains(c))&&vscpp(vscppf,null,"The content of the lines at the selection is",vscpp(hn,{uri:o.uri,languageId:l.languageId,code:_,shouldTrim:!1}),vscpp("br",null))),vscpp(AD,{documentContext:this.props.documentContext,diagnostics:w}),vscpp(xft,{diagnostics:w,documentContext:this.props.documentContext,useWorkspaceChunksFromDiagnostics:h,useWorkspaceChunksFromSelection:y}),vscpp(fi,{promptContext:this.props.promptContext}),vscpp(z,{name:"userPrompt"},vscpp(AE.TextChunk,null,"Please find a fix for my code so that the result is without any errors."),vscpp(Cc,{chatVariables:g,query:A}),vscpp("br",null))))}};gye=S([b(1,Dt),b(2,yt),b(3,Ai),b(4,Ga),b(5,be),b(6,j)],gye);var jMe=Qn.file("/someFolder/myFile.cs"),mpn=class extends AE.PromptElement{render(){return vscpp(vscppf,null,"When proposing to fix the problem by running a terminal command, write `",LLn("TERMINAL"),"` and provide a code block that starts with ```bash and contains the terminal script inside.",vscpp("br",null),vscpp(xD,null),vscpp(z,{name:"example",priority:100},vscpp(z,{name:"user"},"I have the following code open in the editor.",vscpp("br",null),vscpp(E_,{uri:jMe,languageId:"csharp",code:["// This is my class","class C { }","","new C().Field = 9;"]})),vscpp(z,{name:"assistant"},"The problem is that the class 'C' does not have a field or property named 'Field'. To fix this, you need to add a 'Field' property to the 'C' class.",vscpp("br",null),vscpp("br",null),vscpp(vI,{changes:[{uri:jMe,find:["// This is my class","class C { }"],replace:["// This is my class","class C {","public int Field { get; set; }","}"]},{uri:jMe,find:["new C().Field = 9;"],replace:["// set the field to 9","new C().Field = 9;"]}]}))))}},MJ=class{constructor(e,n,r,o,a){this.projectedDocument=e;this.documentUri=n;this.adjustedSelection=r;this.logService=o;this.promptPathRepresentationService=a;this._lastText="";this._replyProcessor=T$e(a)}async processResponse(e,n,r,o){let a=!0,s=0,c="";for await(let d of n){if(o.isCancellationRequested)return;if(c+=d.delta.text,c.length>this._lastText.length&&(this._lastText=c,a)){let p=this._replyProcessor.getFirstParagraph(c);p.length>s?(r.markdown(p.substring(s)),s=p.length):(a=!1,r.markdown(` `),r.progress(zMe.t("Generating edits...")))}}if(this._lastText.length===0){r.warning(zMe.t("Copilot did not provide a response. Please try again."));return}let l=this._replyProcessor.process(this._lastText,this.projectedDocument.text,this.documentUri,this.adjustedSelection.start.line);if(l.otherSections.length)for(let d of l.otherSections)r.markdown(d.content.join(` `));if(l.otherPatches.length){for(let d of l.otherPatches)if(d.replace.length){let p=this.promptPathRepresentationService.resolveFilePath(d.filePath,this.documentUri.scheme);p?(r.markdown(d.replace[0]),r.codeblockUri(p),r.markdown(d.replace.slice(1).join(` `))):r.markdown(d.replace.join(` `))}}let u=l.edits;if(u.length)if(u=this.projectedDocument.projectBackTextEdit(u),l.edits.length!==u.length)l.annotations.push({message:"Some edits were not applied because they were out of bounds.",label:"summarize conflict",severity:"error"});else{let d=this._validateTextEditProject(l.edits,u,this.projectedDocument);d&&l.annotations.push(d)}e.addAnnotations(l.annotations),u.length?r.textEdit(this.documentUri,u):!l.otherPatches.length&&!l.otherSections.length&&r.warning(zMe.t("The edit generation was not successful. Please try again.")),l.annotations.length&&this.logService.info(`[inline fix] Problems generating edits: ${l.annotations.map(d=>`${d.message} [${d.label}]`).join(", ")}, invalid patches: ${l.invalidPatches.length}`)}_validateTextEditProject(e,n,r){for(let o=0;othis.promptPathRepresentationService.resolveFilePath(p),(p,m,A)=>{if(m){if(c=!1,m!==a&&(a=m,s=Un(m.resource,this.documentUri),!s&&m.resource&&r.codeblockUri(m.resource)),s)return}else if(!c)return;A?r.markdownWithVulnerabilities(p,A):r.markdown(p)},p=>{if(Z$e(p)&&Un(p.resource,this.documentUri)){let m={codeBlock:p};r.markdown(` `),r.progress(zMe.t("Generating edits..."));let A=this.codeMapperService.mapCode(m,r,{chatRequestId:e.turn.id,chatRequestSource:"inline1Fix3",isAgent:!1},o).finally(()=>{o.isCancellationRequested||r.textEdit(p.resource,!0)});l.push(A)}});for await(let{delta:p}of n){if(o.isCancellationRequested)return;u.processMarkdown(p.text,p.codeVulnAnnotations?.map(m=>({title:m.details.type,description:m.details.description})))}u.flush();let d=await Promise.all(l);for(let p of d)p?p.annotations&&e.addAnnotations(p.annotations):e.addAnnotations([{severity:"error",label:"cancelled",message:"CodeMapper cancelled"}]);for(let p of d)p&&p.errorDetails&&r.warning(`CodeMapper error: ${p.errorDetails}`)}};$Me=S([b(1,Vt),b(2,df)],$Me);var fE=O(Ye());En();es();Be();var BUa=15,hye=class extends fE.PromptElement{constructor(n,r,o,a,s,c,l,u){super(n);this._ignoreService=r;this._instantiationService=o;this._languageDiagnosticsService=a;this._parserService=s;this._tabsAndEditorsService=c;this._workspaceService=l;this._promptEndpoint=u}async prepare(n){let{documentContext:r}=this.props;return{isIgnored:await this._ignoreService.isCopilotIgnored(r.document.uri),priorities:eie}}async render(n,r){let o=this.props.documentContext;if(!Ts(o.document.uri))throw $o("InlineFixNotebookPrompt should not be used with a non-notebook!");if(n.isIgnored)return vscpp("ignoredFiles",{value:[o.document.uri]});let{query:a,history:s,chatVariables:c}=this.props.promptContext,l=o.selection,u=fye(this._languageDiagnosticsService,o.document.uri,o.selection,a),d=u.length>0?bLn(u):o.selection,p=this._parserService.getTreeSitterAST(o.document),m=p?await wsi(p,d,BUa):d,A=Csi(this._promptEndpoint,o,d,m),f=r.endpoint.modelMaxPromptTokens/3*4,g,h=!1;if(o.document.getText().length>f){let I=await sI(this._parserService,o.document,o.fileIndentInfo);g=cD(f,o.document,o.wholeRange,I,{tryPreserveTypeChecking:!0}),h=!0}else g=new Ch(o.document.getText(),Cn.empty,o.document.languageId);let y=g.projectRange(l),v=o.document.getText(new gt(l.start.line,0,l.end.line+1,0)).trimEnd(),_=c$e(this._tabsAndEditorsService,this._workspaceService,o,A.contextInfo,A.tracker),w=this._instantiationService.createInstance(MJ,g,o.document.uri,y),x=Qn.file("/someFolder/myFile.ts"),E=n.priorities;return vscpp(vscppf,null,vscpp("meta",{value:new IA(w)}),vscpp(fE.SystemMessage,{priority:E.core},"You are an AI programming assistant.",vscpp("br",null),'When asked for your name, you must respond with "GitHub Copilot".',vscpp("br",null),"You are a world class expert in programming, and especially good at ",o.language.languageId,".",vscpp("br",null),"Source code is always contained in ``` blocks.",vscpp("br",null)),vscpp(Zi,{inline:!0,passPriority:!0,historyPriority:E.history??700,history:s},vscpp(Xt,{priority:E.core},"The user needs help to write some new code.",vscpp("br",null),vscpp(T4,null),"When dealing with Jupyter Notebook, do not generate CELL INDEX in the code blocks in your answer, it is only used to help you understand the context.",vscpp("br",null),"If you suggest to run a terminal command, use a code block that starts with ```bash.",vscpp("br",null),'When fixing "ModuleNotFoundError" or "Import could not be resolved" errors, always use magic command "%pip install" to add the missing packages. The imports MUST be inserted at the top of the code block and it should not replace existing code.',vscpp("br",null),"You should not import the same module twice.",vscpp("br",null),vscpp(xD,null),vscpp(Fc,null),vscpp(z,{name:"example",priority:100},vscpp(z,{name:"user"},"I have the following code open in the editor.",vscpp("br",null),vscpp(E_,{uri:x,languageId:"csharp",code:["// This is my class","class C { }","","new C().Field = 9;"]})),vscpp(z,{name:"assistant"},"The problem is that the class 'C' does not have a field or property named 'Field'. To fix this, you need to add a 'Field' property to the 'C' class.",vscpp("br",null),vscpp("br",null),vscpp(vI,{changes:[{uri:x,find:["// This is my class","class C { }"],replace:["// This is my class","class C {","public int Field { get; set; }","}"]},{uri:x,find:["new C().Field = 9;"],replace:["// set the field to 9","new C().Field = 9;"]}]}))))),vscpp(fE.UserMessage,{priority:E.context},vscpp(Vi,{languageId:o.language.languageId,chatVariables:c})),vscpp(fi,{priority:E.context,promptContext:this.props.promptContext,flexGrow:1,embeddedInsideUserMessage:!1}),vscpp(Ds,{priority:E.context,chatVariables:c,embeddedInsideUserMessage:!1}),vscpp(fpn,{priority:E.core,documentContext:o,aboveCells:_.aboveCells,belowCells:_.belowCells,document:o.document,projectedDocument:g,language:o.language,diagnostics:u,selection:o.selection,adjustedSelection:y,isSummarized:h,selectedLinesContent:v}),vscpp(yD,{notebookURI:this.props.documentContext.document.uri,priority:E.runtimeCore,priorities:E,query:a}),vscpp(fE.UserMessage,{priority:E.core},"Please find a fix for my code so that the result is without any errors.",vscpp("br",null),vscpp(Cc,{chatVariables:c,query:a}),vscpp("br",null)))}};hye=S([b(1,Dt),b(2,j),b(3,Ga),b(4,Ai),b(5,co),b(6,Te),b(7,Rs)],hye);var fpn=class extends fE.PromptElement{render(e,n){if(this.props.documentContext.document.uri.scheme!==Rt.vscodeNotebookCell)throw $o("InlineChatNotebookSelectionRenderer should be used only with a notebook!");let r=dh(this.props.documentContext.document.uri),{projectedDocument:o,aboveCells:a,belowCells:s}=this.props,c=a||[],l=s||[],u=this.props.documentContext.language;return vscpp(vscppf,null,r?vscpp(vscppf,null,vscpp(bpn,{documentContext:this.props.documentContext,aboveCells:c,belowCells:l})):vscpp(vscppf,null,vscpp(bD,{documentContext:this.props.documentContext}),vscpp(f8,{documentContext:this.props.documentContext,aboveCells:c,belowCells:l})),vscpp(gpn,{cellIndex:c.length,document:this.props.document,projectedDocument:o,language:u,diagnostics:this.props.diagnostics,selection:this.props.selection,adjustedSelection:this.props.adjustedSelection,isSummarized:this.props.isSummarized,selectedLinesContent:this.props.selectedLinesContent}))}},gpn=class extends fE.PromptElement{render(){let{cellIndex:e,document:n,projectedDocument:r,diagnostics:o,language:a,selection:s,adjustedSelection:c,isSummarized:l,selectedLinesContent:u}=this.props,d=Ts(n.uri)?"Jupyter":"custom",p=a.languageId==="markdown";return vscpp(vscppf,null,vscpp(fE.UserMessage,null,"Now I create a new cell in this ",d," Notebook document at index ",this.props.cellIndex,".",vscpp("br",null),p&&vscpp(vscppf,null,"This is a markdown cell. Markdown cell is used to describe and document your workflow.",vscpp("br",null)),vscpp(hpn,{cellIndex:e,document:n,projectedDocument:r,diagnostics:o,language:a,selection:s,adjustedSelection:c,isSummarized:l,selectedLinesContent:u})))}},hpn=class extends fE.PromptElement{constructor(e){super(e)}render(){let{document:e,projectedDocument:n,diagnostics:r,language:o,selection:a,adjustedSelection:s,isSummarized:c,selectedLinesContent:l}=this.props,u=o.languageId==="markdown";return vscpp(vscppf,null,vscpp(ry,null,n.text.length>0?vscpp(vscppf,null,u?vscpp(vscppf,null,"I have the following markdown content in this cell, starting from line 1 to line ",n.lineCount,".",vscpp("br",null)):vscpp(vscppf,null,"I have the following code in this cell, starting from line 1 to line ",n.lineCount,".",vscpp("br",null)),vscpp(E_,{uri:e.uri,languageId:o.languageId,code:n.text,shouldTrim:!1,isSummarized:c}),vscpp("br",null)):vscpp(vscppf,null,"I am in an empty file:",vscpp(E_,{uri:e.uri,languageId:o.languageId,code:n.text,shouldTrim:!1,isSummarized:c}),vscpp("br",null))),vscpp(ry,null,a.isEmpty?vscpp(vscppf,null,"I have the selection at line ",s.start.line+1,", column ",s.start.character+1,vscpp("br",null)):vscpp(vscppf,null,"I have currently selected from line ",s.start.line+1,", column ",s.start.character+1," to line ",s.end.line+1," column ",s.end.character+1,".",vscpp("br",null))),vscpp(ry,null,l.length&&!r.some(d=>d.range.contains(a))&&vscpp(vscppf,null,"The content of the lines at the selection is",vscpp(hn,{uri:e.uri,languageId:o.languageId,code:l,shouldTrim:!1}),vscpp("br",null))))}},bpn=class extends fE.PromptElement{render(e,n){if(!Ts(this.props.documentContext.document.uri))throw $o("InlineChatNotebookSelectionRenderer should be used only with a notebook!");let{aboveCells:r,belowCells:o}=this.props,a=this.props.documentContext.language;return vscpp(vscppf,null,(r.length>0||o.length>0)&&vscpp(fE.UserMessage,null,"I am working on a Jupyter notebook.",vscpp("br",null),"This Jupyter Notebook already contains multiple cells.",vscpp("br",null),"The content of cells are listed below, each cell starts with CELL INDEX and a code block started with ```",a.languageId,vscpp("br",null),"Each cell is a block of code that can be executed independently.",vscpp("br",null),"Since it is Jupyter Notebook, if a module is already imported in a cell, it can be used in other cells as well.",vscpp("br",null),"For the same reason, if a variable is defined in a cell, it can be used in other cells as well.",vscpp("br",null),"We should not repeat the same import or variable definition in multiple cells, unless we want to overwrite the previous definition.",vscpp("br",null),"Do not generate CELL INDEX in your answer, it is only used to help you understand the context.",vscpp("br",null),vscpp("br",null),vscpp(vscppf,null,"Below you will find a set of examples of what you should respond with. Please follow the exmaples on how to avoid repeating code.",vscpp("br",null),"## Examples starts here",vscpp("br",null),"Here are the cells in this Jupyter Notebook:",vscpp("br",null),"`CELL INDEX: 0",vscpp("br",null),"```python",vscpp("br",null),"import pandas as pd",vscpp("br",null),vscpp("br",null),"# create a dataframe with sample data",vscpp("br",null),"df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['F', 'M', 'M']})",vscpp("br",null),"print(df)",vscpp("br",null),"```",vscpp("br",null),"---------------------------------",vscpp("br",null),"USER:",vscpp("br",null),"Now I create a new cell in this Jupyter Notebook document at index 1.",vscpp("br",null),"I have the following code open in this cell, starting from line 1 to line 1.",vscpp("br",null),"```python",vscpp("br",null),"```",vscpp("br",null),"---------------------------------",vscpp("br",null),"USER:",vscpp("br",null),"plot the data frame",vscpp("br",null),vscpp("br",null),"---------------------------------",vscpp("br",null),"Assistant Answer",vscpp("br",null),"---------------------------------",vscpp("br",null),"To plot the dataframe, we can use the `plot()` method of pandas dataframe.",vscpp("br",null),vscpp("br",null),"---FILEPATH Untitled-1",vscpp("br",null),"---FIND",vscpp("br",null),"---REPLACE",vscpp("br",null),"```python",vscpp("br",null),"df.plot(x='Name', y='Age', kind='bar')",vscpp("br",null),"```",vscpp("br",null),"---COMPLETE",vscpp("br",null),"## Example ends here",vscpp("br",null)),r.length>0&&vscpp(B4,{cells:r,title:`Here are the cells in this Jupyter Notebook: `}),o.length>0&&vscpp(B4,{cells:o,cellIndexDelta:r.length+1,title:`Here are the cells below the current cell that I am editing in this Jupyter Notebook: `})))}};var FJ=O(Ye());var bye=class extends FJ.PromptElement{constructor(n,r){super(n);this.languageDiagnosticsService=r}render(n,r){let o=this.props.documentContext,{history:a,chatVariables:s}=this.props.promptContext,c=this.props.promptContext.query||"There is a problem in this code. Rewrite the code to show it with the bug fixed.",l=({document:u,selection:d})=>fye(this.languageDiagnosticsService,u.uri,d,c);return vscpp(vscppf,null,vscpp(FJ.SystemMessage,{priority:1e3},"You are an AI programming assistant.",vscpp("br",null),'When asked for your name, you must respond with "GitHub Copilot".',vscpp("br",null),"Follow the user's requirements carefully & to the letter.",vscpp("br",null),vscpp(Kr,null),vscpp("br",null),vscpp("br",null),vscpp(G3,{location:1})),vscpp(Zi,{flexGrow:1,passPriority:!0,historyPriority:700,history:a},vscpp(Xt,{priority:1e3},"First think step-by-step - describe your plan for what to build in pseudocode, written out in great detail.",vscpp("br",null),"Then output the code in a single code block.",vscpp("br",null),"Minimize any other prose.",vscpp("br",null),"Use Markdown formatting in your answers.",vscpp("br",null),vscpp(pI,null),"The user works in an IDE called Visual Studio Code which has a concept for editors with open files, integrated unit test support, an output pane that shows the output of running the code as well as an integrated terminal.",vscpp("br",null),"The active document is the source code the user is looking at right now.",vscpp("br",null),"You can only give one reply for each conversation turn.",vscpp("br",null),vscpp("br",null),"Additional Rules",vscpp("br",null),"You specialize in being a highly skilled code generator. Your task is to help the Developer fix an issue.",vscpp("br",null),"If context is provided, try to match the style of the provided code as best as possible.",vscpp("br",null),"Generated code is readable and properly indented.",vscpp("br",null),"Markdown blocks are used to denote code.",vscpp("br",null),"Preserve user's code comment blocks, do not exclude them when refactoring code.",vscpp("br",null),"Pay especially close attention to the selection or exception context.",vscpp("br",null),"Given a description of what to do you can refactor, fix or enhance the existing code.",vscpp(kn,null))),vscpp(FJ.UserMessage,{flexGrow:1,priority:750},vscpp(Vi,{languageId:o?.language.languageId,chatVariables:s})),o&&vscpp(FJ.UserMessage,{flexGrow:1,priority:800},vscpp(AD,{documentContext:o,diagnostics:l(o)})),vscpp(Hc,{priority:899,flexGrow:2,promptContext:this.props.promptContext,toolCallRounds:this.props.promptContext.toolCallRounds,toolCallResults:this.props.promptContext.toolCallResults}),vscpp(fi,{priority:899,flexGrow:2,promptContext:this.props.promptContext,embeddedInsideUserMessage:!1}),vscpp(xa,{flexGrow:2,priority:900,chatVariables:s,query:c,embeddedInsideUserMessage:!1}))}};bye=S([b(1,Ga)],bye);var yye=class{constructor(e,n){this.instantiationService=e;this.endpointProvider=n;this.id="fix";this.locations=[4,1,3];this.description=Esi.t("Propose a fix for the problems in the selected code");this.commandInfo={toolEquivalent:"copilot_getErrors"}}static{this.ID="fix"}async invoke(e){let{location:n,documentContext:r,request:o}=e;if(!r)throw new Error("Open a file to fix an issue");if(n===1){let d=await this.endpointProvider.getChatEndpoint(o);return this.instantiationService.createInstance(g8,this,n,d,bye,e.documentContext)}let a=o.attempt,s=await this.endpointProvider.getChatEndpoint(o),c;Ts(r.document.uri)?c=hye:c=gye;let u={useWorkspaceChunksFromSelection:a>1,useWorkspaceChunksFromDiagnostics:!1};return this.instantiationService.createInstance(Aye,this,n,s,c,r,u)}};yye=S([b(0,j),b(1,tt)],yye);var Isi=O(Lt());Be();var y7=class{constructor(e,n){this.instantiationService=e;this.endpointProvider=n;this.id=y7.ID;this.description=Isi.t("Generate new code");this.locations=[4];this.commandInfo={hiddenFromUser:!0}}static{this.ID="generate"}async invoke(e){let{location:n,documentContext:r,request:o}=e;if(!r)throw new Error("Open a file to add code.");let a=await this.endpointProvider.getChatEndpoint(o);return this.instantiationService.createInstance(vD,this,n,a,r,4)}};y7=S([b(0,j),b(1,tt)],y7);var Eft=O(Lt());Be();var ypn=O(Lt());dn();iu();Be();var vye=class{constructor(e,n,r,o,a,s,c){this.endpoint=e;this.context=n;this.instantiationService=r;this.workspaceService=o;this.noteBookEditGenerator=a;this.logService=s;this.telemetryService=c;this.messageText="";this.stagedTextToApply="";this.reporting=!0;this._resolvedContentDeferredPromise=new no;this._incodeblock=!1;this._presentCodeblockProgress=!1}async processResponse(e,n,r,o){let{turn:a,messages:s}=e;for await(let{delta:c}of n){if(o.isCancellationRequested)return;this.applyDelta(c.text,a,r)}await this.pushCommands(s,r,o)}applyDeltaToTurn(e,n){this.messageText+=e}applyDeltaToProgress(e,n){n.markdown(e)}applyDelta(e,n,r){if(!this.reporting){this.applyDeltaToTurn(e,n);return}if(e=this.stagedTextToApply+e,this._incodeblock){let a=e.indexOf("```");if(a===-1){this.stagedTextToApply=e,this.applyDeltaToTurn("",n),this._presentCodeblockProgress||(this._presentCodeblockProgress=!0,r.progress(ypn.t("Thinking ...")));return}else{this._incodeblock=!1,e=e.substring(0,a)+"```";try{this.applyDeltaToTurn(e,n)}catch{}finally{this.reporting=!1,this.stagedTextToApply="",this._resolvedContentDeferredPromise.complete(new su(""))}return}}let o=e.indexOf("```");if(o!==-1){this._incodeblock=!0;let a=e.indexOf("```",o+3);if(a!==-1){this._incodeblock=!1,this.applyDeltaToProgress(e.substring(0,o),r),this.applyDeltaToProgress(e.substring(a+3),r),this.applyDeltaToTurn(e,n),this.reporting=!1,this.stagedTextToApply="";return}else{let s=e.substring(0,o);this.applyDeltaToProgress(s,r),this.applyDeltaToTurn(e,n),this.stagedTextToApply="",this._presentCodeblockProgress||(this._presentCodeblockProgress=!0,r.progress(ypn.t("Thinking ..."))),this._resolvedContentDeferredPromise.p.then(c=>r.push(c));return}}this.applyDeltaToProgress(e,r),this.applyDeltaToTurn(e,n),this.stagedTextToApply=""}async pushCommands(e,n,r){try{let o=ROe(this.messageText);if(o){let a=this.context??{query:"",history:[],chatVariables:new qi([])},{messages:s}=await Tu(this.instantiationService,this.endpoint,Iot,{outline:o,promptContext:a,originalCreateNotebookQuery:a.query,availableTools:this.context?.tools?.availableTools}),c=new Pv,l=new Wr(async()=>{let A=await this.workspaceService.openNotebookDocument("jupyter-notebook"),f=CE.updateNotebookMetadata(Object.assign({new_copilot_notebook:!0},A.metadata)),g=new oz;return g.set(A.uri,[f]),await this.workspaceService.applyEdit(g),A}),u=RUa(n$e(c.asyncIterable).filter(Jj.createCodeBlockFilter()).map(A=>(l.value,A))),d=this.createNewNotebook2(u,l.value,r);async function p(A,f,g){c.emitOne(g.text)}let m=await this.endpoint.makeChatRequest("newNotebookCodeCell",s,p,r,1);if(c.resolve(),m.type!=="success")return[];await d}else this.logService.error("No Notebook outline found: ",this.messageText)}catch(o){this.logService.error("Error creating new notebook: ",o)}return[]}async createNewNotebook2(e,n,r){let o=[],a={source:"newNotebookIntent",requestId:this.context?.requestId,model:this.endpoint.model};for await(let s of this.noteBookEditGenerator.generateNotebookEdits(Qn.file("empty.ipynb"),e,a,r))if(!Array.isArray(s)){let c=await n,l=new oz;l.set(c.uri,[s]),o.push(Promise.resolve(this.workspaceService.applyEdit(l)))}return await Promise.all(o),w1(this.telemetryService,void 0,"newNotebookIntent",(await n).uri,this.context?.requestId,void 0,this.endpoint),n}};vye=S([b(2,j),b(3,Te),b(4,x_),b(5,Z),b(6,Ee)],vye);function RUa(t){return new No(async e=>{let n=-1;for await(let r of t)n+=1,!(n===0&&r.value.includes(f4))&&e.emitOne(r)})}var _ye=class{constructor(e,n){this.endpointProvider=e;this.instantiationService=n;this.id="newNotebook";this.description=Eft.t("Create a new Jupyter Notebook");this.locations=[1];this.commandInfo={allowsEmptyArgs:!1,yieldsTo:[{command:"fix"},{command:"explain"},{command:"workspace"},{command:"tests"}],defaultEnablement:!0,sampleRequest:Eft.t("How do I create a notebook to load data from a csv file?")}}static{this.ID="newNotebook"}async invoke(e){let n=e.location,r=await this.endpointProvider.getChatEndpoint(e.request);return this.instantiationService.createInstance(HMe,this,r,n,e.request.prompt)}};_ye=S([b(0,tt),b(1,j)],_ye);var HMe=class{constructor(e,n,r,o,a){this.intent=e;this.endpoint=n;this.location=r;this.query=o;this.instantiationService=a;this.linkification={disable:!0}}async buildPrompt(e,n,r){return this.context=e,await en.create(this.instantiationService,this.endpoint,DAe,{promptContext:e,endpoint:this.endpoint}).render(n,r)}processResponse(e,n,r,o){return r.markdown(Eft.t(`Creating a new notebook: `)),this.instantiationService.createInstance(vye,this.endpoint,this.context).processResponse(e,n,r,o)}};HMe=S([b(4,j)],HMe);$s();Be();var QJ=O(Ye());var Cye=class extends QJ.PromptElement{constructor(n,r){super(n);this.configurationService=r}async render(n,r){let o=o9(this.props.endpoint.family),a=this.props.promptContext.chatVariables.find(l=>ti(l.value)||go(l.value))!==void 0,s=vscpp(vscppf,null,a?vscpp(vscppf,null,"The user has a request for modifying one or more files."):vscpp(vscppf,null,"If the user asks a question, then answer it.",vscpp("br",null),`If you need to change existing files and it's not clear which files should be changed, then refuse and answer with "Please add the files to be modified to the working set`,this.configurationService.getConfig(H.CodeSearchAgentEnabled)||this.configurationService.getConfig(H.Advanced.CodeSearchAgentEnabled)?", or use `#codebase` in your request to automatically discover working set files.":"",'".',vscpp("br",null),"The only exception is if you need to create new files. In that case, follow the following instructions.")),c=vscpp(Xt,{priority:900},vscpp(z,{name:"instructions"},"You are a highly sophisticated automated coding agent with expert-level knowledge across many different programming languages and frameworks.",vscpp("br",null),"You are capable of making complex code edits across multiple files, and you can also create new files.",vscpp("br",null),"You have a tool that you can use to edit and create files.",vscpp("br",null),s,vscpp("br",null),"For each file, first give a very short summary of what needs to be changed, then use the tool to edit the file. If you want to edit multiple files, you can use the tool multiple times in a response to edit multiple files simultaneously. This is faster than editing files one by one.",vscpp("br",null),"Describe the changes you'll make BEFORE editing the files. But never write out a codeblock with the changes, only pass them to the tool.",vscpp("br",null),"NEVER print out a codeblock with file changes unless the user asked for it. Use the ","edit_notebook_file"," tool instead.",vscpp("br",null),"Do not summarize the changes after making the edits and leave the response empty if there is nothing more to add.",vscpp("br",null),"When describing your changes to the user, keep your descriptions very concise and to the point, and do not repeat anything that you previously described."),vscpp(z,{name:"toolUseInstructions"},"When using a tool, follow the json schema very carefully and make sure to include ALL required properties.",vscpp("br",null),"Always output valid JSON when using a tool.",vscpp("br",null),"If a tool exists to do a task, use the tool instead of asking the user to manually take an action.",vscpp("br",null),"If you say that you will take an action, then go ahead and use the tool to do it. No need to ask permission.",vscpp("br",null),"Never use multi_tool_use.parallel or any tool that does not exist. Use tools using the proper procedure, DO NOT write out a json codeblock with the tool inputs.",vscpp("br",null),"NEVER say the name of a tool to a user. For example, instead of saying that you'll use the ","edit_notebook_file",` tool, say "I'll edit the project.js file".`,vscpp("br",null)),vscpp(kn,null));return vscpp(vscppf,null,vscpp(QJ.SystemMessage,{priority:1e3},vscpp(lo,null),vscpp(Kr,null)),o?void 0:c,vscpp(W3,{flexGrow:1,priority:700,promptContext:this.props.promptContext}),o?c:void 0,vscpp(WMe,{flexGrow:2,priority:900,promptContext:this.props.promptContext,endpoint:this.props.endpoint,location:this.props.location}),vscpp(Hc,{priority:899,flexGrow:3,promptContext:this.props.promptContext,toolCallRounds:this.props.promptContext.toolCallRounds,toolCallResults:this.props.promptContext.toolCallResults}))}};Cye=S([b(1,be)],Cye);var WMe=class extends QJ.PromptElement{constructor(n,r,o){super(n);this.experimentationService=r;this._configurationService=o}async render(n,r){let{query:o,chatVariables:a}=this.props.promptContext,s=this._configurationService.getExperimentBasedConfig(H.Advanced.ProjectLabelsChat,this.experimentationService),c=!!this.props.promptContext.tools?.availableTools.find(d=>d.name==="replace_string_in_file"),l=!!this.props.promptContext.tools?.availableTools.find(d=>d.name==="insert_edit_into_file"),u=!!this.props.promptContext.tools?.availableTools.find(d=>d.name==="multi_replace_string_in_file");return vscpp(vscppf,null,vscpp(QJ.UserMessage,null,s&&vscpp(Yd,{flexGrow:1,priority:600}),vscpp(Vi,{flexGrow:6,priority:750,languageId:void 0,chatVariables:a}),vscpp(fI,{flexGrow:5,priority:810,chatVariables:a,query:o}),vscpp(fi,{flexGrow:4,priority:898,promptContext:this.props.promptContext,documentContext:this.props.documentContext}),vscpp(Ds,{flexGrow:3,priority:898,chatVariables:a}),vscpp(z,{name:"reminder"},md(l,c,XX(this.props.endpoint),u),vscpp(AI,{chatVariables:a,query:o}),vscpp(T1,null)),vscpp(z,{name:"prompt"},vscpp(Cc,{flexGrow:7,priority:900,chatVariables:a,query:o}))))}};WMe=S([b(1,Fe),b(2,be)],WMe);$s();Be();var OJ=O(Ye());var wye=class extends OJ.PromptElement{constructor(n,r,o){super(n);this.configurationService=r;this.toolsService=o}async render(n,r){let o=o9(this.props.endpoint.family),a=this.props.promptContext.chatVariables.find(u=>ti(u.value)||go(u.value))!==void 0,s=vscpp(vscppf,null,a?vscpp(vscppf,null,"The user has a request for modifying one or more files."):vscpp(vscppf,null,"If the user asks a question, then answer it.",vscpp("br",null),`If you need to change existing files and it's not clear which files should be changed, then refuse and answer with "Please add the files to be modified to the working set`,this.configurationService.getConfig(H.CodeSearchAgentEnabled)||this.configurationService.getConfig(H.Advanced.CodeSearchAgentEnabled)?", or use `#codebase` in your request to automatically discover working set files.":"",'".',vscpp("br",null),"The only exception is if you need to create new files. In that case, follow the following instructions.")),c=this.toolsService.getTool("replace_string_in_file")!==void 0,l=vscpp(Xt,{priority:900},vscpp(z,{name:"instructions"},"You are a highly sophisticated automated coding agent with expert-level knowledge across many different programming languages and frameworks.",vscpp("br",null),"You are capable of making complex code edits across multiple files, and you can also create new files.",vscpp("br",null),"You have a tool that you can use to edit and create files.",vscpp("br",null),s,vscpp("br",null),"For each file, first give a very short summary of what needs to be changed, then use the tool to edit the file. If you want to edit multiple files, you can use the tool multiple times in a response to edit multiple files simultaneously. This is faster than editing files one by one.",vscpp("br",null),"Describe the changes you'll make BEFORE editing the files. But never write out a codeblock with the changes, only pass them to the tool.",vscpp("br",null),"NEVER print out a codeblock with file changes unless the user asked for it. Use the ","insert_edit_into_file",c&&vscpp(vscppf,null," or ","replace_string_in_file")," tool instead.",vscpp("br",null),"Do not summarize the changes after making the edits.",vscpp("br",null),"When describing your changes to the user, keep your descriptions very concise and to the point, and do not repeat anything that you previously described."),vscpp(z,{name:"toolUseInstructions"},"When using a tool, follow the json schema very carefully and make sure to include ALL required properties.",vscpp("br",null),"Always output valid JSON when using a tool.",vscpp("br",null),"If a tool exists to do a task, use the tool instead of asking the user to manually take an action.",vscpp("br",null),"If you say that you will take an action, then go ahead and use the tool to do it. No need to ask permission.",vscpp("br",null),"Never use multi_tool_use.parallel or any tool that does not exist. Use tools using the proper procedure, DO NOT write out a json codeblock with the tool inputs.",vscpp("br",null),"NEVER say the name of a tool to a user. For example, instead of saying that you'll use the ","insert_edit_into_file",` tool, say "I'll edit the project.js file".`,vscpp("br",null),"The ","create_new_jupyter_notebook"," tool generates a new Jupyter Notebook (.ipynb) in VS Code. Jupyter Notebooks are interactive documents commonly used for data exploration, analysis, visualization, and combining code with narrative text. This tool should only be called when the user explicitly requests to create a new Jupyter Notebook.",vscpp("br",null)),vscpp(z,{name:"editFileInstructions"},c?vscpp(vscppf,null,"Use the ","replace_string_in_file"," tool to replace a string in a file, but only if you are sure that the string is unique enough to not cause any issues. You can use this tool multiple times per file.",vscpp("br",null),"Use the ","insert_edit_into_file"," tool to insert code into a file.",vscpp("br",null),"When editing files, group your changes by file.",vscpp("br",null),"NEVER show the changes to the user, just call the tool, and the edits will be applied and shown to the user.",vscpp("br",null),"NEVER print a codeblock that represents a change to a file, use ","insert_edit_into_file"," or ","replace_string_in_file"," instead.",vscpp("br",null),"For each file, give a short description of what needs to be changed, then use the ","replace_string_in_file"," or ","insert_edit_into_file"," tools. You can use any tool multiple times in a response, and you can keep writing text after using a tool.",vscpp("br",null)):vscpp(vscppf,null,"Use the ","insert_edit_into_file"," tool to edit files. When editing files, group your changes by file.",vscpp("br",null),"NEVER show the changes to the user, just call the tool, and the edits will be applied and shown to the user.",vscpp("br",null),"NEVER print a codeblock that represents a change to a file, use ","insert_edit_into_file"," instead.",vscpp("br",null),"For each file, give a short description of what needs to be changed, then use the ","insert_edit_into_file"," tool. You can use any tool multiple times in a response, and you can keep writing text after using a tool.",vscpp("br",null)),"The ","insert_edit_into_file"," tool is very smart and can understand how to apply your edits to their files, you just need to provide minimal hints.",vscpp("br",null),"Avoid repeating existing code, instead use comments to represent regions of unchanged code. The tool prefers that you are as concise as possible. For example:",vscpp("br",null),"// ",Rn,vscpp("br",null),"changed code",vscpp("br",null),"// ",Rn,vscpp("br",null),"changed code",vscpp("br",null),"// ",Rn,vscpp("br",null),vscpp("br",null),"Here is an example of how you should format an edit to an existing Person class when using ","insert_edit_into_file",":",vscpp("br",null),["class Person {",` // ${Rn}`," age: number;",` // ${Rn}`," getAge() {"," return this.age;"," }","}"].join(` `)),vscpp(kn,null),"Here is an example of how you should reply to edit the file example.ts. Notice that the response is very short and to the point:",vscpp("br",null),vscpp(z,{name:"example"},"I will add a new property 'age' and a new method 'getAge' to the class Person.",vscpp("br",null),"(Then you use ","insert_edit_into_file"," in the proper format.)"));return vscpp(vscppf,null,vscpp(OJ.SystemMessage,{priority:1e3},vscpp(lo,null),vscpp(Kr,null)),o?void 0:l,vscpp(W3,{flexGrow:1,priority:700,promptContext:this.props.promptContext}),o?l:void 0,vscpp(ZMe,{flexGrow:2,priority:900,promptContext:this.props.promptContext,endpoint:this.props.endpoint,location:this.props.location}),vscpp(Hc,{priority:899,flexGrow:3,promptContext:this.props.promptContext,toolCallRounds:this.props.promptContext.toolCallRounds,toolCallResults:this.props.promptContext.toolCallResults}))}};wye=S([b(1,be),b(2,Xn)],wye);var ZMe=class extends OJ.PromptElement{constructor(n,r,o){super(n);this.experimentationService=r;this._configurationService=o}async render(n,r){let{query:o,chatVariables:a}=this.props.promptContext,s=this._configurationService.getExperimentBasedConfig(H.Advanced.ProjectLabelsChat,this.experimentationService),c=!!this.props.promptContext.tools?.availableTools.find(d=>d.name==="replace_string_in_file"),l=!!this.props.promptContext.tools?.availableTools.find(d=>d.name==="insert_edit_into_file"),u=!!this.props.promptContext.tools?.availableTools.find(d=>d.name==="multi_replace_string_in_file");return vscpp(vscppf,null,vscpp(OJ.UserMessage,null,s&&vscpp(Yd,{flexGrow:1,priority:600}),vscpp(Vi,{flexGrow:6,priority:750,languageId:void 0,chatVariables:a}),vscpp(fI,{flexGrow:5,priority:810,chatVariables:a,query:o}),vscpp(fi,{flexGrow:4,priority:898,promptContext:this.props.promptContext,documentContext:this.props.documentContext}),vscpp(Ds,{flexGrow:3,priority:898,chatVariables:a}),vscpp(z,{name:"reminder"},md(l,c,XX(this.props.endpoint),u),vscpp(AI,{chatVariables:a,query:o}),vscpp(T1,null)),vscpp(z,{name:"prompt"},vscpp(Cc,{flexGrow:7,priority:900,chatVariables:a,query:o}))))}};ZMe=S([b(1,Fe),b(2,be)],ZMe);var DUa=(t,e)=>t.invokeFunction(async n=>{let r=n.get(Xn),o=n.get(tt),a=n.get(wi),s=await o.getChatEndpoint(e),c=new Set(["insert_edit_into_file"]);return ryt(e,a,{checkPromptAsWell:!0})&&c.add("create_new_jupyter_notebook"),KOe(s)&&(c.add("replace_string_in_file"),pve(s)&&c.add("multi_replace_string_in_file")),c.add("edit_notebook_file"),ryt(e,a,{checkPromptAsWell:!0})&&(c.add("copilot_getNotebookSummary"),c.add("run_notebook_cell")),r.getEnabledTools(e,s,l=>c.has(l.name))}),xye=class extends j4{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_,w,x,E){super(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_,w,x,E);this.prompt=wye}get linkification(){return{disable:!1}}async getAvailableTools(){return DUa(this.instantiationService,this.request)}};xye=S([b(5,j),b(6,df),b(7,Zt),b(8,Vt),b(9,tt),b(10,Te),b(11,Xn),b(12,be),b(13,kh),b(14,Ih),b(15,Ee),b(16,wi),b(17,Z),b(18,Fe),b(19,m0),b(20,On)],xye);var PUa=(t,e)=>t.invokeFunction(async n=>{let r=n.get(Xn),a=await n.get(tt).getChatEndpoint(e),s=new Set(["insert_edit_into_file"]);return s.add("edit_notebook_file"),s.add("copilot_getNotebookSummary"),s.add("run_notebook_cell"),s.add("read_notebook_cell_output"),r.getEnabledTools(e,a,c=>s.has(c.name)||c.tags.includes("notebooks"))}),v7=class extends R_{constructor(n,r,o,a,s,c){super(n,r,o,a,s,c,{processCodeblocks:!1,intentInvocation:VMe});this.id=v7.ID;this.locations=[3]}static{this.ID="notebookEditor"}getIntentHandlerOptions(n){return{maxToolCallIterations:Gz(n)??this.instantiationService.invokeFunction(Nie),temperature:this.configurationService.getConfig(H.Advanced.AgentTemperature)??0,overrideRequestLocation:3}}};v7=S([b(0,j),b(1,tt),b(2,be),b(3,Fe),b(4,df),b(5,Te)],v7);var VMe=class extends xye{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_,w,x,E,I,k){super(n,r,o,a,s,u,d,p,m,A,f,g,h,y,v,_,w,x,E,I,k);this.tabsAndEditorsService=c;this.alternativeNotebookContentService=l;this.prompt=Cye}async getAvailableTools(){return PUa(this.instantiationService,this.request)}buildPrompt(n,r,o){let a=this.createReferencesForActiveEditor()??n.chatVariables,{query:s,commandToolReferences:c}=this.processSlashCommand(n.query);return super.buildPrompt({...n,chatVariables:a,query:s,tools:n.tools&&{...n.tools,toolReferences:this.stableToolReferences.filter(l=>l.name!=="semantic_search").concat(c)}},r,o)}createReferencesForActiveEditor(){let n=this.tabsAndEditorsService.activeNotebookEditor;if(n){let r=n.notebook.cellAt(n.selection.start),o=this.alternativeNotebookContentService.getFormat(this.endpoint),a=this.alternativeNotebookContentService.create(o).getAlternativeDocument(n.notebook),s=this.tabsAndEditorsService.activeTextEditor,c="";if(s){let d=s.document.getText().split(` `),p=Math.max(0,s.selection.start.line-1),m=Math.min(d.length-1,s.selection.end.line+1);c=d.slice(p,m+1).join(` `)}let l=[{id:n.notebook.uri.toString(),name:"Active notebook editor: "+n.notebook.uri.toString(),value:a.getText()}];if(c.trim()){let u=zv(r);l.push({id:`${n.notebook.uri.toString()}#selection`,name:`Selected text in cell ${u} active notebook editor`,value:c})}return new qi([...this.request.references,...l])}}processSlashCommand(n){let r=[],o=this.request.command&&this.commandService.getCommand(this.request.command,this.location);return o&&(o.toolEquivalent&&r.push({id:`${this.request.command}->${st()}`,name:A0(o.toolEquivalent)}),n=n?`${o.details}. ${n}`:o.details),{query:n,commandToolReferences:r}}};VMe=S([b(5,co),b(6,ma),b(7,j),b(8,df),b(9,Zt),b(10,Vt),b(11,tt),b(12,Te),b(13,Xn),b(14,be),b(15,kh),b(16,Ih),b(17,Ee),b(18,wi),b(19,Z),b(20,Fe),b(21,m0),b(22,On)],VMe);var KMe=O(Lt());sr();Be();var NUa="Review the currently selected code.",LUa=KMe.t("local changes"),Eye=class extends Fb{constructor(n,r,o,a,s,c,l,u,d){super(n,r,o);this.documentContext=a;this.instantiationService=s;this.workspaceService=c;this.tabsAndEditorsService=l;this.logService=u;this.gitExtensionService=d;this.linkification={additionaLinkifiers:[{create:()=>new _pn(this.documentContext.document.uri)}]}}async createRenderer({history:n,query:r,chatVariables:o},a,s,c){let l=[];if(r===LUa){let u=await Kc.getCurrentChanges(this.gitExtensionService,"workingTree");(await Promise.all(u.map(async p=>({document:await this.workspaceService.openTextDocumentAndSnapshot(p.uri),relativeDocumentPath:va(p.repository.rootUri.fsPath,p.uri.fsPath),change:p})))).map(p=>l.push(p))}else{let u=this.tabsAndEditorsService.activeTextEditor;u&&l.push({document:xr.create(u.document),relativeDocumentPath:dr(u.document.uri.fsPath),selection:u.selection})}return en.create(this.instantiationService,a,Wse,{query:r,history:n,chatVariables:o,input:l,logService:this.logService})}async buildPrompt(n,r,o){return n.query===""&&(n={...n,query:NUa}),super.buildPrompt(n,r,o)}};Eye=S([b(4,j),b(5,Te),b(6,co),b(7,Z),b(8,is)],Eye);var vpn=class extends Eye{processResponse(e,n,r,o){return this.instantiationService.createInstance(YMe,this.documentContext).processResponse(e,n,r,o)}},Iye=class{constructor(e,n){this.instantiationService=e;this.endpointProvider=n;this.id="review";this.locations=[1,4];this.description=KMe.t("Review the selected code in your active editor")}static{this.ID="review"}async invoke(e){let n=e.documentContext,r=e.location,o=await this.endpointProvider.getChatEndpoint(e.request);return r===4?this.instantiationService.createInstance(vpn,this,r,o,n):this.instantiationService.createInstance(Eye,this,r,o,n)}};Iye=S([b(0,j),b(1,tt)],Iye);var _pn=class{constructor(e){this.file=e}async linkify(e,n,r){let o=HOt(e);if(!o.length)return;let a=0,s=[];for(let c of o)s.push(e.substring(a,c.linkOffset)),s.push(new k1(this.file.with({fragment:String(c.from+1)}),e.substring(c.linkOffset,c.linkOffset+c.linkLength))),a=c.linkOffset+c.linkLength;return s.push(e.substring(a)),{parts:s}}},YMe=class{constructor(e,n){this.documentContext=e;this.reviewService=n;this.updating=!1;this.text="";this.comments=[]}async processResponse(e,n,r,o){let a={source:"vscodeCopilotChat",promptCount:1,messageId:st(),inputType:"selection",inputRanges:[{uri:this.documentContext.document.uri,ranges:[this.documentContext.selection]}]};for await(let c of n){if(this.text+=c.delta.text,!this.updating){this.updating=!0;let u=new je(KMe.t({message:`Reviewing your code... `,comment:"{Locked='](command:workbench.panel.markers.view.focus)'}"}));u.isTrusted={enabledCommands:["workbench.panel.markers.view.focus"]},r.markdown(u)}let l=ySe(a,[{document:this.documentContext.document,relativeDocumentPath:dr(this.documentContext.document.uri.fsPath),selection:this.documentContext.selection}],this.text,!0);l.length>this.comments.length&&(this.reviewService.addReviewComments(l.slice(this.comments.length)),this.comments=l)}let s=ySe(a,[{document:this.documentContext.document,relativeDocumentPath:dr(this.documentContext.document.uri.fsPath),selection:this.documentContext.selection}],this.text,!1);s.length>this.comments.length&&(this.reviewService.addReviewComments(s.slice(this.comments.length)),this.comments=s),r.markdown(KMe.t("Reviewed your code and generated {0} suggestions.",s.length))}};YMe=S([b(1,q0)],YMe);var wpn=O(Lt());Be();var kye=O(Ye());var Ift=class extends kye.PromptElement{render(e,n){let{query:r,history:o}=this.props.promptContext;return vscpp(vscppf,null,vscpp(kye.SystemMessage,{priority:1e3},"You are a VS Code search expert who helps to write search queries for text in a workspace. Users want to search across a whole workspace. Your response will contain parameters to use in the search that targets what the user wants.",vscpp("br",null),vscpp(lo,null),vscpp(Kr,null)),vscpp(Zi,{historyPriority:600,passPriority:!0,history:o},vscpp(Xt,{priority:1e3},vscpp(cd,null),vscpp(kn,null),vscpp("br",null),"Additional Rules",vscpp("br",null),"The user's question is ALWAYS related to search or replace. When the user's question does not seem to be related to searching or replacing, you MUST assume that they're searching for or replacing what they are describing.",vscpp("br",null),`For example, if the user says "emojis", try appending "I'm looking for _____" to the beginning (e.g. I'm looking for emojis) to make more sense of it.`,vscpp("br",null),vscpp("br",null),"For all valid questions, you MUST respond with a JSON object with search parameters to use.",vscpp("br",null),'- Your answer MUST wrap the JSON object in "[ARGS START]" and "[ARGS END]". "[ARGS START]" must be on a new line.',vscpp("br",null),'- Your answer MUST have an explanation in full, human-readable sentences. This goes before the "[ARGS START]" line.',vscpp("br",null),vscpp("br",null),'If you put a regex in the "query" parameter, make sure to set "isRegex" to true.',vscpp("br",null),'If you put a regex in the "query" parameter, do not start and/or end with forward slashes to denote a regex literal.',vscpp("br",null),"You MUST NOT give an answer with an empty-string query parameter.",vscpp("br",null),vscpp("br",null),'The "replace" string will be used to replace the query-matched search results.',vscpp("br",null),vscpp("br",null),'If you want to target certain files, set "filesToInclude" to a glob pattern. DO NOT assume the "filesToInclude" and "filesToExclude" without being very sure that the user wants to target these files!',vscpp("br",null),vscpp("br",null),'If the query is case sensitive, set "isCaseSensitive" to true.',vscpp("br",null),vscpp("br",null),"By default, all string fields are the empty string, and all boolean fields are false. Only list the fields you want to change.",vscpp("br",null),vscpp("br",null),"You should write the JSON object of the search parameters in the following format:",vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": ...,',vscpp("br",null),' "replace": ...,',vscpp("br",null),' "filesToInclude": ...,',vscpp("br",null),' "filesToExclude": ...,',vscpp("br",null),' "isRegex": ...,',vscpp("br",null),' "isCaseSensitive": ...,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"Examples:",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"Search for 'foo' in all files under my 'src' directory.",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"Populate the query field with 'foo' and specify the files to include as 'src/'.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "foo",',vscpp("br",null),' "filesToInclude": "src" ,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"Find all CamelCase words in all files under the 'src/extensions' directory.",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"Perform a regex search for camelCase variables by checking for any word that has a lowercase letter followed by an uppercase letter, followed by any number of lowercase letters. You can use `\\b[a-z]+[A-Z][a-z]+\\b` to acheive this.",vscpp("br",null),"This must be case-sensitive since the capitalization of the letters in our regex matters.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "\\\\b[a-z]+[A-Z][a-z]+\\\\b",',vscpp("br",null),' "filesToInclude": "src/extensions" ,',vscpp("br",null),' "isRegex": true,',vscpp("br",null),' "isCaseSensitive": true,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"Find all hex color codes in css files",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"Perform a search for 6-digit or 3-digit hex color codes using the regex `#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\\b`.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\\\\b",',vscpp("br",null),' "filesToInclude": "*.css" ,',vscpp("br",null),' "isRegex": true,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"Find all HTTPS links in markdown.",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"Search all URLs that have the HTTPS protocol in a markdown file. Make sure to include all valid URL characters in their respective places. This regex should achieve this: `https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#()?&//=]*)`.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "https?:\\\\/\\\\/(www\\\\.)?[-a-zA-Z0-9@:%._\\\\+~#=]{2,256}\\\\.[a-z]{2,6}\\\\b([-a-zA-Z0-9@:%_\\\\+.~#()?&//=]*)",',vscpp("br",null),' "filesToInclude": "*.md" ,',vscpp("br",null),' "isRegex": true,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"Replace all YYYY-MM-DD dates with MM/DD/YYYY dates. Don't do this in typescript files.",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"You will need to use the regex `(\\d{4})-(\\d{2})-(\\d{2})` to match the YYYY-MM-DD date format. Then, you will need to use the replace string `$2/$3/$1` to replace the date with the MM/DD/YYYY format.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "(\\\\d{4})-(\\\\d{2})-(\\\\d{2})",',vscpp("br",null),' "replace: "$2/$3/$1",',vscpp("br",null),' "filesToExclude": "*.ts",',vscpp("br",null),' "isRegex": true,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"Replace all camel case variable names with snake case variable names.",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"To replace all camel case variables with snake case, we will need to:",vscpp("br",null),"1. Find all sequences of lowercase letters succeeded by uppercase letters. Use `([a-z]+)([A-Z])` to capture these sequences.",vscpp("br",null),"2. Separate them with an underscore character. `$1_$2` does this.",vscpp("br",null),"3. Convert both characters to lowercase. Adjust the previous replace text to be `\\l$1_\\l$2`.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "([a-z]+)([A-Z])",',vscpp("br",null),' "replace: "\\\\l$1_\\\\l$2",',vscpp("br",null),' "isRegex": true,',vscpp("br",null),' "isCaseSensitive": true,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"alphanumeric",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"To find all alphanumeric characters, you can use the regex `[a-zA-Z0-9]`.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "[a-zA-Z0-9]",',vscpp("br",null),' "isRegex": true,',vscpp("br",null),' "isCaseSensitive": true,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"link",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"To find all web links, use the regex `https?:\\/\\/\\S+`.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "https?:\\\\/\\\\/\\\\S+",',vscpp("br",null),' "isRegex": true,',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),'Search for actionbar files outside of my "extensions" directoy',vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),"To do this, use the query `actionbar` in all files except the ones in `extensions`.",vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "actionbar",',vscpp("br",null),' "filesToExclude": "extensions",',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null),vscpp("br",null),"### Question:",vscpp("br",null),"typescript for loop",vscpp("br",null),vscpp("br",null),"### Answer:",vscpp("br",null),'To look for "for" loops in most languages, use the query `for\\s*\\(`.',vscpp("br",null),vscpp("br",null),"[ARGS START]",vscpp("br",null),"```json",vscpp("br",null),"{",vscpp("br",null),' "query": "for\\s*\\(",',vscpp("br",null),' "isRegex: true,',vscpp("br",null),' "filesToInclude: "*.ts"',vscpp("br",null),"}",vscpp("br",null),"```",vscpp("br",null),"[ARGS END]",vscpp("br",null))),vscpp(Yd,{priority:700,embeddedInsideUserMessage:!1}),vscpp(kye.UserMessage,{priority:900},r))}};function MUa(t){if(!t)return[];let e=[],n={query:t.query??"",replace:t.replace??"",filesToInclude:t.filesToInclude??"",filesToExclude:t.filesToExclude??"",isRegex:t.isRegex??!1,isCaseSensitive:t.isRegex??!1};return e.push({command:"github.copilot.executeSearch",arguments:[n],title:wpn.t("Search")}),e}function ksi(t){let e=xh(t).at(0),n;if(e){let r;try{r=wE(e.code)}catch{}r&&(n=r)}return n}function FUa(t){if(!t)return[];let e=[`| Parameter | Value | `,`| ------ | ----- | `];for(let[n,r]of Object.entries(t)){if(r==="")continue;let o=r;(typeof r=="string"||r instanceof String)&&(o=r.replace(/\|/g,"\\|")),e.push(`| ${n} | \`${o}\` | `)}return e.push(` `),e}var JMe=class extends Fb{constructor(n,r,o,a){super(n,r,o);this.instantiationService=a}createRenderer(n,r,o,a){return en.create(this.instantiationService,r,Ift,{promptContext:n})}processResponse(n,r,o,a){return this.instantiationService.createInstance(Cpn).processResponse(n,r,o,a)}};JMe=S([b(3,j)],JMe);var Cpn=class extends iD{constructor(){super([{start:"[ARGS END]",stop:"[ARGS START]"}],n=>FUa(ksi(n.join(""))));this._response=""}async doProcessResponse(n,r,o){await super.doProcessResponse(n,r,o);let a=ksi(this._response??"");for(let s of MUa(a))r.button(s)}applyDelta(n,r){this._response+=n.text,super.applyDelta(n,r)}},Sye=class{constructor(e,n){this.instantiationService=e;this.endpointProvider=n;this.id="search";this.locations=[1];this.description=wpn.t("Generate query parameters for workspace search");this.commandInfo={allowsEmptyArgs:!1,defaultEnablement:JN}}static{this.ID="search"}async invoke(e){let n=e.location,r=await this.endpointProvider.getChatEndpoint(e.request);return this.instantiationService.createInstance(JMe,this,n,r)}};Sye=S([b(0,j),b(1,tt)],Sye);var Ssi=O(Lt());Be();var Tye=O(Ye());var kft=class extends Tye.PromptElement{render(e,n){let{query:r,history:o,chatVariables:a}=this.props.promptContext;return vscpp(vscppf,null,vscpp(Tye.SystemMessage,{priority:1e3},"You are a software engineer with expert knowledge of the codebase the user has open in their workspace.",vscpp("br",null),"You will be provided with a few code symbols that have been extracted as very relevant to a user's search query.",vscpp("br",null),"The user will be searching code extracts using natural language queries.",vscpp("br",null),"Your job is to find the best symbols to search for in order to find the exact code the user is looking for.",vscpp("br",null),vscpp("br",null),vscpp(lo,null),vscpp(Kr,null)),vscpp(Zi,{flexGrow:2,historyPriority:400,history:o,passPriority:!0},vscpp(Xt,{priority:1e3},"# Additional Rules",vscpp("br",null),"Think step by step:",vscpp("br",null),"1. Read the provided relevant workspace symbols to understand the code the user is searching for.",vscpp("br",null),"2. Provide concise keyword symbols that are the most relevant for what the user is searching for.",vscpp("br",null),vscpp("br",null),"The keywords MUST have enough characters for the user to search for and find the relevant piece of code.",vscpp("br",null),"You MUST NOT include decorators or any other characters in the response.",vscpp("br",null),"# Examples",vscpp("br",null),"Question:",vscpp("br",null),"base64 encoding",vscpp("br",null),vscpp("br",null),"Response:",vscpp("br",null),"convertEncoding()",vscpp("br",null),"toBase64()",vscpp("br",null),vscpp("br",null),"Question:",vscpp("br",null),"npm scripts",vscpp("br",null),vscpp("br",null),"Response:",vscpp("br",null),"npm run test",vscpp("br",null),"npm run build",vscpp("br",null),vscpp("br",null),"Question:",vscpp("br",null),"register result provider",vscpp("br",null),vscpp("br",null),"Response:",vscpp("br",null),"export class ResultProvider",vscpp("br",null),"registerResultProvider()",vscpp("br",null),"IResultProvider",vscpp("br",null),vscpp("br",null))),vscpp(Tye.UserMessage,null,vscpp(vscppf,null,"Here are all the relevant symbols for the user query:",vscpp("br",null),this.props.promptContext.symbols.join(` `),vscpp("br",null),vscpp("br",null)),vscpp(fi,{priority:899,flexGrow:3,promptContext:this.props.promptContext}),vscpp(xa,{flexGrow:3,chatVariables:a,priority:900,query:r})))}};var XMe=class extends Fb{constructor(n,r,o,a){super(n,r,o);this.instantiationService=a}createRenderer(n,r,o,a){return en.create(this.instantiationService,r,kft,{promptContext:n,endpoint:r})}};XMe=S([b(3,j)],XMe);var _7=class{constructor(e,n){this.instantiationService=e;this.endpointProvider=n;this.id=_7.ID;this.description=Ssi.t("Search code keywords in your current workspace");this.locations=[6];this.commandInfo={allowsEmptyArgs:!1,defaultEnablement:!0}}static{this.ID="searchKeywords"}async invoke(e){let n=e.location,r=await this.endpointProvider.getChatEndpoint("copilot-fast");return this.instantiationService.createInstance(XMe,this,n,r)}};_7=S([b(0,j),b(1,tt)],_7);var Tsi=O(Lt());Be();var gO=O(Ye());var eFe=class extends gO.PromptElement{constructor(n,r){super(n);this.workspaceService=r}render(){if(this.props.chunkResults.length)return vscpp(vscppf,null,this.props.chunkResults.map((n,r)=>{let o=typeof this.props.priority<"u"?this.props.priority+(1-(r+1)/this.props.chunkResults.length):void 0;return{chunk:n,priority:o}}).reverse().filter(n=>n.chunk.text).map(({chunk:n,priority:r})=>{let o=jv(this.workspaceService,n.file);return vscpp(gO.TextChunk,{priority:r},n.isFullFile?`Here is the full text of \`${o}\`:`:`Here is a potentially relevant text excerpt in \`${o}\` starting at line ${n.range.startLineNumber}:`,vscpp("br",null),Zc(Q3(n.file),n.text),vscpp("br",null),vscpp("br",null))}))}};eFe=S([b(1,Te)],eFe);var Sft=class extends gO.PromptElement{constructor(){super(...arguments);this.base64Code=` \`\`\`json [ { "file": "/src/encoders/base64.ts", "query": "/src/encoders/base64.ts:private async decodeFunction()" } ] \`\`\` `;this.npmCode=` \`\`\`json [ { "file": "/package.json", "query": "npm run test" }, { "file": "/src/second-package/package.json", "query": "npm run production" } ] \`\`\` `}render(n,r){let{query:o,history:a,chatVariables:s}=this.props.promptContext;return vscpp(vscppf,null,vscpp(gO.SystemMessage,{priority:1e3},"You are a software engineer with expert knowledge of the codebase the user has open in their workspace.",vscpp("br",null),"You will be provided with a few code excerpts, file names, and symbols from the user's that have been extracted as important to the user's query.",vscpp("br",null),"Your job is to understand what the user is searching for and find the relevant piece of code.",vscpp("br",null),"That piece of code will be searched for using grep in the user's workspace.",vscpp("br",null),vscpp("br",null),vscpp(lo,null),vscpp(Kr,null)),vscpp(Zi,{flexGrow:2,historyPriority:400,history:a,passPriority:!0},vscpp(Xt,{priority:1e3},vscpp(cd,null),vscpp(kn,null),"# Additional Rules",vscpp("br",null),"Think step by step:",vscpp("br",null),"1. Read the provided relevant workspace information (code excerpts, file names, and symbols) to understand the user's workspace.",vscpp("br",null),"2. Select ONLY from the provided code excerpts, file names, and symbols any code snippets that are relevant to the user's query.",vscpp("br",null),"3. Provide ONE query FOR EACH code excerpt the user should search for in order to find the relevant wrapping code, prioritizing the most meaningful code, class names, functions, definitions, etc.",vscpp("br",null),vscpp("br",null),"You MUST ONLY consider the included code excerpts, file names and symbols to provide your answer.",vscpp("br",null),"You MUST only return the file path and the query or phrase to search for using grep",vscpp("br",null),"You MUST avoid returning queries that are too short and too generic that would return a lot of noisy results",vscpp("br",null),"You MUST return one query per code excerpt provided",vscpp("br",null),vscpp("br",null),"# Examples",vscpp("br",null),"Question:",vscpp("br",null),"base64 encoding",vscpp("br",null),vscpp("br",null),"Response:",vscpp("br",null),this.base64Code,vscpp("br",null),vscpp("br",null),"Question:",vscpp("br",null),"npm scripts",vscpp("br",null),vscpp("br",null),"Response:",vscpp("br",null),this.npmCode)),vscpp(gO.UserMessage,null,vscpp(eFe,{priority:898,chunkResults:this.props.promptContext.chunkResults}),vscpp(fi,{priority:899,flexGrow:3,promptContext:this.props.promptContext}),vscpp(xa,{flexGrow:3,chatVariables:s,priority:900,query:`Here is the user query: ${o}`})))}};var tFe=class extends Fb{constructor(n,r,o,a){super(n,r,o);this.instantiationService=a}createRenderer(n,r,o,a){return en.create(this.instantiationService,r,Sft,{promptContext:n,endpoint:r})}};tFe=S([b(3,j)],tFe);var C7=class{constructor(e,n){this.instantiationService=e;this.endpointProvider=n;this.id=C7.ID;this.description=Tsi.t("Search code in your current workspace");this.locations=[6];this.commandInfo={allowsEmptyArgs:!1,defaultEnablement:!0}}static{this.ID="searchPanel"}async invoke(e){let n=e.location,r=await this.endpointProvider.getChatEndpoint("copilot-base");return this.instantiationService.createInstance(tFe,this,n,r)}};C7=S([b(0,j),b(1,tt)],C7);var Rsi=O(Lt());Be();var Tft=O(Lt()),hO=O(Ye());Be();ah();var Bye=class{constructor(e,n){this.grammar=n;this.accumulator="";this.currentEntries=[];this.tokens=[];this.state=e,this.currentEntries=Object.entries(n[e]||{})}visited(e){return this.tokens.some(n=>n.state===e)}accumulate(e=0,n=this.tokens.length,r){let o="";for(let a=e;a0&&this.tokens.push({state:this.state,token:this.accumulator.slice(0,r.index)}),this.tokens.push({state:this.state,token:this.accumulator.slice(r.index,r.index+r.length),transitionTo:r.toState});let a=this.accumulator.slice(r.index+r.length);this.state=r.toState,this.currentEntries=Object.entries(this.grammar[r.toState]||{}),this.accumulator="",this.append(a)}else this.accumulator.length>n&&(this.tokens.push({state:this.state,token:this.accumulator.slice(0,this.accumulator.length-n)}),this.accumulator=this.accumulator.slice(this.accumulator.length-n));return Ta.slice(this.tokens,o)}flush(){return this.accumulator?(this.tokens.push({state:this.state,token:this.accumulator}),Ta.slice(this.tokens,-1)):Ta.empty()}};var UJ=class{constructor(e,n,r,o){this.endpoint=e;this.documentContext=n;this.instantiationService=r;this.commandService=o}async buildPrompt(e,n,r){return en.create(this.instantiationService,this.endpoint,xpn,{endpoint:this.endpoint,promptContext:e,document:this.documentContext?.document,selection:this.documentContext?.selection}).render(n,r)}async processResponse(e,n,r,o){let a;(p=>(p[p.Reasoning=0]="Reasoning",p[p.Frameworks=1]="Frameworks"))(a||={});let s=u=>{for(let d of u)d.state===0&&d.transitionTo===void 0&&r.markdown(d.token)},c=new Bye(0,{0:{[Dye]:1}});for await(let{delta:u}of n){if(o.isCancellationRequested)return;s(c.append(u.text))}s(c.flush());let l=c.accumulate(void 0,void 0,1).split(` `).map(u=>u.replace(Dye,"").trim()).filter(u=>!!u);l.length?r.confirmation(Tft.t("Pick a testing framework"),Tft.t("Pick from these options, or use chat to tell me what you'd prefer:"),void 0,l):r.markdown(Tft.t("Use chat to tell me which framework you'd prefer.")),await this.commandService.executeCommand("workbench.action.chat.open",{query:"/setupTests ",isPartialQuery:!0})}};UJ=S([b(2,j),b(3,Ql)],UJ);var Rye=class extends UJ{constructor(n,r,o,a,s,c){super(r,a,s,c);this.intent=n;this.location=o}};Rye=S([b(4,j),b(5,Ql)],Rye);var Dye="FRAMEWORK: ",xpn=class extends hO.PromptElement{render(e,n){let{query:r,chatVariables:o}=this.props.promptContext;return vscpp(vscppf,null,vscpp(hO.SystemMessage,{priority:1e3},"You are a software engineer with expert knowledge around software testing frameworks.",vscpp("br",null),vscpp("br",null),vscpp(lo,null),vscpp(Kr,null),vscpp(cd,null),vscpp(kn,null),"# Additional Rules",vscpp("br",null),"1. Examine the workspace structure the user is giving you.",vscpp("br",null),"2. Determine the best testing frameworks that should be used for the project.",vscpp("br",null),"3. Give a brief explanation why a user would choose one framework over the other, but be concise and never give the user steps to set up the framework.",vscpp("br",null),"4. If you're unsure which specific framework is best, you can suggest multiple frameworks.",vscpp("br",null),"5. Suggest only frameworks that are used to run tests. Do not suggest things like assertion libraries or build tools.",vscpp("br",null),'6. After determining the best framework to use, write out the name of 1 to 3 suggested frameworks prefixed by the phrase "',Dye,'", for example: "',Dye,'vitest".',vscpp("br",null),vscpp("br",null),"DO NOT mention that you cannot read files in the workspace.",vscpp("br",null),"DO NOT ask the user to provide additional information about files in the workspace.",vscpp("br",null),vscpp("br",null),"# Example",vscpp("br",null),"## Question:",vscpp("br",null),"I am working in a workspace that has the following structure:",vscpp("br",null),"```\nsrc/\n index.ts\npackage.json\ntsconfig.json\nvite.config.ts\n```",vscpp("br",null),"## Response:",vscpp("br",null),"Because you have a `vite.config.ts` file, it looks like you're working on a browser or Node.js application. If you're working on a browser application, I recommend using Playwright. Otherwise, Vitest is a good choice for Node.js.",vscpp("br",null),Dye,"playwright",vscpp("br",null),Dye,"vitest",vscpp("br",null)),this.props.document&&vscpp(Ipn,{document:this.props.document}),vscpp(hO.UserMessage,{flexGrow:2},vscpp(Epn,null)),vscpp(xa,{flexGrow:2,priority:900,chatVariables:o,query:r,embeddedInsideUserMessage:!1}))}},Epn=class extends hO.PromptElement{render(e,n){return vscpp(gD,{maxSize:n.tokenBudget*4/3})}},Ipn=class extends hO.PromptElement{render(){let e=Wge.get(this.props.document.languageId);if(e?.perFramework)return vscpp(hO.SystemMessage,{priority:600},"These are the preferred test frameworks for ",this.props.document.languageId,":",vscpp("br",null),vscpp("br",null),[...e.perFramework.keys()].map(n=>`- ${n}`).join(` `),vscpp("br",null))}};var nFe=O(Lt()),bO=O(Ye());Fd();iu();Ot();Be();var Pye=class{constructor(e,n,r,o,a,s,c,l,u){this.intent=e;this.endpoint=n;this.location=r;this.prompt=o;this.instantiationService=a;this.workspaceService=s;this.workspaceMutationManager=c;this.extensionsService=l;this.commandService=u;this.recommendedExtension=new Wr(()=>Bsi(this.prompt))}async buildPrompt(e,n,r){return this.buildPromptContext=e,this.delegatedSetup=await this.delegateHandling(),this.delegatedSetup?lLn():(this.setupConfirmation=await this.getSetupConfirmation(),en.create(this.instantiationService,this.endpoint,kpn,{endpoint:this.endpoint,promptContext:e,query:this.prompt,setupConfirmation:this.setupConfirmation}).render(n,r))}async processResponse(e,n,r,o){let a;(A=>(A[A.LookingForTree=0]="LookingForTree",A[A.FileTree=1]="FileTree",A[A.FoundTree=2]="FoundTree"))(a||={});let s=e.turn.id,c=d=>{for(let p of d)if(p.transitionTo===1)r.markdown(l.accumulate(0,l.tokens.length-1));else if(p.transitionTo===2){let m=l.accumulate(void 0,void 0,1);this.handleFileTree(s,m,r)}else p.transitionTo===void 0&&p.state!==1&&l.visited(1)&&r.markdown(p.token)},l=new Bye(0,{0:{"```filetree":1},1:{"```":2}});for await(let{delta:d}of n)c(l.append(d.text));c(l.flush()),this.delegatedSetup&&r.markdown(this.delegatedSetup.message);let u=this.setupConfirmation?.command||this.delegatedSetup?.command;u?r.button(u):l.visited(1)?await this.recommendExtension(l.accumulate(void 0,void 0,0),r,o):await this.doFrameworkQuery(e,r,o)}async doFrameworkQuery(e,n,r){let o=this.instantiationService.createInstance(UJ,this.endpoint,void 0),a=await o.buildPrompt(this.buildPromptContext,void 0,r),s=new OS,c=o.processResponse(e,s.stream,n,r);await this.endpoint.makeChatRequest("testSetupAutomaticFrameworkID",a.messages,(l,u,d)=>(s.update(l,d),Promise.resolve(void 0)),r,this.location),s.resolve(),await c}async getSetupConfirmation(){let e=this.recommendedExtension.value,r=(e?this.extensionsService.getExtension(e.id):void 0)?.packageJSON?.copilot?.tests?.getSetupConfirmation;if(!r)return;let o;try{o=await this.commandService.executeCommand(r)}catch{}return o}async delegateHandling(){let e=this.recommendedExtension.value,r=(e?this.extensionsService.getExtension(e.id):void 0)?.packageJSON?.copilot?.tests?.setupTests;return r?await this.commandService.executeCommand(r):void 0}async recommendExtension(e,n,r){let o,a;this.recommendedExtension.value?(o=this.prompt,a=this.recommendedExtension.value):(o=await this.deriveFrameworkFromResponse(e,r),a=Bsi(o)),!(a&&this.extensionsService.getExtension(a.id))&&(n.markdown(` `),a?(n.markdown(nFe.t("I also recommend installing the {0} extension to make tests easy to run in VS Code:",a.name)),n.markdown(` `),n.push(new FOe([a.id]))):(n.markdown(nFe.t("You can also search for an extension to make tests easy to run in VS Code:")),n.button({command:"workbench.extensions.search",title:nFe.t("Search Extensions"),arguments:[`@category:testing ${this.prompt}`]})))}async deriveFrameworkFromResponse(e,n){let r=await en.create(this.instantiationService,this.endpoint,Tpn,{query:e}).render(),o=await this.endpoint.makeChatRequest("setupTestDeriveName",r.messages,void 0,n,1);return o.type!=="success"?"":o.value.replaceAll("`","")}handleFileTree(e,n,r){let o=this.workspaceService.getWorkspaceFolders().at(0);if(!o)return;let{chatResponseTree:a}=oZe(n,()=>OUa(e)),s=a.value[0];a.value.length===1&&/^\[.+\]$/.test(s.name)&&s.children&&(a.value=s.children),this.workspaceMutationManager.create(e,{baseURI:o,files:aZe(a.value),fileTree:n,query:this.prompt}),r.push(a),r.button({command:"github.copilot.tests.applyMutations",title:nFe.t("Apply Changes"),arguments:[e]})}};Pye=S([b(4,j),b(5,Te),b(6,EAe),b(7,EA),b(8,Ql)],Pye);var QUa="[project-name]";function OUa(t,e){return K.from({scheme:wot,authority:t,path:e?`/${e}`:"/"})}var kpn=class extends bO.PromptElement{render(e,n){let{query:r,setupConfirmation:o}=this.props;return vscpp(vscppf,null,vscpp(bO.SystemMessage,{priority:1e3},"You are a software engineer with expert knowledge around software testing frameworks.",vscpp("br",null),vscpp("br",null),vscpp(lo,null),vscpp(Kr,null),vscpp(cd,null),vscpp(kn,null),"# Additional Rules",vscpp("br",null),"1. The user will tell you what testing framework they want to set up, and provide you their workspace structure.",vscpp("br",null),"2. Determine how to test up the desired testing framework.",vscpp("br",null),"3. Generate a markdown file tree structure listing files you want to create or edit in order to set up the testing framework. The tree MUST NOT include files that don't need to be modified.",vscpp("br",null),'4. Make sure to include a basic "hello world" test to help the user get started. If you see existing test files in the workspace, make sure to try to match their naming convention.',vscpp("br",null),"5. Do not attempt to modify the file content yourself and simply respond with the file tree structure.",vscpp("br",null),'6. After listing the file tree structure, respond with any terminal commands the user should execute to finish installing the testing framework. Terminal commands should be wrapped in a code fence tagged with the "sh" language.',vscpp("br",null),"7. Finally, provide a command line a user can execute to run their tests.",vscpp("br",null),o&&vscpp(vscppf,null,"8. At the end, include a phrase that conveys '",o.message,"', but rephrase this to indicate that this is the last step the user needs to take to enable rich UI integration in VS Code.",o.command&&` This message will be followed by a button that says "${o.command.title}".`,vscpp("br",null)),vscpp("br",null),"# Example",vscpp("br",null),"## Question:",vscpp("br",null),"I want to: set up mocha tests in the workspace",vscpp("br",null),"I am working in a workspace that has the following structure:",vscpp("br",null),"```\nsrc/\n index.ts\npackage.json\ntsconfig.json\n```",vscpp("br",null),"## Response:",vscpp("br",null),'Let\'s create a `.mocharc.js` file to configure your test settings, as well as a "hello world" test:',vscpp("br",null),vscpp("br",null),`\`\`\`filetree ${QUa} \u251C\u2500\u2500 src \u2502 \u2514\u2500\u2500 index.test.ts \u2514\u2500\u2500 mocha.opts \`\`\``,vscpp("br",null),"Then, we'll need to install Mocha in your workspace:",vscpp("br",null),"```sh",vscpp("br",null),"npm install --save-dev mocha ```",vscpp("br",null),vscpp("br",null),"Finally, you can run your tests with the following command:",vscpp("br",null),"```sh",vscpp("br",null),"npx mocha",vscpp("br",null),"```",vscpp("br",null)),vscpp(bO.UserMessage,{flexGrow:2},vscpp(Spn,null)),vscpp(xa,{flexGrow:2,priority:900,chatVariables:this.props.promptContext.chatVariables,query:`I want to: ${r}`,embeddedInsideUserMessage:!1}))}},Spn=class extends bO.PromptElement{render(e,n){return vscpp(gD,{maxSize:n.tokenBudget*4/3})}},Tpn=class extends bO.PromptElement{render(){let{query:e}=this.props;return vscpp(vscppf,null,vscpp(Xt,{priority:1e3},"# Rules:",vscpp("br",null),"1. The user will give you instructions they were told regarding how to set up a testing framework.",vscpp("br",null),"2. Your job is to print the name of the testing framework referred to in the response.",vscpp("br",null),"3. Do not print any other information except for the name of the framework.",vscpp("br",null),vscpp("br",null),"# Example",vscpp("br",null),"## Question:",vscpp("br",null),'Given the structure of your workspace, I recommend using Mocha for testing. To set up Mocha, you should create a `.mocharc.js` file to configure your test settings, as well as a "hello world" test.',vscpp("br",null),"## Response:",vscpp("br",null),"mocha"),vscpp(bO.UserMessage,null,e))}};function Bsi(t){let e=t.toLowerCase();return Bv(Wge.values(),n=>n.forLanguage?.associatedFrameworks?.some(r=>e.includes(r))?n.forLanguage.extension:n.perFramework&&Bv(n.perFramework,([r,o])=>e.includes(r)?o:void 0))}var w7=class{constructor(e,n){this.endpointProvider=e;this.instantiationService=n;this.id=w7.ID;this.locations=[1];this.description=Rsi.t("Set up Tests");this.isListedCapability=!1;this.commandInfo={allowsEmptyArgs:!0,defaultEnablement:JN}}static{this.ID="setupTests"}async invoke(e){let n=await this.endpointProvider.getChatEndpoint(e.request),r=e.request.prompt;return e.request.acceptedConfirmationData&&(r=`set up tests in my workspace using \`${r.split(":")[0]}\``),r?Promise.resolve(this.instantiationService.createInstance(Pye,this,n,e.location,r)):this.instantiationService.createInstance(Rye,this,n,e.location,e.documentContext)}};w7=S([b(0,tt),b(1,j)],w7);var Dsi=O(Lt());Be();var x7=O(Ye());var Bft=class extends x7.PromptElement{render(e){let{query:n,history:r,chatVariables:o}=this.props.promptContext;return vscpp(vscppf,null,vscpp(x7.SystemMessage,{priority:1e3},"You are a programmer who specializes in using the command line. Your task is to help the Developer craft a command to run on the command line.",vscpp("br",null),vscpp(lo,null),vscpp(Fc,null)),vscpp(Zi,{flexGrow:1,historyPriority:600,passPriority:!0,history:r},vscpp(Xt,{priority:1e3},vscpp(cd,null),vscpp(kn,null),vscpp("br",null),"Additional Rules",vscpp("br",null),"Think step by step:",` 1. Read the provided relevant workspace information (file names, project files in the project root) to understand the user's workspace.`,` 2. Generate a response that clearly and accurately answers the user's question. In your response, follow the following: - Prefer single line commands. - Omit an explanation unless the suggestion is complex, if an explanation is included then be concise. - Provide the command suggestions using the active shell and operating system. - When there is text that needs to be replaced in the suggestion, prefix the text with '{', suffix the text with '}' and use underscores instead of whitespace. Only do this when the replacement text is NOT provided. - Say "I'm not quite sure how to do that." when you aren't confident in your explanation`,Bpn(this.props.shellType)?"\n - Prefer idiomatic PowerShell over aliases for other shells or system utilities. For example use `Stop-Process` or `Get-NetTCPConnection` instead of `kill` or `lsof` respectively.\n - Only use unix utilities when there is no PowerShell equivalent.\n - Prefer cross-platform PowerShell scripting that works on any operating system.":` - Only use a tool like python or perl when it is not possible with the shell.`,` 3. At the end of the response, list all text that needs to be replaced with associated descriptions in the form of a markdown list `.trim(),vscpp("br",null)),vscpp(Xt,{priority:700},"Examples:",vscpp("br",null),UUa(this.props.shellType))),vscpp(x7.UserMessage,{flexGrow:1,priority:750},vscpp(Vi,{languageId:Bpn(this.props.shellType)?"ps1":"bash",chatVariables:o})),vscpp(x7.UserMessage,{flexGrow:1,priority:800},"The active terminal's shell type is:",vscpp("br",null),this.props.shellType),vscpp(x7.UserMessage,{flexGrow:1,priority:800},"The active operating system is:",vscpp("br",null),this.props.osName),vscpp(eT,{priority:801}),vscpp(fi,{priority:899,flexGrow:2,promptContext:this.props.promptContext,embeddedInsideUserMessage:!1}),vscpp(xa,{flexGrow:2,priority:900,chatVariables:o,query:n,embeddedInsideUserMessage:!1}))}};function UUa(t){let e=['User: How do I revert a specific commit?\nAssistant:\n```sh\ngit revert {commit_id}\n```\n\nUser: How do I commit in git?\nAssistant:\n```sh\ngit commit -m "{message}"\n```'];switch(Bpn(t)||e.push("User: go to the foo dir\nAssistant:\n```sh\ncd foo\n```"),t){case"ps1":case"pwsh":case"powershell":{e.push("User: go to the foo dir\nAssistant:\n```pwsh\ncd .\\foo\\\n```\n\nUser: How do I delete a directory?\nAssistant:\n```pwsh\nRemove-Item {dir_name}\n```\n\nUser: create a file called foo\nAssistant:\n```pwsh\nNew-Item -ItemType File -Name foo\n```");break}case"bash":{e.push("User: Print all files starting with \"pre\"\n```bash\nfind . -type f -name 'pre*'\n```");break}default:{e.push("\nUser: How do I print all files recursively within a directory?\nAssistant:\n```sh\nls -lR\n```");break}}return e.join(` `)}function Bpn(t){return t==="ps1"||t==="pwsh"||t==="powershell"}var E7=class{constructor(e,n){this.instantiationService=e;this.endpointProvider=n;this.locations=[1,2];this.id=E7.ID;this.description=Dsi.t("Ask how to do something in the terminal");this.commandInfo={allowsEmptyArgs:!1}}static{this.ID="terminal"}async invoke(e){let n=e.location,r=await this.endpointProvider.getChatEndpoint(e.request);return this.instantiationService.createInstance(rFe,this,r,n)}};E7=S([b(0,j),b(1,tt)],E7);var rFe=class{constructor(e,n,r,o,a,s){this.intent=e;this.endpoint=n;this.location=r;this.instantiationService=o;this.envService=a;this.terminalService=s}async buildPrompt(e,n,r){let o=this.envService.OS,a=this.terminalService.terminalShellType;return await en.create(this.instantiationService,this.endpoint,Bft,{promptContext:e,osName:o,shellType:a,endpoint:this.endpoint}).render(n,r)}};rFe=S([b(3,j),b(4,Zt),b(5,Vd)],rFe);var Msi=O(Lt());Ot();Be();var Mye=O(Ye()),Psi=O(require("assert"));sr();pa();Be();var Rft=O(Ye());sr();var Nye=class extends Rft.PromptElement{constructor(n,r,o){super(n);this.parserService=r;this.workspaceService=o}async render(n,r,o,a){let{kind:s,testExampleFile:c}=this.props,l;try{l=await this.workspaceService.openTextDocumentAndSnapshot(c)}catch{return}let u=await Qj(this.parserService,l,void 0,new gt(0,0,0,0),r.tokenBudget),d=[new Rft.PromptReference(c)],p=this.workspaceService.getWorkspaceFolders().find(A=>c.path.startsWith(A.path)),m=c.path;switch(p!==void 0&&(m=va(p.path,c.path),m=m.split(wu).join("/")),s){case"candidateTestFile":return vscpp(z,{name:"testExample",priority:this.props.priority},vscpp("references",{value:d}),"Excerpt of the existing test file at `",m,"`:",vscpp("br",null),vscpp(hn,{uri:c,code:u.text,languageId:u.languageId}),vscpp("br",null),"Because a test file exists: ",vscpp("br",null),"- Do not generate preambles, like imports, copyright headers etc.",vscpp("br",null),"- Do generate code that can be appended to the existing test file.");case"anyTestFile":return vscpp(z,{name:"testExample",priority:this.props.priority},"This is a sample test file:",vscpp("br",null),vscpp(hn,{uri:c,code:u.text,languageId:u.languageId}))}}};Nye=S([b(1,Ai),b(2,Te)],Nye);sr();function Pft({workspaceService:t,chatVariables:e,userQuery:n,testFileToWriteTo:r,testedSymbolIdentifier:o,context:a}){let s=o?`\`${o}\``:"my code",c=e.substituteVariablesWithReferences(n),l=Dft(t,r.path),u=[];if(u.push(`Please, generate tests for ${s}.`),l!==null){let p=`The tests will be placed in \`${l}\``;p+=l.includes("/")?".":` located in the same directory as \`${Dft(t,a.document.uri.path)}\`.`,u.push(p),u.push("Generate tests accordingly.")}return u.push(c),u.filter(p=>p!=="").join(" ").trim()}function Dft(t,e){let n=t.getWorkspaceFolders().find(a=>e.startsWith(a.path));return n===void 0?null:va(n.path,e).split(wu).join("/")}var Lye=class{constructor(e,n,r,o,a,s,c,l,u){this.intent=e;this.endpoint=n;this.location=r;this.documentContext=o;this.alreadyConsumedChatVariable=a;this.instantiationService=s;this.workspaceService=c;this.ignoreService=l;this._parserService=u;this._testFileFinder=this.instantiationService.createInstance(MP)}async buildPrompt(e,n,r){(0,Psi.default)(!yq(this.documentContext.document),"TestFromSourceInvocation should not be invoked from a test file");let o=await this.findTestFileForSourceFile(r);if(o!==null&&o.kind==="candidateTestFile")this._testFileToWriteTo={kind:"existing",uri:o.testExampleFile};else{let l=$6r(this.documentContext.document);this._testFileToWriteTo={kind:"new",uri:l}}let a;if(this._testFileToWriteTo.kind==="new")a=new gt(0,0,0,0);else{let l=this._testFileToWriteTo.uri,u=await this.workspaceService.openTextDocument(l),d=this._parserService.getTreeSitterAST(u),p=d?await d.findLastTest():null;if(p===null)a=new gt(u.lineCount,0,u.lineCount,0);else{let m=u.positionAt(p.endIndex),A=m.line+1;a=new gt(m.line,m.character,A,0)}}return n.report(new sbn(this._testFileToWriteTo.uri,a)),this.location===1&&!e.query&&(e={...e,query:"Write a set of detailed unit test functions for the code above."}),await en.create(this.instantiationService,this.endpoint,iFe,{context:this.documentContext,endpoint:this.endpoint,location:this.location,testExampleFile:o,testFileToWriteTo:this._testFileToWriteTo,promptContext:e,alreadyConsumedChatVariable:this.alreadyConsumedChatVariable}).render(n,r)}async processResponse(e,n,r,o){if(this.location===1){await this.instantiationService.createInstance(iD,[],void 0).processResponse(e,n,r,o);return}let a=this.documentContext.document,s=this._additionalResponseParts;this._additionalResponseParts=void 0;let c=this._testFileToWriteTo?.kind,l=this._testFileToWriteTo?.uri;if(this._testFileToWriteTo=void 0,c===void 0||l===void 0)Nc(s,"Expected to have a textual response without a test file");else if(c==="new"){let u=new gt(0,0,0,0),d=new Ch("",Cn.empty,a.languageId);await new p8(l,d,this.documentContext.fileIndentInfo,uf.Emit,1,(m,A)=>new s8(A,u.start,m),Sp.createCodeBlockClassifier(),m=>!0).processResponse(e,n,r,o)}else{let u=await this.workspaceService.openTextDocumentAndSnapshot(l),d=this._parserService.getTreeSitterAST(u),p=d?await d.findLastTest():null,m;if(p===null)m=new gt(u.lineCount,0,u.lineCount,0);else{let y=u.positionAt(p.endIndex),v=y.line+1;m=new gt(y.line,y.character,v,0)}let f=(await Kre(this._parserService,u,this.documentContext.fileIndentInfo,m,u.getText().length)).splitAroundOriginalSelectionEnd(),g="$PLACEHOLDER$";await f.createReplyInterpreter($re.chain(y=>z1t(y,"`"+g+"`","selection"),y=>z1t(y,g,"selection")),1,f.insertStreaming,Sp.createCodeBlockClassifier(),y=>y.value.trim()!==g).processResponse(e,n,r,o)}s?.forEach(u=>r.push(u))}async findTestFileForSourceFile(e){let n,r=await this._testFileFinder.findTestFileForSourceFile(this.documentContext.document,e);if(e.isCancellationRequested)return null;if(r!==void 0)n="candidateTestFile";else{let o=await this._testFileFinder.findAnyTestFileForSourceFile(this.documentContext.document,e);if(e.isCancellationRequested)return null;n="anyTestFile",r=o}return r===void 0||await this.ignoreService.isCopilotIgnored(r)?null:{kind:n,testExampleFile:r}}};Lye=S([b(5,j),b(6,Te),b(7,Dt),b(8,Ai)],Lye);var iFe=class extends Mye.PromptElement{constructor(n,r,o){super(n);this.parserService=r;this.workspaceService=o}async render(n,r){let{history:o,query:a,chatVariables:s}=this.props.promptContext,{context:c,testExampleFile:l,testFileToWriteTo:u,location:d,alreadyConsumedChatVariable:p}=this.props,m=this.parserService.getTreeSitterAST(c.document),A=c.selection,f,g;if(m!==void 0){let I=await m.getNodeToDocument(xA(c.selection,c.document));A=d_(c.document,I.nodeToDocument),f=I.nodeIdentifier,g=I.nodeToDocument.type}let h=["typescript","typescriptreact"].includes(c.document.languageId)&&g!==void 0&&["class_declaration","method_definition"].includes(g)?{costFnOverride:(I,k)=>I&&(I.kind==="constructor"||I.kind==="method_definition")?0:k}:void 0,y=await Qj(this.parserService,c.document,c.fileIndentInfo,A,r.tokenBudget/2,h),v=c.language.languageId,_=await this.computeLangSpecificExtraGuidelines(c,l),w=Pft({workspaceService:this.workspaceService,chatVariables:s,userQuery:a,testFileToWriteTo:u.uri,testedSymbolIdentifier:f,context:c}),x=Dft(this.workspaceService,c.document.uri.path)??dr(c.document.uri.path),E=p===void 0?s:s.filter(I=>I.reference!==p);return vscpp(vscppf,null,vscpp(Mye.SystemMessage,{priority:1e3},"You are an AI programming assistant.",vscpp("br",null),vscpp(lo,null),vscpp("br",null),vscpp(Kr,null)),vscpp(Zi,{history:o,passPriority:!0,historyPriority:700},vscpp(Xt,{priority:1e3},d===4?vscpp(vscppf,null,"The user has a ",v," file opened in a code editor.",vscpp("br",null),"The user includes some code snippets from the file.",vscpp("br",null),"Answer with a single ",v," code block."):d===1?vscpp(vscppf,null,"First think step-by-step - describe your plan for what to build in pseudocode, written out in great detail.",vscpp("br",null),"Then output the code in a single code block.",vscpp("br",null),"Minimize any other prose.",vscpp("br",null),"Use Markdown formatting in your answers.",vscpp("br",null),"Make sure to include the programming language name at the start of the Markdown code blocks.",vscpp("br",null),"Avoid wrapping the whole response in triple backticks.",vscpp("br",null),"The user works in an IDE called Visual Studio Code which has a concept for editors with open files, integrated unit test support, an output pane that shows the output of running the code as well as an integrated terminal.",vscpp("br",null),"The active document is the source code the user is looking at right now.",vscpp("br",null),"You can only give one reply for each conversation turn."):void 0,_.length>0&&vscpp(vscppf,null,vscpp("br",null)," ",_))),vscpp(Mye.UserMessage,null,vscpp(FP,{languageId:v,priority:750}),vscpp(Vi,{chatVariables:E,languageId:c.language.languageId,includeTestGenerationInstructions:!0,priority:725}),vscpp(fi,{priority:750,promptContext:this.props.promptContext,flexGrow:1}),vscpp(Ds,{priority:750,chatVariables:E}),l!==null&&vscpp(Nye,{priority:750,...l}),vscpp(z,{name:"currentFile",priority:900},"Here is the current file at `",x,"`:",vscpp("br",null),vscpp("br",null),vscpp(hn,{uri:c.document.uri,languageId:c.document.languageId,code:y.text}),vscpp("br",null),vscpp("br",null),w)))}async computeLangSpecificExtraGuidelines(n,r){let o=[];if(n.document.languageId==="python"&&!(r!==null&&r.kind==="candidateTestFile")){o.push("Make sure your answer imports the function to test as this is a total new file.");let s=nu(n.document.uri.fsPath),c=zr(s,"__init__.py"),l=this.workspaceService.getWorkspaceFolder(n.document.uri);try{await this.workspaceService.openTextDocument(Qn.file(c)),l!==void 0&&KC(s)===KC(l?.fsPath??"")?o.push("The file is in the root of the workspace, which has an __init__.py but use an absolute import to import the function to test."):o.push("The parent directory of the given file has an __init__.py file making it a regular package. Use a relative import to import the function to test.")}catch{o.push("The parent directory of the given file has no __init__.py file making it a namespace package. Use an absolute import to import the function to test.")}}return o.join(` `)}};iFe=S([b(1,Ai),b(2,Te)],iFe);var Oye=O(Ye());En();pa();Be();var Nsi=O(Ye()),Lsi=O(require("assert"));yr();Be();var Fye=class extends Nsi.PromptElement{constructor(n,r,o,a){super(n);this.instaService=r;this.ignoreService=o;this.workspaceService=a}async render(n,r){let{documentContext:o,srcFile:a}=this.props;(0,Lsi.default)(yq(o.document),"Test2Impl must be invoked on a test file.");let s,c;if(a?(s=a.uri,c=a.target):s=await this.instaService.createInstance(MP).findFileForTestFile(o.document,Yt.None),s===void 0||await this.ignoreService.isCopilotIgnored(s))return;let l=await this.workspaceService.openTextDocumentAndSnapshot(s),d=await this.instaService.createInstance(cI).summarizeDocument(l,o.fileIndentInfo,c,r.tokenBudget),p=[new of.PromptReference(s)];return vscpp(z,{name:"codeToTest",priority:this.props.priority},vscpp("references",{value:p}),"Below is the file located at ",s.path,":",vscpp("br",null),vscpp(hn,{code:d.text,uri:s,languageId:o.document.languageId}))}};Fye=S([b(1,j),b(2,Dt),b(3,Te)],Fye);var Qye=class{constructor(e,n,r,o,a,s,c){this.intent=e;this.endpoint=n;this.location=r;this.context=o;this.alreadyConsumedChatVariable=a;this.instantiationService=s;this.testGenInfoStorage=c;this.replyInterpreter=null}async buildPrompt(e,n,r){let o=this.testGenInfoStorage.sourceFileToTest;o!==void 0&&(this.testGenInfoStorage.sourceFileToTest=void 0);let s=await en.create(this.instantiationService,this.endpoint,oFe,{context:this.context,promptContext:e,alreadyConsumedChatVariable:this.alreadyConsumedChatVariable,testGenInfo:o}).render(n,r);return this.replyInterpreter=s.metadata.get(IA)?.replyInterpreter??null,s}async processResponse(e,n,r,o){if(this.location===1){await this.instantiationService.createInstance(iD,[],void 0).processResponse(e,n,r,o);return}return Nc(this.replyInterpreter!==null,"TestFromTestInvocation should have received replyInterpreter from its prompt element"),this.replyInterpreter.processResponse(e,n,r,o)}};Qye=S([b(5,j),b(6,klt)],Qye);var oFe=class extends Oye.PromptElement{constructor(n,r,o){super(n);this.workspaceService=r;this.parserService=o}async render(n,r){let{history:o,query:a,chatVariables:s}=this.props.promptContext,{context:c,testGenInfo:l,alreadyConsumedChatVariable:u}=this.props;if(Ts(c.document.uri))throw $o("TestFromTestPrompt should not be used for notebooks");let d=l?.identifier,p=l===void 0?`Please, generate more tests, taking into account existing tests. ${a}`.trim():Pft({workspaceService:this.workspaceService,chatVariables:s,userQuery:a,testFileToWriteTo:c.document.uri,testedSymbolIdentifier:d,context:c}),m;if(l!==void 0){let g=await this.workspaceService.openTextDocument(l.uri),h=l.target.start,y=l.target.with(h.with(h.line,0));m=g.getText(y)}let A=await ty.create(this.parserService,c.document,c.fileIndentInfo,c.wholeRange,0),f=u===void 0?s:s.filter(g=>g.reference!==u);return vscpp(vscppf,null,vscpp(Oye.SystemMessage,{priority:1e3},"You are an AI programming assistant.",vscpp("br",null),vscpp(lo,null),vscpp("br",null),vscpp(Kr,null)),vscpp(Zi,{passPriority:!0,history:o,historyPriority:700},vscpp(Xt,{priority:1e3},"The user has a ",c.language.languageId," file opened in a code editor.",vscpp("br",null),"The user includes some code snippets from the file.",vscpp("br",null),"Answer with a single ",c.language.languageId," code block.",vscpp("br",null),"Your expertise is strictly limited to software development topics.",vscpp("br",null))),vscpp(Oye.UserMessage,null,vscpp(FP,{priority:750,languageId:c.language.languageId}),vscpp(Vi,{chatVariables:f,priority:725,languageId:c.language.languageId,includeTestGenerationInstructions:!0}),vscpp(fi,{priority:750,promptContext:this.props.promptContext,flexGrow:1}),vscpp(Ds,{priority:750,chatVariables:f}),vscpp(Fye,{priority:800,documentContext:c,srcFile:l}),vscpp(z,{name:"testsFile",priority:900},vscpp(y_,{documentData:A,tokenBudget:r.tokenBudget/3,_allowEmptySelection:!0})),l!==void 0&&m!==void 0&&vscpp(z,{name:"codeToTest",priority:900},`Repeating excerpt from \`${l?.uri.path}\` here that needs to be tested:`,vscpp("br",null),vscpp(hn,{uri:l.uri,languageId:c.language.languageId,code:m})),vscpp(z,{name:"userPrompt",priority:900},vscpp(Cc,{chatVariables:f,query:p}))))}};oFe=S([b(1,Te),b(2,Ai)],oFe);var qye=O(Ye());yr();Be();var Uye=class{constructor(e,n,r){this.endpointProvider=e;this.instantiationService=n;this.logService=r}async parse(e){let n=await this.endpointProvider.getChatEndpoint("copilot-fast"),o=await en.create(this.instantiationService,n,Rpn,{query:e}).render(),a=await n.makeChatRequest("testGenParseUserQuery",o.messages,void 0,Yt.None,6);return a.type==="success"?this.processResponse(a.value):null}processResponse(e){let n=e.split(/\r\n|\r|\n/).filter(o=>o!=="");n.at(0)!=="```"&&(n.splice(0,1),n.at(-1)==="```"&&n.splice(n.length-1,1),e=n.join(` `));let r;try{r=JSON.parse(e)}catch(o){return this.logService.error(`Failed to parse user query response Response: ${e} Error: ${o}`),null}return this.isParsedUserQuery(r)?r:null}isParsedUserQuery(e){if(typeof e!="object"||e===null)return!1;let n=e;if(n.fileToTest!==void 0&&typeof n.fileToTest!="string")return!1;if(n.symbolsToTest!==void 0){if(!Array.isArray(n.symbolsToTest))return!1;for(let r of n.symbolsToTest)if(typeof r!="string")return!1}return!0}};Uye=S([b(0,tt),b(1,j),b(2,Z)],Uye);var Rpn=class extends qye.PromptElement{constructor(e){super(e)}render(e,n){let{query:r}=this.props;return vscpp(vscppf,null,vscpp(qye.SystemMessage,null,` You are a helpful assistant that parses user queries. The user is a software developer that is asking an AI programming assistant to generate tests. Your job is to parse the user query into a JSON object of the following shape: \`\`\`typescript { /** * File reference to test. */ fileToTest?: string; /** * Symbols in {fileToTest} to generate tests for. * Can be undefined if cannot be identified from user query. */ symbolsToTest?: string[]; } \`\`\` You must return a JSON object of the given shape. `),vscpp(qye.UserMessage,null,"User query: ",r,vscpp("br",null),"Parsed query:",vscpp("br",null)))}};var $ye=class{constructor(e,n,r,o,a){this.instantiationService=e;this.endpointProvider=n;this.ignoreService=r;this.workspaceService=o;this.logService=a;this.id="tests";this.locations=[1,4];this.description=Msi.t("Generate unit tests for the selected code");this.commandInfo={toolEquivalent:"copilot_findTestFiles"}}static{this.ID="tests"}handleRequest(e,n,r,o,a,s,c,l){return this.instantiationService.createInstance(aFe,this,e,n,r,o,a,c,l).getResult()}async invoke(e){let n=e.documentContext,r;if(!n){let s=await this.resolveDocContextProgrammatically(e);s&&(n=s.documentContext,r=s.alreadyConsumedChatVariable)}if(!n){let s=await this.resolveDocContextUsingLlm(e);s&&(n=s.documentContext,r=s.alreadyConsumedChatVariable)}if(!n)throw new Error("To generate tests, open a file and select code to test.");if(await this.ignoreService.isCopilotIgnored(n.document.uri))throw new Error("Copilot is disabled for this file.");let o=e.location,a=await this.endpointProvider.getChatEndpoint(e.request);return yq(n.document)?this.instantiationService.createInstance(Qye,this,a,o,n,r):this.instantiationService.createInstance(Lye,this,a,o,n,r)}async resolveDocContextProgrammatically(e){let n=e.request.references,r=0,o=[];for(let c of n)if(c.id==="copilot.file"||c.id==="vscode.file")ti(c.value)&&(r+=1,o.push([c,c.value]));else{if(!ti(c.id))continue;let l=K.parse(c.id);l!==void 0&&o.push([c,l])}if(r>1||o.length===0)return;let[a,s]=o[0];return{documentContext:await this.createDocumentContext(s),alreadyConsumedChatVariable:a}}async resolveDocContextUsingLlm(e){let r=await this.instantiationService.createInstance(Uye).parse(e.request.prompt);if(r===null)return;let{fileToTest:o}=r;if(o!==void 0)for(let a=0;atypeof r=="object"?JSON.stringify(r,null," "):r).join(` `);this.logService.debug(`[TestsIntent] ${n}`)}};$ye=S([b(0,j),b(1,tt),b(2,Dt),b(3,Te),b(4,Z)],$ye);var aFe=class extends B_{constructor(n,r,o,a,s,c,l,u,d,p,m,A,f,g,h,y,v,_,w,x,E){super(n,r,o,a,s,c,l,u,void 0,void 0,d,p,m,A,f,h,y,v,_,w,x,E);this.setupTestsDetector=g}async getResult(){return this.request.acceptedConfirmationData?.some(FHr)?(setTimeout(()=>this.getResultInner()),{}):this.getResultInner()}async getResultInner(){let n=this.documentContext&&await this.setupTestsDetector.shouldSuggestSetup(this.documentContext,this.request,this.stream);if(!n)return super.getResult();let r={};return n.type===4&&(r=await super.getResult()),this.setupTestsDetector.showSuggestion(n).forEach(o=>this.stream.push(o)),r}};aFe=S([b(8,j),b(9,T_),b(10,Ee),b(11,Z),b(12,EI),b(13,ylt),b(14,Fr),b(15,w_),b(16,at),b(17,Fm),b(18,od),b(19,Ua),b(20,be)],aFe);var Qsi=O(Lt());Be();var zye=O(Lt());async function Fsi(t,e){let n=xh(e);for(let r of n){if(r.language!=="json"&&r.language!=="")return[];let o=[];try{let l=r.code.replace(/,\s*([\]}])/g,"$1");o=JSON.parse(l)}catch{return[]}if(!o.length)return[];let a=[],s=o.some(l=>l.type==="setting"),c=o.some(l=>l.type==="command");if(s){let l=await t.getAllSettings();o=o.filter(d=>d.details?Object.keys(l).includes(d.details.key):!0);let u=o.reduce((d,p)=>(p.details&&(d+=`@id:${p.details.key} `),d),"");return a.push({commandToRun:{command:"workbench.action.openSettings",arguments:[u],title:zye.t("Show in Settings Editor")}}),a}if(c){let l=o[0];if(l.details?.key==="workbench.extensions.search"||l.details?.key==="workbench.extensions.installExtension"){let u=(Array.isArray(l.details.value)?l.details.value:[l.details.value]).filter(d=>typeof d=="string");if(u.length===1){let d=["featured","popular","recentlyPublished","recommended","updates","builtin","enabled","disabled","installed","workspaceUnsupported"];u[0].includes(":")&&!u[0].startsWith("@")?u[0]=`@${u[0]}`:d.includes(u[0])&&(u[0]=`@${u[0]}`)}return a.push({commandToRun:{command:"workbench.extensions.search",arguments:u,title:zye.t("Search Extension Marketplace")}}),a}else{let d=(await t.getAllCommands(!1)).find(p=>p.command===l.details?.key);return d?(a.push({commandToRun:{command:"workbench.action.quickOpen",arguments:[`>${d.label??""}`],title:a.length>1?zye.t('Show "{0}"',d.label??""):zye.t("Show in Command Palette")}}),a):(a.push({commandToRun:{command:"workbench.action.quickOpen",arguments:[">"],title:zye.t("Open Command Palette")}}),a)}}}return[]}var Dpn=O(Lt()),YC=O(Ye());Be();var jye=class extends YC.PromptElement{constructor(n,r,o,a,s,c,l,u){super(n);this.logService=r;this.embeddingsComputer=o;this.endPointProvider=a;this.combinedEmbeddingIndex=s;this.envService=c;this.instantiationService=l;this.releaseNotesService=u}async prepare(n,r,o){if(!this.props.promptContext.query)return{settings:[],commands:[],query:""};r?.report(new l0(Dpn.t("Refining question to improve search accuracy.")));let a=this.props.promptContext.query,s=await this.endPointProvider.getChatEndpoint("copilot-fast"),c=en.create(this.instantiationService,s,Ppn,this.props.promptContext),{messages:l}=await c.render();if(o.isCancellationRequested)return{settings:[],commands:[],query:a};this.logService.debug("[VSCode Prompt] Asking the model to update the user question.");let u=await s.makeChatRequest("vscodePrompt",l,async _=>{},o,1,void 0,{temperature:0});if(o.isCancellationRequested)return{settings:[],commands:[],query:a};let d=!1,p=!1,m=!1,A=!1;u.type==="success"?(a=qUa(this.props.promptContext.query,u.value),p=u.value.includes("Other Question"),d=u.value.includes("release_notes"),m=u.value.includes("vscode_extensions"),A=u.value.includes("vscode_api")):this.logService.error(`[VSCode Prompt] Failed to refine the question: ${u.requestId}`);let f=tx(this.envService.getEditorInfo().version);if(d){let w=(u.type==="success"?u.value.match(/release_notes(?:@(?[A-Za-z0-9._-]+))?/i):void 0)?.groups?.spec?.toLowerCase(),x;w==="last3"?x=$Ua(f,3):x=[f];let I=(await Promise.all(x.map(async k=>{let T=await this.releaseNotesService.fetchReleaseNotesForVersion(k);return T?{version:k,notes:T}:void 0}))).filter(k=>!!k);return{settings:[],commands:[],releaseNotes:I,query:this.props.promptContext.query,currentVersion:f}}if(m||A)return{settings:[],commands:[],query:this.props.promptContext.query};if(o.isCancellationRequested)return{settings:[],commands:[],query:a};let g=await this.embeddingsComputer.computeEmbeddings(eo.text3small_512,[a],{},void 0);if(o.isCancellationRequested)return{settings:[],commands:[],query:a};let h=r?cZe(r,new l0(Dpn.t("Searching command and setting index....")),this.combinedEmbeddingIndex.nClosestValues(g.values[0],p?5:25),500):this.combinedEmbeddingIndex.nClosestValues(g.values[0],p?5:25),y=await Promise.allSettled([h]),v=y[0].status==="fulfilled"?y[0].value:{commands:[],settings:[]};return{settings:v.settings,commands:v.commands,query:a,currentVersion:f}}render(n){let r=this.envService.OS;return vscpp(vscppf,null,vscpp(YC.SystemMessage,{priority:1e3},"You are a Visual Studio Code assistant. Your job is to assist users in using Visual Studio Code by providing knowledge to accomplish their task. This knowledge should focus on settings, commands, keybindings but also includes documentation. ",vscpp("br",null),n.query.length<1&&vscpp(vscppf,null,"If the user does not include a question, respond with: I am your Visual Studio Code assistant. I can help you with settings, commands, keybindings, extensions, and documentation. Ask me anything about using or configuring Visual Studio Code.",vscpp("br",null)),vscpp(lo,null),vscpp(Kr,null),vscpp(Xt,null,"Additional Rules",vscpp("br",null),"If a command or setting references another command or setting, you must respond with both the original and the referenced commands or settings.",vscpp("br",null),"Prefer a setting over a command if the user's request can be achieved by a setting change.",vscpp("br",null),"If answering with a keybinding, please still include the command bound to the keybinding.",vscpp("br",null),"If a keybinding contains a backtick you must escape it. For example the keybinding Ctrl + backtick would be written as ``ctrl + ` ``",vscpp("br",null),"If you believe the context given to you is incorrect or not relevant you may ignore it.",vscpp("br",null),"Always respond with a numbered list of steps to be taken to achieve the desired outcome if multiple steps are necessary.",vscpp("br",null),'If an extension might help the user, you may suggest a search query for the extension marketplace. You must also include the command **Search marketplace** (`workbench.extensions.search`) with args set to the suggested query in the commands section at the end of your response. The query can also contain the tags "@popular", "@recommended", or "@featured" to filter the results.',vscpp("br",null),"The user is working on a ",r," machine. Please respond with system specific commands if applicable.",vscpp("br",null),"If a command or setting is not a valid answer, but it still relates to Visual Studio Code, please still respond.",vscpp("br",null),"If the question is about release notes, you must also include the command **Show release notes** (`update.showCurrentReleaseNotes`) in the commands section at the end of your response.",vscpp("br",null),"If the response includes a command, only reference the command description in the description. Do not include the actual command in the description.",vscpp("br",null),"All responses for settings and commands code blocks must strictly adhere to the template shown below:",vscpp("br",null),vscpp(z,{name:"responseTemplate"},vscpp(ql,{code:` { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": ["command", "setting"] }, "details": { "type": "object", "properties": { "key": { "type": "string" }, "value": { "type": "string" } }, "required": ["key"] } }, "required": ["type", "details"], "additionalProperties": false } } `,languageId:"json"}),vscpp("br",null),"where the `type` is either `setting`, `command`.",vscpp("br",null),"- `setting` is used for responding with a setting to set.",vscpp("br",null),"- `command` is used for responding with a command to execute",vscpp("br",null),"where the `details` is an optional object that contains the setting/command objects.",vscpp("br",null),"- `key` is the setting | command value to use .",vscpp("br",null),"- `value` is the setting value in case of a setting.",vscpp("br",null),"- `value` is the optional arguments to the command in case of a command.",vscpp("br",null)),vscpp(z,{name:"examples"},"Below you will find a set of examples of what you should respond with. Please follow these examples as closely as possible.",vscpp("br",null),vscpp(z,{name:"singleSettingExample"},"Question: How do I disable telemetry?",vscpp("br",null),"Response:",vscpp("br",null),"Use the **telemetry.telemetryLevel** setting to disable telemetry.",vscpp("br",null),vscpp(ql,{code:` [ { "type": "setting", "details": { "key": "telemetry.telemetryLevel", "value": "off" } } ] `,languageId:"json"})),vscpp(z,{name:"singleCommandExample"},"Question: How do I open a specific walkthrough?",vscpp("br",null),"Use the **Welcome: Open Walkthrough...** command to open walkthroughs.",vscpp("br",null),"Response:",vscpp("br",null),vscpp(ql,{code:` [ { "type": "command", "details": { "key": "workbench.action.openWalkthrough", } } ] `,languageId:"json"})),vscpp(z,{name:"multipleSettingsExample"},"If you are referencing multiple settings, first describe each setting and then include all settings in a single JSON markdown code block, as shown in the template below:",vscpp("br",null),"Question: How can I change the font size in all areas of Visual Studio Code, including the editor, terminal?",vscpp("br",null),"Response:",vscpp("br",null),"The **editor.fontsize** setting adjusts the font size within the editor.",vscpp("br",null),"The **terminal.integrated.fontSize** setting changes the font size in the integrated terminal.",vscpp("br",null),"This **window.zoomLevel** setting controls the zoom level of the entire Visual Studio Code interface.",vscpp("br",null),vscpp(ql,{code:` [ { "type": "setting", "details": { "key": "editor.fontSize", "value": "18" } }, { "type": "setting", "details": { "key": "terminal.integrated.fontSize", "value": "14" } }, { "type": "setting", "details": { "key": "window.zoomLevel", "value": "1" } } ] `,languageId:"json"})),vscpp(z,{name:"multipleCommandsExample"},"If you are referencing multiple commands, do not combine all the commands into the same JSON markdown code block.",vscpp("br",null),"Instead, describe each command and include the JSON markdown code block in a numbered list, as shown in the template below:",vscpp("br",null),"Question: How can I setup a python virtual environment in Visual Studio Code?",vscpp("br",null),"Response:",vscpp("br",null),"Use the **Python: Create Environment** command to create a new python environment.",vscpp("br",null),vscpp(ql,{code:` [ { "type": "command", "details": { "key": "python.createEnvironment" } } ] `,languageId:"json"}),"Select the environment type (Venv or Conda) from the list.",vscpp("br",null),"If creating a Venv environment, select the interpreter to use as a base for the new virtual environment.",vscpp("br",null),"Wait for the environment creation process to complete. A notification will show the progress.",vscpp("br",null),"Ensure your new environment is selected by using the **Python: Select Interpreter** command.",vscpp("br",null),vscpp(ql,{code:` [ { "type": "command", "details": { "key": "python.setInterpreter" } } ] `,languageId:"json"})),vscpp(z,{name:"noSuchCommandExample"},"Question: How do I move the terminal to a new window?",vscpp("br",null),"Response:",vscpp("br",null),"There is no such command.",vscpp("br",null)),vscpp(z,{name:"invalidQuestionExample"},"Question: How do I bake a potato?",vscpp("br",null),"Response:",vscpp("br",null),"Sorry this question isn't related to Visual Studio Code.",vscpp("br",null)),vscpp(z,{name:"marketplaceSearchExample"},"Question: How do I add PHP support?",vscpp("br",null),"Response:",vscpp("br",null),"You can use the **Search marketplace** command to search for extensions that add PHP support.",vscpp("br",null),vscpp(ql,{code:` [ { "type": "command", "details": { "key": "workbench.extensions.search", "value": "php" } } ] `,languageId:"json"}),vscpp("br",null))),vscpp(z,{name:"extensionSearchResponseRules"},"If you referene any extensions, you must respond with with the identifiers as a comma seperated string inside ```vscode-extensions code block. ",vscpp("br",null),"Do not describe the extension. Simply return the response in the format shown above.",vscpp("br",null),vscpp(z,{name:"extensionResponseExample"},"Question: What are some popular python extensions?",vscpp("br",null),"Response:",vscpp("br",null),"Here are some popular python extensions.",vscpp("br",null),vscpp(ql,{code:` ms-python.python,ms-python.vscode-pylance `,languageId:"vscode-extensions"}))),vscpp(kn,null))),vscpp(W3,{flexGrow:1,priority:700,promptContext:this.props.promptContext}),vscpp(YC.UserMessage,{flexGrow:1,priority:800},'Use the examples above to help you formulate your response and follow the examples as closely as possible. Below is a list of information we found which might be relevant to the question. For view related commands "Toggle" often means Show or Hide. A setting may reference another setting, that will appear as \\`#setting.id#\\`, you must return the referenced setting as well. You may use this context to help you formulate your response, but are not required to.',vscpp("br",null),n.commands.length>0&&vscpp(vscppf,null,vscpp(z,{name:"command"},"Here are some possible commands:",vscpp("br",null),n.commands.map(o=>vscpp(YC.TextChunk,null,"- ",o.label,' ("',o.key,'") (Keybinding: "',o.keybinding,'")')))),n.settings.length>0&&vscpp(vscppf,null,vscpp(z,{name:"settings"},"Here are some possible settings:",vscpp("br",null),n.settings.map(o=>vscpp(YC.TextChunk,null,bSe(o))))),n.currentVersion&&vscpp(vscppf,null,vscpp(z,{name:"currentVSCodeVersion"},"Current VS Code version (major.minor): ",n.currentVersion),vscpp("br",null)),n.releaseNotes&&n.releaseNotes.length>0&&vscpp(vscppf,null,vscpp(z,{name:"releaseNotes"},"Below are release notes which might be relevant to the question. ",vscpp("br",null),n.releaseNotes.map(o=>vscpp(vscppf,null,vscpp(YC.TextChunk,null,"Version ",o.version,":"),vscpp("br",null),vscpp(YC.TextChunk,null,o.notes))))),vscpp(z,{name:"vscodeAPIToolUseInstructions"},"Always call the tool ","get_vscode_api"," to get documented references and examples when before responding to questions about VS Code Extension Development.",vscpp("br",null)),vscpp(z,{name:"searchExtensionToolUseInstructions"},"Always call the tool 'vscode_searchExtensions_internal' to first search for extensions in the VS Code Marketplace before responding about extensions.",vscpp("br",null)),vscpp(z,{name:"vscodeCmdToolUseInstructions"},"Call the tool ","run_vscode_command"," to run commands in Visual Studio Code, only use as part of a new workspace creation process. ",vscpp("br",null),"You must use the command name as the `name` field and the command ID as the `commandId` field in the tool call input with any arguments for the command in a `map` array.",vscpp("br",null),"For example, to run the command `workbench.action.openWith`, you would use the following input:",vscpp("br",null),vscpp(ql,{code:`{ "name": "workbench.action.openWith", "commandId": "workbench.action.openWith", "args": ["file:///path/to/file.txt", "default"] } `}))),vscpp(fi,{priority:850,flexGrow:2,promptContext:{...this.props.promptContext,query:n.query},embeddedInsideUserMessage:!1}),vscpp(Hc,{priority:899,flexGrow:2,promptContext:this.props.promptContext,toolCallRounds:this.props.promptContext.toolCallRounds,toolCallResults:this.props.promptContext.toolCallResults}),vscpp(xa,{flexGrow:2,priority:900,chatVariables:this.props.promptContext.chatVariables,query:this.props.promptContext.query,embeddedInsideUserMessage:!1}))}};jye=S([b(1,Z),b(2,Ep),b(3,tt),b(4,$5),b(5,Zt),b(6,j),b(7,tut)],jye);var Ppn=class extends YC.PromptElement{render(e,n){return vscpp(vscppf,null,vscpp(YC.SystemMessage,{priority:1e3},"You are a Visual Studio Code assistant who helps the user create well-formed and unambiguous queries about their Visual Studio Code development environment.",vscpp("br",null),"Specifically, you help users rewrite questions about how to use Visual Studio Code's Commands and Settings."),vscpp(Zi,{historyPriority:500,passPriority:!0,history:this.props.history||[]},vscpp(Xt,{priority:1e3},"Evaluate the question to determine the user's intent. ",vscpp("br",null),"Determine if the user's question is about the editor, terminal, activity bar, side bar, status bar, panel or other parts of Visual Studio Code's workbench and include those keyword in the rewrite.",vscpp("br",null),"Determine if the user is asking about Visual Studio Code's Commands and/or Settings and explicitly include those keywords during the rewrite. ",vscpp("br",null),"If the question does not clearly indicate whether it pertains to a command or setting, categorize it as an \u2018Other Question\u2019 ",vscpp("br",null),"If the user is asking about Visual Studio Code Release Notes, respond using this exact protocol and do not rephrase the question: ",vscpp("br",null),"- Respond with only one of the following: `release_notes@latest` or `release_notes@last3`.",vscpp("br",null),"- If the user does not specify a timeframe, respond with: `release_notes@latest`.",vscpp("br",null),'- If the request is vague about a timeframe (e.g., "recent changes"), respond with: `release_notes@last3` to consider the last three versions (major.minor).',vscpp("br",null),"- If the user asks to find or locate a specific change/feature in the release notes, respond with: `release_notes@last3` to search across the last three versions (major.minor).",vscpp("br",null),'If the user is asking about Extensions available in Visual Studio Code, simply respond with "vscode_extensions"',vscpp("br",null),'If the user is asking about Visual Studio Code API or Visual Studio Code Extension Development, simply respond with "vscode_api"',vscpp("br",null),'Remove any references to "What" or "How" and instead rewrite the question as a description of the command or setting that the user is trying to find. ',vscpp("br",null),"Respond in Markdown. Under a `# Question` header, output a rephrased version of the user's question that resolves all pronouns and ambiguous words like 'this' to the specific nouns they stand for.",vscpp("br",null),"If it is not clear what the user is asking for or if the question appears to be unrelated to Visual Studio Code, do not try to rephrase the question and simply return the original question. ",vscpp("br",null),"DO NOT ask the user for additional information or clarification.",vscpp("br",null),"DO NOT answer the user's question directly.",vscpp("br",null),vscpp("br",null),"# Additional Rules",vscpp("br",null),vscpp("br",null),"2. If the question contains pronouns such as 'it' or 'that', try to understand what the pronoun refers to by looking at the rest of the question and the conversation history.",vscpp("br",null),"3. If the question contains an ambiguous word such as 'this', try to understand what 'this' refers to by looking at the rest of the question and the conversation history.",vscpp("br",null),"4. After a `# Question` header, output a precise version of the question that resolves all pronouns and ambiguous words like 'this' to the specific nouns they stand for. Be sure to preserve the exact meaning of the question.",vscpp("br",null),vscpp("br",null),"Examples",vscpp("br",null),vscpp("br",null),"User: opne cmmand palete",vscpp("br",null),vscpp("br",null),"Assistant:",vscpp("br",null),"# Question",vscpp("br",null),"Command to open command palette",vscpp("br",null),vscpp("br",null),vscpp("br",null),"User: How do I change change font size in the editor?",vscpp("br",null),vscpp("br",null),"Assistant:",vscpp("br",null),"# Question",vscpp("br",null),"Command or setting to change the font size in the editor",vscpp("br",null),vscpp("br",null),"User: What is the setting to move editor and pin it",vscpp("br",null),"Assistant: ",vscpp("br",null),"# Question",vscpp("br",null),"Settings to move and pin editor",vscpp("br",null),vscpp("br",null),"User: latest released features",vscpp("br",null),vscpp("br",null),"Assistant:",vscpp("br",null),"release_notes@latest",vscpp("br",null),vscpp("br",null),"User: What are the recent changes?",vscpp("br",null),vscpp("br",null),"Assistant:",vscpp("br",null),"release_notes@last3",vscpp("br",null),vscpp("br",null),"User: set up python",vscpp("br",null),vscpp("br",null),"Assistant:",vscpp("br",null),"# Other Question",vscpp("br",null),"Set up python development in Visual Studio Code",vscpp("br",null),vscpp("br",null),"User: Show me popular extensions",vscpp("br",null),vscpp("br",null),"Assistant:",vscpp("br",null),"vscode_extensions",vscpp("br",null),vscpp("br",null),"User: How do I contribute a command to my extension?",vscpp("br",null),vscpp("br",null),"Assistant:",vscpp("br",null),"vscode_api",vscpp("br",null),vscpp("br",null),vscpp(kn,null))),vscpp(YC.UserMessage,{priority:700},this.props.query))}};function qUa(t,e){let n=e.match(/#+\s*(Question|Other Question)\n(?.+)/si);return n?.groups?n.groups.question.trim():t.trim()}function $Ua(t,e){let n=/^(\d+)\.(\d+)$/.exec(t);if(!n)return[t];let r=parseInt(n[1],10),o=parseInt(n[2],10),a=[];for(let s=0;s=0;s++,o--)a.push(`${r}.${o}`);return a}var sFe=class extends Fb{constructor(n,r,o,a,s,c,l){super(n,r,o);this.request=a;this.instantiationService=s;this.workbenchService=c;this.toolsService=l;this.linkification={disable:!0}}async createRenderer(n,r,o,a){return en.create(this.instantiationService,r,jye,{endpoint:r,promptContext:n})}processResponse(n,r,o,a){return new Npn(this.workbenchService).processResponse(n,r,o,a)}getAvailableTools(){return this.toolsService.getEnabledTools(this.request,this.endpoint,n=>n.name==="vscode_searchExtensions_internal"||n.name==="get_vscode_api")}};sFe=S([b(4,j),b(5,Y1),b(6,Xn)],sFe);var Npn=class{constructor(e){this.workbenchService=e;this.stagedTextToApply="";this._incodeblock=!1}async processResponse(e,n,r,o){for await(let{delta:a}of n){if(o.isCancellationRequested)return;await this.applyDelta(a.text,r)}}async processNonReporting(e,n){let r=await Fsi(this.workbenchService,e);if(r.length===0)n.markdown(` `+e+` `);else for(let o of r)o.commandToRun&&n.button(o.commandToRun)}async applyDelta(e,n){e=this.stagedTextToApply+e,this.stagedTextToApply="";let r=e.indexOf("```");if(this._incodeblock){let o=e.indexOf("```");if(o===-1)this.stagedTextToApply=e;else{this._incodeblock=!1;let a="```"+e.substring(0,o)+"```";await this.processNonReporting(a,n),n.markdown(e.substring(o+3))}}else if(r!==-1){this._incodeblock=!0;let o=e.indexOf("```",r+3);if(o!==-1){this._incodeblock=!1,n.markdown(e.substring(0,r));let a="```"+e.substring(r+3,o)+"```";await this.processNonReporting(a,n),n.markdown(e.substring(o+3))}else{this.stagedTextToApply=e.substring(r+3);let a=e.substring(0,r);a&&n.markdown(a)}}else n.markdown(e)}},I7=class{constructor(e,n){this.instantiationService=e;this.endpointProvider=n;this.id=I7.ID;this.locations=[1];this.description=Qsi.t("Ask questions about VS Code");this.commandInfo={allowsEmptyArgs:!0}}static{this.ID="vscode"}async invoke(e){let n=e.location,r=await this.endpointProvider.getChatEndpoint(e.request);return this.instantiationService.createInstance(sFe,this,n,r,e.request)}};I7=S([b(0,j),b(1,tt)],I7);aqe.setIntents([new Qe(b7),new Qe(R_),new Qe(kI),new Qe(Sye),new Qe($ye),new Qe(yye),new Qe(Hse),new Qe(Iye),new Qe(E7),new Qe(h2),new Qe(v_),new Qe(y7),new Qe(_ye),new Qe(rce),new Qe(I7),new Qe(w7),new Qe(C7),new Qe(_7),new Qe(h7),new Qe(v7),new Qe(JB)]);function zUa(){try{require("source-map-support").install(),require("dotenv").config({path:[KC(__dirname,"../.env")]})}catch(t){console.error(t)}}function jUa(t,e){return iAn({context:t,registerServices:gsi,contributions:HUr,configureDevPackages:zUa,forceActivation:e})}0&&(module.exports={activate}); //!!! DO NOT modify, this file was COPIED from 'microsoft/vscode' /*! Bundled license information: @vscode/prompt-tsx/dist/base/util/vs/nls.js: @vscode/prompt-tsx/dist/base/util/vs/common/platform.js: @vscode/prompt-tsx/dist/base/util/vs/common/process.js: @vscode/prompt-tsx/dist/base/util/vs/common/path.js: @vscode/prompt-tsx/dist/base/util/vs/common/uri.js: (*!!! DO NOT modify, this file was COPIED from 'microsoft/vscode' *) depd/index.js: (*! * depd * Copyright(c) 2014-2018 Douglas Christopher Wilson * MIT Licensed *) statuses/index.js: (*! * statuses * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2016 Douglas Christopher Wilson * MIT Licensed *) toidentifier/index.js: (*! * toidentifier * Copyright(c) 2016 Douglas Christopher Wilson * MIT Licensed *) http-errors/index.js: (*! * http-errors * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2016 Douglas Christopher Wilson * MIT Licensed *) bytes/index.js: (*! * bytes * Copyright(c) 2012-2014 TJ Holowaychuk * Copyright(c) 2015 Jed Watson * MIT Licensed *) unpipe/index.js: (*! * unpipe * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed *) raw-body/index.js: (*! * raw-body * Copyright(c) 2013-2014 Jonathan Ong * Copyright(c) 2014-2022 Douglas Christopher Wilson * MIT Licensed *) ee-first/index.js: (*! * ee-first * Copyright(c) 2014 Jonathan Ong * MIT Licensed *) on-finished/index.js: (*! * on-finished * Copyright(c) 2013 Jonathan Ong * Copyright(c) 2014 Douglas Christopher Wilson * MIT Licensed *) content-type/index.js: (*! * content-type * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed *) mime-db/index.js: mime-db/index.js: mime-db/index.js: (*! * mime-db * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2015-2022 Douglas Christopher Wilson * MIT Licensed *) mime-types/index.js: mime-types/index.js: mime-types/index.js: (*! * mime-types * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed *) media-typer/index.js: (*! * media-typer * Copyright(c) 2014-2017 Douglas Christopher Wilson * MIT Licensed *) type-is/index.js: (*! * type-is * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2014-2015 Douglas Christopher Wilson * MIT Licensed *) body-parser/lib/read.js: body-parser/lib/types/raw.js: body-parser/lib/types/text.js: body-parser/index.js: (*! * body-parser * Copyright(c) 2014-2015 Douglas Christopher Wilson * MIT Licensed *) body-parser/lib/types/json.js: body-parser/lib/types/urlencoded.js: (*! * body-parser * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2014-2015 Douglas Christopher Wilson * MIT Licensed *) encodeurl/index.js: (*! * encodeurl * Copyright(c) 2016 Douglas Christopher Wilson * MIT Licensed *) escape-html/index.js: (*! * escape-html * Copyright(c) 2012-2013 TJ Holowaychuk * Copyright(c) 2015 Andreas Lubbe * Copyright(c) 2015 Tiancheng "Timothy" Gu * MIT Licensed *) parseurl/index.js: (*! * parseurl * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2014-2017 Douglas Christopher Wilson * MIT Licensed *) finalhandler/index.js: (*! * finalhandler * Copyright(c) 2014-2022 Douglas Christopher Wilson * MIT Licensed *) express/lib/view.js: express/lib/application.js: express/lib/request.js: express/lib/express.js: express/index.js: (*! * express * Copyright(c) 2009-2013 TJ Holowaychuk * Copyright(c) 2013 Roman Shtylman * Copyright(c) 2014-2015 Douglas Christopher Wilson * MIT Licensed *) etag/index.js: (*! * etag * Copyright(c) 2014-2016 Douglas Christopher Wilson * MIT Licensed *) forwarded/index.js: (*! * forwarded * Copyright(c) 2014-2017 Douglas Christopher Wilson * MIT Licensed *) proxy-addr/index.js: (*! * proxy-addr * Copyright(c) 2014-2016 Douglas Christopher Wilson * MIT Licensed *) express/lib/utils.js: express/lib/response.js: (*! * express * Copyright(c) 2009-2013 TJ Holowaychuk * Copyright(c) 2014-2015 Douglas Christopher Wilson * MIT Licensed *) router/lib/layer.js: router/lib/route.js: router/index.js: (*! * router * Copyright(c) 2013 Roman Shtylman * Copyright(c) 2014-2022 Douglas Christopher Wilson * MIT Licensed *) negotiator/index.js: (*! * negotiator * Copyright(c) 2012 Federico Romero * Copyright(c) 2012-2014 Isaac Z. Schlueter * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed *) accepts/index.js: (*! * accepts * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed *) fresh/index.js: fresh/index.js: (*! * fresh * Copyright(c) 2012 TJ Holowaychuk * Copyright(c) 2016-2017 Douglas Christopher Wilson * MIT Licensed *) range-parser/index.js: (*! * range-parser * Copyright(c) 2012-2014 TJ Holowaychuk * Copyright(c) 2015-2016 Douglas Christopher Wilson * MIT Licensed *) content-disposition/index.js: (*! * content-disposition * Copyright(c) 2014-2017 Douglas Christopher Wilson * MIT Licensed *) cookie/index.js: (*! * cookie * Copyright(c) 2012-2014 Roman Shtylman * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed *) send/index.js: (*! * send * Copyright(c) 2012 TJ Holowaychuk * Copyright(c) 2014-2022 Douglas Christopher Wilson * MIT Licensed *) vary/index.js: (*! * vary * Copyright(c) 2014-2017 Douglas Christopher Wilson * MIT Licensed *) serve-static/index.js: (*! * serve-static * Copyright(c) 2010 Sencha Inc. * Copyright(c) 2011 TJ Holowaychuk * Copyright(c) 2014-2016 Douglas Christopher Wilson * MIT Licensed *) @microsoft/applicationinsights-web-snippet/dist/esm/applicationinsights-web-snippet.js: (*! * Application Insights JavaScript SDK - Web Snippet, 1.0.1 * Copyright (c) Microsoft and contributors. All rights reserved. *) undici/lib/web/fetch/body.js: (*! formdata-polyfill. MIT License. Jimmy Wärting *) undici/lib/web/websocket/frame.js: (*! ws. MIT License. Einar Otto Stangvik *) @nevware21/ts-utils/dist/es5/mod/ts-utils.js: (*! https://github.com/nevware21/ts-utils v0.12.5 *) @nevware21/ts-async/dist/es5/mod/ts-async.js: (*! * NevWare21 Solutions LLC - ts-async, 0.5.4 * https://github.com/nevware21/ts-async * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved. * Licensed under the MIT license. *) @grpc/proto-loader/build/src/util.js: @grpc/proto-loader/build/src/index.js: (** * @license * Copyright 2018 gRPC authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *) long/umd/index.js: (** * @license * Copyright 2009 The Closure Library Authors * Copyright 2020 Daniel Wirtz / The long.js Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 *) @google/genai/dist/node/index.mjs: @google/genai/dist/node/index.mjs: @google/genai/dist/node/index.mjs: @google/genai/dist/node/index.mjs: @google/genai/dist/node/index.mjs: (** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 *) js-yaml/dist/js-yaml.mjs: (*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *) */