v8-version,9,4,146,24,-node.14,0 v8-platform,linux,linux new,CodeRange,0x7fe6cc000000,0 new,MemoryChunk,0x268a435c0000,262144 new,MemoryChunk,0x1e9ac2880000,262144 new,MemoryChunk,0x14bb92d00000,262144 new,MemoryChunk,0xbf511c40000,262144 new,MemoryChunk,0x9a24af80000,262144 heap-capacity,1031072 heap-available,4346136384 new,MemoryChunk,0x24d59d700000,262144 new,MemoryChunk,0x22e007ec0000,262144 new,MemoryChunk,0x44edd6c0000,262144 new,MemoryChunk,0x23787e180000,262144 new,MemoryChunk,0x6a244a40000,262144 new,MemoryChunk,0x1ce311dc0000,262144 new,MemoryChunk,0x3edb62ac0000,262144 new,MemoryChunk,0x7fe6cc000000,262144 new,MemoryChunk,0x5a267800000,262144 code-creation,Builtin,2,1994,0x156fb00,1340,RecordWriteEmitRememberedSetSaveFP code-creation,Builtin,2,1999,0x1570040,452,RecordWriteOmitRememberedSetSaveFP code-creation,Builtin,2,2001,0x1570220,620,RecordWriteEmitRememberedSetIgnoreFP code-creation,Builtin,2,2003,0x15704a0,208,RecordWriteOmitRememberedSetIgnoreFP code-creation,Builtin,2,2005,0x1570580,352,EphemeronKeyBarrierSaveFP code-creation,Builtin,2,2006,0x1570700,116,EphemeronKeyBarrierIgnoreFP code-creation,Builtin,2,2009,0x1570780,60,AdaptorWithBuiltinExitFrame code-creation,Builtin,2,2011,0x15707c0,328,CallFunction_ReceiverIsNullOrUndefined code-creation,Builtin,2,2013,0x1570920,384,CallFunction_ReceiverIsNotNullOrUndefined code-creation,Builtin,2,2015,0x1570ac0,412,CallFunction_ReceiverIsAny code-creation,Builtin,2,2017,0x1570c60,104,CallBoundFunction code-creation,Builtin,2,2018,0x1570ce0,120,Call_ReceiverIsNullOrUndefined code-creation,Builtin,2,2021,0x1570d60,120,Call_ReceiverIsNotNullOrUndefined code-creation,Builtin,2,2023,0x1570de0,120,Call_ReceiverIsAny code-creation,Builtin,2,2024,0x1570e60,988,Call_ReceiverIsNullOrUndefined_Baseline_Compact code-creation,Builtin,2,2027,0x1571240,984,Call_ReceiverIsNullOrUndefined_Baseline code-creation,Builtin,2,2029,0x1571620,1072,Call_ReceiverIsNotNullOrUndefined_Baseline_Compact code-creation,Builtin,2,2032,0x1571a60,1072,Call_ReceiverIsNotNullOrUndefined_Baseline code-creation,Builtin,2,2034,0x1571ea0,1072,Call_ReceiverIsAny_Baseline_Compact code-creation,Builtin,2,2036,0x15722e0,1072,Call_ReceiverIsAny_Baseline code-creation,Builtin,2,2038,0x1572720,944,Call_ReceiverIsNullOrUndefined_WithFeedback code-creation,Builtin,2,2040,0x1572ae0,944,Call_ReceiverIsNotNullOrUndefined_WithFeedback code-creation,Builtin,2,2042,0x1572ea0,944,Call_ReceiverIsAny_WithFeedback code-creation,Builtin,2,2044,0x1573260,736,CallProxy code-creation,Builtin,2,2046,0x1573560,116,CallVarargs code-creation,Builtin,2,2048,0x15735e0,940,CallWithSpread code-creation,Builtin,2,2052,0x15739a0,1948,CallWithSpread_Baseline code-creation,Builtin,2,2054,0x1574140,1920,CallWithSpread_WithFeedback code-creation,Builtin,2,2056,0x15748e0,864,CallWithArrayLike code-creation,Builtin,2,2057,0x1574c60,1812,CallWithArrayLike_WithFeedback code-creation,Builtin,2,2060,0x1575380,124,CallForwardVarargs code-creation,Builtin,2,2061,0x1575400,124,CallFunctionForwardVarargs code-creation,Builtin,2,2064,0x1575480,132,CallFunctionTemplate_CheckAccess code-creation,Builtin,2,2065,0x1575520,228,CallFunctionTemplate_CheckCompatibleReceiver code-creation,Builtin,2,2068,0x1575620,316,CallFunctionTemplate_CheckAccessAndCompatibleReceiver code-creation,Builtin,2,2070,0x1575760,28,ConstructFunction code-creation,Builtin,2,2072,0x1575780,104,ConstructBoundFunction code-creation,Builtin,2,2074,0x1575800,28,ConstructedNonConstructable code-creation,Builtin,2,2076,0x1575820,100,Construct code-creation,Builtin,2,2078,0x15758a0,116,ConstructVarargs code-creation,Builtin,2,2080,0x1575920,964,ConstructWithSpread code-creation,Builtin,2,2082,0x1575d00,1740,ConstructWithSpread_Baseline code-creation,Builtin,2,2083,0x15763e0,1756,ConstructWithSpread_WithFeedback code-creation,Builtin,2,2086,0x1576ac0,920,ConstructWithArrayLike code-creation,Builtin,2,2087,0x1576e60,1644,ConstructWithArrayLike_WithFeedback code-creation,Builtin,2,2089,0x15774e0,164,ConstructForwardVarargs code-creation,Builtin,2,2091,0x15775a0,164,ConstructFunctionForwardVarargs code-creation,Builtin,2,2097,0x1577660,792,Construct_Baseline code-creation,Builtin,2,2099,0x1577980,812,Construct_WithFeedback code-creation,Builtin,2,2101,0x1577cc0,444,JSConstructStubGeneric code-creation,Builtin,2,2102,0x1577e80,344,JSBuiltinsConstructStub code-creation,Builtin,2,2104,0x1577fe0,676,FastNewObject code-creation,Builtin,2,2106,0x15782a0,292,FastNewClosure code-creation,Builtin,2,2108,0x15783e0,720,ConstructProxy code-creation,Builtin,2,2110,0x15786c0,192,JSEntry code-creation,Builtin,2,2112,0x15787a0,192,JSConstructEntry code-creation,Builtin,2,2114,0x1578880,192,JSRunMicrotasksEntry code-creation,Builtin,2,2115,0x1578960,96,JSEntryTrampoline code-creation,Builtin,2,2117,0x15789e0,96,JSConstructEntryTrampoline code-creation,Builtin,2,2120,0x1578a60,280,ResumeGeneratorTrampoline code-creation,Builtin,2,2121,0x1578b80,1116,StringCodePointAt code-creation,Builtin,2,2123,0x1578fe0,1548,StringFromCodePointAt code-creation,Builtin,2,2125,0x1579600,544,StringEqual code-creation,Builtin,2,2127,0x1579840,276,StringGreaterThan code-creation,Builtin,2,2129,0x1579960,276,StringGreaterThanOrEqual code-creation,Builtin,2,2131,0x1579a80,276,StringLessThan code-creation,Builtin,2,2133,0x1579ba0,276,StringLessThanOrEqual code-creation,Builtin,2,2135,0x1579cc0,2492,StringSubstring code-creation,Builtin,2,2136,0x157a680,80,OrderedHashTableHealIndex code-creation,Builtin,2,2138,0x157a6e0,1168,InterpreterEntryTrampoline code-creation,Builtin,2,2140,0x157ab80,76,InterpreterPushArgsThenCall code-creation,Builtin,2,2142,0x157abe0,84,InterpreterPushUndefinedAndArgsThenCall code-creation,Builtin,2,2145,0x157ac40,84,InterpreterPushArgsThenCallWithFinalSpread code-creation,Builtin,2,2147,0x157aca0,80,InterpreterPushArgsThenConstruct code-creation,Builtin,2,2149,0x157ad00,80,InterpreterPushArgsThenConstructArrayFunction code-creation,Builtin,2,2151,0x157ad60,84,InterpreterPushArgsThenConstructWithFinalSpread code-creation,Builtin,2,2154,0x157adc0,84,InterpreterEnterAtBytecode code-creation,Builtin,2,2156,0x157ae20,220,InterpreterEnterAtNextBytecode code-creation,Builtin,2,2157,0x157af00,52,InterpreterOnStackReplacement code-creation,Builtin,2,2160,0x157af40,592,BaselineOutOfLinePrologue code-creation,Builtin,2,2162,0x157b1a0,56,BaselineOnStackReplacement code-creation,Builtin,2,2164,0x157b1e0,84,BaselineLeaveFrame code-creation,Builtin,2,2166,0x157b240,212,BaselineOrInterpreterEnterAtBytecode code-creation,Builtin,2,2167,0x157b320,220,BaselineOrInterpreterEnterAtNextBytecode code-creation,Builtin,2,2170,0x157b400,188,InterpreterOnStackReplacement_ToBaseline code-creation,Builtin,2,2172,0x157b4c0,1000,CompileLazy code-creation,Builtin,2,2174,0x157b8c0,72,CompileLazyDeoptimizedCode code-creation,Builtin,2,2176,0x157b920,252,InstantiateAsmJs code-creation,Builtin,2,2178,0x157ba20,32,NotifyDeoptimized code-creation,Builtin,2,2181,0x157ba60,784,DeoptimizationEntry_Eager code-creation,Builtin,2,2182,0x157bd80,784,DeoptimizationEntry_Soft code-creation,Builtin,2,2184,0x157c0a0,784,DeoptimizationEntry_Bailout code-creation,Builtin,2,2186,0x157c3c0,784,DeoptimizationEntry_Lazy code-creation,Builtin,2,2188,0x157c6e0,52,ContinueToCodeStubBuiltin code-creation,Builtin,2,2190,0x157c720,60,ContinueToCodeStubBuiltinWithResult code-creation,Builtin,2,2193,0x157c760,56,ContinueToJavaScriptBuiltin code-creation,Builtin,2,2194,0x157c7a0,64,ContinueToJavaScriptBuiltinWithResult code-creation,Builtin,2,2197,0x157c800,288,CallApiCallback code-creation,Builtin,2,2199,0x157c940,272,CallApiGetter code-creation,Builtin,2,2200,0x157ca60,12,HandleApiCall code-creation,Builtin,2,2202,0x157ca80,12,HandleApiCallAsFunction code-creation,Builtin,2,2204,0x157caa0,12,HandleApiCallAsConstructor code-creation,Builtin,2,2206,0x157cac0,64,AllocateInYoungGeneration code-creation,Builtin,2,2208,0x157cb20,52,AllocateRegularInYoungGeneration code-creation,Builtin,2,2210,0x157cb60,64,AllocateInOldGeneration code-creation,Builtin,2,2212,0x157cbc0,52,AllocateRegularInOldGeneration code-creation,Builtin,2,2214,0x157cc00,424,CopyFastSmiOrObjectElements code-creation,Builtin,2,2216,0x157cdc0,496,GrowFastDoubleElements code-creation,Builtin,2,2220,0x157cfc0,396,GrowFastSmiOrObjectElements code-creation,Builtin,2,2222,0x157d160,388,DebugBreakTrampoline code-creation,Builtin,2,2225,0x157d300,180,ToNumber code-creation,Builtin,2,2226,0x157d3c0,292,ToNumber_Baseline code-creation,Builtin,2,2228,0x157d500,360,ToNumeric_Baseline code-creation,Builtin,2,2230,0x157d680,104,PlainPrimitiveToNumber code-creation,Builtin,2,2232,0x157d700,212,ToNumberConvertBigInt code-creation,Builtin,2,2234,0x157d7e0,132,Typeof code-creation,Builtin,2,2236,0x157d880,104,BigIntToI64 code-creation,Builtin,2,2237,0x157d900,4,BigIntToI32Pair code-creation,Builtin,2,2239,0x157d920,232,I64ToBigInt code-creation,Builtin,2,2241,0x157da20,4,I32PairToBigInt code-creation,Builtin,2,2243,0x157da40,100,ToBooleanLazyDeoptContinuation code-creation,Builtin,2,2245,0x157dac0,4232,KeyedLoadIC_PolymorphicName code-creation,Builtin,2,2247,0x157eb60,15704,KeyedStoreIC_Megamorphic code-creation,Builtin,2,2249,0x15828c0,280,LoadGlobalIC_NoFeedback code-creation,Builtin,2,2251,0x15829e0,60,LoadIC_FunctionPrototype code-creation,Builtin,2,2253,0x1582a20,12,LoadIC_StringLength code-creation,Builtin,2,2254,0x1582a40,16,LoadIC_StringWrapperLength code-creation,Builtin,2,2257,0x1582a60,3056,LoadIC_NoFeedback code-creation,Builtin,2,2258,0x1583660,32,StoreGlobalIC_Slow code-creation,Builtin,2,2260,0x15836a0,7284,StoreIC_NoFeedback code-creation,Builtin,2,2262,0x1585320,180,KeyedLoadIC_SloppyArguments code-creation,Builtin,2,2264,0x15853e0,72,LoadIndexedInterceptorIC code-creation,Builtin,2,2266,0x1585440,240,KeyedStoreIC_SloppyArguments_Standard code-creation,Builtin,2,2268,0x1585540,240,KeyedStoreIC_SloppyArguments_GrowNoTransitionHandleCOW code-creation,Builtin,2,2271,0x1585640,240,KeyedStoreIC_SloppyArguments_NoTransitionIgnoreOOB code-creation,Builtin,2,2273,0x1585740,240,KeyedStoreIC_SloppyArguments_NoTransitionHandleCOW code-creation,Builtin,2,2275,0x1585840,13924,StoreFastElementIC_Standard code-creation,Builtin,2,2277,0x1588ec0,9660,StoreFastElementIC_GrowNoTransitionHandleCOW code-creation,Builtin,2,2280,0x158b480,13104,StoreFastElementIC_NoTransitionIgnoreOOB code-creation,Builtin,2,2282,0x158e7c0,6160,StoreFastElementIC_NoTransitionHandleCOW code-creation,Builtin,2,2284,0x158ffe0,8468,ElementsTransitionAndStore_Standard code-creation,Builtin,2,2286,0x1592100,19332,ElementsTransitionAndStore_GrowNoTransitionHandleCOW code-creation,Builtin,2,2289,0x1596ca0,8468,ElementsTransitionAndStore_NoTransitionIgnoreOOB code-creation,Builtin,2,2291,0x1598dc0,11028,ElementsTransitionAndStore_NoTransitionHandleCOW code-creation,Builtin,2,2294,0x159b8e0,792,KeyedHasIC_PolymorphicName code-creation,Builtin,2,2296,0x159bc00,164,KeyedHasIC_SloppyArguments code-creation,Builtin,2,2298,0x159bcc0,72,HasIndexedInterceptorIC code-creation,Builtin,2,2300,0x159bd20,88,DynamicCheckMapsTrampoline code-creation,Builtin,2,2302,0x159bd80,260,DynamicCheckMaps code-creation,Builtin,2,2303,0x159bea0,88,DynamicCheckMapsWithFeedbackVectorTrampoline code-creation,Builtin,2,2306,0x159bf00,224,DynamicCheckMapsWithFeedbackVector code-creation,Builtin,2,2308,0x159c000,148,EnqueueMicrotask code-creation,Builtin,2,2310,0x159c0a0,8,RunMicrotasksTrampoline code-creation,Builtin,2,2312,0x159c0c0,3504,RunMicrotasks code-creation,Builtin,2,2314,0x159ce80,2624,HasProperty code-creation,Builtin,2,2315,0x159d8e0,1144,DeleteProperty code-creation,Builtin,2,2318,0x159dd60,1972,CopyDataProperties code-creation,Builtin,2,2319,0x159e520,9156,SetDataProperties code-creation,Builtin,2,2321,0x15a0900,28,Abort code-creation,Builtin,2,2323,0x15a0920,28,AbortCSAAssert code-creation,Builtin,2,2325,0x15a0940,12,EmptyFunction code-creation,Builtin,2,2327,0x15a0960,12,Illegal code-creation,Builtin,2,2328,0x15a0980,12,StrictPoisonPillThrower code-creation,Builtin,2,2330,0x15a09a0,12,UnsupportedThrower code-creation,Builtin,2,2332,0x15a09c0,64,ReturnReceiver code-creation,Builtin,2,2334,0x15a0a20,28,ArrayConstructor code-creation,Builtin,2,2336,0x15a0a40,404,ArrayConstructorImpl code-creation,Builtin,2,2338,0x15a0be0,216,ArrayNoArgumentConstructor_PackedSmi_DontOverride code-creation,Builtin,2,2342,0x15a0cc0,216,ArrayNoArgumentConstructor_HoleySmi_DontOverride code-creation,Builtin,2,2344,0x15a0da0,176,ArrayNoArgumentConstructor_PackedSmi_DisableAllocationSites code-creation,Builtin,2,2347,0x15a0e60,176,ArrayNoArgumentConstructor_HoleySmi_DisableAllocationSites code-creation,Builtin,2,2349,0x15a0f20,176,ArrayNoArgumentConstructor_Packed_DisableAllocationSites code-creation,Builtin,2,2352,0x15a0fe0,176,ArrayNoArgumentConstructor_Holey_DisableAllocationSites code-creation,Builtin,2,2354,0x15a10a0,188,ArrayNoArgumentConstructor_PackedDouble_DisableAllocationSites code-creation,Builtin,2,2357,0x15a1160,188,ArrayNoArgumentConstructor_HoleyDouble_DisableAllocationSites code-creation,Builtin,2,2359,0x15a1220,512,ArraySingleArgumentConstructor_PackedSmi_DontOverride code-creation,Builtin,2,2362,0x15a1440,480,ArraySingleArgumentConstructor_HoleySmi_DontOverride code-creation,Builtin,2,2364,0x15a1640,436,ArraySingleArgumentConstructor_PackedSmi_DisableAllocationSites code-creation,Builtin,2,2367,0x15a1800,404,ArraySingleArgumentConstructor_HoleySmi_DisableAllocationSites code-creation,Builtin,2,2369,0x15a19a0,436,ArraySingleArgumentConstructor_Packed_DisableAllocationSites code-creation,Builtin,2,2372,0x15a1b60,404,ArraySingleArgumentConstructor_Holey_DisableAllocationSites code-creation,Builtin,2,2374,0x15a1d00,448,ArraySingleArgumentConstructor_PackedDouble_DisableAllocationSites code-creation,Builtin,2,2377,0x15a1ee0,412,ArraySingleArgumentConstructor_HoleyDouble_DisableAllocationSites code-creation,Builtin,2,2379,0x15a2080,64,ArrayNArgumentsConstructor code-creation,Builtin,2,2381,0x15a20e0,12,ArrayConcat code-creation,Builtin,2,2383,0x15a2100,12,ArrayPrototypeFill code-creation,Builtin,2,2385,0x15a2120,932,ArrayIncludesSmiOrObject code-creation,Builtin,2,2387,0x15a24e0,140,ArrayIncludesPackedDoubles code-creation,Builtin,2,2389,0x15a2580,208,ArrayIncludesHoleyDoubles code-creation,Builtin,2,2391,0x15a2660,548,ArrayIncludes code-creation,Builtin,2,2393,0x15a28a0,856,ArrayIndexOfSmiOrObject code-creation,Builtin,2,2395,0x15a2c00,116,ArrayIndexOfPackedDoubles code-creation,Builtin,2,2397,0x15a2c80,116,ArrayIndexOfHoleyDoubles code-creation,Builtin,2,2399,0x15a2d00,552,ArrayIndexOf code-creation,Builtin,2,2401,0x15a2f40,12,ArrayPop code-creation,Builtin,2,2402,0x15a2f60,616,ArrayPrototypePop code-creation,Builtin,2,2404,0x15a31e0,12,ArrayPush code-creation,Builtin,2,2406,0x15a3200,2412,ArrayPrototypePush code-creation,Builtin,2,2409,0x15a3b80,12,ArrayShift code-creation,Builtin,2,2411,0x15a3ba0,12,ArrayUnshift code-creation,Builtin,2,2412,0x15a3bc0,944,CloneFastJSArray code-creation,Builtin,2,2414,0x15a3f80,2196,CloneFastJSArrayFillingHoles code-creation,Builtin,2,2416,0x15a4820,968,ExtractFastJSArray code-creation,Builtin,2,2418,0x15a4c00,260,ArrayPrototypeEntries code-creation,Builtin,2,2420,0x15a4d20,248,ArrayPrototypeKeys code-creation,Builtin,2,2422,0x15a4e20,260,ArrayPrototypeValues code-creation,Builtin,2,2424,0x15a4f40,4424,ArrayIteratorPrototypeNext code-creation,Builtin,2,2426,0x15a60a0,4164,FlattenIntoArray code-creation,Builtin,2,2428,0x15a7100,4164,FlatMapIntoArray code-creation,Builtin,2,2430,0x15a8160,372,ArrayPrototypeFlat code-creation,Builtin,2,2432,0x15a82e0,428,ArrayPrototypeFlatMap code-creation,Builtin,2,2434,0x15a84a0,12,ArrayBufferConstructor code-creation,Builtin,2,2436,0x15a84c0,12,ArrayBufferConstructor_DoNotInitialize code-creation,Builtin,2,2438,0x15a84e0,12,ArrayBufferPrototypeSlice code-creation,Builtin,2,2440,0x15a8500,12,ArrayBufferPrototypeResize code-creation,Builtin,2,2442,0x15a8520,804,AsyncFunctionEnter code-creation,Builtin,2,2444,0x15a8860,132,AsyncFunctionReject code-creation,Builtin,2,2446,0x15a8900,128,AsyncFunctionResolve code-creation,Builtin,2,2448,0x15a89a0,12,AsyncFunctionLazyDeoptContinuation code-creation,Builtin,2,2450,0x15a89c0,2804,AsyncFunctionAwaitCaught code-creation,Builtin,2,2452,0x15a94c0,2804,AsyncFunctionAwaitUncaught code-creation,Builtin,2,2454,0x15a9fc0,172,AsyncFunctionAwaitRejectClosure code-creation,Builtin,2,2457,0x15aa080,164,AsyncFunctionAwaitResolveClosure code-creation,Builtin,2,2459,0x15aa140,12,BigIntConstructor code-creation,Builtin,2,2461,0x15aa160,12,BigIntAsUintN code-creation,Builtin,2,2463,0x15aa180,12,BigIntAsIntN code-creation,Builtin,2,2465,0x15aa1a0,12,BigIntPrototypeToLocaleString code-creation,Builtin,2,2467,0x15aa1c0,12,BigIntPrototypeToString code-creation,Builtin,2,2469,0x15aa1e0,12,BigIntPrototypeValueOf code-creation,Builtin,2,2471,0x15aa200,12,CallSitePrototypeGetColumnNumber code-creation,Builtin,2,2474,0x15aa220,12,CallSitePrototypeGetEnclosingColumnNumber code-creation,Builtin,2,2476,0x15aa240,12,CallSitePrototypeGetEnclosingLineNumber code-creation,Builtin,2,2478,0x15aa260,12,CallSitePrototypeGetEvalOrigin code-creation,Builtin,2,2480,0x15aa280,12,CallSitePrototypeGetFileName code-creation,Builtin,2,2482,0x15aa2a0,12,CallSitePrototypeGetFunction code-creation,Builtin,2,2484,0x15aa2c0,12,CallSitePrototypeGetFunctionName code-creation,Builtin,2,2486,0x15aa2e0,12,CallSitePrototypeGetLineNumber code-creation,Builtin,2,2488,0x15aa300,12,CallSitePrototypeGetMethodName code-creation,Builtin,2,2490,0x15aa320,12,CallSitePrototypeGetPosition code-creation,Builtin,2,2492,0x15aa340,12,CallSitePrototypeGetPromiseIndex code-creation,Builtin,2,2494,0x15aa360,12,CallSitePrototypeGetScriptNameOrSourceURL code-creation,Builtin,2,2497,0x15aa380,12,CallSitePrototypeGetThis code-creation,Builtin,2,2499,0x15aa3a0,12,CallSitePrototypeGetTypeName code-creation,Builtin,2,2501,0x15aa3c0,12,CallSitePrototypeIsAsync code-creation,Builtin,2,2503,0x15aa3e0,12,CallSitePrototypeIsConstructor code-creation,Builtin,2,2505,0x15aa400,12,CallSitePrototypeIsEval code-creation,Builtin,2,2506,0x15aa420,12,CallSitePrototypeIsNative code-creation,Builtin,2,2508,0x15aa440,12,CallSitePrototypeIsPromiseAll code-creation,Builtin,2,2510,0x15aa460,12,CallSitePrototypeIsToplevel code-creation,Builtin,2,2512,0x15aa480,12,CallSitePrototypeToString code-creation,Builtin,2,2514,0x15aa4a0,12,ConsoleDebug code-creation,Builtin,2,2516,0x15aa4c0,12,ConsoleError code-creation,Builtin,2,2518,0x15aa4e0,12,ConsoleInfo code-creation,Builtin,2,2520,0x15aa500,12,ConsoleLog code-creation,Builtin,2,2522,0x15aa520,12,ConsoleWarn code-creation,Builtin,2,2524,0x15aa540,12,ConsoleDir code-creation,Builtin,2,2526,0x15aa560,12,ConsoleDirXml code-creation,Builtin,2,2527,0x15aa580,12,ConsoleTable code-creation,Builtin,2,2529,0x15aa5a0,12,ConsoleTrace code-creation,Builtin,2,2531,0x15aa5c0,12,ConsoleGroup code-creation,Builtin,2,2533,0x15aa5e0,12,ConsoleGroupCollapsed code-creation,Builtin,2,2535,0x15aa600,12,ConsoleGroupEnd code-creation,Builtin,2,2536,0x15aa620,12,ConsoleClear code-creation,Builtin,2,2538,0x15aa640,12,ConsoleCount code-creation,Builtin,2,2540,0x15aa660,12,ConsoleCountReset code-creation,Builtin,2,2542,0x15aa680,12,ConsoleAssert code-creation,Builtin,2,2544,0x15aa6a0,12,ConsoleProfile code-creation,Builtin,2,2546,0x15aa6c0,12,ConsoleProfileEnd code-creation,Builtin,2,2547,0x15aa6e0,12,ConsoleTime code-creation,Builtin,2,2549,0x15aa700,12,ConsoleTimeLog code-creation,Builtin,2,2551,0x15aa720,12,ConsoleTimeEnd code-creation,Builtin,2,2553,0x15aa740,12,ConsoleTimeStamp code-creation,Builtin,2,2555,0x15aa760,12,ConsoleContext code-creation,Builtin,2,2557,0x15aa780,12,DataViewConstructor code-creation,Builtin,2,2559,0x15aa7a0,12,DateConstructor code-creation,Builtin,2,2561,0x15aa7c0,220,DatePrototypeGetDate code-creation,Builtin,2,2563,0x15aa8a0,220,DatePrototypeGetDay code-creation,Builtin,2,2565,0x15aa980,220,DatePrototypeGetFullYear code-creation,Builtin,2,2567,0x15aaa60,220,DatePrototypeGetHours code-creation,Builtin,2,2569,0x15aab40,196,DatePrototypeGetMilliseconds code-creation,Builtin,2,2571,0x15aac20,220,DatePrototypeGetMinutes code-creation,Builtin,2,2573,0x15aad00,220,DatePrototypeGetMonth code-creation,Builtin,2,2575,0x15aade0,220,DatePrototypeGetSeconds code-creation,Builtin,2,2577,0x15aaec0,124,DatePrototypeGetTime code-creation,Builtin,2,2579,0x15aaf40,196,DatePrototypeGetTimezoneOffset code-creation,Builtin,2,2581,0x15ab020,196,DatePrototypeGetUTCDate code-creation,Builtin,2,2584,0x15ab100,196,DatePrototypeGetUTCDay code-creation,Builtin,2,2586,0x15ab1e0,196,DatePrototypeGetUTCFullYear code-creation,Builtin,2,2589,0x15ab2c0,196,DatePrototypeGetUTCHours code-creation,Builtin,2,2591,0x15ab3a0,196,DatePrototypeGetUTCMilliseconds code-creation,Builtin,2,2593,0x15ab480,196,DatePrototypeGetUTCMinutes code-creation,Builtin,2,2595,0x15ab560,196,DatePrototypeGetUTCMonth code-creation,Builtin,2,2597,0x15ab640,196,DatePrototypeGetUTCSeconds code-creation,Builtin,2,2599,0x15ab720,124,DatePrototypeValueOf code-creation,Builtin,2,2601,0x15ab7a0,352,DatePrototypeToPrimitive code-creation,Builtin,2,2603,0x15ab920,12,DatePrototypeGetYear code-creation,Builtin,2,2605,0x15ab940,12,DatePrototypeSetYear code-creation,Builtin,2,2607,0x15ab960,12,DateNow code-creation,Builtin,2,2608,0x15ab980,12,DateParse code-creation,Builtin,2,2610,0x15ab9a0,12,DatePrototypeSetDate code-creation,Builtin,2,2612,0x15ab9c0,12,DatePrototypeSetFullYear code-creation,Builtin,2,2614,0x15ab9e0,12,DatePrototypeSetHours code-creation,Builtin,2,2616,0x15aba00,12,DatePrototypeSetMilliseconds code-creation,Builtin,2,2618,0x15aba20,12,DatePrototypeSetMinutes code-creation,Builtin,2,2620,0x15aba40,12,DatePrototypeSetMonth code-creation,Builtin,2,2622,0x15aba60,12,DatePrototypeSetSeconds code-creation,Builtin,2,2624,0x15aba80,12,DatePrototypeSetTime code-creation,Builtin,2,2626,0x15abaa0,12,DatePrototypeSetUTCDate code-creation,Builtin,2,2628,0x15abac0,12,DatePrototypeSetUTCFullYear code-creation,Builtin,2,2630,0x15abae0,12,DatePrototypeSetUTCHours code-creation,Builtin,2,2631,0x15abb00,12,DatePrototypeSetUTCMilliseconds code-creation,Builtin,2,2634,0x15abb20,12,DatePrototypeSetUTCMinutes code-creation,Builtin,2,2636,0x15abb40,12,DatePrototypeSetUTCMonth code-creation,Builtin,2,2638,0x15abb60,12,DatePrototypeSetUTCSeconds code-creation,Builtin,2,2640,0x15abb80,12,DatePrototypeToDateString code-creation,Builtin,2,2642,0x15abba0,12,DatePrototypeToISOString code-creation,Builtin,2,2644,0x15abbc0,12,DatePrototypeToUTCString code-creation,Builtin,2,2646,0x15abbe0,12,DatePrototypeToString code-creation,Builtin,2,2648,0x15abc00,12,DatePrototypeToTimeString code-creation,Builtin,2,2650,0x15abc20,12,DatePrototypeToJson code-creation,Builtin,2,2652,0x15abc40,12,DateUTC code-creation,Builtin,2,2653,0x15abc60,12,ErrorConstructor code-creation,Builtin,2,2655,0x15abc80,12,ErrorCaptureStackTrace code-creation,Builtin,2,2657,0x15abca0,12,ErrorPrototypeToString code-creation,Builtin,2,2659,0x15abcc0,12,FunctionConstructor code-creation,Builtin,2,2661,0x15abce0,68,FunctionPrototypeApply code-creation,Builtin,2,2663,0x15abd40,12,FunctionPrototypeBind code-creation,Builtin,2,2665,0x15abd60,32,FunctionPrototypeCall code-creation,Builtin,2,2668,0x15abda0,12,FunctionPrototypeToString code-creation,Builtin,2,2669,0x15abdc0,192,CreateIterResultObject code-creation,Builtin,2,2672,0x15abea0,788,CreateGeneratorObject code-creation,Builtin,2,2674,0x15ac1c0,12,GeneratorFunctionConstructor code-creation,Builtin,2,2676,0x15ac1e0,412,GeneratorPrototypeNext code-creation,Builtin,2,2678,0x15ac380,420,GeneratorPrototypeReturn code-creation,Builtin,2,2680,0x15ac540,424,GeneratorPrototypeThrow code-creation,Builtin,2,2682,0x15ac700,12,AsyncFunctionConstructor code-creation,Builtin,2,2684,0x15ac720,368,SuspendGeneratorBaseline code-creation,Builtin,2,2686,0x15ac8a0,88,ResumeGeneratorBaseline code-creation,Builtin,2,2688,0x15ac900,36,GetIteratorWithFeedbackLazyDeoptContinuation code-creation,Builtin,2,2690,0x15ac940,12,GlobalDecodeURI code-creation,Builtin,2,2692,0x15ac960,12,GlobalDecodeURIComponent code-creation,Builtin,2,2695,0x15ac980,12,GlobalEncodeURI code-creation,Builtin,2,2696,0x15ac9a0,12,GlobalEncodeURIComponent code-creation,Builtin,2,2698,0x15ac9c0,12,GlobalEscape code-creation,Builtin,2,2700,0x15ac9e0,12,GlobalUnescape code-creation,Builtin,2,2702,0x15aca00,12,GlobalEval code-creation,Builtin,2,2704,0x15aca20,132,GlobalIsFinite code-creation,Builtin,2,2706,0x15acac0,124,GlobalIsNaN code-creation,Builtin,2,2707,0x15acb40,12,JsonParse code-creation,Builtin,2,2711,0x15acb60,12,JsonStringify code-creation,Builtin,2,2712,0x15acb80,4608,LoadIC code-creation,Builtin,2,2714,0x15adda0,4296,LoadIC_Megamorphic code-creation,Builtin,2,2716,0x15aee80,4520,LoadIC_Noninlined code-creation,Builtin,2,2718,0x15b0040,44,LoadICTrampoline code-creation,Builtin,2,2720,0x15b0080,24,LoadICBaseline code-creation,Builtin,2,2722,0x15b00a0,44,LoadICTrampoline_Megamorphic code-creation,Builtin,2,2724,0x15b00e0,7376,LoadSuperIC code-creation,Builtin,2,2726,0x15b1dc0,24,LoadSuperICBaseline code-creation,Builtin,2,2728,0x15b1de0,8132,KeyedLoadIC code-creation,Builtin,2,2729,0x15b3dc0,13076,KeyedLoadIC_Megamorphic code-creation,Builtin,2,2732,0x15b70e0,44,KeyedLoadICTrampoline code-creation,Builtin,2,2733,0x15b7120,24,KeyedLoadICBaseline code-creation,Builtin,2,2735,0x15b7140,44,KeyedLoadICTrampoline_Megamorphic code-creation,Builtin,2,2737,0x15b7180,5064,StoreGlobalIC code-creation,Builtin,2,2739,0x15b8560,44,StoreGlobalICTrampoline code-creation,Builtin,2,2741,0x15b85a0,24,StoreGlobalICBaseline code-creation,Builtin,2,2743,0x15b85c0,5304,StoreIC code-creation,Builtin,2,2745,0x15b9a80,44,StoreICTrampoline code-creation,Builtin,2,2747,0x15b9ac0,24,StoreICBaseline code-creation,Builtin,2,2749,0x15b9ae0,5740,KeyedStoreIC code-creation,Builtin,2,2750,0x15bb160,44,KeyedStoreICTrampoline code-creation,Builtin,2,2752,0x15bb1a0,24,KeyedStoreICBaseline code-creation,Builtin,2,2754,0x15bb1c0,404,StoreInArrayLiteralIC code-creation,Builtin,2,2757,0x15bb360,24,StoreInArrayLiteralICBaseline code-creation,Builtin,2,2758,0x15bb380,140,LookupContextBaseline code-creation,Builtin,2,2761,0x15bb420,140,LookupContextInsideTypeofBaseline code-creation,Builtin,2,2763,0x15bb4c0,3244,LoadGlobalIC code-creation,Builtin,2,2765,0x15bc180,3220,LoadGlobalICInsideTypeof code-creation,Builtin,2,2766,0x15bce20,44,LoadGlobalICTrampoline code-creation,Builtin,2,2769,0x15bce60,24,LoadGlobalICBaseline code-creation,Builtin,2,2770,0x15bce80,44,LoadGlobalICInsideTypeofTrampoline code-creation,Builtin,2,2772,0x15bcec0,24,LoadGlobalICInsideTypeofBaseline code-creation,Builtin,2,2774,0x15bcee0,140,LookupGlobalICBaseline code-creation,Builtin,2,2776,0x15bcf80,140,LookupGlobalICInsideTypeofBaseline code-creation,Builtin,2,2778,0x15bd020,2056,CloneObjectIC code-creation,Builtin,2,2780,0x15bd840,24,CloneObjectICBaseline code-creation,Builtin,2,2782,0x15bd860,1988,CloneObjectIC_Slow code-creation,Builtin,2,2784,0x15be040,2764,KeyedHasIC code-creation,Builtin,2,2786,0x15beb20,24,KeyedHasICBaseline code-creation,Builtin,2,2788,0x15beb40,2620,KeyedHasIC_Megamorphic code-creation,Builtin,2,2789,0x15bf580,1428,IterableToList code-creation,Builtin,2,2791,0x15bfb20,1228,IterableToFixedArray code-creation,Builtin,2,2793,0x15c0000,748,IterableToListWithSymbolLookup code-creation,Builtin,2,2795,0x15c0300,56,IterableToFixedArrayWithSymbolLookupSlow code-creation,Builtin,2,2798,0x15c0340,124,IterableToListMayPreserveHoles code-creation,Builtin,2,2800,0x15c03c0,976,IterableToFixedArrayForWasm code-creation,Builtin,2,2802,0x15c07a0,1616,StringListFromIterable code-creation,Builtin,2,2803,0x15c0e00,1220,FindOrderedHashMapEntry code-creation,Builtin,2,2806,0x15c12e0,4156,MapConstructor code-creation,Builtin,2,2807,0x15c2320,1960,MapPrototypeSet code-creation,Builtin,2,2809,0x15c2ae0,1524,MapPrototypeDelete code-creation,Builtin,2,2811,0x15c30e0,204,MapPrototypeGet code-creation,Builtin,2,2813,0x15c31c0,164,MapPrototypeHas code-creation,Builtin,2,2815,0x15c3280,12,MapPrototypeClear code-creation,Builtin,2,2817,0x15c32a0,284,MapPrototypeEntries code-creation,Builtin,2,2818,0x15c33c0,144,MapPrototypeGetSize code-creation,Builtin,2,2820,0x15c3460,492,MapPrototypeForEach code-creation,Builtin,2,2822,0x15c3660,284,MapPrototypeKeys code-creation,Builtin,2,2824,0x15c3780,284,MapPrototypeValues code-creation,Builtin,2,2826,0x15c38a0,1048,MapIteratorPrototypeNext code-creation,Builtin,2,2827,0x15c3cc0,1176,MapIteratorToList code-creation,Builtin,2,2829,0x15c4160,12,NumberPrototypeToExponential code-creation,Builtin,2,2831,0x15c4180,12,NumberPrototypeToFixed code-creation,Builtin,2,2835,0x15c41a0,12,NumberPrototypeToLocaleString code-creation,Builtin,2,2837,0x15c41c0,12,NumberPrototypeToPrecision code-creation,Builtin,2,2839,0x15c41e0,328,SameValue code-creation,Builtin,2,2843,0x15c4340,204,SameValueNumbersOnly code-creation,Builtin,2,2845,0x15c4420,792,Add_Baseline code-creation,Builtin,2,2846,0x15c4740,828,Subtract_Baseline code-creation,Builtin,2,2848,0x15c4a80,808,Multiply_Baseline code-creation,Builtin,2,2850,0x15c4dc0,832,Divide_Baseline code-creation,Builtin,2,2852,0x15c5120,764,Modulus_Baseline code-creation,Builtin,2,2854,0x15c5420,804,Exponentiate_Baseline code-creation,Builtin,2,2855,0x15c5760,708,BitwiseAnd_Baseline code-creation,Builtin,2,2857,0x15c5a40,700,BitwiseOr_Baseline code-creation,Builtin,2,2859,0x15c5d00,708,BitwiseXor_Baseline code-creation,Builtin,2,2861,0x15c5fe0,720,ShiftLeft_Baseline code-creation,Builtin,2,2863,0x15c62c0,720,ShiftRight_Baseline code-creation,Builtin,2,2865,0x15c65a0,836,ShiftRightLogical_Baseline code-creation,Builtin,2,2867,0x15c6900,720,Add_WithFeedback code-creation,Builtin,2,2868,0x15c6be0,780,Subtract_WithFeedback code-creation,Builtin,2,2870,0x15c6f00,776,Multiply_WithFeedback code-creation,Builtin,2,2872,0x15c7220,804,Divide_WithFeedback code-creation,Builtin,2,2874,0x15c7560,724,Modulus_WithFeedback code-creation,Builtin,2,2876,0x15c7840,760,Exponentiate_WithFeedback code-creation,Builtin,2,2878,0x15c7b40,684,BitwiseAnd_WithFeedback code-creation,Builtin,2,2880,0x15c7e00,676,BitwiseOr_WithFeedback code-creation,Builtin,2,2882,0x15c80c0,684,BitwiseXor_WithFeedback code-creation,Builtin,2,2884,0x15c8380,692,ShiftLeft_WithFeedback code-creation,Builtin,2,2886,0x15c8640,692,ShiftRight_WithFeedback code-creation,Builtin,2,2888,0x15c8900,808,ShiftRightLogical_WithFeedback code-creation,Builtin,2,2890,0x15c8c40,1696,Equal_Baseline code-creation,Builtin,2,2892,0x15c9300,908,StrictEqual_Baseline code-creation,Builtin,2,2894,0x15c96a0,1264,LessThan_Baseline code-creation,Builtin,2,2896,0x15c9ba0,1264,GreaterThan_Baseline code-creation,Builtin,2,2897,0x15ca0a0,1264,LessThanOrEqual_Baseline code-creation,Builtin,2,2899,0x15ca5a0,1264,GreaterThanOrEqual_Baseline code-creation,Builtin,2,2902,0x15caaa0,1620,Equal_WithFeedback code-creation,Builtin,2,2903,0x15cb100,940,StrictEqual_WithFeedback code-creation,Builtin,2,2906,0x15cb4c0,1240,LessThan_WithFeedback code-creation,Builtin,2,2908,0x15cb9a0,1240,GreaterThan_WithFeedback code-creation,Builtin,2,2910,0x15cbe80,1240,LessThanOrEqual_WithFeedback code-creation,Builtin,2,2912,0x15cc360,1240,GreaterThanOrEqual_WithFeedback code-creation,Builtin,2,2914,0x15cc840,332,BitwiseNot_Baseline code-creation,Builtin,2,2916,0x15cc9a0,460,Decrement_Baseline code-creation,Builtin,2,2918,0x15ccb80,464,Increment_Baseline code-creation,Builtin,2,2919,0x15ccd60,488,Negate_Baseline code-creation,Builtin,2,2922,0x15ccf60,316,BitwiseNot_WithFeedback code-creation,Builtin,2,2924,0x15cd0a0,440,Decrement_WithFeedback code-creation,Builtin,2,2926,0x15cd260,444,Increment_WithFeedback code-creation,Builtin,2,2927,0x15cd420,472,Negate_WithFeedback code-creation,Builtin,2,2929,0x15cd600,252,ObjectAssign code-creation,Builtin,2,2931,0x15cd700,864,ObjectCreate code-creation,Builtin,2,2933,0x15cda80,12,ObjectDefineGetter code-creation,Builtin,2,2935,0x15cdaa0,12,ObjectDefineProperties code-creation,Builtin,2,2937,0x15cdac0,12,ObjectDefineProperty code-creation,Builtin,2,2939,0x15cdae0,12,ObjectDefineSetter code-creation,Builtin,2,2941,0x15cdb00,1512,ObjectEntries code-creation,Builtin,2,2943,0x15ce100,12,ObjectFreeze code-creation,Builtin,2,2944,0x15ce120,5592,ObjectGetOwnPropertyDescriptor code-creation,Builtin,2,2947,0x15cf700,12,ObjectGetOwnPropertyDescriptors code-creation,Builtin,2,2949,0x15cf720,600,ObjectGetOwnPropertyNames code-creation,Builtin,2,2951,0x15cf980,12,ObjectGetOwnPropertySymbols code-creation,Builtin,2,2953,0x15cf9a0,164,ObjectHasOwn code-creation,Builtin,2,2955,0x15cfa60,388,ObjectIs code-creation,Builtin,2,2956,0x15cfc00,12,ObjectIsFrozen code-creation,Builtin,2,2958,0x15cfc20,12,ObjectIsSealed code-creation,Builtin,2,2962,0x15cfc40,536,ObjectKeys code-creation,Builtin,2,2964,0x15cfe60,12,ObjectLookupGetter code-creation,Builtin,2,2966,0x15cfe80,12,ObjectLookupSetter code-creation,Builtin,2,2967,0x15cfea0,2264,ObjectPrototypeHasOwnProperty code-creation,Builtin,2,2969,0x15d0780,216,ObjectPrototypeIsPrototypeOf code-creation,Builtin,2,2971,0x15d0860,12,ObjectPrototypePropertyIsEnumerable code-creation,Builtin,2,2974,0x15d0880,12,ObjectPrototypeGetProto code-creation,Builtin,2,2975,0x15d08a0,12,ObjectPrototypeSetProto code-creation,Builtin,2,2978,0x15d08c0,12,ObjectSeal code-creation,Builtin,2,2979,0x15d08e0,1108,ObjectToString code-creation,Builtin,2,2982,0x15d0d40,1280,ObjectValues code-creation,Builtin,2,2984,0x15d1260,280,OrdinaryHasInstance code-creation,Builtin,2,2986,0x15d1380,344,InstanceOf code-creation,Builtin,2,2987,0x15d14e0,628,InstanceOf_WithFeedback code-creation,Builtin,2,2989,0x15d1760,648,InstanceOf_Baseline code-creation,Builtin,2,2991,0x15d1a00,268,ForInEnumerate code-creation,Builtin,2,2993,0x15d1b20,148,ForInPrepare code-creation,Builtin,2,2995,0x15d1bc0,2576,ForInFilter code-creation,Builtin,2,2997,0x15d25e0,52,ReflectApply code-creation,Builtin,2,2998,0x15d2620,60,ReflectConstruct code-creation,Builtin,2,3000,0x15d2660,12,ReflectDefineProperty code-creation,Builtin,2,3002,0x15d2680,12,ReflectGetOwnPropertyDescriptor code-creation,Builtin,2,3004,0x15d26a0,12,ReflectOwnKeys code-creation,Builtin,2,3006,0x15d26c0,12,ReflectSet code-creation,Builtin,2,3008,0x15d26e0,12,RegExpCapture1Getter code-creation,Builtin,2,3010,0x15d2700,12,RegExpCapture2Getter code-creation,Builtin,2,3012,0x15d2720,12,RegExpCapture3Getter code-creation,Builtin,2,3013,0x15d2740,12,RegExpCapture4Getter code-creation,Builtin,2,3018,0x15d2760,12,RegExpCapture5Getter code-creation,Builtin,2,3021,0x15d2780,12,RegExpCapture6Getter code-creation,Builtin,2,3023,0x15d27a0,12,RegExpCapture7Getter code-creation,Builtin,2,3025,0x15d27c0,12,RegExpCapture8Getter code-creation,Builtin,2,3027,0x15d27e0,12,RegExpCapture9Getter code-creation,Builtin,2,3030,0x15d2800,2212,RegExpConstructor code-creation,Builtin,2,3031,0x15d30c0,12,RegExpInputGetter code-creation,Builtin,2,3033,0x15d30e0,12,RegExpInputSetter code-creation,Builtin,2,3035,0x15d3100,12,RegExpLastMatchGetter code-creation,Builtin,2,3037,0x15d3120,12,RegExpLastParenGetter code-creation,Builtin,2,3039,0x15d3140,12,RegExpLeftContextGetter code-creation,Builtin,2,3041,0x15d3160,908,RegExpPrototypeCompile code-creation,Builtin,2,3043,0x15d3500,12,RegExpPrototypeToString code-creation,Builtin,2,3045,0x15d3520,12,RegExpRightContextGetter code-creation,Builtin,2,3047,0x15d3540,248,RegExpExecAtom code-creation,Builtin,2,3048,0x15d3640,1024,RegExpExecInternal code-creation,Builtin,2,3050,0x15d3a60,8,RegExpInterpreterTrampoline code-creation,Builtin,2,3052,0x15d3a80,8,RegExpExperimentalTrampoline code-creation,Builtin,2,3054,0x15d3aa0,2676,SetConstructor code-creation,Builtin,2,3056,0x15d4520,1276,SetPrototypeHas code-creation,Builtin,2,3058,0x15d4a20,1708,SetPrototypeAdd code-creation,Builtin,2,3060,0x15d50e0,1476,SetPrototypeDelete code-creation,Builtin,2,3062,0x15d56c0,12,SetPrototypeClear code-creation,Builtin,2,3064,0x15d56e0,284,SetPrototypeEntries code-creation,Builtin,2,3066,0x15d5800,144,SetPrototypeGetSize code-creation,Builtin,2,3067,0x15d58a0,444,SetPrototypeForEach code-creation,Builtin,2,3069,0x15d5a60,284,SetPrototypeValues code-creation,Builtin,2,3071,0x15d5b80,984,SetIteratorPrototypeNext code-creation,Builtin,2,3074,0x15d5f60,1104,SetOrSetIteratorToList code-creation,Builtin,2,3075,0x15d63c0,12,SharedArrayBufferPrototypeGetByteLength code-creation,Builtin,2,3078,0x15d63e0,12,SharedArrayBufferPrototypeSlice code-creation,Builtin,2,3080,0x15d6400,12,SharedArrayBufferPrototypeGrow code-creation,Builtin,2,3082,0x15d6420,1280,AtomicsLoad code-creation,Builtin,2,3084,0x15d6940,1008,AtomicsStore code-creation,Builtin,2,3086,0x15d6d40,1704,AtomicsExchange code-creation,Builtin,2,3087,0x15d7400,2092,AtomicsCompareExchange code-creation,Builtin,2,3089,0x15d7c40,1804,AtomicsAdd code-creation,Builtin,2,3093,0x15d8360,1804,AtomicsSub code-creation,Builtin,2,3095,0x15d8a80,1804,AtomicsAnd code-creation,Builtin,2,3097,0x15d91a0,1804,AtomicsOr code-creation,Builtin,2,3099,0x15d98c0,1804,AtomicsXor code-creation,Builtin,2,3101,0x15d9fe0,12,AtomicsNotify code-creation,Builtin,2,3103,0x15da000,12,AtomicsIsLockFree code-creation,Builtin,2,3105,0x15da020,12,AtomicsWait code-creation,Builtin,2,3107,0x15da040,12,AtomicsWaitAsync code-creation,Builtin,2,3109,0x15da060,12,StringFromCodePoint code-creation,Builtin,2,3110,0x15da080,1428,StringFromCharCode code-creation,Builtin,2,3112,0x15da620,12,StringPrototypeLastIndexOf code-creation,Builtin,2,3114,0x15da640,4360,StringPrototypeMatchAll code-creation,Builtin,2,3116,0x15db760,12,StringPrototypeLocaleCompare code-creation,Builtin,2,3118,0x15db780,1228,StringPrototypeReplace code-creation,Builtin,2,3120,0x15dbc60,2896,StringPrototypeSplit code-creation,Builtin,2,3122,0x15dc7c0,12,StringRaw code-creation,Builtin,2,3125,0x15dc7e0,12,SymbolConstructor code-creation,Builtin,2,3126,0x15dc800,12,SymbolFor code-creation,Builtin,2,3128,0x15dc820,12,SymbolKeyFor code-creation,Builtin,2,3130,0x15dc840,88,TypedArrayBaseConstructor code-creation,Builtin,2,3132,0x15dc8a0,256,TypedArrayConstructor code-creation,Builtin,2,3134,0x15dc9c0,12,TypedArrayPrototypeBuffer code-creation,Builtin,2,3136,0x15dc9e0,884,TypedArrayPrototypeByteLength code-creation,Builtin,2,3138,0x15dcd60,368,TypedArrayPrototypeByteOffset code-creation,Builtin,2,3140,0x15dcee0,588,TypedArrayPrototypeLength code-creation,Builtin,2,3142,0x15dd140,12,TypedArrayPrototypeCopyWithin code-creation,Builtin,2,3144,0x15dd160,12,TypedArrayPrototypeFill code-creation,Builtin,2,3147,0x15dd180,12,TypedArrayPrototypeIncludes code-creation,Builtin,2,3149,0x15dd1a0,12,TypedArrayPrototypeIndexOf code-creation,Builtin,2,3151,0x15dd1c0,12,TypedArrayPrototypeLastIndexOf code-creation,Builtin,2,3153,0x15dd1e0,12,TypedArrayPrototypeReverse code-creation,Builtin,2,3154,0x15dd200,316,TypedArrayPrototypeToStringTag code-creation,Builtin,2,3156,0x15dd340,10664,TypedArrayPrototypeMap code-creation,Builtin,2,3158,0x15dfd00,792,GenericJSToWasmWrapper code-creation,Builtin,2,3160,0x15e0020,148,WasmCompileLazy code-creation,Builtin,2,3162,0x15e00c0,168,WasmDebugBreak code-creation,Builtin,2,3164,0x15e0180,16,WasmOnStackReplace code-creation,Builtin,2,3166,0x15e01a0,140,WasmFloat32ToNumber code-creation,Builtin,2,3168,0x15e0240,152,WasmFloat64ToNumber code-creation,Builtin,2,3171,0x15e02e0,4,WasmI32AtomicWait32 code-creation,Builtin,2,3172,0x15e0300,4,WasmI64AtomicWait32 code-creation,Builtin,2,3174,0x15e0320,24,JSToWasmLazyDeoptContinuation code-creation,Builtin,2,3176,0x15e0340,4316,WeakMapConstructor code-creation,Builtin,2,3179,0x15e1420,196,WeakMapLookupHashIndex code-creation,Builtin,2,3181,0x15e1500,220,WeakMapGet code-creation,Builtin,2,3182,0x15e15e0,176,WeakMapPrototypeHas code-creation,Builtin,2,3184,0x15e16a0,204,WeakMapPrototypeSet code-creation,Builtin,2,3186,0x15e1780,144,WeakMapPrototypeDelete code-creation,Builtin,2,3188,0x15e1820,2876,WeakSetConstructor code-creation,Builtin,2,3190,0x15e2360,176,WeakSetPrototypeHas code-creation,Builtin,2,3192,0x15e2420,204,WeakSetPrototypeAdd code-creation,Builtin,2,3194,0x15e2500,144,WeakSetPrototypeDelete code-creation,Builtin,2,3196,0x15e25a0,372,WeakCollectionDelete code-creation,Builtin,2,3199,0x15e2720,768,WeakCollectionSet code-creation,Builtin,2,3200,0x15e2a40,296,AsyncGeneratorResolve code-creation,Builtin,2,3203,0x15e2b80,100,AsyncGeneratorReject code-creation,Builtin,2,3205,0x15e2c00,2760,AsyncGeneratorYield code-creation,Builtin,2,3207,0x15e36e0,2872,AsyncGeneratorReturn code-creation,Builtin,2,3209,0x15e4220,292,AsyncGeneratorResumeNext code-creation,Builtin,2,3211,0x15e4360,12,AsyncGeneratorFunctionConstructor code-creation,Builtin,2,3213,0x15e4380,1016,AsyncGeneratorPrototypeNext code-creation,Builtin,2,3215,0x15e4780,1024,AsyncGeneratorPrototypeReturn code-creation,Builtin,2,3217,0x15e4ba0,1024,AsyncGeneratorPrototypeThrow code-creation,Builtin,2,3221,0x15e4fc0,2736,AsyncGeneratorAwaitCaught code-creation,Builtin,2,3223,0x15e5a80,2736,AsyncGeneratorAwaitUncaught code-creation,Builtin,2,3225,0x15e6540,116,AsyncGeneratorAwaitResolveClosure code-creation,Builtin,2,3227,0x15e65c0,128,AsyncGeneratorAwaitRejectClosure code-creation,Builtin,2,3229,0x15e6660,116,AsyncGeneratorYieldResolveClosure code-creation,Builtin,2,3231,0x15e66e0,116,AsyncGeneratorReturnClosedResolveClosure code-creation,Builtin,2,3233,0x15e6760,112,AsyncGeneratorReturnClosedRejectClosure code-creation,Builtin,2,3236,0x15e67e0,128,AsyncGeneratorReturnResolveClosure code-creation,Builtin,2,3238,0x15e6880,1592,AsyncFromSyncIteratorPrototypeNext code-creation,Builtin,2,3241,0x15e6ec0,1696,AsyncFromSyncIteratorPrototypeThrow code-creation,Builtin,2,3243,0x15e7580,1716,AsyncFromSyncIteratorPrototypeReturn code-creation,Builtin,2,3245,0x15e7c40,100,AsyncIteratorValueUnwrap code-creation,Builtin,2,3247,0x15e7cc0,220,CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit code-creation,Builtin,2,3249,0x15e7da0,220,CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit code-creation,Builtin,2,3252,0x15e7e80,204,CEntry_Return1_DontSaveFPRegs_ArgvInRegister_NoBuiltinExit code-creation,Builtin,2,3254,0x15e7f60,396,CEntry_Return1_SaveFPRegs_ArgvOnStack_NoBuiltinExit code-creation,Builtin,2,3257,0x15e8100,396,CEntry_Return1_SaveFPRegs_ArgvOnStack_BuiltinExit code-creation,Builtin,2,3259,0x15e82a0,220,CEntry_Return2_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit code-creation,Builtin,2,3261,0x15e8380,220,CEntry_Return2_DontSaveFPRegs_ArgvOnStack_BuiltinExit code-creation,Builtin,2,3264,0x15e8460,204,CEntry_Return2_DontSaveFPRegs_ArgvInRegister_NoBuiltinExit code-creation,Builtin,2,3266,0x15e8540,396,CEntry_Return2_SaveFPRegs_ArgvOnStack_NoBuiltinExit code-creation,Builtin,2,3269,0x15e86e0,396,CEntry_Return2_SaveFPRegs_ArgvOnStack_BuiltinExit code-creation,Builtin,2,3272,0x15e8880,4,DirectCEntry code-creation,Builtin,2,3274,0x15e88a0,1096,StringAdd_CheckNone code-creation,Builtin,2,3275,0x15e8d00,2480,SubString code-creation,Builtin,2,3277,0x15e96c0,16,StackCheck code-creation,Builtin,2,3279,0x15e96e0,84,DoubleToI code-creation,Builtin,2,3281,0x15e9740,2236,GetProperty code-creation,Builtin,2,3283,0x15ea000,2308,GetPropertyWithReceiver code-creation,Builtin,2,3285,0x15ea920,15844,SetProperty code-creation,Builtin,2,3286,0x15ee720,13404,SetPropertyInLiteral code-creation,Builtin,2,3288,0x15f1b80,8,MemCopyUint8Uint8 code-creation,Builtin,2,3290,0x15f1ba0,8,MemMove code-creation,Builtin,2,3292,0x15f1bc0,12,IsTraceCategoryEnabled code-creation,Builtin,2,3294,0x15f1be0,12,Trace code-creation,Builtin,2,3295,0x15f1c00,12,FinalizationRegistryUnregister code-creation,Builtin,2,3297,0x15f1c20,416,AsyncModuleEvaluate code-creation,Builtin,2,3299,0x15f1de0,12,CallAsyncModuleFulfilled code-creation,Builtin,2,3301,0x15f1e00,12,CallAsyncModuleRejected code-creation,Builtin,2,3303,0x15f1e20,260,AggregateErrorConstructor code-creation,Builtin,2,3305,0x15f1f40,856,ArrayPrototypeAt code-creation,Builtin,2,3307,0x15f22a0,656,ArrayPrototypeConcat code-creation,Builtin,2,3309,0x15f2540,5824,ArrayPrototypeCopyWithin code-creation,Builtin,2,3311,0x15f3c20,212,ArrayEveryLoopEagerDeoptContinuation code-creation,Builtin,2,3313,0x15f3d00,612,ArrayEveryLoopLazyDeoptContinuation code-creation,Builtin,2,3315,0x15f3f80,3256,ArrayEveryLoopContinuation code-creation,Builtin,2,3317,0x15f4c40,1464,ArrayEvery code-creation,Builtin,2,3319,0x15f5200,284,ArrayFilterLoopEagerDeoptContinuation code-creation,Builtin,2,3321,0x15f5320,988,ArrayFilterLoopLazyDeoptContinuation code-creation,Builtin,2,3324,0x15f5700,3560,ArrayFilterLoopContinuation code-creation,Builtin,2,3326,0x15f6500,4248,ArrayFilter code-creation,Builtin,2,3327,0x15f75a0,204,ArrayFindLoopEagerDeoptContinuation code-creation,Builtin,2,3330,0x15f7680,32,ArrayFindLoopLazyDeoptContinuation code-creation,Builtin,2,3332,0x15f76c0,312,ArrayFindLoopAfterCallbackLazyDeoptContinuation code-creation,Builtin,2,3334,0x15f7800,528,ArrayFindLoopContinuation code-creation,Builtin,2,3336,0x15f7a20,1460,ArrayPrototypeFind code-creation,Builtin,2,3340,0x15f7fe0,204,ArrayFindIndexLoopEagerDeoptContinuation code-creation,Builtin,2,3342,0x15f80c0,32,ArrayFindIndexLoopLazyDeoptContinuation code-creation,Builtin,2,3344,0x15f8100,312,ArrayFindIndexLoopAfterCallbackLazyDeoptContinuation code-creation,Builtin,2,3347,0x15f8240,524,ArrayFindIndexLoopContinuation code-creation,Builtin,2,3349,0x15f8460,1460,ArrayPrototypeFindIndex code-creation,Builtin,2,3351,0x15f8a20,448,ArrayFindLastLoopContinuation code-creation,Builtin,2,3353,0x15f8c00,1700,ArrayPrototypeFindLast code-creation,Builtin,2,3355,0x15f92c0,448,ArrayFindLastIndexLoopContinuation code-creation,Builtin,2,3356,0x15f94a0,1700,ArrayPrototypeFindLastIndex code-creation,Builtin,2,3359,0x15f9b60,212,ArrayForEachLoopEagerDeoptContinuation code-creation,Builtin,2,3361,0x15f9c40,212,ArrayForEachLoopLazyDeoptContinuation code-creation,Builtin,2,3363,0x15f9d20,3144,ArrayForEachLoopContinuation code-creation,Builtin,2,3365,0x15fa980,1328,ArrayForEach code-creation,Builtin,2,3367,0x15faec0,3572,ArrayFrom code-creation,Builtin,2,3368,0x15fbcc0,148,ArrayIsArray code-creation,Builtin,2,3370,0x15fbd60,408,LoadJoinElement_DictionaryElements_0 code-creation,Builtin,2,3372,0x15fbf00,36,LoadJoinElement_FastSmiOrObjectElements_0 code-creation,Builtin,2,3375,0x15fbf40,140,LoadJoinElement_FastDoubleElements_0 code-creation,Builtin,2,3377,0x15fbfe0,312,ConvertToLocaleString code-creation,Builtin,2,3379,0x15fc120,748,JoinStackPush code-creation,Builtin,2,3381,0x15fc420,268,JoinStackPop code-creation,Builtin,2,3382,0x15fc540,6620,ArrayPrototypeJoin code-creation,Builtin,2,3384,0x15fdf20,5360,ArrayPrototypeToLocaleString code-creation,Builtin,2,3387,0x15ff420,236,ArrayPrototypeToString code-creation,Builtin,2,3388,0x15ff520,5924,TypedArrayPrototypeJoin code-creation,Builtin,2,3391,0x1600c60,4640,TypedArrayPrototypeToLocaleString code-creation,Builtin,2,3393,0x1601ea0,3824,ArrayPrototypeLastIndexOf code-creation,Builtin,2,3395,0x1602da0,260,ArrayMapPreLoopLazyDeoptContinuation code-creation,Builtin,2,3396,0x1602ec0,252,ArrayMapLoopEagerDeoptContinuation code-creation,Builtin,2,3399,0x1602fc0,532,ArrayMapLoopLazyDeoptContinuation code-creation,Builtin,2,3401,0x16031e0,3188,ArrayMapLoopContinuation code-creation,Builtin,2,3403,0x1603e60,3904,ArrayMap code-creation,Builtin,2,3404,0x1604dc0,1000,ArrayOf code-creation,Builtin,2,3407,0x16051c0,444,ArrayReduceRightPreLoopEagerDeoptContinuation code-creation,Builtin,2,3409,0x1605380,204,ArrayReduceRightLoopEagerDeoptContinuation code-creation,Builtin,2,3412,0x1605460,204,ArrayReduceRightLoopLazyDeoptContinuation code-creation,Builtin,2,3414,0x1605540,3204,ArrayReduceRightLoopContinuation code-creation,Builtin,2,3416,0x16061e0,2000,ArrayReduceRight code-creation,Builtin,2,3418,0x16069c0,176,ArrayReducePreLoopEagerDeoptContinuation code-creation,Builtin,2,3420,0x1606a80,204,ArrayReduceLoopEagerDeoptContinuation code-creation,Builtin,2,3422,0x1606b60,204,ArrayReduceLoopLazyDeoptContinuation code-creation,Builtin,2,3425,0x1606c40,3216,ArrayReduceLoopContinuation code-creation,Builtin,2,3426,0x16078e0,1604,ArrayReduce code-creation,Builtin,2,3428,0x1607f40,3208,ArrayPrototypeReverse code-creation,Builtin,2,3430,0x1608be0,3604,ArrayPrototypeShift code-creation,Builtin,2,3432,0x1609a00,5188,ArrayPrototypeSlice code-creation,Builtin,2,3434,0x160ae60,212,ArraySomeLoopEagerDeoptContinuation code-creation,Builtin,2,3436,0x160af40,580,ArraySomeLoopLazyDeoptContinuation code-creation,Builtin,2,3438,0x160b1a0,3244,ArraySomeLoopContinuation code-creation,Builtin,2,3440,0x160be60,1448,ArraySome code-creation,Builtin,2,3442,0x160c420,14200,ArrayPrototypeSplice code-creation,Builtin,2,3443,0x160fba0,3256,ArrayPrototypeUnshift code-creation,Builtin,2,3445,0x1610860,332,ArrayBufferPrototypeGetByteLength code-creation,Builtin,2,3447,0x16109c0,348,ArrayBufferPrototypeGetMaxByteLength code-creation,Builtin,2,3449,0x1610b20,208,ArrayBufferPrototypeGetResizable code-creation,Builtin,2,3451,0x1610c00,332,SharedArrayBufferPrototypeGetMaxByteLength code-creation,Builtin,2,3454,0x1610d60,208,SharedArrayBufferPrototypeGetGrowable code-creation,Builtin,2,3458,0x1610e40,96,ArrayBufferIsView code-creation,Builtin,2,3459,0x1610ec0,396,ToInteger code-creation,Builtin,2,3461,0x1611060,3068,FastCreateDataProperty code-creation,Builtin,2,3463,0x1611c60,676,CheckNumberInRange code-creation,Builtin,2,3466,0x1611f20,584,CheckSameObject code-creation,Builtin,2,3468,0x1612180,904,BooleanConstructor code-creation,Builtin,2,3470,0x1612520,164,BooleanPrototypeToString code-creation,Builtin,2,3472,0x16125e0,156,BooleanPrototypeValueOf code-creation,Builtin,2,3474,0x1612680,1180,BigIntAddNoThrow code-creation,Builtin,2,3475,0x1612b20,1276,BigIntAdd code-creation,Builtin,2,3478,0x1613020,1180,BigIntSubtractNoThrow code-creation,Builtin,2,3479,0x16134c0,1276,BigIntSubtract code-creation,Builtin,2,3481,0x16139c0,284,BigIntUnaryMinus code-creation,Builtin,2,3483,0x1613ae0,1356,ToString code-creation,Builtin,2,3485,0x1614040,156,StringPrototypeToString code-creation,Builtin,2,3487,0x16140e0,156,StringPrototypeValueOf code-creation,Builtin,2,3489,0x1614180,2452,StringToList code-creation,Builtin,2,3491,0x1614b20,1012,StringPrototypeCharAt code-creation,Builtin,2,3493,0x1614f20,700,StringPrototypeCharCodeAt code-creation,Builtin,2,3495,0x16151e0,1288,StringPrototypeCodePointAt code-creation,Builtin,2,3497,0x1615700,400,StringPrototypeConcat code-creation,Builtin,2,3499,0x16158a0,992,StringConstructor code-creation,Builtin,2,3500,0x1615ca0,1432,StringAddConvertLeft code-creation,Builtin,2,3502,0x1616240,1460,StringAddConvertRight code-creation,Builtin,2,3504,0x1616800,812,StringCharAt code-creation,Builtin,2,3506,0x1616b40,16,FastNewClosureBaseline code-creation,Builtin,2,3508,0x1616b60,196,FastNewFunctionContextEval code-creation,Builtin,2,3510,0x1616c40,196,FastNewFunctionContextFunction code-creation,Builtin,2,3512,0x1616d20,248,CreateRegExpLiteral code-creation,Builtin,2,3514,0x1616e20,1080,CreateShallowArrayLiteral code-creation,Builtin,2,3516,0x1617260,496,CreateEmptyArrayLiteral code-creation,Builtin,2,3517,0x1617460,1724,CreateShallowObjectLiteral code-creation,Builtin,2,3520,0x1617b20,384,ObjectConstructor code-creation,Builtin,2,3522,0x1617cc0,176,CreateEmptyLiteralObject code-creation,Builtin,2,3524,0x1617d80,532,NumberConstructor code-creation,Builtin,2,3526,0x1617fa0,64,GenericLazyDeoptContinuation code-creation,Builtin,2,3528,0x1618000,64,StringToNumber code-creation,Builtin,2,3529,0x1618060,184,NonNumberToNumber code-creation,Builtin,2,3531,0x1618120,240,NonNumberToNumeric code-creation,Builtin,2,3533,0x1618220,36,ToNumeric code-creation,Builtin,2,3535,0x1618260,1180,NumberToString code-creation,Builtin,2,3536,0x1618700,92,ToBoolean code-creation,Builtin,2,3538,0x1618760,96,ToBooleanForBaselineJump code-creation,Builtin,2,3540,0x16187e0,728,ToLength code-creation,Builtin,2,3542,0x1618ac0,1308,ToName code-creation,Builtin,2,3544,0x1618fe0,756,ToObject code-creation,Builtin,2,3545,0x16192e0,208,NonPrimitiveToPrimitive_Default code-creation,Builtin,2,3547,0x16193c0,208,NonPrimitiveToPrimitive_Number code-creation,Builtin,2,3549,0x16194a0,208,NonPrimitiveToPrimitive_String code-creation,Builtin,2,3551,0x1619580,288,OrdinaryToPrimitive_Number code-creation,Builtin,2,3554,0x16196c0,288,OrdinaryToPrimitive_String code-creation,Builtin,2,3555,0x1619800,216,FastConsoleAssert code-creation,Builtin,2,3557,0x16198e0,160,DataViewPrototypeGetBuffer code-creation,Builtin,2,3559,0x16199a0,336,DataViewPrototypeGetByteLength code-creation,Builtin,2,3561,0x1619b00,336,DataViewPrototypeGetByteOffset code-creation,Builtin,2,3563,0x1619c60,572,DataViewPrototypeGetUint8 code-creation,Builtin,2,3565,0x1619ea0,572,DataViewPrototypeGetInt8 code-creation,Builtin,2,3567,0x161a0e0,644,DataViewPrototypeGetUint16 code-creation,Builtin,2,3569,0x161a380,644,DataViewPrototypeGetInt16 code-creation,Builtin,2,3572,0x161a620,808,DataViewPrototypeGetUint32 code-creation,Builtin,2,3574,0x161a960,684,DataViewPrototypeGetInt32 code-creation,Builtin,2,3576,0x161ac20,848,DataViewPrototypeGetFloat32 code-creation,Builtin,2,3578,0x161af80,912,DataViewPrototypeGetFloat64 code-creation,Builtin,2,3581,0x161b320,984,DataViewPrototypeGetBigUint64 code-creation,Builtin,2,3583,0x161b700,1004,DataViewPrototypeGetBigInt64 code-creation,Builtin,2,3585,0x161bb00,928,DataViewPrototypeSetUint8 code-creation,Builtin,2,3587,0x161bec0,928,DataViewPrototypeSetInt8 code-creation,Builtin,2,3589,0x161c280,1028,DataViewPrototypeSetUint16 code-creation,Builtin,2,3591,0x161c6a0,1028,DataViewPrototypeSetInt16 code-creation,Builtin,2,3593,0x161cac0,1064,DataViewPrototypeSetUint32 code-creation,Builtin,2,3595,0x161cf00,1064,DataViewPrototypeSetInt32 code-creation,Builtin,2,3597,0x161d340,1032,DataViewPrototypeSetFloat32 code-creation,Builtin,2,3599,0x161d760,1096,DataViewPrototypeSetFloat64 code-creation,Builtin,2,3601,0x161dbc0,944,DataViewPrototypeSetBigUint64 code-creation,Builtin,2,3603,0x161df80,944,DataViewPrototypeSetBigInt64 code-creation,Builtin,2,3605,0x161e340,828,FinalizationRegistryConstructor code-creation,Builtin,2,3607,0x161e680,1136,FinalizationRegistryRegister code-creation,Builtin,2,3609,0x161eb00,644,FinalizationRegistryPrototypeCleanupSome code-creation,Builtin,2,3611,0x161eda0,328,FunctionPrototypeHasInstance code-creation,Builtin,2,3613,0x161ef00,924,FastFunctionPrototypeBind code-creation,Builtin,2,3615,0x161f2a0,88,IncBlockCounter code-creation,Builtin,2,3617,0x161f300,236,GetTemplateObject code-creation,Builtin,2,3619,0x161f400,28,BytecodeBudgetInterruptFromCode code-creation,Builtin,2,3621,0x161f420,92,ForInNext code-creation,Builtin,2,3623,0x161f480,128,GetImportMetaObjectBaseline code-creation,Builtin,2,3625,0x161f520,116,GetIteratorWithFeedback code-creation,Builtin,2,3627,0x161f5a0,100,GetIteratorBaseline code-creation,Builtin,2,3629,0x161f620,268,CreateAsyncFromSyncIteratorBaseline code-creation,Builtin,2,3631,0x161f740,1076,CallIteratorWithFeedback code-creation,Builtin,2,3633,0x161fb80,288,MathAbs code-creation,Builtin,2,3634,0x161fcc0,428,MathCeil code-creation,Builtin,2,3636,0x161fe80,432,MathFloor code-creation,Builtin,2,3638,0x1620040,488,MathRound code-creation,Builtin,2,3640,0x1620240,428,MathTrunc code-creation,Builtin,2,3641,0x1620400,364,MathPow code-creation,Builtin,2,3643,0x1620580,396,MathMax code-creation,Builtin,2,3645,0x1620720,404,MathMin code-creation,Builtin,2,3646,0x16208c0,320,MathAcos code-creation,Builtin,2,3649,0x1620a20,320,MathAcosh code-creation,Builtin,2,3651,0x1620b80,320,MathAsin code-creation,Builtin,2,3652,0x1620ce0,320,MathAsinh code-creation,Builtin,2,3654,0x1620e40,320,MathAtan code-creation,Builtin,2,3656,0x1620fa0,412,MathAtan2 code-creation,Builtin,2,3657,0x1621140,320,MathAtanh code-creation,Builtin,2,3659,0x16212a0,320,MathCbrt code-creation,Builtin,2,3661,0x1621400,168,MathClz32 code-creation,Builtin,2,3663,0x16214c0,320,MathCos code-creation,Builtin,2,3664,0x1621620,320,MathCosh code-creation,Builtin,2,3666,0x1621780,320,MathExp code-creation,Builtin,2,3668,0x16218e0,320,MathExpm1 code-creation,Builtin,2,3670,0x1621a40,272,MathFround code-creation,Builtin,2,3671,0x1621b60,304,MathImul code-creation,Builtin,2,3673,0x1621ca0,320,MathLog code-creation,Builtin,2,3675,0x1621e00,320,MathLog1p code-creation,Builtin,2,3676,0x1621f60,320,MathLog10 code-creation,Builtin,2,3678,0x16220c0,320,MathLog2 code-creation,Builtin,2,3680,0x1622220,320,MathSin code-creation,Builtin,2,3682,0x1622380,180,MathSign code-creation,Builtin,2,3683,0x1622440,320,MathSinh code-creation,Builtin,2,3685,0x16225a0,268,MathSqrt code-creation,Builtin,2,3687,0x16226c0,320,MathTan code-creation,Builtin,2,3688,0x1622820,320,MathTanh code-creation,Builtin,2,3690,0x1622980,1056,MathHypot code-creation,Builtin,2,3692,0x1622dc0,324,MathRandom code-creation,Builtin,2,3694,0x1622f20,2952,NumberPrototypeToString code-creation,Builtin,2,3696,0x1623ac0,136,NumberIsFinite code-creation,Builtin,2,3697,0x1623b60,340,NumberIsInteger code-creation,Builtin,2,3699,0x1623cc0,116,NumberIsNaN code-creation,Builtin,2,3701,0x1623d40,372,NumberIsSafeInteger code-creation,Builtin,2,3703,0x1623ec0,156,NumberPrototypeValueOf code-creation,Builtin,2,3705,0x1623f60,196,NumberParseFloat code-creation,Builtin,2,3708,0x1624040,248,ParseInt code-creation,Builtin,2,3710,0x1624140,84,NumberParseInt code-creation,Builtin,2,3712,0x16241a0,860,Add code-creation,Builtin,2,3713,0x1624500,424,Subtract code-creation,Builtin,2,3715,0x16246c0,608,Multiply code-creation,Builtin,2,3717,0x1624940,532,Divide code-creation,Builtin,2,3718,0x1624b60,592,Modulus code-creation,Builtin,2,3720,0x1624dc0,524,Exponentiate code-creation,Builtin,2,3722,0x1624fe0,344,Negate code-creation,Builtin,2,3724,0x1625140,112,BitwiseNot code-creation,Builtin,2,3725,0x16251c0,112,Decrement code-creation,Builtin,2,3727,0x1625240,112,Increment code-creation,Builtin,2,3729,0x16252c0,392,ShiftLeft code-creation,Builtin,2,3731,0x1625460,392,ShiftRight code-creation,Builtin,2,3732,0x1625600,508,ShiftRightLogical code-creation,Builtin,2,3734,0x1625800,388,BitwiseAnd code-creation,Builtin,2,3736,0x16259a0,388,BitwiseOr code-creation,Builtin,2,3738,0x1625b40,388,BitwiseXor code-creation,Builtin,2,3739,0x1625ce0,796,LessThan code-creation,Builtin,2,3743,0x1626000,796,LessThanOrEqual code-creation,Builtin,2,3744,0x1626320,796,GreaterThan code-creation,Builtin,2,3746,0x1626640,796,GreaterThanOrEqual code-creation,Builtin,2,3748,0x1626960,860,Equal code-creation,Builtin,2,3751,0x1626cc0,348,StrictEqual code-creation,Builtin,2,3753,0x1626e20,3132,ObjectFromEntries code-creation,Builtin,2,3755,0x1627a60,756,CreateObjectWithoutProperties code-creation,Builtin,2,3756,0x1627d60,144,ObjectIsExtensible code-creation,Builtin,2,3759,0x1627e00,148,ObjectPreventExtensions code-creation,Builtin,2,3760,0x1627ea0,144,ObjectGetPrototypeOf code-creation,Builtin,2,3762,0x1627f40,300,ObjectSetPrototypeOf code-creation,Builtin,2,3764,0x1628080,80,ObjectPrototypeToString code-creation,Builtin,2,3766,0x16280e0,96,ObjectPrototypeValueOf code-creation,Builtin,2,3768,0x1628160,164,ObjectPrototypeToLocaleString code-creation,Builtin,2,3770,0x1628220,860,FulfillPromise code-creation,Builtin,2,3772,0x1628580,980,RejectPromise code-creation,Builtin,2,3774,0x1628960,2412,NewPromiseCapability code-creation,Builtin,2,3776,0x16292e0,164,PromiseCapabilityDefaultReject code-creation,Builtin,2,3778,0x16293a0,148,PromiseCapabilityDefaultResolve code-creation,Builtin,2,3780,0x1629440,1412,PerformPromiseThen code-creation,Builtin,2,3782,0x16299e0,648,PromiseReject code-creation,Builtin,2,3784,0x1629c80,292,PromiseGetCapabilitiesExecutor code-creation,Builtin,2,3786,0x1629dc0,104,PromiseConstructorLazyDeoptContinuation code-creation,Builtin,2,3788,0x1629e40,4556,PromiseAll code-creation,Builtin,2,3790,0x162b020,4876,PromiseAllSettled code-creation,Builtin,2,3792,0x162c340,1100,PromiseAllResolveElementClosure code-creation,Builtin,2,3794,0x162c7a0,1388,PromiseAllSettledResolveElementClosure code-creation,Builtin,2,3796,0x162cd20,1396,PromiseAllSettledRejectElementClosure code-creation,Builtin,2,3798,0x162d2a0,1172,PromiseAnyRejectElementClosure code-creation,Builtin,2,3800,0x162d740,2368,PromiseAny code-creation,Builtin,2,3802,0x162e0a0,2908,PromiseConstructor code-creation,Builtin,2,3804,0x162ec00,296,PromisePrototypeCatch code-creation,Builtin,2,3806,0x162ed40,88,PromiseValueThunkFinally code-creation,Builtin,2,3808,0x162eda0,84,PromiseThrowerFinally code-creation,Builtin,2,3810,0x162ee00,904,PromiseCatchFinally code-creation,Builtin,2,3812,0x162f1a0,904,PromiseThenFinally code-creation,Builtin,2,3815,0x162f540,1700,PromisePrototypeFinally code-creation,Builtin,2,3816,0x162fc00,1336,PromiseRace code-creation,Builtin,2,3819,0x1630140,268,PromiseFulfillReactionJob code-creation,Builtin,2,3821,0x1630260,364,PromiseRejectReactionJob code-creation,Builtin,2,3823,0x16303e0,156,PromiseResolveTrampoline code-creation,Builtin,2,3825,0x1630480,656,PromiseResolve code-creation,Builtin,2,3827,0x1630720,712,ResolvePromise code-creation,Builtin,2,3828,0x1630a00,2220,PromisePrototypeThen code-creation,Builtin,2,3831,0x16312c0,1144,PromiseResolveThenableJob code-creation,Builtin,2,3832,0x1631740,448,ProxyConstructor code-creation,Builtin,2,3834,0x1631920,1760,ProxyDeleteProperty code-creation,Builtin,2,3836,0x1632020,2112,ProxyGetProperty code-creation,Builtin,2,3840,0x1632880,1060,ProxyGetPrototypeOf code-creation,Builtin,2,3842,0x1632cc0,1668,ProxyHasProperty code-creation,Builtin,2,3844,0x1633360,760,ProxyIsExtensible code-creation,Builtin,2,3846,0x1633660,800,ProxyPreventExtensions code-creation,Builtin,2,3848,0x16339a0,1148,ProxyRevocable code-creation,Builtin,2,3850,0x1633e20,120,ProxyRevoke code-creation,Builtin,2,3851,0x1633ea0,2216,ProxySetProperty code-creation,Builtin,2,3853,0x1634760,1292,ProxySetPrototypeOf code-creation,Builtin,2,3855,0x1634c80,208,ReflectIsExtensible code-creation,Builtin,2,3858,0x1634d60,212,ReflectPreventExtensions code-creation,Builtin,2,3860,0x1634e40,188,ReflectGetPrototypeOf code-creation,Builtin,2,3862,0x1634f00,292,ReflectSetPrototypeOf code-creation,Builtin,2,3864,0x1635040,284,ReflectGet code-creation,Builtin,2,3866,0x1635160,160,ReflectDeleteProperty code-creation,Builtin,2,3868,0x1635220,148,ReflectHas code-creation,Builtin,2,3870,0x16352c0,5108,RegExpPrototypeExecSlow code-creation,Builtin,2,3872,0x16366c0,5100,RegExpPrototypeExec code-creation,Builtin,2,3874,0x1637ac0,2360,RegExpPrototypeMatchAll code-creation,Builtin,2,3876,0x1638400,9384,RegExpStringIteratorPrototypeNext code-creation,Builtin,2,3878,0x163a8c0,8796,RegExpMatchFast code-creation,Builtin,2,3880,0x163cb20,3592,RegExpPrototypeMatch code-creation,Builtin,2,3881,0x163d940,6304,RegExpReplace code-creation,Builtin,2,3883,0x163f200,524,RegExpPrototypeReplace code-creation,Builtin,2,3885,0x163f420,1400,RegExpSearchFast code-creation,Builtin,2,3887,0x163f9a0,1640,RegExpPrototypeSearch code-creation,Builtin,2,3889,0x1640020,200,RegExpPrototypeSourceGetter code-creation,Builtin,2,3891,0x1640100,5784,RegExpSplit code-creation,Builtin,2,3893,0x16417a0,476,RegExpPrototypeSplit code-creation,Builtin,2,3895,0x1641980,2236,RegExpPrototypeTest code-creation,Builtin,2,3897,0x1642240,1348,RegExpPrototypeTestFast code-creation,Builtin,2,3899,0x16427a0,228,RegExpPrototypeGlobalGetter code-creation,Builtin,2,3901,0x16428a0,244,RegExpPrototypeIgnoreCaseGetter code-creation,Builtin,2,3903,0x16429a0,244,RegExpPrototypeMultilineGetter code-creation,Builtin,2,3905,0x1642aa0,244,RegExpPrototypeHasIndicesGetter code-creation,Builtin,2,3907,0x1642ba0,244,RegExpPrototypeLinearGetter code-creation,Builtin,2,3909,0x1642ca0,244,RegExpPrototypeDotAllGetter code-creation,Builtin,2,3911,0x1642da0,272,RegExpPrototypeStickyGetter code-creation,Builtin,2,3913,0x1642ec0,272,RegExpPrototypeUnicodeGetter code-creation,Builtin,2,3915,0x1642fe0,2256,RegExpPrototypeFlagsGetter code-creation,Builtin,2,3917,0x16438c0,1500,StringPrototypeAt code-creation,Builtin,2,3919,0x1643ea0,2992,StringPrototypeEndsWith code-creation,Builtin,2,3921,0x1644a60,480,CreateHTML code-creation,Builtin,2,3923,0x1644c60,164,StringPrototypeAnchor code-creation,Builtin,2,3925,0x1644d20,128,StringPrototypeBig code-creation,Builtin,2,3926,0x1644dc0,128,StringPrototypeBlink code-creation,Builtin,2,3928,0x1644e60,128,StringPrototypeBold code-creation,Builtin,2,3930,0x1644f00,168,StringPrototypeFontcolor code-creation,Builtin,2,3932,0x1644fc0,168,StringPrototypeFontsize code-creation,Builtin,2,3934,0x1645080,128,StringPrototypeFixed code-creation,Builtin,2,3936,0x1645120,128,StringPrototypeItalics code-creation,Builtin,2,3938,0x16451c0,168,StringPrototypeLink code-creation,Builtin,2,3940,0x1645280,128,StringPrototypeSmall code-creation,Builtin,2,3942,0x1645320,128,StringPrototypeStrike code-creation,Builtin,2,3944,0x16453c0,128,StringPrototypeSub code-creation,Builtin,2,3946,0x1645460,128,StringPrototypeSup code-creation,Builtin,2,3948,0x1645500,1028,StringPrototypeIncludes code-creation,Builtin,2,3950,0x1645920,628,StringPrototypeIndexOf code-creation,Builtin,2,3952,0x1645ba0,344,StringPrototypeIterator code-creation,Builtin,2,3953,0x1645d00,2028,StringIteratorPrototypeNext code-creation,Builtin,2,3956,0x1646500,1304,StringPrototypeMatch code-creation,Builtin,2,3957,0x1646a20,1304,StringPrototypeSearch code-creation,Builtin,2,3960,0x1646f40,824,StringPrototypePadStart code-creation,Builtin,2,3961,0x1647280,824,StringPrototypePadEnd code-creation,Builtin,2,3965,0x16475c0,120,StringRepeat code-creation,Builtin,2,3967,0x1647640,400,StringPrototypeRepeat code-creation,Builtin,2,3969,0x16477e0,10964,StringPrototypeReplaceAll code-creation,Builtin,2,3971,0x164a2c0,3384,StringPrototypeSlice code-creation,Builtin,2,3973,0x164b000,3004,StringPrototypeStartsWith code-creation,Builtin,2,3974,0x164bbc0,3324,StringPrototypeSubstr code-creation,Builtin,2,3976,0x164c8c0,3260,StringPrototypeSubstring code-creation,Builtin,2,3978,0x164d580,6904,StringPrototypeTrim code-creation,Builtin,2,3980,0x164f080,6316,StringPrototypeTrimStart code-creation,Builtin,2,3982,0x1650940,5840,StringPrototypeTrimEnd code-creation,Builtin,2,3984,0x1652020,160,SymbolPrototypeDescriptionGetter code-creation,Builtin,2,3987,0x16520e0,156,SymbolPrototypeToPrimitive code-creation,Builtin,2,3989,0x1652180,172,SymbolPrototypeToString code-creation,Builtin,2,3991,0x1652240,156,SymbolPrototypeValueOf code-creation,Builtin,2,3992,0x16522e0,832,TypedArrayPrototypeAt code-creation,Builtin,2,3995,0x1652640,10004,CreateTypedArray code-creation,Builtin,2,3997,0x1654d60,1000,TypedArrayPrototypeEvery code-creation,Builtin,2,3999,0x1655160,372,TypedArrayPrototypeEntries code-creation,Builtin,2,4000,0x16552e0,3508,TypedArrayPrototypeFilter code-creation,Builtin,2,4003,0x16560a0,996,TypedArrayPrototypeFind code-creation,Builtin,2,4004,0x16564a0,1004,TypedArrayPrototypeFindIndex code-creation,Builtin,2,4007,0x16568a0,428,FindLastAllElementsDetachedContinuation code-creation,Builtin,2,4009,0x1656a60,1208,TypedArrayPrototypeFindLast code-creation,Builtin,2,4011,0x1656f20,436,FindLastIndexAllElementsDetachedContinuation code-creation,Builtin,2,4013,0x16570e0,1216,TypedArrayPrototypeFindLastIndex code-creation,Builtin,2,4015,0x16575c0,864,TypedArrayPrototypeForEach code-creation,Builtin,2,4017,0x1657940,2352,TypedArrayFrom code-creation,Builtin,2,4019,0x1658280,356,TypedArrayPrototypeKeys code-creation,Builtin,2,4021,0x1658400,1028,TypedArrayOf code-creation,Builtin,2,4023,0x1658820,952,TypedArrayPrototypeReduce code-creation,Builtin,2,4025,0x1658be0,944,TypedArrayPrototypeReduceRight code-creation,Builtin,2,4027,0x1658fa0,2496,TypedArrayPrototypeSet code-creation,Builtin,2,4029,0x1659980,3028,TypedArrayPrototypeSlice code-creation,Builtin,2,4031,0x165a560,992,TypedArrayPrototypeSome code-creation,Builtin,2,4032,0x165a960,1052,TypedArrayMergeSort code-creation,Builtin,2,4034,0x165ad80,1616,TypedArrayPrototypeSort code-creation,Builtin,2,4036,0x165b3e0,2736,TypedArrayPrototypeSubArray code-creation,Builtin,2,4038,0x165bea0,372,TypedArrayPrototypeValues code-creation,Builtin,2,4040,0x165c020,956,WeakRefConstructor code-creation,Builtin,2,4042,0x165c3e0,184,WeakRefDeref code-creation,Builtin,2,4044,0x165c4a0,680,NewSloppyArgumentsElements code-creation,Builtin,2,4046,0x165c760,296,NewStrictArgumentsElements code-creation,Builtin,2,4048,0x165c8a0,320,NewRestArgumentsElements code-creation,Builtin,2,4050,0x165ca00,1388,FastNewSloppyArguments code-creation,Builtin,2,4052,0x165cf80,524,FastNewStrictArguments code-creation,Builtin,2,4054,0x165d1a0,556,FastNewRestArguments code-creation,Builtin,2,4055,0x165d3e0,676,StringSlowFlatten code-creation,Builtin,2,4057,0x165d6a0,2000,StringIndexOf code-creation,Builtin,2,4059,0x165de80,4,GenericBuiltinTest_JSAny_0 code-creation,Builtin,2,4061,0x165dea0,20,TestHelperPlus1 code-creation,Builtin,2,4063,0x165dec0,20,TestHelperPlus2 code-creation,Builtin,2,4065,0x165dee0,96,NewSmiBox code-creation,Builtin,2,4067,0x165df60,24,ReturnTwoValues code-creation,Builtin,2,4069,0x165df80,32,Load_FastSmiElements_0 code-creation,Builtin,2,4071,0x165dfc0,32,Load_FastObjectElements_0 code-creation,Builtin,2,4073,0x165e000,144,Load_FastDoubleElements_0 code-creation,Builtin,2,4074,0x165e0a0,32,Store_FastSmiElements_0 code-creation,Builtin,2,4077,0x165e0e0,92,Store_FastObjectElements_0 code-creation,Builtin,2,4078,0x165e140,48,Store_FastDoubleElements_0 code-creation,Builtin,2,4081,0x165e180,36,Delete_FastSmiElements_0 code-creation,Builtin,2,4082,0x165e1c0,36,Delete_FastObjectElements_0 code-creation,Builtin,2,4086,0x165e200,44,Delete_FastDoubleElements_0 code-creation,Builtin,2,4088,0x165e240,308,SortCompareDefault code-creation,Builtin,2,4090,0x165e380,92,SortCompareUserFn code-creation,Builtin,2,4092,0x165e3e0,8,CanUseSameAccessor_GenericElementsAccessor_0 code-creation,Builtin,2,4094,0x165e400,308,Copy code-creation,Builtin,2,4096,0x165e540,5732,MergeAt code-creation,Builtin,2,4098,0x165fbc0,792,GallopLeft code-creation,Builtin,2,4100,0x165fee0,832,GallopRight code-creation,Builtin,2,4102,0x1660240,3820,ArrayTimSort code-creation,Builtin,2,4103,0x1661140,2096,ArrayPrototypeSort code-creation,Builtin,2,4105,0x1661980,100,WasmInt32ToHeapNumber code-creation,Builtin,2,4107,0x1661a00,124,WasmTaggedNonSmiToInt32 code-creation,Builtin,2,4109,0x1661a80,76,WasmTaggedToFloat64 code-creation,Builtin,2,4111,0x1661ae0,72,WasmMemoryGrow code-creation,Builtin,2,4113,0x1661b40,100,WasmTableInit code-creation,Builtin,2,4115,0x1661bc0,100,WasmTableCopy code-creation,Builtin,2,4117,0x1661c40,84,WasmTableFill code-creation,Builtin,2,4119,0x1661ca0,72,WasmTableGrow code-creation,Builtin,2,4121,0x1661d00,144,WasmTableGet code-creation,Builtin,2,4123,0x1661da0,236,WasmTableSet code-creation,Builtin,2,4125,0x1661ea0,88,WasmRefFunc code-creation,Builtin,2,4127,0x1661f00,144,WasmAllocateFixedArray code-creation,Builtin,2,4128,0x1661fa0,44,WasmThrow code-creation,Builtin,2,4130,0x1661fe0,52,WasmRethrow code-creation,Builtin,2,4132,0x1662020,44,WasmTriggerTierUp code-creation,Builtin,2,4134,0x1662060,32,WasmStackGuard code-creation,Builtin,2,4135,0x16620a0,32,WasmStackOverflow code-creation,Builtin,2,4138,0x16620e0,40,WasmTraceMemory code-creation,Builtin,2,4140,0x1662120,32,WasmTraceEnter code-creation,Builtin,2,4141,0x1662160,40,WasmTraceExit code-creation,Builtin,2,4143,0x16621a0,332,WasmAllocateJSArray code-creation,Builtin,2,4145,0x1662300,104,WasmAllocatePair code-creation,Builtin,2,4147,0x1662380,64,WasmAllocateRtt code-creation,Builtin,2,4148,0x16623e0,72,WasmAllocateFreshRtt code-creation,Builtin,2,4150,0x1662440,124,WasmAllocateStructWithRtt code-creation,Builtin,2,4152,0x16624c0,140,WasmAllocateArray_Uninitialized code-creation,Builtin,2,4154,0x1662560,176,WasmAllocateArray_InitZero code-creation,Builtin,2,4156,0x1662620,176,WasmAllocateArray_InitNull code-creation,Builtin,2,4158,0x16626e0,116,WasmArrayCopyWithChecks code-creation,Builtin,2,4160,0x1662760,60,WasmArrayCopy code-creation,Builtin,2,4162,0x16627a0,240,WasmAllocateObjectWrapper code-creation,Builtin,2,4164,0x16628a0,52,WasmSubtypeCheck code-creation,Builtin,2,4166,0x16628e0,8,WasmInt32ToNumber code-creation,Builtin,2,4167,0x1662900,116,WasmUint32ToNumber code-creation,Builtin,2,4169,0x1662980,144,UintPtr53ToNumber code-creation,Builtin,2,4171,0x1662a20,96,WasmAtomicNotify code-creation,Builtin,2,4174,0x1662aa0,116,WasmI32AtomicWait64 code-creation,Builtin,2,4176,0x1662b20,116,WasmI64AtomicWait64 code-creation,Builtin,2,4178,0x1662ba0,580,WasmGetOwnProperty code-creation,Builtin,2,4179,0x1662e00,40,WasmTrap code-creation,Builtin,2,4181,0x1662e40,16,ThrowWasmTrapUnreachable code-creation,Builtin,2,4183,0x1662e60,16,ThrowWasmTrapMemOutOfBounds code-creation,Builtin,2,4185,0x1662e80,16,ThrowWasmTrapUnalignedAccess code-creation,Builtin,2,4187,0x1662ea0,16,ThrowWasmTrapDivByZero code-creation,Builtin,2,4190,0x1662ec0,16,ThrowWasmTrapDivUnrepresentable code-creation,Builtin,2,4192,0x1662ee0,16,ThrowWasmTrapRemByZero code-creation,Builtin,2,4194,0x1662f00,16,ThrowWasmTrapFloatUnrepresentable code-creation,Builtin,2,4196,0x1662f20,16,ThrowWasmTrapFuncSigMismatch code-creation,Builtin,2,4198,0x1662f40,16,ThrowWasmTrapDataSegmentDropped code-creation,Builtin,2,4200,0x1662f60,16,ThrowWasmTrapElemSegmentDropped code-creation,Builtin,2,4202,0x1662f80,16,ThrowWasmTrapTableOutOfBounds code-creation,Builtin,2,4204,0x1662fa0,16,ThrowWasmTrapRethrowNull code-creation,Builtin,2,4206,0x1662fc0,16,ThrowWasmTrapNullDereference code-creation,Builtin,2,4208,0x1662fe0,16,ThrowWasmTrapIllegalCast code-creation,Builtin,2,4210,0x1663000,16,ThrowWasmTrapArrayOutOfBounds code-creation,Builtin,2,4214,0x1663020,16,ThrowWasmTrapArrayTooLarge code-creation,Builtin,2,4216,0x1663040,172,LoadJoinElement_GenericElementsAccessor_0 code-creation,Builtin,2,4218,0x1663100,24,LoadJoinTypedElement_Int32Elements_0 code-creation,Builtin,2,4220,0x1663120,116,LoadJoinTypedElement_Float32Elements_0 code-creation,Builtin,2,4223,0x16631a0,112,LoadJoinTypedElement_Float64Elements_0 code-creation,Builtin,2,4225,0x1663220,24,LoadJoinTypedElement_Uint8ClampedElements_0 code-creation,Builtin,2,4227,0x1663240,220,LoadJoinTypedElement_BigUint64Elements_0 code-creation,Builtin,2,4229,0x1663320,248,LoadJoinTypedElement_BigInt64Elements_0 code-creation,Builtin,2,4232,0x1663420,24,LoadJoinTypedElement_Uint8Elements_0 code-creation,Builtin,2,4234,0x1663440,24,LoadJoinTypedElement_Int8Elements_0 code-creation,Builtin,2,4236,0x1663460,24,LoadJoinTypedElement_Uint16Elements_0 code-creation,Builtin,2,4238,0x1663480,24,LoadJoinTypedElement_Int16Elements_0 code-creation,Builtin,2,4240,0x16634a0,132,LoadJoinTypedElement_Uint32Elements_0 code-creation,Builtin,2,4242,0x1663540,8,GenericBuiltinTest_Smi_0 code-creation,Builtin,2,4244,0x1663560,32,CanUseSameAccessor_FastDoubleElements_0 code-creation,Builtin,2,4246,0x16635a0,32,CanUseSameAccessor_FastSmiElements_0 code-creation,Builtin,2,4249,0x16635e0,32,CanUseSameAccessor_FastObjectElements_0 code-creation,Builtin,2,4251,0x1663620,2668,Load_GenericElementsAccessor_0 code-creation,Builtin,2,4253,0x16640a0,24,Store_GenericElementsAccessor_0 code-creation,Builtin,2,4255,0x16640c0,36,Delete_GenericElementsAccessor_0 code-creation,Builtin,2,4257,0x1664100,24,LoadTypedElement_Int32Elements_0 code-creation,Builtin,2,4259,0x1664120,164,StoreTypedElementNumeric_Int32Elements_0 code-creation,Builtin,2,4261,0x16641e0,180,StoreTypedElementJSAny_Int32Elements_0 code-creation,Builtin,2,4264,0x16642a0,116,LoadTypedElement_Float32Elements_0 code-creation,Builtin,2,4266,0x1664320,32,StoreTypedElementNumeric_Float32Elements_0 code-creation,Builtin,2,4268,0x1664360,156,StoreTypedElementJSAny_Float32Elements_0 code-creation,Builtin,2,4270,0x1664400,112,LoadTypedElement_Float64Elements_0 code-creation,Builtin,2,4272,0x1664480,28,StoreTypedElementNumeric_Float64Elements_0 code-creation,Builtin,2,4274,0x16644a0,152,StoreTypedElementJSAny_Float64Elements_0 code-creation,Builtin,2,4276,0x1664540,24,LoadTypedElement_Uint8ClampedElements_0 code-creation,Builtin,2,4278,0x1664560,24,StoreTypedElementNumeric_Uint8ClampedElements_0 code-creation,Builtin,2,4281,0x1664580,620,StoreTypedElementJSAny_Uint8ClampedElements_0 code-creation,Builtin,2,4283,0x1664800,220,LoadTypedElement_BigUint64Elements_0 code-creation,Builtin,2,4285,0x16648e0,56,StoreTypedElementNumeric_BigUint64Elements_0 code-creation,Builtin,2,4288,0x1664920,200,StoreTypedElementJSAny_BigUint64Elements_0 code-creation,Builtin,2,4290,0x1664a00,248,LoadTypedElement_BigInt64Elements_0 code-creation,Builtin,2,4292,0x1664b00,56,StoreTypedElementNumeric_BigInt64Elements_0 code-creation,Builtin,2,4294,0x1664b40,200,StoreTypedElementJSAny_BigInt64Elements_0 code-creation,Builtin,2,4296,0x1664c20,24,LoadTypedElement_Uint8Elements_0 code-creation,Builtin,2,4298,0x1664c40,24,StoreTypedElementNumeric_Uint8Elements_0 code-creation,Builtin,2,4301,0x1664c60,180,StoreTypedElementJSAny_Uint8Elements_0 code-creation,Builtin,2,4303,0x1664d20,24,LoadTypedElement_Int8Elements_0 code-creation,Builtin,2,4305,0x1664d40,24,StoreTypedElementNumeric_Int8Elements_0 code-creation,Builtin,2,4307,0x1664d60,180,StoreTypedElementJSAny_Int8Elements_0 code-creation,Builtin,2,4309,0x1664e20,24,LoadTypedElement_Uint16Elements_0 code-creation,Builtin,2,4311,0x1664e40,24,StoreTypedElementNumeric_Uint16Elements_0 code-creation,Builtin,2,4314,0x1664e60,180,StoreTypedElementJSAny_Uint16Elements_0 code-creation,Builtin,2,4316,0x1664f20,24,LoadTypedElement_Int16Elements_0 code-creation,Builtin,2,4318,0x1664f40,24,StoreTypedElementNumeric_Int16Elements_0 code-creation,Builtin,2,4320,0x1664f60,180,StoreTypedElementJSAny_Int16Elements_0 code-creation,Builtin,2,4323,0x1665020,132,LoadTypedElement_Uint32Elements_0 code-creation,Builtin,2,4326,0x16650c0,164,StoreTypedElementNumeric_Uint32Elements_0 code-creation,Builtin,2,4328,0x1665180,180,StoreTypedElementJSAny_Uint32Elements_0 code-creation,Builtin,2,4330,0x1665240,12,CollatorConstructor code-creation,Builtin,2,4332,0x1665260,12,CollatorInternalCompare code-creation,Builtin,2,4334,0x1665280,12,CollatorPrototypeCompare code-creation,Builtin,2,4336,0x16652a0,12,CollatorSupportedLocalesOf code-creation,Builtin,2,4338,0x16652c0,12,CollatorPrototypeResolvedOptions code-creation,Builtin,2,4340,0x16652e0,12,DatePrototypeToLocaleDateString code-creation,Builtin,2,4342,0x1665300,12,DatePrototypeToLocaleString code-creation,Builtin,2,4344,0x1665320,12,DatePrototypeToLocaleTimeString code-creation,Builtin,2,4346,0x1665340,12,DateTimeFormatConstructor code-creation,Builtin,2,4348,0x1665360,12,DateTimeFormatInternalFormat code-creation,Builtin,2,4350,0x1665380,12,DateTimeFormatPrototypeFormat code-creation,Builtin,2,4352,0x16653a0,12,DateTimeFormatPrototypeFormatRange code-creation,Builtin,2,4354,0x16653c0,12,DateTimeFormatPrototypeFormatRangeToParts code-creation,Builtin,2,4357,0x16653e0,12,DateTimeFormatPrototypeFormatToParts code-creation,Builtin,2,4359,0x1665400,12,DateTimeFormatPrototypeResolvedOptions code-creation,Builtin,2,4361,0x1665420,12,DateTimeFormatSupportedLocalesOf code-creation,Builtin,2,4363,0x1665440,12,DisplayNamesConstructor code-creation,Builtin,2,4365,0x1665460,12,DisplayNamesPrototypeOf code-creation,Builtin,2,4367,0x1665480,12,DisplayNamesPrototypeResolvedOptions code-creation,Builtin,2,4370,0x16654a0,12,DisplayNamesSupportedLocalesOf code-creation,Builtin,2,4372,0x16654c0,12,IntlGetCanonicalLocales code-creation,Builtin,2,4374,0x16654e0,12,ListFormatConstructor code-creation,Builtin,2,4376,0x1665500,224,ListFormatPrototypeFormat code-creation,Builtin,2,4378,0x1665600,224,ListFormatPrototypeFormatToParts code-creation,Builtin,2,4380,0x1665700,12,ListFormatPrototypeResolvedOptions code-creation,Builtin,2,4382,0x1665720,12,ListFormatSupportedLocalesOf code-creation,Builtin,2,4384,0x1665740,12,LocaleConstructor code-creation,Builtin,2,4386,0x1665760,12,LocalePrototypeBaseName code-creation,Builtin,2,4388,0x1665780,12,LocalePrototypeCalendar code-creation,Builtin,2,4390,0x16657a0,12,LocalePrototypeCalendars code-creation,Builtin,2,4392,0x16657c0,12,LocalePrototypeCaseFirst code-creation,Builtin,2,4394,0x16657e0,12,LocalePrototypeCollation code-creation,Builtin,2,4396,0x1665800,12,LocalePrototypeCollations code-creation,Builtin,2,4398,0x1665820,12,LocalePrototypeHourCycle code-creation,Builtin,2,4400,0x1665840,12,LocalePrototypeHourCycles code-creation,Builtin,2,4402,0x1665860,12,LocalePrototypeLanguage code-creation,Builtin,2,4404,0x1665880,12,LocalePrototypeMaximize code-creation,Builtin,2,4405,0x16658a0,12,LocalePrototypeMinimize code-creation,Builtin,2,4408,0x16658c0,12,LocalePrototypeNumeric code-creation,Builtin,2,4409,0x16658e0,12,LocalePrototypeNumberingSystem code-creation,Builtin,2,4411,0x1665900,12,LocalePrototypeNumberingSystems code-creation,Builtin,2,4414,0x1665920,12,LocalePrototypeRegion code-creation,Builtin,2,4415,0x1665940,12,LocalePrototypeScript code-creation,Builtin,2,4417,0x1665960,12,LocalePrototypeTextInfo code-creation,Builtin,2,4419,0x1665980,12,LocalePrototypeTimeZones code-creation,Builtin,2,4421,0x16659a0,12,LocalePrototypeToString code-creation,Builtin,2,4423,0x16659c0,12,LocalePrototypeWeekInfo code-creation,Builtin,2,4425,0x16659e0,12,NumberFormatConstructor code-creation,Builtin,2,4427,0x1665a00,12,NumberFormatInternalFormatNumber code-creation,Builtin,2,4430,0x1665a20,12,NumberFormatPrototypeFormatNumber code-creation,Builtin,2,4432,0x1665a40,12,NumberFormatPrototypeFormatToParts code-creation,Builtin,2,4434,0x1665a60,12,NumberFormatPrototypeResolvedOptions code-creation,Builtin,2,4436,0x1665a80,12,NumberFormatSupportedLocalesOf code-creation,Builtin,2,4438,0x1665aa0,12,PluralRulesConstructor code-creation,Builtin,2,4440,0x1665ac0,12,PluralRulesPrototypeResolvedOptions code-creation,Builtin,2,4442,0x1665ae0,12,PluralRulesPrototypeSelect code-creation,Builtin,2,4445,0x1665b00,12,PluralRulesSupportedLocalesOf code-creation,Builtin,2,4447,0x1665b20,12,RelativeTimeFormatConstructor code-creation,Builtin,2,4449,0x1665b40,12,RelativeTimeFormatPrototypeFormat code-creation,Builtin,2,4452,0x1665b60,12,RelativeTimeFormatPrototypeFormatToParts code-creation,Builtin,2,4454,0x1665b80,12,RelativeTimeFormatPrototypeResolvedOptions code-creation,Builtin,2,4456,0x1665ba0,12,RelativeTimeFormatSupportedLocalesOf code-creation,Builtin,2,4458,0x1665bc0,12,SegmenterConstructor code-creation,Builtin,2,4460,0x1665be0,12,SegmenterPrototypeResolvedOptions code-creation,Builtin,2,4462,0x1665c00,12,SegmenterPrototypeSegment code-creation,Builtin,2,4465,0x1665c20,12,SegmenterSupportedLocalesOf code-creation,Builtin,2,4467,0x1665c40,12,SegmentIteratorPrototypeNext code-creation,Builtin,2,4469,0x1665c60,12,SegmentsPrototypeContaining code-creation,Builtin,2,4471,0x1665c80,12,SegmentsPrototypeIterator code-creation,Builtin,2,4473,0x1665ca0,12,StringPrototypeNormalizeIntl code-creation,Builtin,2,4475,0x1665cc0,12,StringPrototypeToLocaleLowerCase code-creation,Builtin,2,4477,0x1665ce0,12,StringPrototypeToLocaleUpperCase code-creation,Builtin,2,4479,0x1665d00,200,StringPrototypeToLowerCaseIntl code-creation,Builtin,2,4481,0x1665de0,12,StringPrototypeToUpperCaseIntl code-creation,Builtin,2,4483,0x1665e00,632,StringToLowerCaseIntl code-creation,Builtin,2,4485,0x1666080,12,V8BreakIteratorConstructor code-creation,Builtin,2,4487,0x16660a0,12,V8BreakIteratorInternalAdoptText code-creation,Builtin,2,4489,0x16660c0,12,V8BreakIteratorInternalBreakType code-creation,Builtin,2,4491,0x16660e0,12,V8BreakIteratorInternalCurrent code-creation,Builtin,2,4493,0x1666100,12,V8BreakIteratorInternalFirst code-creation,Builtin,2,4495,0x1666120,12,V8BreakIteratorInternalNext code-creation,Builtin,2,4497,0x1666140,12,V8BreakIteratorPrototypeAdoptText code-creation,Builtin,2,4500,0x1666160,12,V8BreakIteratorPrototypeBreakType code-creation,Builtin,2,4501,0x1666180,12,V8BreakIteratorPrototypeCurrent code-creation,Builtin,2,4504,0x16661a0,12,V8BreakIteratorPrototypeFirst code-creation,Builtin,2,4505,0x16661c0,12,V8BreakIteratorPrototypeNext code-creation,Builtin,2,4508,0x16661e0,12,V8BreakIteratorPrototypeResolvedOptions code-creation,Builtin,2,4510,0x1666200,12,V8BreakIteratorSupportedLocalesOf code-creation,BytecodeHandler,0,4512,0x1666220,24,Wide code-creation,BytecodeHandler,0,4515,0x1666240,24,ExtraWide code-creation,BytecodeHandler,0,4517,0x1666260,104,DebugBreakWide code-creation,BytecodeHandler,0,4519,0x16662e0,104,DebugBreakExtraWide code-creation,BytecodeHandler,0,4521,0x1666360,164,DebugBreak0 code-creation,BytecodeHandler,0,4524,0x1666420,104,DebugBreak1 code-creation,BytecodeHandler,0,4525,0x16664a0,104,DebugBreak2 code-creation,BytecodeHandler,0,4527,0x1666520,104,DebugBreak3 code-creation,BytecodeHandler,0,4529,0x16665a0,104,DebugBreak4 code-creation,BytecodeHandler,0,4531,0x1666620,104,DebugBreak5 code-creation,BytecodeHandler,0,4533,0x16666a0,104,DebugBreak6 code-creation,BytecodeHandler,0,4535,0x1666720,32,Ldar code-creation,BytecodeHandler,0,4537,0x1666760,68,LdaZero code-creation,BytecodeHandler,0,4539,0x16667c0,76,LdaSmi code-creation,BytecodeHandler,0,4540,0x1666820,68,LdaUndefined code-creation,BytecodeHandler,0,4542,0x1666880,68,LdaNull code-creation,BytecodeHandler,0,4544,0x16668e0,68,LdaTheHole code-creation,BytecodeHandler,0,4547,0x1666940,20,LdaTrue code-creation,BytecodeHandler,0,4548,0x1666960,20,LdaFalse code-creation,BytecodeHandler,0,4550,0x1666980,76,LdaConstant code-creation,BytecodeHandler,0,4552,0x16669e0,132,LdaContextSlot code-creation,BytecodeHandler,0,4554,0x1666a80,132,LdaImmutableContextSlot code-creation,BytecodeHandler,0,4556,0x1666b20,88,LdaCurrentContextSlot code-creation,BytecodeHandler,0,4558,0x1666b80,88,LdaImmutableCurrentContextSlot code-creation,BytecodeHandler,0,4560,0x1666be0,32,Star code-creation,BytecodeHandler,0,4562,0x1666c20,40,Mov code-creation,BytecodeHandler,0,4565,0x1666c60,40,PushContext code-creation,BytecodeHandler,0,4567,0x1666ca0,36,PopContext code-creation,BytecodeHandler,0,4570,0x1666ce0,48,TestReferenceEqual code-creation,BytecodeHandler,0,4572,0x1666d20,52,TestUndetectable code-creation,BytecodeHandler,0,4574,0x1666d60,36,TestNull code-creation,BytecodeHandler,0,4576,0x1666da0,36,TestUndefined code-creation,BytecodeHandler,0,4578,0x1666de0,336,TestTypeOf code-creation,BytecodeHandler,0,4580,0x1666f40,6036,LdaGlobal code-creation,BytecodeHandler,0,4583,0x16686e0,4536,LdaGlobalInsideTypeof code-creation,BytecodeHandler,0,4585,0x16698a0,168,StaGlobal code-creation,BytecodeHandler,0,4587,0x1669960,156,StaContextSlot code-creation,BytecodeHandler,0,4588,0x1669a00,112,StaCurrentContextSlot code-creation,BytecodeHandler,0,4591,0x1669a80,124,LdaLookupSlot code-creation,BytecodeHandler,0,4593,0x1669b00,240,LdaLookupContextSlot code-creation,BytecodeHandler,0,4595,0x1669c00,4776,LdaLookupGlobalSlot code-creation,BytecodeHandler,0,4597,0x166aec0,124,LdaLookupSlotInsideTypeof code-creation,BytecodeHandler,0,4599,0x166af40,240,LdaLookupContextSlotInsideTypeof code-creation,BytecodeHandler,0,4601,0x166b040,4740,LdaLookupGlobalSlotInsideTypeof code-creation,BytecodeHandler,0,4604,0x166c2e0,220,StaLookupSlot code-creation,BytecodeHandler,0,4605,0x166c3c0,5216,LdaNamedProperty code-creation,BytecodeHandler,0,4607,0x166d840,180,LdaNamedPropertyFromSuper code-creation,BytecodeHandler,0,4609,0x166d900,212,LdaKeyedProperty code-creation,BytecodeHandler,0,4611,0x166d9e0,160,LdaModuleVariable code-creation,BytecodeHandler,0,4613,0x166daa0,292,StaModuleVariable code-creation,BytecodeHandler,0,4615,0x166dbe0,172,StaNamedProperty code-creation,BytecodeHandler,0,4617,0x166dca0,172,StaNamedOwnProperty code-creation,BytecodeHandler,0,4619,0x166dd60,164,StaKeyedProperty code-creation,BytecodeHandler,0,4621,0x166de20,164,StaInArrayLiteral code-creation,BytecodeHandler,0,4623,0x166dee0,196,StaDataPropertyInLiteral code-creation,BytecodeHandler,0,4625,0x166dfc0,160,CollectTypeProfile code-creation,BytecodeHandler,0,4627,0x166e080,1028,Add code-creation,BytecodeHandler,0,4629,0x166e4a0,1064,Sub code-creation,BytecodeHandler,0,4631,0x166e8e0,1024,Mul code-creation,BytecodeHandler,0,4633,0x166ed00,988,Div code-creation,BytecodeHandler,0,4635,0x166f0e0,912,Mod code-creation,BytecodeHandler,0,4637,0x166f480,960,Exp code-creation,BytecodeHandler,0,4638,0x166f860,876,BitwiseOr code-creation,BytecodeHandler,0,4640,0x166fbe0,888,BitwiseXor code-creation,BytecodeHandler,0,4642,0x166ff60,888,BitwiseAnd code-creation,BytecodeHandler,0,4644,0x16702e0,900,ShiftLeft code-creation,BytecodeHandler,0,4646,0x1670680,900,ShiftRight code-creation,BytecodeHandler,0,4648,0x1670a20,1020,ShiftRightLogical code-creation,BytecodeHandler,0,4650,0x1670e20,960,AddSmi code-creation,BytecodeHandler,0,4652,0x1671200,1000,SubSmi code-creation,BytecodeHandler,0,4654,0x1671600,916,MulSmi code-creation,BytecodeHandler,0,4656,0x16719a0,920,DivSmi code-creation,BytecodeHandler,0,4657,0x1671d40,816,ModSmi code-creation,BytecodeHandler,0,4659,0x1672080,868,ExpSmi code-creation,BytecodeHandler,0,4661,0x1672400,488,BitwiseOrSmi code-creation,BytecodeHandler,0,4663,0x1672600,488,BitwiseXorSmi code-creation,BytecodeHandler,0,4665,0x1672800,488,BitwiseAndSmi code-creation,BytecodeHandler,0,4667,0x1672a00,488,ShiftLeftSmi code-creation,BytecodeHandler,0,4669,0x1672c00,488,ShiftRightSmi code-creation,BytecodeHandler,0,4671,0x1672e00,640,ShiftRightLogicalSmi code-creation,BytecodeHandler,0,4673,0x16730a0,656,Inc code-creation,BytecodeHandler,0,4675,0x1673340,656,Dec code-creation,BytecodeHandler,0,4677,0x16735e0,640,Negate code-creation,BytecodeHandler,0,4679,0x1673880,480,BitwiseNot code-creation,BytecodeHandler,0,4680,0x1673a80,108,ToBooleanLogicalNot code-creation,BytecodeHandler,0,4683,0x1673b00,36,LogicalNot code-creation,BytecodeHandler,0,4685,0x1673b40,208,TypeOf code-creation,BytecodeHandler,0,4687,0x1673c20,120,DeletePropertyStrict code-creation,BytecodeHandler,0,4688,0x1673ca0,112,DeletePropertySloppy code-creation,BytecodeHandler,0,4691,0x1673d20,40,GetSuperConstructor code-creation,BytecodeHandler,0,4694,0x1673d60,1120,CallAnyReceiver code-creation,BytecodeHandler,0,4696,0x16741e0,1120,CallProperty code-creation,BytecodeHandler,0,4698,0x1674660,1008,CallProperty0 code-creation,BytecodeHandler,0,4700,0x1674a60,1024,CallProperty1 code-creation,BytecodeHandler,0,4702,0x1674e80,1036,CallProperty2 code-creation,BytecodeHandler,0,4704,0x16752a0,1000,CallUndefinedReceiver code-creation,BytecodeHandler,0,4706,0x16756a0,1040,CallUndefinedReceiver0 code-creation,BytecodeHandler,0,4708,0x1675ac0,1016,CallUndefinedReceiver1 code-creation,BytecodeHandler,0,4710,0x1675ec0,1032,CallUndefinedReceiver2 code-creation,BytecodeHandler,0,4712,0x16762e0,1120,CallWithSpread code-creation,BytecodeHandler,0,4714,0x1676760,124,CallRuntime code-creation,BytecodeHandler,0,4716,0x16767e0,156,CallRuntimeForPair code-creation,BytecodeHandler,0,4718,0x1676880,80,CallJSRuntime code-creation,BytecodeHandler,0,4720,0x16768e0,1236,InvokeIntrinsic code-creation,BytecodeHandler,0,4722,0x1676dc0,1016,Construct code-creation,BytecodeHandler,0,4724,0x16771c0,536,ConstructWithSpread code-creation,BytecodeHandler,0,4726,0x16773e0,1936,TestEqual code-creation,BytecodeHandler,0,4728,0x1677b80,1064,TestEqualStrict code-creation,BytecodeHandler,0,4730,0x1677fc0,1624,TestLessThan code-creation,BytecodeHandler,0,4732,0x1678620,1624,TestGreaterThan code-creation,BytecodeHandler,0,4734,0x1678c80,1624,TestLessThanOrEqual code-creation,BytecodeHandler,0,4736,0x16792e0,1624,TestGreaterThanOrEqual code-creation,BytecodeHandler,0,4738,0x1679940,856,TestInstanceOf code-creation,BytecodeHandler,0,4740,0x1679ca0,156,TestIn code-creation,BytecodeHandler,0,4742,0x1679d40,112,ToName code-creation,BytecodeHandler,0,4744,0x1679dc0,212,ToNumber code-creation,BytecodeHandler,0,4746,0x1679ea0,232,ToNumeric code-creation,BytecodeHandler,0,4747,0x1679fa0,112,ToObject code-creation,BytecodeHandler,0,4749,0x167a020,116,ToString code-creation,BytecodeHandler,0,4751,0x167a0a0,400,CreateRegExpLiteral code-creation,BytecodeHandler,0,4753,0x167a240,1460,CreateArrayLiteral code-creation,BytecodeHandler,0,4755,0x167a800,92,CreateArrayFromIterable code-creation,BytecodeHandler,0,4757,0x167a860,792,CreateEmptyArrayLiteral code-creation,BytecodeHandler,0,4759,0x167ab80,2160,CreateObjectLiteral code-creation,BytecodeHandler,0,4762,0x167b400,224,CreateEmptyObjectLiteral code-creation,BytecodeHandler,0,4764,0x167b500,168,CloneObject code-creation,BytecodeHandler,0,4766,0x167b5c0,212,GetTemplateObject code-creation,BytecodeHandler,0,4768,0x167b6a0,328,CreateClosure code-creation,BytecodeHandler,0,4770,0x167b800,120,CreateBlockContext code-creation,BytecodeHandler,0,4772,0x167b880,132,CreateCatchContext code-creation,BytecodeHandler,0,4775,0x167b920,256,CreateFunctionContext code-creation,BytecodeHandler,0,4777,0x167ba40,256,CreateEvalContext code-creation,BytecodeHandler,0,4779,0x167bb60,132,CreateWithContext code-creation,BytecodeHandler,0,4780,0x167bc00,1568,CreateMappedArguments code-creation,BytecodeHandler,0,4783,0x167c240,592,CreateUnmappedArguments code-creation,BytecodeHandler,0,4785,0x167c4a0,632,CreateRestParameter code-creation,BytecodeHandler,0,4787,0x167c720,424,JumpLoop code-creation,BytecodeHandler,0,4789,0x167c8e0,44,Jump code-creation,BytecodeHandler,0,4790,0x167c920,56,JumpConstant code-creation,BytecodeHandler,0,4792,0x167c960,80,JumpIfNullConstant code-creation,BytecodeHandler,0,4794,0x167c9c0,80,JumpIfNotNullConstant code-creation,BytecodeHandler,0,4796,0x167ca20,80,JumpIfUndefinedConstant code-creation,BytecodeHandler,0,4798,0x167ca80,80,JumpIfNotUndefinedConstant code-creation,BytecodeHandler,0,4800,0x167cae0,84,JumpIfUndefinedOrNullConstant code-creation,BytecodeHandler,0,4803,0x167cb40,80,JumpIfTrueConstant code-creation,BytecodeHandler,0,4804,0x167cba0,80,JumpIfFalseConstant code-creation,BytecodeHandler,0,4807,0x167cc00,88,JumpIfJSReceiverConstant code-creation,BytecodeHandler,0,4809,0x167cc60,152,JumpIfToBooleanTrueConstant code-creation,BytecodeHandler,0,4811,0x167cd00,152,JumpIfToBooleanFalseConstant code-creation,BytecodeHandler,0,4813,0x167cda0,136,JumpIfToBooleanTrue code-creation,BytecodeHandler,0,4817,0x167ce40,136,JumpIfToBooleanFalse code-creation,BytecodeHandler,0,4819,0x167cee0,64,JumpIfTrue code-creation,BytecodeHandler,0,4821,0x167cf40,64,JumpIfFalse code-creation,BytecodeHandler,0,4823,0x167cfa0,64,JumpIfNull code-creation,BytecodeHandler,0,4825,0x167d000,64,JumpIfNotNull code-creation,BytecodeHandler,0,4826,0x167d060,64,JumpIfUndefined code-creation,BytecodeHandler,0,4829,0x167d0c0,64,JumpIfNotUndefined code-creation,BytecodeHandler,0,4831,0x167d120,72,JumpIfUndefinedOrNull code-creation,BytecodeHandler,0,4833,0x167d180,76,JumpIfJSReceiver code-creation,BytecodeHandler,0,4835,0x167d1e0,108,SwitchOnSmiNoFeedback code-creation,BytecodeHandler,0,4837,0x167d260,464,ForInEnumerate code-creation,BytecodeHandler,0,4839,0x167d440,252,ForInPrepare code-creation,BytecodeHandler,0,4841,0x167d540,60,ForInContinue code-creation,BytecodeHandler,0,4843,0x167d580,256,ForInNext code-creation,BytecodeHandler,0,4845,0x167d6a0,48,ForInStep code-creation,BytecodeHandler,0,4847,0x167d6e0,36,SetPendingMessage code-creation,BytecodeHandler,0,4849,0x167d720,116,Throw code-creation,BytecodeHandler,0,4852,0x167d7a0,116,ReThrow code-creation,BytecodeHandler,0,4853,0x167d820,112,Return code-creation,BytecodeHandler,0,4856,0x167d8a0,196,ThrowReferenceErrorIfHole code-creation,BytecodeHandler,0,4858,0x167d980,132,ThrowSuperNotCalledIfHole code-creation,BytecodeHandler,0,4860,0x167da20,132,ThrowSuperAlreadyCalledIfNotHole code-creation,BytecodeHandler,0,4862,0x167dac0,156,ThrowIfNotSuperConstructor code-creation,BytecodeHandler,0,4864,0x167db60,120,SwitchOnGeneratorState code-creation,BytecodeHandler,0,4866,0x167dbe0,500,SuspendGenerator code-creation,BytecodeHandler,0,4868,0x167dde0,128,ResumeGenerator code-creation,BytecodeHandler,0,4870,0x167de80,152,GetIterator code-creation,BytecodeHandler,0,4872,0x167df20,116,Debugger code-creation,BytecodeHandler,0,4874,0x167dfa0,124,IncBlockCounter code-creation,BytecodeHandler,0,4876,0x167e020,56,Abort code-creation,BytecodeHandler,0,4878,0x167e060,32,Star0 code-creation,BytecodeHandler,0,4880,0x167e0a0,60,Illegal code-creation,BytecodeHandler,0,4882,0x167e0e0,108,DebugBreak1.Wide code-creation,BytecodeHandler,0,4885,0x167e160,108,DebugBreak2.Wide code-creation,BytecodeHandler,0,4887,0x167e1e0,108,DebugBreak3.Wide code-creation,BytecodeHandler,0,4889,0x167e260,108,DebugBreak4.Wide code-creation,BytecodeHandler,0,4891,0x167e2e0,108,DebugBreak5.Wide code-creation,BytecodeHandler,0,4893,0x167e360,108,DebugBreak6.Wide code-creation,BytecodeHandler,0,4895,0x167e3e0,32,Ldar.Wide code-creation,BytecodeHandler,0,4897,0x167e420,32,LdaSmi.Wide code-creation,BytecodeHandler,0,4900,0x167e460,32,LdaConstant.Wide code-creation,BytecodeHandler,0,4901,0x167e4a0,92,LdaContextSlot.Wide code-creation,BytecodeHandler,0,4904,0x167e500,92,LdaImmutableContextSlot.Wide code-creation,BytecodeHandler,0,4906,0x167e560,48,LdaCurrentContextSlot.Wide code-creation,BytecodeHandler,0,4908,0x167e5a0,48,LdaImmutableCurrentContextSlot.Wide code-creation,BytecodeHandler,0,4911,0x167e5e0,32,Star.Wide code-creation,BytecodeHandler,0,4913,0x167e620,40,Mov.Wide code-creation,BytecodeHandler,0,4915,0x167e660,40,PushContext.Wide code-creation,BytecodeHandler,0,4917,0x167e6a0,36,PopContext.Wide code-creation,BytecodeHandler,0,4919,0x167e6e0,48,TestReferenceEqual.Wide code-creation,BytecodeHandler,0,4921,0x167e720,4668,LdaGlobal.Wide code-creation,BytecodeHandler,0,4923,0x167f960,4604,LdaGlobalInsideTypeof.Wide code-creation,BytecodeHandler,0,4925,0x1680b60,172,StaGlobal.Wide code-creation,BytecodeHandler,0,4927,0x1680c20,156,StaContextSlot.Wide code-creation,BytecodeHandler,0,4929,0x1680cc0,112,StaCurrentContextSlot.Wide code-creation,BytecodeHandler,0,4932,0x1680d40,128,LdaLookupSlot.Wide code-creation,BytecodeHandler,0,4934,0x1680de0,244,LdaLookupContextSlot.Wide code-creation,BytecodeHandler,0,4936,0x1680ee0,4852,LdaLookupGlobalSlot.Wide code-creation,BytecodeHandler,0,4938,0x16821e0,128,LdaLookupSlotInsideTypeof.Wide code-creation,BytecodeHandler,0,4940,0x1682280,244,LdaLookupContextSlotInsideTypeof.Wide code-creation,BytecodeHandler,0,4945,0x1682380,4812,LdaLookupGlobalSlotInsideTypeof.Wide code-creation,BytecodeHandler,0,4947,0x1683660,220,StaLookupSlot.Wide code-creation,BytecodeHandler,0,4949,0x1683740,5216,LdaNamedProperty.Wide code-creation,BytecodeHandler,0,4952,0x1684bc0,188,LdaNamedPropertyFromSuper.Wide code-creation,BytecodeHandler,0,4954,0x1684c80,160,LdaKeyedProperty.Wide code-creation,BytecodeHandler,0,4956,0x1684d40,160,LdaModuleVariable.Wide code-creation,BytecodeHandler,0,4958,0x1684e00,296,StaModuleVariable.Wide code-creation,BytecodeHandler,0,4960,0x1684f40,176,StaNamedProperty.Wide code-creation,BytecodeHandler,0,4962,0x1685000,176,StaNamedOwnProperty.Wide code-creation,BytecodeHandler,0,4965,0x16850c0,168,StaKeyedProperty.Wide code-creation,BytecodeHandler,0,4967,0x1685180,168,StaInArrayLiteral.Wide code-creation,BytecodeHandler,0,4969,0x1685240,200,StaDataPropertyInLiteral.Wide code-creation,BytecodeHandler,0,4971,0x1685320,164,CollectTypeProfile.Wide code-creation,BytecodeHandler,0,4973,0x16853e0,984,Add.Wide code-creation,BytecodeHandler,0,4975,0x16857c0,1020,Sub.Wide code-creation,BytecodeHandler,0,4977,0x1685bc0,972,Mul.Wide code-creation,BytecodeHandler,0,4979,0x1685fa0,988,Div.Wide code-creation,BytecodeHandler,0,4981,0x1686380,916,Mod.Wide code-creation,BytecodeHandler,0,4983,0x1686720,984,Exp.Wide code-creation,BytecodeHandler,0,4985,0x1686b00,904,BitwiseOr.Wide code-creation,BytecodeHandler,0,4987,0x1686ea0,920,BitwiseXor.Wide code-creation,BytecodeHandler,0,4989,0x1687240,920,BitwiseAnd.Wide code-creation,BytecodeHandler,0,4991,0x16875e0,932,ShiftLeft.Wide code-creation,BytecodeHandler,0,4993,0x16879a0,932,ShiftRight.Wide code-creation,BytecodeHandler,0,4995,0x1687d60,1052,ShiftRightLogical.Wide code-creation,BytecodeHandler,0,4997,0x1688180,916,AddSmi.Wide code-creation,BytecodeHandler,0,5000,0x1688520,960,SubSmi.Wide code-creation,BytecodeHandler,0,5002,0x1688900,912,MulSmi.Wide code-creation,BytecodeHandler,0,5004,0x1688ca0,920,DivSmi.Wide code-creation,BytecodeHandler,0,5006,0x1689040,816,ModSmi.Wide code-creation,BytecodeHandler,0,5008,0x1689380,868,ExpSmi.Wide code-creation,BytecodeHandler,0,5009,0x1689700,496,BitwiseOrSmi.Wide code-creation,BytecodeHandler,0,5012,0x1689900,496,BitwiseXorSmi.Wide code-creation,BytecodeHandler,0,5014,0x1689b00,496,BitwiseAndSmi.Wide code-creation,BytecodeHandler,0,5016,0x1689d00,496,ShiftLeftSmi.Wide code-creation,BytecodeHandler,0,5018,0x1689f00,496,ShiftRightSmi.Wide code-creation,BytecodeHandler,0,5020,0x168a100,648,ShiftRightLogicalSmi.Wide code-creation,BytecodeHandler,0,5022,0x168a3a0,616,Inc.Wide code-creation,BytecodeHandler,0,5024,0x168a620,616,Dec.Wide code-creation,BytecodeHandler,0,5026,0x168a8a0,648,Negate.Wide code-creation,BytecodeHandler,0,5028,0x168ab40,492,BitwiseNot.Wide code-creation,BytecodeHandler,0,5030,0x168ad40,124,DeletePropertyStrict.Wide code-creation,BytecodeHandler,0,5032,0x168adc0,116,DeletePropertySloppy.Wide code-creation,BytecodeHandler,0,5034,0x168ae40,40,GetSuperConstructor.Wide code-creation,BytecodeHandler,0,5037,0x168ae80,1124,CallAnyReceiver.Wide code-creation,BytecodeHandler,0,5039,0x168b300,1124,CallProperty.Wide code-creation,BytecodeHandler,0,5041,0x168b780,1012,CallProperty0.Wide code-creation,BytecodeHandler,0,5043,0x168bb80,1024,CallProperty1.Wide code-creation,BytecodeHandler,0,5046,0x168bfa0,1036,CallProperty2.Wide code-creation,BytecodeHandler,0,5048,0x168c3c0,1004,CallUndefinedReceiver.Wide code-creation,BytecodeHandler,0,5050,0x168c7c0,1044,CallUndefinedReceiver0.Wide code-creation,BytecodeHandler,0,5052,0x168cbe0,1020,CallUndefinedReceiver1.Wide code-creation,BytecodeHandler,0,5055,0x168cfe0,1036,CallUndefinedReceiver2.Wide code-creation,BytecodeHandler,0,5057,0x168d400,1124,CallWithSpread.Wide code-creation,BytecodeHandler,0,5059,0x168d880,128,CallRuntime.Wide code-creation,BytecodeHandler,0,5061,0x168d920,168,CallRuntimeForPair.Wide code-creation,BytecodeHandler,0,5064,0x168d9e0,84,CallJSRuntime.Wide code-creation,BytecodeHandler,0,5066,0x168da40,1240,InvokeIntrinsic.Wide code-creation,BytecodeHandler,0,5069,0x168df20,960,Construct.Wide code-creation,BytecodeHandler,0,5071,0x168e300,472,ConstructWithSpread.Wide code-creation,BytecodeHandler,0,5074,0x168e4e0,1964,TestEqual.Wide code-creation,BytecodeHandler,0,5076,0x168eca0,1068,TestEqualStrict.Wide code-creation,BytecodeHandler,0,5078,0x168f0e0,1512,TestLessThan.Wide code-creation,BytecodeHandler,0,5080,0x168f6e0,1512,TestGreaterThan.Wide code-creation,BytecodeHandler,0,5082,0x168fce0,1512,TestLessThanOrEqual.Wide code-creation,BytecodeHandler,0,5084,0x16902e0,1512,TestGreaterThanOrEqual.Wide code-creation,BytecodeHandler,0,5086,0x16908e0,864,TestInstanceOf.Wide code-creation,BytecodeHandler,0,5089,0x1690c60,160,TestIn.Wide code-creation,BytecodeHandler,0,5091,0x1690d20,116,ToName.Wide code-creation,BytecodeHandler,0,5093,0x1690da0,216,ToNumber.Wide code-creation,BytecodeHandler,0,5094,0x1690e80,236,ToNumeric.Wide code-creation,BytecodeHandler,0,5097,0x1690f80,116,ToObject.Wide code-creation,BytecodeHandler,0,5099,0x1691000,404,CreateRegExpLiteral.Wide code-creation,BytecodeHandler,0,5101,0x16911a0,1372,CreateArrayLiteral.Wide code-creation,BytecodeHandler,0,5103,0x1691700,792,CreateEmptyArrayLiteral.Wide code-creation,BytecodeHandler,0,5106,0x1691a20,2060,CreateObjectLiteral.Wide code-creation,BytecodeHandler,0,5108,0x1692240,172,CloneObject.Wide code-creation,BytecodeHandler,0,5110,0x1692300,164,GetTemplateObject.Wide code-creation,BytecodeHandler,0,5112,0x16923c0,320,CreateClosure.Wide code-creation,BytecodeHandler,0,5114,0x1692520,124,CreateBlockContext.Wide code-creation,BytecodeHandler,0,5116,0x16925a0,136,CreateCatchContext.Wide code-creation,BytecodeHandler,0,5118,0x1692640,256,CreateFunctionContext.Wide code-creation,BytecodeHandler,0,5121,0x1692760,256,CreateEvalContext.Wide code-creation,BytecodeHandler,0,5123,0x1692880,136,CreateWithContext.Wide code-creation,BytecodeHandler,0,5125,0x1692920,440,JumpLoop.Wide code-creation,BytecodeHandler,0,5127,0x1692ae0,44,Jump.Wide code-creation,BytecodeHandler,0,5129,0x1692b20,56,JumpConstant.Wide code-creation,BytecodeHandler,0,5131,0x1692b60,80,JumpIfNullConstant.Wide code-creation,BytecodeHandler,0,5133,0x1692bc0,80,JumpIfNotNullConstant.Wide code-creation,BytecodeHandler,0,5135,0x1692c20,80,JumpIfUndefinedConstant.Wide code-creation,BytecodeHandler,0,5138,0x1692c80,80,JumpIfNotUndefinedConstant.Wide code-creation,BytecodeHandler,0,5140,0x1692ce0,84,JumpIfUndefinedOrNullConstant.Wide code-creation,BytecodeHandler,0,5142,0x1692d40,80,JumpIfTrueConstant.Wide code-creation,BytecodeHandler,0,5144,0x1692da0,80,JumpIfFalseConstant.Wide code-creation,BytecodeHandler,0,5147,0x1692e00,88,JumpIfJSReceiverConstant.Wide code-creation,BytecodeHandler,0,5149,0x1692e60,152,JumpIfToBooleanTrueConstant.Wide code-creation,BytecodeHandler,0,5151,0x1692f00,152,JumpIfToBooleanFalseConstant.Wide code-creation,BytecodeHandler,0,5153,0x1692fa0,136,JumpIfToBooleanTrue.Wide code-creation,BytecodeHandler,0,5156,0x1693040,136,JumpIfToBooleanFalse.Wide code-creation,BytecodeHandler,0,5158,0x16930e0,64,JumpIfTrue.Wide code-creation,BytecodeHandler,0,5160,0x1693140,64,JumpIfFalse.Wide code-creation,BytecodeHandler,0,5162,0x16931a0,64,JumpIfNull.Wide code-creation,BytecodeHandler,0,5164,0x1693200,64,JumpIfNotNull.Wide code-creation,BytecodeHandler,0,5166,0x1693260,64,JumpIfUndefined.Wide code-creation,BytecodeHandler,0,5169,0x16932c0,64,JumpIfNotUndefined.Wide code-creation,BytecodeHandler,0,5171,0x1693320,72,JumpIfUndefinedOrNull.Wide code-creation,BytecodeHandler,0,5173,0x1693380,76,JumpIfJSReceiver.Wide code-creation,BytecodeHandler,0,5175,0x16933e0,108,SwitchOnSmiNoFeedback.Wide code-creation,BytecodeHandler,0,5177,0x1693460,468,ForInEnumerate.Wide code-creation,BytecodeHandler,0,5179,0x1693640,252,ForInPrepare.Wide code-creation,BytecodeHandler,0,5182,0x1693740,60,ForInContinue.Wide code-creation,BytecodeHandler,0,5183,0x1693780,260,ForInNext.Wide code-creation,BytecodeHandler,0,5186,0x16938a0,48,ForInStep.Wide code-creation,BytecodeHandler,0,5188,0x16938e0,156,ThrowReferenceErrorIfHole.Wide code-creation,BytecodeHandler,0,5190,0x1693980,160,ThrowIfNotSuperConstructor.Wide code-creation,BytecodeHandler,0,5193,0x1693a40,120,SwitchOnGeneratorState.Wide code-creation,BytecodeHandler,0,5196,0x1693ac0,516,SuspendGenerator.Wide code-creation,BytecodeHandler,0,5198,0x1693ce0,128,ResumeGenerator.Wide code-creation,BytecodeHandler,0,5200,0x1693d80,156,GetIterator.Wide code-creation,BytecodeHandler,0,5202,0x1693e20,128,IncBlockCounter.Wide code-creation,BytecodeHandler,0,5204,0x1693ec0,56,Abort.Wide code-creation,BytecodeHandler,0,5207,0x1693f00,108,DebugBreak1.ExtraWide code-creation,BytecodeHandler,0,5209,0x1693f80,108,DebugBreak2.ExtraWide code-creation,BytecodeHandler,0,5211,0x1694000,108,DebugBreak3.ExtraWide code-creation,BytecodeHandler,0,5213,0x1694080,108,DebugBreak4.ExtraWide code-creation,BytecodeHandler,0,5215,0x1694100,108,DebugBreak5.ExtraWide code-creation,BytecodeHandler,0,5217,0x1694180,108,DebugBreak6.ExtraWide code-creation,BytecodeHandler,0,5219,0x1694200,32,Ldar.ExtraWide code-creation,BytecodeHandler,0,5221,0x1694240,28,LdaSmi.ExtraWide code-creation,BytecodeHandler,0,5224,0x1694260,32,LdaConstant.ExtraWide code-creation,BytecodeHandler,0,5226,0x16942a0,88,LdaContextSlot.ExtraWide code-creation,BytecodeHandler,0,5228,0x1694300,88,LdaImmutableContextSlot.ExtraWide code-creation,BytecodeHandler,0,5230,0x1694360,48,LdaCurrentContextSlot.ExtraWide code-creation,BytecodeHandler,0,5233,0x16943a0,48,LdaImmutableCurrentContextSlot.ExtraWide code-creation,BytecodeHandler,0,5235,0x16943e0,28,Star.ExtraWide code-creation,BytecodeHandler,0,5237,0x1694400,40,Mov.ExtraWide code-creation,BytecodeHandler,0,5240,0x1694440,36,PushContext.ExtraWide code-creation,BytecodeHandler,0,5241,0x1694480,32,PopContext.ExtraWide code-creation,BytecodeHandler,0,5244,0x16944c0,48,TestReferenceEqual.ExtraWide code-creation,BytecodeHandler,0,5246,0x1694500,4656,LdaGlobal.ExtraWide code-creation,BytecodeHandler,0,5248,0x1695740,4592,LdaGlobalInsideTypeof.ExtraWide code-creation,BytecodeHandler,0,5251,0x1696940,168,StaGlobal.ExtraWide code-creation,BytecodeHandler,0,5253,0x1696a00,152,StaContextSlot.ExtraWide code-creation,BytecodeHandler,0,5255,0x1696aa0,108,StaCurrentContextSlot.ExtraWide code-creation,BytecodeHandler,0,5257,0x1696b20,128,LdaLookupSlot.ExtraWide code-creation,BytecodeHandler,0,5259,0x1696bc0,240,LdaLookupContextSlot.ExtraWide code-creation,BytecodeHandler,0,5262,0x1696cc0,4836,LdaLookupGlobalSlot.ExtraWide code-creation,BytecodeHandler,0,5264,0x1697fc0,128,LdaLookupSlotInsideTypeof.ExtraWide code-creation,BytecodeHandler,0,5267,0x1698060,240,LdaLookupContextSlotInsideTypeof.ExtraWide code-creation,BytecodeHandler,0,5269,0x1698160,4800,LdaLookupGlobalSlotInsideTypeof.ExtraWide code-creation,BytecodeHandler,0,5272,0x1699440,220,StaLookupSlot.ExtraWide code-creation,BytecodeHandler,0,5274,0x1699520,5196,LdaNamedProperty.ExtraWide code-creation,BytecodeHandler,0,5276,0x169a980,184,LdaNamedPropertyFromSuper.ExtraWide code-creation,BytecodeHandler,0,5279,0x169aa40,156,LdaKeyedProperty.ExtraWide code-creation,BytecodeHandler,0,5281,0x169aae0,160,LdaModuleVariable.ExtraWide code-creation,BytecodeHandler,0,5283,0x169aba0,292,StaModuleVariable.ExtraWide code-creation,BytecodeHandler,0,5285,0x169ace0,172,StaNamedProperty.ExtraWide code-creation,BytecodeHandler,0,5287,0x169ada0,172,StaNamedOwnProperty.ExtraWide code-creation,BytecodeHandler,0,5290,0x169ae60,168,StaKeyedProperty.ExtraWide code-creation,BytecodeHandler,0,5292,0x169af20,168,StaInArrayLiteral.ExtraWide code-creation,BytecodeHandler,0,5294,0x169afe0,196,StaDataPropertyInLiteral.ExtraWide code-creation,BytecodeHandler,0,5296,0x169b0c0,164,CollectTypeProfile.ExtraWide code-creation,BytecodeHandler,0,5299,0x169b180,980,Add.ExtraWide code-creation,BytecodeHandler,0,5301,0x169b560,1016,Sub.ExtraWide code-creation,BytecodeHandler,0,5304,0x169b960,972,Mul.ExtraWide code-creation,BytecodeHandler,0,5306,0x169bd40,988,Div.ExtraWide code-creation,BytecodeHandler,0,5308,0x169c120,916,Mod.ExtraWide code-creation,BytecodeHandler,0,5310,0x169c4c0,980,Exp.ExtraWide code-creation,BytecodeHandler,0,5312,0x169c8a0,904,BitwiseOr.ExtraWide code-creation,BytecodeHandler,0,5316,0x169cc40,916,BitwiseXor.ExtraWide code-creation,BytecodeHandler,0,5318,0x169cfe0,916,BitwiseAnd.ExtraWide code-creation,BytecodeHandler,0,5320,0x169d380,928,ShiftLeft.ExtraWide code-creation,BytecodeHandler,0,5322,0x169d740,928,ShiftRight.ExtraWide code-creation,BytecodeHandler,0,5324,0x169db00,1048,ShiftRightLogical.ExtraWide code-creation,BytecodeHandler,0,5326,0x169df20,916,AddSmi.ExtraWide code-creation,BytecodeHandler,0,5328,0x169e2c0,960,SubSmi.ExtraWide code-creation,BytecodeHandler,0,5330,0x169e6a0,912,MulSmi.ExtraWide code-creation,BytecodeHandler,0,5332,0x169ea40,916,DivSmi.ExtraWide code-creation,BytecodeHandler,0,5334,0x169ede0,816,ModSmi.ExtraWide code-creation,BytecodeHandler,0,5336,0x169f120,868,ExpSmi.ExtraWide code-creation,BytecodeHandler,0,5338,0x169f4a0,492,BitwiseOrSmi.ExtraWide code-creation,BytecodeHandler,0,5340,0x169f6a0,492,BitwiseXorSmi.ExtraWide code-creation,BytecodeHandler,0,5343,0x169f8a0,492,BitwiseAndSmi.ExtraWide code-creation,BytecodeHandler,0,5345,0x169faa0,492,ShiftLeftSmi.ExtraWide code-creation,BytecodeHandler,0,5347,0x169fca0,492,ShiftRightSmi.ExtraWide code-creation,BytecodeHandler,0,5349,0x169fea0,644,ShiftRightLogicalSmi.ExtraWide code-creation,BytecodeHandler,0,5352,0x16a0140,616,Inc.ExtraWide code-creation,BytecodeHandler,0,5354,0x16a03c0,616,Dec.ExtraWide code-creation,BytecodeHandler,0,5356,0x16a0640,644,Negate.ExtraWide code-creation,BytecodeHandler,0,5358,0x16a08e0,488,BitwiseNot.ExtraWide code-creation,BytecodeHandler,0,5360,0x16a0ae0,124,DeletePropertyStrict.ExtraWide code-creation,BytecodeHandler,0,5362,0x16a0b60,116,DeletePropertySloppy.ExtraWide code-creation,BytecodeHandler,0,5365,0x16a0be0,36,GetSuperConstructor.ExtraWide code-creation,BytecodeHandler,0,5367,0x16a0c20,1120,CallAnyReceiver.ExtraWide code-creation,BytecodeHandler,0,5369,0x16a10a0,1120,CallProperty.ExtraWide code-creation,BytecodeHandler,0,5371,0x16a1520,1004,CallProperty0.ExtraWide code-creation,BytecodeHandler,0,5373,0x16a1920,1020,CallProperty1.ExtraWide code-creation,BytecodeHandler,0,5375,0x16a1d20,1032,CallProperty2.ExtraWide code-creation,BytecodeHandler,0,5378,0x16a2140,1000,CallUndefinedReceiver.ExtraWide code-creation,BytecodeHandler,0,5380,0x16a2540,1044,CallUndefinedReceiver0.ExtraWide code-creation,BytecodeHandler,0,5383,0x16a2960,1016,CallUndefinedReceiver1.ExtraWide code-creation,BytecodeHandler,0,5385,0x16a2d60,1028,CallUndefinedReceiver2.ExtraWide code-creation,BytecodeHandler,0,5387,0x16a3180,1120,CallWithSpread.ExtraWide code-creation,BytecodeHandler,0,5390,0x16a3600,128,CallRuntime.ExtraWide code-creation,BytecodeHandler,0,5392,0x16a36a0,164,CallRuntimeForPair.ExtraWide code-creation,BytecodeHandler,0,5394,0x16a3760,80,CallJSRuntime.ExtraWide code-creation,BytecodeHandler,0,5396,0x16a37c0,1240,InvokeIntrinsic.ExtraWide code-creation,BytecodeHandler,0,5399,0x16a3ca0,956,Construct.ExtraWide code-creation,BytecodeHandler,0,5401,0x16a4060,468,ConstructWithSpread.ExtraWide code-creation,BytecodeHandler,0,5403,0x16a4240,1964,TestEqual.ExtraWide code-creation,BytecodeHandler,0,5405,0x16a4a00,1068,TestEqualStrict.ExtraWide code-creation,BytecodeHandler,0,5408,0x16a4e40,1508,TestLessThan.ExtraWide code-creation,BytecodeHandler,0,5410,0x16a5440,1508,TestGreaterThan.ExtraWide code-creation,BytecodeHandler,0,5412,0x16a5a40,1508,TestLessThanOrEqual.ExtraWide code-creation,BytecodeHandler,0,5414,0x16a6040,1508,TestGreaterThanOrEqual.ExtraWide code-creation,BytecodeHandler,0,5417,0x16a6640,860,TestInstanceOf.ExtraWide code-creation,BytecodeHandler,0,5419,0x16a69a0,156,TestIn.ExtraWide code-creation,BytecodeHandler,0,5421,0x16a6a40,116,ToName.ExtraWide code-creation,BytecodeHandler,0,5423,0x16a6ac0,216,ToNumber.ExtraWide code-creation,BytecodeHandler,0,5425,0x16a6ba0,236,ToNumeric.ExtraWide code-creation,BytecodeHandler,0,5427,0x16a6ca0,116,ToObject.ExtraWide code-creation,BytecodeHandler,0,5429,0x16a6d20,400,CreateRegExpLiteral.ExtraWide code-creation,BytecodeHandler,0,5431,0x16a6ec0,1368,CreateArrayLiteral.ExtraWide code-creation,BytecodeHandler,0,5435,0x16a7420,792,CreateEmptyArrayLiteral.ExtraWide code-creation,BytecodeHandler,0,5438,0x16a7740,2060,CreateObjectLiteral.ExtraWide code-creation,BytecodeHandler,0,5440,0x16a7f60,168,CloneObject.ExtraWide code-creation,BytecodeHandler,0,5442,0x16a8020,160,GetTemplateObject.ExtraWide code-creation,BytecodeHandler,0,5444,0x16a80e0,320,CreateClosure.ExtraWide code-creation,BytecodeHandler,0,5446,0x16a8240,124,CreateBlockContext.ExtraWide code-creation,BytecodeHandler,0,5449,0x16a82c0,132,CreateCatchContext.ExtraWide code-creation,BytecodeHandler,0,5451,0x16a8360,256,CreateFunctionContext.ExtraWide code-creation,BytecodeHandler,0,5453,0x16a8480,256,CreateEvalContext.ExtraWide code-creation,BytecodeHandler,0,5456,0x16a85a0,132,CreateWithContext.ExtraWide code-creation,BytecodeHandler,0,5458,0x16a8640,436,JumpLoop.ExtraWide code-creation,BytecodeHandler,0,5460,0x16a8800,44,Jump.ExtraWide code-creation,BytecodeHandler,0,5462,0x16a8840,56,JumpConstant.ExtraWide code-creation,BytecodeHandler,0,5465,0x16a8880,76,JumpIfNullConstant.ExtraWide code-creation,BytecodeHandler,0,5467,0x16a88e0,76,JumpIfNotNullConstant.ExtraWide code-creation,BytecodeHandler,0,5469,0x16a8940,76,JumpIfUndefinedConstant.ExtraWide code-creation,BytecodeHandler,0,5471,0x16a89a0,76,JumpIfNotUndefinedConstant.ExtraWide code-creation,BytecodeHandler,0,5474,0x16a8a00,84,JumpIfUndefinedOrNullConstant.ExtraWide code-creation,BytecodeHandler,0,5476,0x16a8a60,76,JumpIfTrueConstant.ExtraWide code-creation,BytecodeHandler,0,5479,0x16a8ac0,76,JumpIfFalseConstant.ExtraWide code-creation,BytecodeHandler,0,5481,0x16a8b20,88,JumpIfJSReceiverConstant.ExtraWide code-creation,BytecodeHandler,0,5483,0x16a8b80,148,JumpIfToBooleanTrueConstant.ExtraWide code-creation,BytecodeHandler,0,5485,0x16a8c20,148,JumpIfToBooleanFalseConstant.ExtraWide code-creation,BytecodeHandler,0,5488,0x16a8cc0,136,JumpIfToBooleanTrue.ExtraWide code-creation,BytecodeHandler,0,5490,0x16a8d60,136,JumpIfToBooleanFalse.ExtraWide code-creation,BytecodeHandler,0,5493,0x16a8e00,64,JumpIfTrue.ExtraWide code-creation,BytecodeHandler,0,5495,0x16a8e60,64,JumpIfFalse.ExtraWide code-creation,BytecodeHandler,0,5497,0x16a8ec0,64,JumpIfNull.ExtraWide code-creation,BytecodeHandler,0,5499,0x16a8f20,64,JumpIfNotNull.ExtraWide code-creation,BytecodeHandler,0,5502,0x16a8f80,64,JumpIfUndefined.ExtraWide code-creation,BytecodeHandler,0,5504,0x16a8fe0,64,JumpIfNotUndefined.ExtraWide code-creation,BytecodeHandler,0,5506,0x16a9040,68,JumpIfUndefinedOrNull.ExtraWide code-creation,BytecodeHandler,0,5508,0x16a90a0,72,JumpIfJSReceiver.ExtraWide code-creation,BytecodeHandler,0,5511,0x16a9100,108,SwitchOnSmiNoFeedback.ExtraWide code-creation,BytecodeHandler,0,5513,0x16a9180,464,ForInEnumerate.ExtraWide code-creation,BytecodeHandler,0,5516,0x16a9360,252,ForInPrepare.ExtraWide code-creation,BytecodeHandler,0,5518,0x16a9460,56,ForInContinue.ExtraWide code-creation,BytecodeHandler,0,5520,0x16a94a0,256,ForInNext.ExtraWide code-creation,BytecodeHandler,0,5522,0x16a95c0,44,ForInStep.ExtraWide code-creation,BytecodeHandler,0,5524,0x16a9600,156,ThrowReferenceErrorIfHole.ExtraWide code-creation,BytecodeHandler,0,5526,0x16a96a0,160,ThrowIfNotSuperConstructor.ExtraWide code-creation,BytecodeHandler,0,5529,0x16a9760,120,SwitchOnGeneratorState.ExtraWide code-creation,BytecodeHandler,0,5531,0x16a97e0,512,SuspendGenerator.ExtraWide code-creation,BytecodeHandler,0,5533,0x16a9a00,124,ResumeGenerator.ExtraWide code-creation,BytecodeHandler,0,5535,0x16a9a80,152,GetIterator.ExtraWide code-creation,BytecodeHandler,0,5537,0x16a9b20,124,IncBlockCounter.ExtraWide code-creation,BytecodeHandler,0,5540,0x16a9ba0,56,Abort.ExtraWide new,MemoryChunk,0x38ac3d980000,262144 new,MemoryChunk,0x3b7545f40000,262144 new,MemoryChunk,0x4725cf80000,262144 new,MemoryChunk,0x2ba068cc0000,262144 code-creation,Eval,10,7911,0x2ba068cfbdd6,5, node:internal/main/run_main_module:1:1,0x2ba068cfbc90,~ script-source,91,node:internal/main/run_main_module,'use strict';\n\nconst {\n prepareMainThreadExecution\n} = require('internal/bootstrap/pre_execution');\n\nprepareMainThreadExecution(true);\n\nmarkBootstrapComplete();\n\n// Note: this loads the module through the ESM loader if the module is\n// determined to be an ES module. This hangs from the CJS module loader\n// because we currently allow monkey-patching of the module loaders\n// in the preloaded scripts through require('module').\n// runMain here might be monkey-patched by users in --require.\n// XXX: the monkey-patchability here should probably be deprecated.\nrequire('internal/modules/cjs/loader').Module.runMain(process.argv[1]);\n code-source-info,0x2ba068cfbdd6,91,0,632,C0O0C4O632,, code-creation,Function,10,7939,0x2ba068cfbe7e,58, node:internal/main/run_main_module:1:1,0x2ba068cfbd50,~ code-source-info,0x2ba068cfbe7e,91,0,632,C0O56C3O56C8O25C13O102C15O102C19O137C22O560C25O560C30O598C35O605C40O622C47O626C51O606C57O631,, code-creation,LazyCompile,10,8083,0x2ba068cfc0be,76,nativeModuleRequire node:internal/bootstrap/loaders:332:29,0x24d59d70f8f8,~ script-source,9,node:internal/bootstrap/loaders,// This file creates the internal module & binding loaders used by built-in\n// modules. In contrast\x2C user land modules are loaded using\n// lib/internal/modules/cjs/loader.js (CommonJS Modules) or\n// lib/internal/modules/esm/* (ES Modules).\n//\n// This file is compiled and run by node.cc before bootstrap/node.js\n// was called\x2C therefore the loaders are bootstrapped before we start to\n// actually bootstrap Node.js. It creates the following objects:\n//\n// C++ binding loaders:\n// - process.binding(): the legacy C++ binding loader\x2C accessible from user land\n// because it is an object attached to the global process object.\n// These C++ bindings are created using NODE_BUILTIN_MODULE_CONTEXT_AWARE()\n// and have their nm_flags set to NM_F_BUILTIN. We do not make any guarantees\n// about the stability of these bindings\x2C but still have to take care of\n// compatibility issues caused by them from time to time.\n// - process._linkedBinding(): intended to be used by embedders to add\n// additional C++ bindings in their applications. These C++ bindings\n// can be created using NODE_MODULE_CONTEXT_AWARE_CPP() with the flag\n// NM_F_LINKED.\n// - internalBinding(): the private internal C++ binding loader\x2C inaccessible\n// from user land unless through `require('internal/test/binding')`.\n// These C++ bindings are created using NODE_MODULE_CONTEXT_AWARE_INTERNAL()\n// and have their nm_flags set to NM_F_INTERNAL.\n//\n// Internal JavaScript module loader:\n// - NativeModule: a minimal module system used to load the JavaScript core\n// modules found in lib/**/*.js and deps/**/*.js. All core modules are\n// compiled into the node binary via node_javascript.cc generated by js2c.py\x2C\n// so they can be loaded faster without the cost of I/O. This class makes the\n// lib/internal/*\x2C deps/internal/* modules and internalBinding() available by\n// default to core modules\x2C and lets the core modules require itself via\n// require('internal/bootstrap/loaders') even when this file is not written in\n// CommonJS style.\n//\n// Other objects:\n// - process.moduleLoadList: an array recording the bindings and the modules\n// loaded in the process and the order in which they are loaded.\n\n'use strict';\n\n// This file is compiled as if it's wrapped in a function with arguments\n// passed by node::RunBootstrapping()\n/* global process\x2C getLinkedBinding\x2C getInternalBinding\x2C primordials */\n\nconst {\n ArrayPrototypeMap\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypeSlice\x2C\n Error\x2C\n ObjectCreate\x2C\n ObjectDefineProperty\x2C\n ObjectKeys\x2C\n ObjectPrototypeHasOwnProperty\x2C\n ReflectGet\x2C\n SafeMap\x2C\n SafeSet\x2C\n String\x2C\n StringPrototypeStartsWith\x2C\n TypeError\x2C\n} = primordials;\n\n// Set up process.moduleLoadList.\nconst moduleLoadList = [];\nObjectDefineProperty(process\x2C 'moduleLoadList'\x2C {\n value: moduleLoadList\x2C\n configurable: true\x2C\n enumerable: true\x2C\n writable: false\n});\n\n\n// internalBindingAllowlist contains the name of internalBinding modules\n// that are allowed for access via process.binding()... This is used\n// to provide a transition path for modules that are being moved over to\n// internalBinding.\nconst internalBindingAllowlist = new SafeSet([\n 'async_wrap'\x2C\n 'buffer'\x2C\n 'cares_wrap'\x2C\n 'config'\x2C\n 'constants'\x2C\n 'contextify'\x2C\n 'crypto'\x2C\n 'fs'\x2C\n 'fs_event_wrap'\x2C\n 'http_parser'\x2C\n 'icu'\x2C\n 'inspector'\x2C\n 'js_stream'\x2C\n 'natives'\x2C\n 'os'\x2C\n 'pipe_wrap'\x2C\n 'process_wrap'\x2C\n 'signal_wrap'\x2C\n 'spawn_sync'\x2C\n 'stream_wrap'\x2C\n 'tcp_wrap'\x2C\n 'tls_wrap'\x2C\n 'tty_wrap'\x2C\n 'udp_wrap'\x2C\n 'url'\x2C\n 'util'\x2C\n 'uv'\x2C\n 'v8'\x2C\n 'zlib'\x2C\n]);\n\nconst runtimeDeprecatedList = new SafeSet([\n 'async_wrap'\x2C\n 'crypto'\x2C\n 'http_parser'\x2C\n 'signal_wrap'\x2C\n 'url'\x2C\n 'v8'\x2C\n]);\n\nconst legacyWrapperList = new SafeSet([\n 'util'\x2C\n]);\n\n// Set up process.binding() and process._linkedBinding().\n{\n const bindingObj = ObjectCreate(null);\n\n process.binding = function binding(module) {\n module = String(module);\n // Deprecated specific process.binding() modules\x2C but not all\x2C allow\n // selective fallback to internalBinding for the deprecated ones.\n if (internalBindingAllowlist.has(module)) {\n if (runtimeDeprecatedList.has(module)) {\n runtimeDeprecatedList.delete(module);\n process.emitWarning(\n `Access to process.binding('${module}') is deprecated.`\x2C\n 'DeprecationWarning'\x2C\n 'DEP0111');\n }\n if (legacyWrapperList.has(module)) {\n return nativeModuleRequire('internal/legacy/processbinding')[module]();\n }\n return internalBinding(module);\n }\n // eslint-disable-next-line no-restricted-syntax\n throw new Error(`No such module: ${module}`);\n };\n\n process._linkedBinding = function _linkedBinding(module) {\n module = String(module);\n let mod = bindingObj[module];\n if (typeof mod !== 'object')\n mod = bindingObj[module] = getLinkedBinding(module);\n return mod;\n };\n}\n\n// Set up internalBinding() in the closure.\n/**\n * @type {InternalBinding}\n */\nlet internalBinding;\n{\n const bindingObj = ObjectCreate(null);\n // eslint-disable-next-line no-global-assign\n internalBinding = function internalBinding(module) {\n let mod = bindingObj[module];\n if (typeof mod !== 'object') {\n mod = bindingObj[module] = getInternalBinding(module);\n ArrayPrototypePush(moduleLoadList\x2C `Internal Binding ${module}`);\n }\n return mod;\n };\n}\n\nconst loaderId = 'internal/bootstrap/loaders';\nconst {\n moduleIds\x2C\n compileFunction\n} = internalBinding('native_module');\n\nconst getOwn = (target\x2C property\x2C receiver) => {\n return ObjectPrototypeHasOwnProperty(target\x2C property) ?\n ReflectGet(target\x2C property\x2C receiver) :\n undefined;\n};\n\n/**\n * An internal abstraction for the built-in JavaScript modules of Node.js.\n * Be careful not to expose this to user land unless --expose-internals is\n * used\x2C in which case there is no compatibility guarantee about this class.\n */\nclass NativeModule {\n /**\n * A map from the module IDs to the module instances.\n * @type {Map}\n */\n static map = new SafeMap(\n ArrayPrototypeMap(moduleIds\x2C (id) => [id\x2C new NativeModule(id)])\n );\n\n constructor(id) {\n this.filename = `${id}.js`;\n this.id = id;\n this.canBeRequiredByUsers = !StringPrototypeStartsWith(id\x2C 'internal/');\n\n // The CJS exports object of the module.\n this.exports = {};\n // States used to work around circular dependencies.\n this.loaded = false;\n this.loading = false;\n\n // The following properties are used by the ESM implementation and only\n // initialized when the native module is loaded by users.\n /**\n * The C++ ModuleWrap binding used to interface with the ESM implementation.\n * @type {ModuleWrap|undefined}\n */\n this.module = undefined;\n /**\n * Exported names for the ESM imports.\n * @type {string[]|undefined}\n */\n this.exportKeys = undefined;\n }\n\n // To be called during pre-execution when --expose-internals is on.\n // Enables the user-land module loader to access internal modules.\n static exposeInternals() {\n for (const { 0: id\x2C 1: mod } of NativeModule.map) {\n // Do not expose this to user land even with --expose-internals.\n if (id !== loaderId) {\n mod.canBeRequiredByUsers = true;\n }\n }\n }\n\n static exists(id) {\n return NativeModule.map.has(id);\n }\n\n static canBeRequiredByUsers(id) {\n const mod = NativeModule.map.get(id);\n return mod && mod.canBeRequiredByUsers;\n }\n\n // Used by user-land module loaders to compile and load builtins.\n compileForPublicLoader() {\n if (!this.canBeRequiredByUsers) {\n // No code because this is an assertion against bugs\n // eslint-disable-next-line no-restricted-syntax\n throw new Error(`Should not compile ${this.id} for public use`);\n }\n this.compileForInternalLoader();\n if (!this.exportKeys) {\n // When using --expose-internals\x2C we do not want to reflect the named\n // exports from core modules as this can trigger unnecessary getters.\n const internal = StringPrototypeStartsWith(this.id\x2C 'internal/');\n this.exportKeys = internal ? [] : ObjectKeys(this.exports);\n }\n this.getESMFacade();\n this.syncExports();\n return this.exports;\n }\n\n getESMFacade() {\n if (this.module) return this.module;\n const { ModuleWrap } = internalBinding('module_wrap');\n const url = `node:${this.id}`;\n const nativeModule = this;\n const exportsKeys = ArrayPrototypeSlice(this.exportKeys);\n ArrayPrototypePush(exportsKeys\x2C 'default');\n this.module = new ModuleWrap(\n url\x2C undefined\x2C exportsKeys\x2C\n function() {\n nativeModule.syncExports();\n this.setExport('default'\x2C nativeModule.exports);\n });\n // Ensure immediate sync execution to capture exports now\n this.module.instantiate();\n this.module.evaluate(-1\x2C false);\n return this.module;\n }\n\n // Provide named exports for all builtin libraries so that the libraries\n // may be imported in a nicer way for ESM users. The default export is left\n // as the entire namespace (module.exports) and updates when this function is\n // called so that APMs and other behavior are supported.\n syncExports() {\n const names = this.exportKeys;\n if (this.module) {\n for (let i = 0; i < names.length; i++) {\n const exportName = names[i];\n if (exportName === 'default') continue;\n this.module.setExport(exportName\x2C\n getOwn(this.exports\x2C exportName\x2C this.exports));\n }\n }\n }\n\n compileForInternalLoader() {\n if (this.loaded || this.loading) {\n return this.exports;\n }\n\n const id = this.id;\n this.loading = true;\n\n try {\n const requireFn = StringPrototypeStartsWith(this.id\x2C 'internal/deps/') ?\n requireWithFallbackInDeps : nativeModuleRequire;\n\n const fn = compileFunction(id);\n fn(this.exports\x2C requireFn\x2C this\x2C process\x2C internalBinding\x2C primordials);\n\n this.loaded = true;\n } finally {\n this.loading = false;\n }\n\n ArrayPrototypePush(moduleLoadList\x2C `NativeModule ${id}`);\n return this.exports;\n }\n}\n\n// Think of this as module.exports in this file even though it is not\n// written in CommonJS style.\nconst loaderExports = {\n internalBinding\x2C\n NativeModule\x2C\n require: nativeModuleRequire\n};\n\nfunction nativeModuleRequire(id) {\n if (id === loaderId) {\n return loaderExports;\n }\n\n const mod = NativeModule.map.get(id);\n // Can't load the internal errors module from here\x2C have to use a raw error.\n // eslint-disable-next-line no-restricted-syntax\n if (!mod) throw new TypeError(`Missing internal module '${id}'`);\n return mod.compileForInternalLoader();\n}\n\n// Allow internal modules from dependencies to require\n// other modules from dependencies by providing fallbacks.\nfunction requireWithFallbackInDeps(request) {\n if (!NativeModule.map.has(request)) {\n request = `internal/deps/${request}`;\n }\n return nativeModuleRequire(request);\n}\n\n// Pass the exports back to C++ land for C++ internals to use.\nreturn loaderExports;\n code-source-info,0x2ba068cfc0be,9,10315,10658,C0O10324C2O10335C4O10331C9O10351C13O10372C14O10392C19O10405C24O10409C29O10409C35O10550C37O10560C47O10608C60O10566C65O10560C66O10629C71O10629C75O10656,, code-creation,LazyCompile,10,8400,0x2ba068cfcdce,175,compileForInternalLoader node:internal/bootstrap/loaders:299:27,0x24d59d70f828,~ code-source-info,0x2ba068cfcdce,9,9528,10089,C0O9546C6O9561C12O9590C16O9598C17O9626C22O9634C23O9647C30O9690C37O9721C45O9690C63O9820C70O9820C75O9855C89O9890C103O9847C108O9928C109O9940C124O9970C126O9983C141O10003C152O10022C160O10054C165O10003C170O10077C174O10085,, code-creation,Eval,10,8596,0x2ba068cfdd16,5, node:internal/bootstrap/pre_execution:1:1,0x2ba068cfd980,~ script-source,92,node:internal/bootstrap/pre_execution,'use strict';\n\nconst {\n NumberParseInt\x2C\n ObjectDefineProperty\x2C\n SafeMap\x2C\n SafeWeakMap\x2C\n StringPrototypeStartsWith\x2C\n globalThis\x2C\n} = primordials;\n\nconst {\n getOptionValue\x2C\n getEmbedderOptions\x2C\n} = require('internal/options');\nconst { reconnectZeroFillToggle } = require('internal/buffer');\n\nconst { Buffer } = require('buffer');\nconst { ERR_MANIFEST_ASSERT_INTEGRITY } = require('internal/errors').codes;\nconst assert = require('internal/assert');\n\nfunction prepareMainThreadExecution(expandArgv1 = false) {\n // TODO(joyeecheung): this is also necessary for workers when they deserialize\n // this toggle from the snapshot.\n reconnectZeroFillToggle();\n\n // Patch the process object with legacy properties and normalizations\n patchProcessObject(expandArgv1);\n setupTraceCategoryState();\n setupPerfHooks();\n setupInspectorHooks();\n setupWarningHandler();\n\n // Resolve the coverage directory to an absolute path\x2C and\n // overwrite process.env so that the original path gets passed\n // to child processes even when they switch cwd.\n if (process.env.NODE_V8_COVERAGE) {\n process.env.NODE_V8_COVERAGE =\n setupCoverageHooks(process.env.NODE_V8_COVERAGE);\n }\n\n\n setupDebugEnv();\n\n // Print stack trace on `SIGINT` if option `--trace-sigint` presents.\n setupStacktracePrinterOnSigint();\n\n // Process initial diagnostic reporting configuration\x2C if present.\n initializeReport();\n initializeReportSignalHandlers(); // Main-thread-only.\n\n initializeHeapSnapshotSignalHandlers();\n\n // If the process is spawned with env NODE_CHANNEL_FD\x2C it's probably\n // spawned by our child_process module\x2C then initialize IPC.\n // This attaches some internal event listeners and creates:\n // process.send()\x2C process.channel\x2C process.connected\x2C\n // process.disconnect().\n setupChildProcessIpcChannel();\n\n // Load policy from disk and parse it.\n initializePolicy();\n\n // If this is a worker in cluster mode\x2C start up the communication\n // channel. This needs to be done before any user code gets executed\n // (including preload modules).\n initializeClusterIPC();\n\n initializeSourceMapsHandlers();\n initializeDeprecations();\n initializeWASI();\n initializeCJSLoader();\n initializeESMLoader();\n\n const CJSLoader = require('internal/modules/cjs/loader');\n assert(!CJSLoader.hasLoadedAnyUserCJSModule);\n loadPreloadModules();\n initializeFrozenIntrinsics();\n}\n\nfunction patchProcessObject(expandArgv1) {\n const binding = internalBinding('process_methods');\n binding.patchProcessObject(process);\n\n // TODO(joyeecheung): snapshot fast APIs (which need to work with\n // array buffers\x2C whose connection with C++ needs to be rebuilt after\n // deserialization).\n const {\n hrtime\x2C\n hrtimeBigInt\n } = require('internal/process/per_thread').getFastAPIs(binding);\n\n process.hrtime = hrtime;\n process.hrtime.bigint = hrtimeBigInt;\n\n ObjectDefineProperty(process\x2C 'argv0'\x2C {\n enumerable: true\x2C\n configurable: false\x2C\n value: process.argv[0]\n });\n process.argv[0] = process.execPath;\n\n if (expandArgv1 && process.argv[1] &&\n !StringPrototypeStartsWith(process.argv[1]\x2C '-')) {\n // Expand process.argv[1] into a full path.\n const path = require('path');\n try {\n process.argv[1] = path.resolve(process.argv[1]);\n } catch {}\n }\n\n // TODO(joyeecheung): most of these should be deprecated and removed\x2C\n // except some that we need to be able to mutate during run time.\n addReadOnlyProcessAlias('_eval'\x2C '--eval');\n addReadOnlyProcessAlias('_print_eval'\x2C '--print');\n addReadOnlyProcessAlias('_syntax_check_only'\x2C '--check');\n addReadOnlyProcessAlias('_forceRepl'\x2C '--interactive');\n addReadOnlyProcessAlias('_preload_modules'\x2C '--require');\n addReadOnlyProcessAlias('noDeprecation'\x2C '--no-deprecation');\n addReadOnlyProcessAlias('noProcessWarnings'\x2C '--no-warnings');\n addReadOnlyProcessAlias('traceProcessWarnings'\x2C '--trace-warnings');\n addReadOnlyProcessAlias('throwDeprecation'\x2C '--throw-deprecation');\n addReadOnlyProcessAlias('profProcess'\x2C '--prof-process');\n addReadOnlyProcessAlias('traceDeprecation'\x2C '--trace-deprecation');\n addReadOnlyProcessAlias('_breakFirstLine'\x2C '--inspect-brk'\x2C false);\n addReadOnlyProcessAlias('_breakNodeFirstLine'\x2C '--inspect-brk-node'\x2C false);\n}\n\nfunction addReadOnlyProcessAlias(name\x2C option\x2C enumerable = true) {\n const value = getOptionValue(option);\n if (value) {\n ObjectDefineProperty(process\x2C name\x2C {\n writable: false\x2C\n configurable: true\x2C\n enumerable\x2C\n value\n });\n }\n}\n\nfunction setupWarningHandler() {\n const {\n onWarning\n } = require('internal/process/warning');\n if (getOptionValue('--warnings') &&\n process.env.NODE_NO_WARNINGS !== '1') {\n process.on('warning'\x2C onWarning);\n }\n}\n\n// Setup User-facing NODE_V8_COVERAGE environment variable that writes\n// ScriptCoverage to a specified file.\nfunction setupCoverageHooks(dir) {\n const cwd = require('internal/process/execution').tryGetCwd();\n const { resolve } = require('path');\n const coverageDirectory = resolve(cwd\x2C dir);\n const { sourceMapCacheToObject } =\n require('internal/source_map/source_map_cache');\n\n if (process.features.inspector) {\n internalBinding('profiler').setCoverageDirectory(coverageDirectory);\n internalBinding('profiler').setSourceMapCacheGetter(sourceMapCacheToObject);\n } else {\n process.emitWarning('The inspector is disabled\x2C ' +\n 'coverage could not be collected'\x2C\n 'Warning');\n return '';\n }\n return coverageDirectory;\n}\n\nfunction setupStacktracePrinterOnSigint() {\n if (!getOptionValue('--trace-sigint')) {\n return;\n }\n const { SigintWatchdog } = require('internal/watchdog');\n\n const watchdog = new SigintWatchdog();\n watchdog.start();\n}\n\nfunction initializeReport() {\n const { report } = require('internal/process/report');\n ObjectDefineProperty(process\x2C 'report'\x2C {\n enumerable: false\x2C\n configurable: true\x2C\n get() {\n return report;\n }\n });\n}\n\nfunction setupDebugEnv() {\n require('internal/util/debuglog').initializeDebugEnv(process.env.NODE_DEBUG);\n if (getOptionValue('--expose-internals')) {\n require('internal/bootstrap/loaders').NativeModule.exposeInternals();\n }\n}\n\n// This has to be called after initializeReport() is called\nfunction initializeReportSignalHandlers() {\n const { addSignalHandler } = require('internal/process/report');\n\n addSignalHandler();\n}\n\nfunction initializeHeapSnapshotSignalHandlers() {\n const signal = getOptionValue('--heapsnapshot-signal');\n\n if (!signal)\n return;\n\n require('internal/validators').validateSignalName(signal);\n const { writeHeapSnapshot } = require('v8');\n\n process.on(signal\x2C () => {\n writeHeapSnapshot();\n });\n}\n\nfunction setupTraceCategoryState() {\n const { isTraceCategoryEnabled } = internalBinding('trace_events');\n const { toggleTraceCategoryState } = require('internal/process/per_thread');\n toggleTraceCategoryState(isTraceCategoryEnabled('node.async_hooks'));\n}\n\nfunction setupPerfHooks() {\n require('internal/perf/performance').refreshTimeOrigin();\n require('internal/perf/utils').refreshTimeOrigin();\n}\n\nfunction setupInspectorHooks() {\n // If Debugger.setAsyncCallStackDepth is sent during bootstrap\x2C\n // we cannot immediately call into JS to enable the hooks\x2C which could\n // interrupt the JS execution of bootstrap. So instead we save the\n // notification in the inspector agent if it's sent in the middle of\n // bootstrap\x2C and process the notification later here.\n if (internalBinding('config').hasInspector) {\n const {\n enable\x2C\n disable\n } = require('internal/inspector_async_hook');\n internalBinding('inspector').registerAsyncHook(enable\x2C disable);\n }\n}\n\n// In general deprecations are initialized wherever the APIs are implemented\x2C\n// this is used to deprecate APIs implemented in C++ where the deprecation\n// utilities are not easily accessible.\nfunction initializeDeprecations() {\n const { deprecate } = require('internal/util');\n const pendingDeprecation = getOptionValue('--pending-deprecation');\n\n // DEP0103: access to `process.binding('util').isX` type checkers\n // TODO(addaleax): Turn into a full runtime deprecation.\n const utilBinding = internalBinding('util');\n const types = require('internal/util/types');\n for (const name of [\n 'isArrayBuffer'\x2C\n 'isArrayBufferView'\x2C\n 'isAsyncFunction'\x2C\n 'isDataView'\x2C\n 'isDate'\x2C\n 'isExternal'\x2C\n 'isMap'\x2C\n 'isMapIterator'\x2C\n 'isNativeError'\x2C\n 'isPromise'\x2C\n 'isRegExp'\x2C\n 'isSet'\x2C\n 'isSetIterator'\x2C\n 'isTypedArray'\x2C\n 'isUint8Array'\x2C\n 'isAnyArrayBuffer'\x2C\n ]) {\n utilBinding[name] = pendingDeprecation ?\n deprecate(types[name]\x2C\n 'Accessing native typechecking bindings of Node ' +\n 'directly is deprecated. ' +\n `Please use \\`util.types.${name}\\` instead.`\x2C\n 'DEP0103') :\n types[name];\n }\n\n // TODO(joyeecheung): this is a legacy property exposed to process.\n // Now that we use the config binding to carry this information\x2C remove\n // it from the process. We may consider exposing it properly in\n // process.features.\n const { noBrowserGlobals } = internalBinding('config');\n if (noBrowserGlobals) {\n ObjectDefineProperty(process\x2C '_noBrowserGlobals'\x2C {\n writable: false\x2C\n enumerable: true\x2C\n configurable: true\x2C\n value: noBrowserGlobals\n });\n }\n\n if (pendingDeprecation) {\n process.binding = deprecate(process.binding\x2C\n 'process.binding() is deprecated. ' +\n 'Please use public APIs instead.'\x2C 'DEP0111');\n\n process._tickCallback = deprecate(process._tickCallback\x2C\n 'process._tickCallback() is deprecated'\x2C\n 'DEP0134');\n }\n\n // Create global.process and global.Buffer as getters so that we have a\n // deprecation path for these in ES Modules.\n // See https://github.com/nodejs/node/pull/26334.\n let _process = process;\n ObjectDefineProperty(globalThis\x2C 'process'\x2C {\n get() {\n return _process;\n }\x2C\n set(value) {\n _process = value;\n }\x2C\n enumerable: false\x2C\n configurable: true\n });\n\n let _Buffer = Buffer;\n ObjectDefineProperty(globalThis\x2C 'Buffer'\x2C {\n get() {\n return _Buffer;\n }\x2C\n set(value) {\n _Buffer = value;\n }\x2C\n enumerable: false\x2C\n configurable: true\n });\n}\n\nfunction setupChildProcessIpcChannel() {\n if (process.env.NODE_CHANNEL_FD) {\n const assert = require('internal/assert');\n\n const fd = NumberParseInt(process.env.NODE_CHANNEL_FD\x2C 10);\n assert(fd >= 0);\n\n // Make sure it's not accidentally inherited by child processes.\n delete process.env.NODE_CHANNEL_FD;\n\n const serializationMode =\n process.env.NODE_CHANNEL_SERIALIZATION_MODE || 'json';\n delete process.env.NODE_CHANNEL_SERIALIZATION_MODE;\n\n require('child_process')._forkChild(fd\x2C serializationMode);\n assert(process.send);\n }\n}\n\nfunction initializeClusterIPC() {\n if (process.argv[1] && process.env.NODE_UNIQUE_ID) {\n const cluster = require('cluster');\n cluster._setupWorker();\n // Make sure it's not accidentally inherited by child processes.\n delete process.env.NODE_UNIQUE_ID;\n }\n}\n\nfunction initializePolicy() {\n const experimentalPolicy = getOptionValue('--experimental-policy');\n if (experimentalPolicy) {\n process.emitWarning('Policies are experimental.'\x2C\n 'ExperimentalWarning');\n const { pathToFileURL\x2C URL } = require('internal/url');\n // URL here as it is slightly different parsing\n // no bare specifiers for now\n let manifestURL;\n if (require('path').isAbsolute(experimentalPolicy)) {\n manifestURL = new URL(`file://${experimentalPolicy}`);\n } else {\n const cwdURL = pathToFileURL(process.cwd());\n cwdURL.pathname += '/';\n manifestURL = new URL(experimentalPolicy\x2C cwdURL);\n }\n const fs = require('fs');\n const src = fs.readFileSync(manifestURL\x2C 'utf8');\n const experimentalPolicyIntegrity = getOptionValue('--policy-integrity');\n if (experimentalPolicyIntegrity) {\n const SRI = require('internal/policy/sri');\n const { createHash\x2C timingSafeEqual } = require('crypto');\n const realIntegrities = new SafeMap();\n const integrityEntries = SRI.parse(experimentalPolicyIntegrity);\n let foundMatch = false;\n for (let i = 0; i < integrityEntries.length; i++) {\n const {\n algorithm\x2C\n value: expected\n } = integrityEntries[i];\n const hash = createHash(algorithm);\n hash.update(src);\n const digest = hash.digest();\n if (digest.length === expected.length &&\n timingSafeEqual(digest\x2C expected)) {\n foundMatch = true;\n break;\n }\n realIntegrities.set(algorithm\x2C digest.toString('base64'));\n }\n if (!foundMatch) {\n throw new ERR_MANIFEST_ASSERT_INTEGRITY(manifestURL\x2C realIntegrities);\n }\n }\n require('internal/process/policy')\n .setup(src\x2C manifestURL.href);\n }\n}\n\nfunction initializeWASI() {\n const { NativeModule } = require('internal/bootstrap/loaders');\n const mod = NativeModule.map.get('wasi');\n mod.canBeRequiredByUsers =\n getOptionValue('--experimental-wasi-unstable-preview1');\n}\n\nfunction initializeCJSLoader() {\n const CJSLoader = require('internal/modules/cjs/loader');\n if (!getEmbedderOptions().noGlobalSearchPaths) {\n CJSLoader.Module._initPaths();\n }\n // TODO(joyeecheung): deprecate this in favor of a proper hook?\n CJSLoader.Module.runMain =\n require('internal/modules/run_main').executeUserEntryPoint;\n}\n\nfunction initializeESMLoader() {\n // Create this WeakMap in js-land because V8 has no C++ API for WeakMap.\n internalBinding('module_wrap').callbackMap = new SafeWeakMap();\n\n if (getEmbedderOptions().shouldNotRegisterESMLoader) return;\n\n const {\n setImportModuleDynamicallyCallback\x2C\n setInitializeImportMetaObjectCallback\n } = internalBinding('module_wrap');\n const esm = require('internal/process/esm_loader');\n // Setup per-isolate callbacks that locate data or callbacks that we keep\n // track of for different ESM modules.\n setInitializeImportMetaObjectCallback(esm.initializeImportMetaObject);\n setImportModuleDynamicallyCallback(esm.importModuleDynamicallyCallback);\n\n // Patch the vm module when --experimental-vm-modules is on.\n // Please update the comments in vm.js when this block changes.\n if (getOptionValue('--experimental-vm-modules')) {\n const {\n Module\x2C SourceTextModule\x2C SyntheticModule\x2C\n } = require('internal/vm/module');\n const vm = require('vm');\n vm.Module = Module;\n vm.SourceTextModule = SourceTextModule;\n vm.SyntheticModule = SyntheticModule;\n }\n}\n\nfunction initializeSourceMapsHandlers() {\n const { setSourceMapsEnabled } =\n require('internal/source_map/source_map_cache');\n process.setSourceMapsEnabled = setSourceMapsEnabled;\n}\n\nfunction initializeFrozenIntrinsics() {\n if (getOptionValue('--frozen-intrinsics')) {\n process.emitWarning('The --frozen-intrinsics flag is experimental'\x2C\n 'ExperimentalWarning');\n require('internal/freeze_intrinsics')();\n }\n}\n\nfunction loadPreloadModules() {\n // For user code\x2C we preload modules if `-r` is passed\n const preloadModules = getOptionValue('--require');\n if (preloadModules && preloadModules.length > 0) {\n const {\n Module: {\n _preloadModules\n }\x2C\n } = require('internal/modules/cjs/loader');\n _preloadModules(preloadModules);\n }\n}\n\nmodule.exports = {\n patchProcessObject\x2C\n setupCoverageHooks\x2C\n setupWarningHandler\x2C\n setupDebugEnv\x2C\n setupPerfHooks\x2C\n prepareMainThreadExecution\x2C\n initializeDeprecations\x2C\n initializeESMLoader\x2C\n initializeFrozenIntrinsics\x2C\n initializeSourceMapsHandlers\x2C\n loadPreloadModules\x2C\n setupTraceCategoryState\x2C\n setupInspectorHooks\x2C\n initializeReport\x2C\n initializeCJSLoader\x2C\n initializeWASI\n};\n code-source-info,0x2ba068cfdd16,92,0,15986,C0O0C4O15986,, code-creation,Function,10,8879,0x2ba068cfe816,426, node:internal/bootstrap/pre_execution:1:1,0x2ba068cfdc90,~ code-source-info,0x2ba068cfe816,92,0,15986,C0O0C190O25C196O43C202O67C208O78C214O93C220O122C226O204C232O204C237O162C243O180C249O269C255O269C260O241C266O317C272O317C277O306C283O378C289O378C294O404C299O344C305O427C311O427C315O427C317O15589C324O15610C330O15632C336O15654C342O15677C348O15694C354O15712C360O15742C366O15768C372O15791C378O15821C384O15853C390O15875C396O15902C402O15925C408O15945C414O15968C420O15604C425O15985,, new,MemoryChunk,0x337ca0b00000,262144 code-creation,Eval,10,8990,0x337ca0b012b6,5, node:internal/options:1:1,0x2ba068cfffc8,~ script-source,93,node:internal/options,'use strict';\n\nconst {\n getCLIOptions\x2C\n getEmbedderOptions: getEmbedderOptionsFromBinding\x2C\n} = internalBinding('options');\n\nlet warnOnAllowUnauthorized = true;\n\nlet optionsMap;\nlet aliasesMap;\nlet embedderOptions;\n\n// getCLIOptions() would serialize the option values from C++ land.\n// It would error if the values are queried before bootstrap is\n// complete so that we don't accidentally include runtime-dependent\n// states into a runtime-independent snapshot.\nfunction getCLIOptionsFromBinding() {\n if (!optionsMap) {\n ({ options: optionsMap } = getCLIOptions());\n }\n return optionsMap;\n}\n\nfunction getAliasesFromBinding() {\n if (!aliasesMap) {\n ({ aliases: aliasesMap } = getCLIOptions());\n }\n return aliasesMap;\n}\n\nfunction getEmbedderOptions() {\n if (!embedderOptions) {\n embedderOptions = getEmbedderOptionsFromBinding();\n }\n return embedderOptions;\n}\n\nfunction getOptionValue(optionName) {\n const options = getCLIOptionsFromBinding();\n if (optionName.startsWith('--no-')) {\n const option = options.get('--' + optionName.slice(5));\n return option && !option.value;\n }\n return options.get(optionName)?.value;\n}\n\nfunction getAllowUnauthorized() {\n const allowUnauthorized = process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0';\n\n if (allowUnauthorized && warnOnAllowUnauthorized) {\n warnOnAllowUnauthorized = false;\n process.emitWarning(\n 'Setting the NODE_TLS_REJECT_UNAUTHORIZED ' +\n 'environment variable to \\'0\\' makes TLS connections ' +\n 'and HTTPS requests insecure by disabling ' +\n 'certificate verification.');\n }\n return allowUnauthorized;\n}\n\nmodule.exports = {\n get options() {\n return getCLIOptionsFromBinding();\n }\x2C\n get aliases() {\n return getAliasesFromBinding();\n }\x2C\n getOptionValue\x2C\n getAllowUnauthorized\x2C\n getEmbedderOptions\n};\n code-source-info,0x337ca0b012b6,93,0,1820,C0O0C4O1820,, code-creation,Function,10,9030,0x337ca0b01686,154, node:internal/options:1:1,0x337ca0b01230,~ code-source-info,0x337ca0b01686,93,0,1820,C0O0C54O97C57O97C62O25C68O62C74O156C75O156C77O167C78O167C80O183C81O183C83O199C84O199C86O1614C93O1756C99O1774C105O1798C148O1629C153O1819,, code-creation,LazyCompile,10,9072,0x337ca0b01b96,69,internalBinding node:internal/bootstrap/loaders:164:45,0x24d59d70f378,~ code-source-info,0x337ca0b01b96,9,5115,5353,C0O5140C7O5150C11O5164C15O5201C25O5228C30O5226C37O5262C48O5281C56O5317C61O5262C66O5338C68O5349,, StoreIC,0x337ca0b016e3,9123,69,3,X,X,0x000000000000,getOptionValue,, StoreIC,0x337ca0b016e9,9130,70,3,X,X,0x000000000000,getAllowUnauthorized,, StoreIC,0x337ca0b016ef,9134,71,3,X,X,0x000000000000,getEmbedderOptions,, StoreIC,0x2ba068cfe95a,9165,488,3,X,X,0x000000000000,patchProcessObject,, StoreIC,0x2ba068cfe960,9170,489,3,X,X,0x000000000000,setupCoverageHooks,, StoreIC,0x2ba068cfe966,9173,490,3,X,X,0x000000000000,setupWarningHandler,, StoreIC,0x2ba068cfe96c,9175,491,3,X,X,0x000000000000,setupDebugEnv,, StoreIC,0x2ba068cfe972,9178,492,3,X,X,0x000000000000,setupPerfHooks,, StoreIC,0x2ba068cfe978,9181,493,3,X,X,0x000000000000,prepareMainThreadExecution,, StoreIC,0x2ba068cfe97e,9184,494,3,X,X,0x000000000000,initializeDeprecations,, StoreIC,0x2ba068cfe984,9187,495,3,X,X,0x000000000000,initializeESMLoader,, StoreIC,0x2ba068cfe98a,9190,496,3,X,X,0x000000000000,initializeFrozenIntrinsics,, StoreIC,0x2ba068cfe990,9193,497,3,X,X,0x000000000000,initializeSourceMapsHandlers,, StoreIC,0x2ba068cfe996,9196,498,3,X,X,0x000000000000,loadPreloadModules,, StoreIC,0x2ba068cfe99c,9199,499,3,X,X,0x000000000000,setupTraceCategoryState,, StoreIC,0x2ba068cfe9a2,9202,500,3,X,X,0x000000000000,setupInspectorHooks,, StoreIC,0x2ba068cfe9a8,9205,501,3,X,X,0x000000000000,initializeReport,, StoreIC,0x2ba068cfe9ae,9207,502,3,X,X,0x000000000000,initializeCJSLoader,, StoreIC,0x2ba068cfe9b4,9210,503,3,X,X,0x000000000000,initializeWASI,, code-creation,LazyCompile,10,9242,0x337ca0b035f6,213,prepareMainThreadExecution node:internal/bootstrap/pre_execution:22:36,0x2ba068cfdd48,~ code-source-info,0x337ca0b035f6,92,491,2380,C10O634C15O634C18O736C21O736C25O771C28O771C31O800C34O800C37O820C40O820C43O845C46O845C49O1048C52O1060C57O1064C63O1088C66O1096C77O1152C82O1156C87O1125C91O1117C95O1183C98O1183C101O1275C104O1275C107O1381C110O1381C113O1403C116O1403C119O1462C122O1462C125O1785C128O1785C131O1860C134O1860C137O2057C140O2057C143O2084C146O2084C149O2118C152O2118C155O2146C158O2146C161O2166C164O2166C167O2191C170O2191C173O2235C179O2235C184O2277C189O2295C195O2277C199O2325C202O2325C205O2349C208O2349C212O2379,, code-creation,LazyCompile,10,9285,0x337ca0b03846,19,reconnectZeroFillToggle node:internal/buffer:1072:33,0x44edd6f1cd0,~ script-source,19,node:internal/buffer,'use strict';\n\nconst {\n BigInt\x2C\n Float32Array\x2C\n Float64Array\x2C\n MathFloor\x2C\n Number\x2C\n Uint8Array\x2C\n} = primordials;\n\nconst {\n ERR_BUFFER_OUT_OF_BOUNDS\x2C\n ERR_INVALID_ARG_TYPE\x2C\n ERR_OUT_OF_RANGE\n} = require('internal/errors').codes;\nconst { validateNumber } = require('internal/validators');\nconst {\n asciiSlice\x2C\n base64Slice\x2C\n base64urlSlice\x2C\n latin1Slice\x2C\n hexSlice\x2C\n ucs2Slice\x2C\n utf8Slice\x2C\n asciiWrite\x2C\n base64Write\x2C\n base64urlWrite\x2C\n latin1Write\x2C\n hexWrite\x2C\n ucs2Write\x2C\n utf8Write\x2C\n getZeroFillToggle\n} = internalBinding('buffer');\nconst {\n untransferable_object_private_symbol\x2C\n setHiddenValue\x2C\n} = internalBinding('util');\n\n// Temporary buffers to convert numbers.\nconst float32Array = new Float32Array(1);\nconst uInt8Float32Array = new Uint8Array(float32Array.buffer);\nconst float64Array = new Float64Array(1);\nconst uInt8Float64Array = new Uint8Array(float64Array.buffer);\n\n// Check endianness.\nfloat32Array[0] = -1; // 0xBF800000\n// Either it is [0\x2C 0\x2C 128\x2C 191] or [191\x2C 128\x2C 0\x2C 0]. It is not possible to\n// check this with `os.endianness()` because that is determined at compile time.\nconst bigEndian = uInt8Float32Array[3] === 0;\n\nfunction checkBounds(buf\x2C offset\x2C byteLength) {\n validateNumber(offset\x2C 'offset');\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined)\n boundsError(offset\x2C buf.length - (byteLength + 1));\n}\n\nfunction checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : '';\n let range;\n if (byteLength > 3) {\n if (min === 0 || min === 0n) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and ` +\n `< 2${n} ** ${(byteLength + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new ERR_OUT_OF_RANGE('value'\x2C range\x2C value);\n }\n checkBounds(buf\x2C offset\x2C byteLength);\n}\n\nfunction boundsError(value\x2C length\x2C type) {\n if (MathFloor(value) !== value) {\n validateNumber(value\x2C type);\n throw new ERR_OUT_OF_RANGE(type || 'offset'\x2C 'an integer'\x2C value);\n }\n\n if (length < 0)\n throw new ERR_BUFFER_OUT_OF_BOUNDS();\n\n throw new ERR_OUT_OF_RANGE(type || 'offset'\x2C\n `>= ${type ? 1 : 0} and <= ${length}`\x2C\n value);\n}\n\n// Read integers.\nfunction readBigUInt64LE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 8);\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24;\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24;\n\n return BigInt(lo) + (BigInt(hi) << 32n);\n}\n\nfunction readBigUInt64BE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 8);\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset];\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last;\n\n return (BigInt(hi) << 32n) + BigInt(lo);\n}\n\nfunction readBigInt64LE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 8);\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24); // Overflow\n return (BigInt(val) << 32n) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24);\n}\n\nfunction readBigInt64BE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 8);\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset];\n return (BigInt(val) << 32n) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last);\n}\n\nfunction readUIntLE(offset\x2C byteLength) {\n if (offset === undefined)\n throw new ERR_INVALID_ARG_TYPE('offset'\x2C 'number'\x2C offset);\n if (byteLength === 6)\n return readUInt48LE(this\x2C offset);\n if (byteLength === 5)\n return readUInt40LE(this\x2C offset);\n if (byteLength === 3)\n return readUInt24LE(this\x2C offset);\n if (byteLength === 4)\n return this.readUInt32LE(offset);\n if (byteLength === 2)\n return this.readUInt16LE(offset);\n if (byteLength === 1)\n return this.readUInt8(offset);\n\n boundsError(byteLength\x2C 6\x2C 'byteLength');\n}\n\nfunction readUInt48LE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 5];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 6);\n\n return first +\n buf[++offset] * 2 ** 8 +\n buf[++offset] * 2 ** 16 +\n buf[++offset] * 2 ** 24 +\n (buf[++offset] + last * 2 ** 8) * 2 ** 32;\n}\n\nfunction readUInt40LE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 4];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 5);\n\n return first +\n buf[++offset] * 2 ** 8 +\n buf[++offset] * 2 ** 16 +\n buf[++offset] * 2 ** 24 +\n last * 2 ** 32;\n}\n\nfunction readUInt32LE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 3];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 4);\n\n return first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24;\n}\n\nfunction readUInt24LE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 2];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 3);\n\n return first + buf[++offset] * 2 ** 8 + last * 2 ** 16;\n}\n\nfunction readUInt16LE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 1];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 2);\n\n return first + last * 2 ** 8;\n}\n\nfunction readUInt8(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const val = this[offset];\n if (val === undefined)\n boundsError(offset\x2C this.length - 1);\n\n return val;\n}\n\nfunction readUIntBE(offset\x2C byteLength) {\n if (offset === undefined)\n throw new ERR_INVALID_ARG_TYPE('offset'\x2C 'number'\x2C offset);\n if (byteLength === 6)\n return readUInt48BE(this\x2C offset);\n if (byteLength === 5)\n return readUInt40BE(this\x2C offset);\n if (byteLength === 3)\n return readUInt24BE(this\x2C offset);\n if (byteLength === 4)\n return this.readUInt32BE(offset);\n if (byteLength === 2)\n return this.readUInt16BE(offset);\n if (byteLength === 1)\n return this.readUInt8(offset);\n\n boundsError(byteLength\x2C 6\x2C 'byteLength');\n}\n\nfunction readUInt48BE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 5];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 6);\n\n return (first * 2 ** 8 + buf[++offset]) * 2 ** 32 +\n buf[++offset] * 2 ** 24 +\n buf[++offset] * 2 ** 16 +\n buf[++offset] * 2 ** 8 +\n last;\n}\n\nfunction readUInt40BE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 4];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 5);\n\n return first * 2 ** 32 +\n buf[++offset] * 2 ** 24 +\n buf[++offset] * 2 ** 16 +\n buf[++offset] * 2 ** 8 +\n last;\n}\n\nfunction readUInt32BE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 3];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 4);\n\n return first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last;\n}\n\nfunction readUInt24BE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 2];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 3);\n\n return first * 2 ** 16 + buf[++offset] * 2 ** 8 + last;\n}\n\nfunction readUInt16BE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 1];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 2);\n\n return first * 2 ** 8 + last;\n}\n\nfunction readIntLE(offset\x2C byteLength) {\n if (offset === undefined)\n throw new ERR_INVALID_ARG_TYPE('offset'\x2C 'number'\x2C offset);\n if (byteLength === 6)\n return readInt48LE(this\x2C offset);\n if (byteLength === 5)\n return readInt40LE(this\x2C offset);\n if (byteLength === 3)\n return readInt24LE(this\x2C offset);\n if (byteLength === 4)\n return this.readInt32LE(offset);\n if (byteLength === 2)\n return this.readInt16LE(offset);\n if (byteLength === 1)\n return this.readInt8(offset);\n\n boundsError(byteLength\x2C 6\x2C 'byteLength');\n}\n\nfunction readInt48LE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 5];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 6);\n\n const val = buf[offset + 4] + last * 2 ** 8;\n return (val | (val & 2 ** 15) * 0x1fffe) * 2 ** 32 +\n first +\n buf[++offset] * 2 ** 8 +\n buf[++offset] * 2 ** 16 +\n buf[++offset] * 2 ** 24;\n}\n\nfunction readInt40LE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 4];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 5);\n\n return (last | (last & 2 ** 7) * 0x1fffffe) * 2 ** 32 +\n first +\n buf[++offset] * 2 ** 8 +\n buf[++offset] * 2 ** 16 +\n buf[++offset] * 2 ** 24;\n}\n\nfunction readInt32LE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 3];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 4);\n\n return first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n (last << 24); // Overflow\n}\n\nfunction readInt24LE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 2];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 3);\n\n const val = first + buf[++offset] * 2 ** 8 + last * 2 ** 16;\n return val | (val & 2 ** 23) * 0x1fe;\n}\n\nfunction readInt16LE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 1];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 2);\n\n const val = first + last * 2 ** 8;\n return val | (val & 2 ** 15) * 0x1fffe;\n}\n\nfunction readInt8(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const val = this[offset];\n if (val === undefined)\n boundsError(offset\x2C this.length - 1);\n\n return val | (val & 2 ** 7) * 0x1fffffe;\n}\n\nfunction readIntBE(offset\x2C byteLength) {\n if (offset === undefined)\n throw new ERR_INVALID_ARG_TYPE('offset'\x2C 'number'\x2C offset);\n if (byteLength === 6)\n return readInt48BE(this\x2C offset);\n if (byteLength === 5)\n return readInt40BE(this\x2C offset);\n if (byteLength === 3)\n return readInt24BE(this\x2C offset);\n if (byteLength === 4)\n return this.readInt32BE(offset);\n if (byteLength === 2)\n return this.readInt16BE(offset);\n if (byteLength === 1)\n return this.readInt8(offset);\n\n boundsError(byteLength\x2C 6\x2C 'byteLength');\n}\n\nfunction readInt48BE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 5];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 6);\n\n const val = buf[++offset] + first * 2 ** 8;\n return (val | (val & 2 ** 15) * 0x1fffe) * 2 ** 32 +\n buf[++offset] * 2 ** 24 +\n buf[++offset] * 2 ** 16 +\n buf[++offset] * 2 ** 8 +\n last;\n}\n\nfunction readInt40BE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 4];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 5);\n\n return (first | (first & 2 ** 7) * 0x1fffffe) * 2 ** 32 +\n buf[++offset] * 2 ** 24 +\n buf[++offset] * 2 ** 16 +\n buf[++offset] * 2 ** 8 +\n last;\n}\n\nfunction readInt32BE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 3];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 4);\n\n return (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last;\n}\n\nfunction readInt24BE(buf\x2C offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = buf[offset];\n const last = buf[offset + 2];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C buf.length - 3);\n\n const val = first * 2 ** 16 + buf[++offset] * 2 ** 8 + last;\n return val | (val & 2 ** 23) * 0x1fe;\n}\n\nfunction readInt16BE(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 1];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 2);\n\n const val = first * 2 ** 8 + last;\n return val | (val & 2 ** 15) * 0x1fffe;\n}\n\n// Read floats\nfunction readFloatBackwards(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 3];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 4);\n\n uInt8Float32Array[3] = first;\n uInt8Float32Array[2] = this[++offset];\n uInt8Float32Array[1] = this[++offset];\n uInt8Float32Array[0] = last;\n return float32Array[0];\n}\n\nfunction readFloatForwards(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 3];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 4);\n\n uInt8Float32Array[0] = first;\n uInt8Float32Array[1] = this[++offset];\n uInt8Float32Array[2] = this[++offset];\n uInt8Float32Array[3] = last;\n return float32Array[0];\n}\n\nfunction readDoubleBackwards(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 8);\n\n uInt8Float64Array[7] = first;\n uInt8Float64Array[6] = this[++offset];\n uInt8Float64Array[5] = this[++offset];\n uInt8Float64Array[4] = this[++offset];\n uInt8Float64Array[3] = this[++offset];\n uInt8Float64Array[2] = this[++offset];\n uInt8Float64Array[1] = this[++offset];\n uInt8Float64Array[0] = last;\n return float64Array[0];\n}\n\nfunction readDoubleForwards(offset = 0) {\n validateNumber(offset\x2C 'offset');\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset\x2C this.length - 8);\n\n uInt8Float64Array[0] = first;\n uInt8Float64Array[1] = this[++offset];\n uInt8Float64Array[2] = this[++offset];\n uInt8Float64Array[3] = this[++offset];\n uInt8Float64Array[4] = this[++offset];\n uInt8Float64Array[5] = this[++offset];\n uInt8Float64Array[6] = this[++offset];\n uInt8Float64Array[7] = last;\n return float64Array[0];\n}\n\n// Write integers.\nfunction writeBigU_Int64LE(buf\x2C value\x2C offset\x2C min\x2C max) {\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 7);\n\n let lo = Number(value & 0xffffffffn);\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n let hi = Number(value >> 32n & 0xffffffffn);\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n return offset;\n}\n\nfunction writeBigUInt64LE(value\x2C offset = 0) {\n return writeBigU_Int64LE(this\x2C value\x2C offset\x2C 0n\x2C 0xffffffffffffffffn);\n}\n\nfunction writeBigU_Int64BE(buf\x2C value\x2C offset\x2C min\x2C max) {\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 7);\n\n let lo = Number(value & 0xffffffffn);\n buf[offset + 7] = lo;\n lo = lo >> 8;\n buf[offset + 6] = lo;\n lo = lo >> 8;\n buf[offset + 5] = lo;\n lo = lo >> 8;\n buf[offset + 4] = lo;\n let hi = Number(value >> 32n & 0xffffffffn);\n buf[offset + 3] = hi;\n hi = hi >> 8;\n buf[offset + 2] = hi;\n hi = hi >> 8;\n buf[offset + 1] = hi;\n hi = hi >> 8;\n buf[offset] = hi;\n return offset + 8;\n}\n\nfunction writeBigUInt64BE(value\x2C offset = 0) {\n return writeBigU_Int64BE(this\x2C value\x2C offset\x2C 0n\x2C 0xffffffffffffffffn);\n}\n\nfunction writeBigInt64LE(value\x2C offset = 0) {\n return writeBigU_Int64LE(\n this\x2C value\x2C offset\x2C -0x8000000000000000n\x2C 0x7fffffffffffffffn);\n}\n\nfunction writeBigInt64BE(value\x2C offset = 0) {\n return writeBigU_Int64BE(\n this\x2C value\x2C offset\x2C -0x8000000000000000n\x2C 0x7fffffffffffffffn);\n}\n\nfunction writeUIntLE(value\x2C offset\x2C byteLength) {\n if (byteLength === 6)\n return writeU_Int48LE(this\x2C value\x2C offset\x2C 0\x2C 0xffffffffffff);\n if (byteLength === 5)\n return writeU_Int40LE(this\x2C value\x2C offset\x2C 0\x2C 0xffffffffff);\n if (byteLength === 3)\n return writeU_Int24LE(this\x2C value\x2C offset\x2C 0\x2C 0xffffff);\n if (byteLength === 4)\n return writeU_Int32LE(this\x2C value\x2C offset\x2C 0\x2C 0xffffffff);\n if (byteLength === 2)\n return writeU_Int16LE(this\x2C value\x2C offset\x2C 0\x2C 0xffff);\n if (byteLength === 1)\n return writeU_Int8(this\x2C value\x2C offset\x2C 0\x2C 0xff);\n\n boundsError(byteLength\x2C 6\x2C 'byteLength');\n}\n\nfunction writeU_Int48LE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 5);\n\n const newVal = MathFloor(value * 2 ** -32);\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n buf[offset++] = newVal;\n buf[offset++] = (newVal >>> 8);\n return offset;\n}\n\nfunction writeU_Int40LE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 4);\n\n const newVal = value;\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n buf[offset++] = MathFloor(newVal * 2 ** -32);\n return offset;\n}\n\nfunction writeU_Int32LE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 3);\n\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n return offset;\n}\n\nfunction writeUInt32LE(value\x2C offset = 0) {\n return writeU_Int32LE(this\x2C value\x2C offset\x2C 0\x2C 0xffffffff);\n}\n\nfunction writeU_Int24LE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 2);\n\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n value = value >>> 8;\n buf[offset++] = value;\n return offset;\n}\n\nfunction writeU_Int16LE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 1);\n\n buf[offset++] = value;\n buf[offset++] = (value >>> 8);\n return offset;\n}\n\nfunction writeUInt16LE(value\x2C offset = 0) {\n return writeU_Int16LE(this\x2C value\x2C offset\x2C 0\x2C 0xffff);\n}\n\nfunction writeU_Int8(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n // `checkInt()` can not be used here because it checks two entries.\n validateNumber(offset\x2C 'offset');\n if (value > max || value < min) {\n throw new ERR_OUT_OF_RANGE('value'\x2C `>= ${min} and <= ${max}`\x2C value);\n }\n if (buf[offset] === undefined)\n boundsError(offset\x2C buf.length - 1);\n\n buf[offset] = value;\n return offset + 1;\n}\n\nfunction writeUInt8(value\x2C offset = 0) {\n return writeU_Int8(this\x2C value\x2C offset\x2C 0\x2C 0xff);\n}\n\nfunction writeUIntBE(value\x2C offset\x2C byteLength) {\n if (byteLength === 6)\n return writeU_Int48BE(this\x2C value\x2C offset\x2C 0\x2C 0xffffffffffff);\n if (byteLength === 5)\n return writeU_Int40BE(this\x2C value\x2C offset\x2C 0\x2C 0xffffffffff);\n if (byteLength === 3)\n return writeU_Int24BE(this\x2C value\x2C offset\x2C 0\x2C 0xffffff);\n if (byteLength === 4)\n return writeU_Int32BE(this\x2C value\x2C offset\x2C 0\x2C 0xffffffff);\n if (byteLength === 2)\n return writeU_Int16BE(this\x2C value\x2C offset\x2C 0\x2C 0xffff);\n if (byteLength === 1)\n return writeU_Int8(this\x2C value\x2C offset\x2C 0\x2C 0xff);\n\n boundsError(byteLength\x2C 6\x2C 'byteLength');\n}\n\nfunction writeU_Int48BE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 5);\n\n const newVal = MathFloor(value * 2 ** -32);\n buf[offset++] = (newVal >>> 8);\n buf[offset++] = newVal;\n buf[offset + 3] = value;\n value = value >>> 8;\n buf[offset + 2] = value;\n value = value >>> 8;\n buf[offset + 1] = value;\n value = value >>> 8;\n buf[offset] = value;\n return offset + 4;\n}\n\nfunction writeU_Int40BE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 4);\n\n buf[offset++] = MathFloor(value * 2 ** -32);\n buf[offset + 3] = value;\n value = value >>> 8;\n buf[offset + 2] = value;\n value = value >>> 8;\n buf[offset + 1] = value;\n value = value >>> 8;\n buf[offset] = value;\n return offset + 4;\n}\n\nfunction writeU_Int32BE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 3);\n\n buf[offset + 3] = value;\n value = value >>> 8;\n buf[offset + 2] = value;\n value = value >>> 8;\n buf[offset + 1] = value;\n value = value >>> 8;\n buf[offset] = value;\n return offset + 4;\n}\n\nfunction writeUInt32BE(value\x2C offset = 0) {\n return writeU_Int32BE(this\x2C value\x2C offset\x2C 0\x2C 0xffffffff);\n}\n\nfunction writeU_Int24BE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 2);\n\n buf[offset + 2] = value;\n value = value >>> 8;\n buf[offset + 1] = value;\n value = value >>> 8;\n buf[offset] = value;\n return offset + 3;\n}\n\nfunction writeU_Int16BE(buf\x2C value\x2C offset\x2C min\x2C max) {\n value = +value;\n checkInt(value\x2C min\x2C max\x2C buf\x2C offset\x2C 1);\n\n buf[offset++] = (value >>> 8);\n buf[offset++] = value;\n return offset;\n}\n\nfunction writeUInt16BE(value\x2C offset = 0) {\n return writeU_Int16BE(this\x2C value\x2C offset\x2C 0\x2C 0xffff);\n}\n\nfunction writeIntLE(value\x2C offset\x2C byteLength) {\n if (byteLength === 6)\n return writeU_Int48LE(this\x2C value\x2C offset\x2C -0x800000000000\x2C 0x7fffffffffff);\n if (byteLength === 5)\n return writeU_Int40LE(this\x2C value\x2C offset\x2C -0x8000000000\x2C 0x7fffffffff);\n if (byteLength === 3)\n return writeU_Int24LE(this\x2C value\x2C offset\x2C -0x800000\x2C 0x7fffff);\n if (byteLength === 4)\n return writeU_Int32LE(this\x2C value\x2C offset\x2C -0x80000000\x2C 0x7fffffff);\n if (byteLength === 2)\n return writeU_Int16LE(this\x2C value\x2C offset\x2C -0x8000\x2C 0x7fff);\n if (byteLength === 1)\n return writeU_Int8(this\x2C value\x2C offset\x2C -0x80\x2C 0x7f);\n\n boundsError(byteLength\x2C 6\x2C 'byteLength');\n}\n\nfunction writeInt32LE(value\x2C offset = 0) {\n return writeU_Int32LE(this\x2C value\x2C offset\x2C -0x80000000\x2C 0x7fffffff);\n}\n\nfunction writeInt16LE(value\x2C offset = 0) {\n return writeU_Int16LE(this\x2C value\x2C offset\x2C -0x8000\x2C 0x7fff);\n}\n\nfunction writeInt8(value\x2C offset = 0) {\n return writeU_Int8(this\x2C value\x2C offset\x2C -0x80\x2C 0x7f);\n}\n\nfunction writeIntBE(value\x2C offset\x2C byteLength) {\n if (byteLength === 6)\n return writeU_Int48BE(this\x2C value\x2C offset\x2C -0x800000000000\x2C 0x7fffffffffff);\n if (byteLength === 5)\n return writeU_Int40BE(this\x2C value\x2C offset\x2C -0x8000000000\x2C 0x7fffffffff);\n if (byteLength === 3)\n return writeU_Int24BE(this\x2C value\x2C offset\x2C -0x800000\x2C 0x7fffff);\n if (byteLength === 4)\n return writeU_Int32BE(this\x2C value\x2C offset\x2C -0x80000000\x2C 0x7fffffff);\n if (byteLength === 2)\n return writeU_Int16BE(this\x2C value\x2C offset\x2C -0x8000\x2C 0x7fff);\n if (byteLength === 1)\n return writeU_Int8(this\x2C value\x2C offset\x2C -0x80\x2C 0x7f);\n\n boundsError(byteLength\x2C 6\x2C 'byteLength');\n}\n\nfunction writeInt32BE(value\x2C offset = 0) {\n return writeU_Int32BE(this\x2C value\x2C offset\x2C -0x80000000\x2C 0x7fffffff);\n}\n\nfunction writeInt16BE(value\x2C offset = 0) {\n return writeU_Int16BE(this\x2C value\x2C offset\x2C -0x8000\x2C 0x7fff);\n}\n\n// Write floats.\nfunction writeDoubleForwards(val\x2C offset = 0) {\n val = +val;\n checkBounds(this\x2C offset\x2C 7);\n\n float64Array[0] = val;\n this[offset++] = uInt8Float64Array[0];\n this[offset++] = uInt8Float64Array[1];\n this[offset++] = uInt8Float64Array[2];\n this[offset++] = uInt8Float64Array[3];\n this[offset++] = uInt8Float64Array[4];\n this[offset++] = uInt8Float64Array[5];\n this[offset++] = uInt8Float64Array[6];\n this[offset++] = uInt8Float64Array[7];\n return offset;\n}\n\nfunction writeDoubleBackwards(val\x2C offset = 0) {\n val = +val;\n checkBounds(this\x2C offset\x2C 7);\n\n float64Array[0] = val;\n this[offset++] = uInt8Float64Array[7];\n this[offset++] = uInt8Float64Array[6];\n this[offset++] = uInt8Float64Array[5];\n this[offset++] = uInt8Float64Array[4];\n this[offset++] = uInt8Float64Array[3];\n this[offset++] = uInt8Float64Array[2];\n this[offset++] = uInt8Float64Array[1];\n this[offset++] = uInt8Float64Array[0];\n return offset;\n}\n\nfunction writeFloatForwards(val\x2C offset = 0) {\n val = +val;\n checkBounds(this\x2C offset\x2C 3);\n\n float32Array[0] = val;\n this[offset++] = uInt8Float32Array[0];\n this[offset++] = uInt8Float32Array[1];\n this[offset++] = uInt8Float32Array[2];\n this[offset++] = uInt8Float32Array[3];\n return offset;\n}\n\nfunction writeFloatBackwards(val\x2C offset = 0) {\n val = +val;\n checkBounds(this\x2C offset\x2C 3);\n\n float32Array[0] = val;\n this[offset++] = uInt8Float32Array[3];\n this[offset++] = uInt8Float32Array[2];\n this[offset++] = uInt8Float32Array[1];\n this[offset++] = uInt8Float32Array[0];\n return offset;\n}\n\nclass FastBuffer extends Uint8Array {\n // Using an explicit constructor here is necessary to avoid relying on\n // `Array.prototype[Symbol.iterator]`\x2C which can be mutated by users.\n // eslint-disable-next-line no-useless-constructor\n constructor(bufferOrLength\x2C byteOffset\x2C length) {\n super(bufferOrLength\x2C byteOffset\x2C length);\n }\n}\n\nfunction addBufferPrototypeMethods(proto) {\n proto.readBigUInt64LE = readBigUInt64LE;\n proto.readBigUInt64BE = readBigUInt64BE;\n proto.readBigUint64LE = readBigUInt64LE;\n proto.readBigUint64BE = readBigUInt64BE;\n proto.readBigInt64LE = readBigInt64LE;\n proto.readBigInt64BE = readBigInt64BE;\n proto.writeBigUInt64LE = writeBigUInt64LE;\n proto.writeBigUInt64BE = writeBigUInt64BE;\n proto.writeBigUint64LE = writeBigUInt64LE;\n proto.writeBigUint64BE = writeBigUInt64BE;\n proto.writeBigInt64LE = writeBigInt64LE;\n proto.writeBigInt64BE = writeBigInt64BE;\n\n proto.readUIntLE = readUIntLE;\n proto.readUInt32LE = readUInt32LE;\n proto.readUInt16LE = readUInt16LE;\n proto.readUInt8 = readUInt8;\n proto.readUIntBE = readUIntBE;\n proto.readUInt32BE = readUInt32BE;\n proto.readUInt16BE = readUInt16BE;\n proto.readUintLE = readUIntLE;\n proto.readUint32LE = readUInt32LE;\n proto.readUint16LE = readUInt16LE;\n proto.readUint8 = readUInt8;\n proto.readUintBE = readUIntBE;\n proto.readUint32BE = readUInt32BE;\n proto.readUint16BE = readUInt16BE;\n proto.readIntLE = readIntLE;\n proto.readInt32LE = readInt32LE;\n proto.readInt16LE = readInt16LE;\n proto.readInt8 = readInt8;\n proto.readIntBE = readIntBE;\n proto.readInt32BE = readInt32BE;\n proto.readInt16BE = readInt16BE;\n\n proto.writeUIntLE = writeUIntLE;\n proto.writeUInt32LE = writeUInt32LE;\n proto.writeUInt16LE = writeUInt16LE;\n proto.writeUInt8 = writeUInt8;\n proto.writeUIntBE = writeUIntBE;\n proto.writeUInt32BE = writeUInt32BE;\n proto.writeUInt16BE = writeUInt16BE;\n proto.writeUintLE = writeUIntLE;\n proto.writeUint32LE = writeUInt32LE;\n proto.writeUint16LE = writeUInt16LE;\n proto.writeUint8 = writeUInt8;\n proto.writeUintBE = writeUIntBE;\n proto.writeUint32BE = writeUInt32BE;\n proto.writeUint16BE = writeUInt16BE;\n proto.writeIntLE = writeIntLE;\n proto.writeInt32LE = writeInt32LE;\n proto.writeInt16LE = writeInt16LE;\n proto.writeInt8 = writeInt8;\n proto.writeIntBE = writeIntBE;\n proto.writeInt32BE = writeInt32BE;\n proto.writeInt16BE = writeInt16BE;\n\n proto.readFloatLE = bigEndian ? readFloatBackwards : readFloatForwards;\n proto.readFloatBE = bigEndian ? readFloatForwards : readFloatBackwards;\n proto.readDoubleLE = bigEndian ? readDoubleBackwards : readDoubleForwards;\n proto.readDoubleBE = bigEndian ? readDoubleForwards : readDoubleBackwards;\n proto.writeFloatLE = bigEndian ? writeFloatBackwards : writeFloatForwards;\n proto.writeFloatBE = bigEndian ? writeFloatForwards : writeFloatBackwards;\n proto.writeDoubleLE = bigEndian ? writeDoubleBackwards : writeDoubleForwards;\n proto.writeDoubleBE = bigEndian ? writeDoubleForwards : writeDoubleBackwards;\n\n proto.asciiSlice = asciiSlice;\n proto.base64Slice = base64Slice;\n proto.base64urlSlice = base64urlSlice;\n proto.latin1Slice = latin1Slice;\n proto.hexSlice = hexSlice;\n proto.ucs2Slice = ucs2Slice;\n proto.utf8Slice = utf8Slice;\n proto.asciiWrite = asciiWrite;\n proto.base64Write = base64Write;\n proto.base64urlWrite = base64urlWrite;\n proto.latin1Write = latin1Write;\n proto.hexWrite = hexWrite;\n proto.ucs2Write = ucs2Write;\n proto.utf8Write = utf8Write;\n}\n\n// This would better be placed in internal/worker/io.js\x2C but that doesn't work\n// because Buffer needs this and that would introduce a cyclic dependency.\nfunction markAsUntransferable(obj) {\n if ((typeof obj !== 'object' && typeof obj !== 'function') || obj === null)\n return; // This object is a primitive and therefore already untransferable.\n setHiddenValue(obj\x2C untransferable_object_private_symbol\x2C true);\n}\n\n// A toggle used to access the zero fill setting of the array buffer allocator\n// in C++.\n// |zeroFill| can be undefined when running inside an isolate where we\n// do not own the ArrayBuffer allocator. Zero fill is always on in that case.\nlet zeroFill = getZeroFillToggle();\nfunction createUnsafeBuffer(size) {\n zeroFill[0] = 0;\n try {\n return new FastBuffer(size);\n } finally {\n zeroFill[0] = 1;\n }\n}\n\n// The connection between the JS land zero fill toggle and the\n// C++ one in the NodeArrayBufferAllocator gets lost if the toggle\n// is deserialized from the snapshot\x2C because V8 owns the underlying\n// memory of this toggle. This resets the connection.\nfunction reconnectZeroFillToggle() {\n zeroFill = getZeroFillToggle();\n}\n\nmodule.exports = {\n FastBuffer\x2C\n addBufferPrototypeMethods\x2C\n markAsUntransferable\x2C\n createUnsafeBuffer\x2C\n readUInt16BE\x2C\n readUInt32BE\x2C\n reconnectZeroFillToggle\n};\n code-source-info,0x337ca0b03846,19,30717,30757,C0O30724C5O30735C11O30733C18O30756,, code-creation,LazyCompile,10,9860,0x337ca0b06096,432,patchProcessObject node:internal/bootstrap/pre_execution:81:28,0x2ba068cfdd98,~ code-source-info,0x337ca0b06096,92,2409,4251,C0O2443C6O2443C11O2489C19O2489C24O2727C30O2727C35O2765C40O2766C46O2696C51O2708C56O2791C61O2806C65O2818C68O2826C75O2840C79O2859C90O2880C98O2966C104O2970C111O2859C116O2982C119O2990C129O3008C133O2998C137O3021C144O3048C151O3052C158O3066C164O3100C171O3104C178O3066C185O3182C191O3182C199O3215C202O3223C210O3238C218O3254C225O3258C229O3238C234O3231C244O3426C253O3426C258O3472C267O3472C272O3525C281O3525C286O3585C295O3585C300O3643C309O3643C314O3703C323O3703C328O3767C337O3767C342O3832C351O3832C356O3903C365O3903C370O3973C379O3973C384O4033C393O4033C398O4103C409O4103C414O4173C425O4173C431O4250,, code-creation,LazyCompile,10,9944,0x337ca0b06726,113,getFastAPIs node:internal/process/per_thread:57:21,0x44edd6fde80,~ script-source,23,node:internal/process/per_thread,'use strict';\n\n// This files contains process bootstrappers that can be\n// run when setting up each thread\x2C including the main\n// thread and the worker threads.\n\nconst {\n ArrayPrototypeEvery\x2C\n ArrayPrototypeForEach\x2C\n ArrayPrototypeIncludes\x2C\n ArrayPrototypeMap\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypeSplice\x2C\n BigUint64Array\x2C\n Float64Array\x2C\n NumberMAX_SAFE_INTEGER\x2C\n ObjectFreeze\x2C\n ReflectApply\x2C\n RegExpPrototypeTest\x2C\n SafeArrayIterator\x2C\n Set\x2C\n SetPrototypeEntries\x2C\n SetPrototypeValues\x2C\n StringPrototypeEndsWith\x2C\n StringPrototypeReplace\x2C\n StringPrototypeSlice\x2C\n StringPrototypeStartsWith\x2C\n Symbol\x2C\n SymbolIterator\x2C\n Uint32Array\x2C\n} = primordials;\n\nconst {\n errnoException\x2C\n codes: {\n ERR_ASSERTION\x2C\n ERR_INVALID_ARG_TYPE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_OUT_OF_RANGE\x2C\n ERR_UNKNOWN_SIGNAL\n }\n} = require('internal/errors');\nconst format = require('internal/util/inspect').format;\nconst {\n validateArray\x2C\n validateNumber\x2C\n validateObject\x2C\n} = require('internal/validators');\nconst constants = internalBinding('constants').os.signals;\n\nconst kInternal = Symbol('internal properties');\n\nfunction assert(x\x2C msg) {\n if (!x) throw new ERR_ASSERTION(msg || 'assertion error');\n}\n\nfunction getFastAPIs(binding) {\n const {\n hrtime: _hrtime\n } = binding.getFastAPIs();\n\n // The 3 entries filled in by the original process.hrtime contains\n // the upper/lower 32 bits of the second part of the value\x2C\n // and the remaining nanoseconds of the value.\n const hrValues = new Uint32Array(_hrtime.buffer);\n\n function hrtime(time) {\n _hrtime.hrtime();\n\n if (time !== undefined) {\n validateArray(time\x2C 'time');\n if (time.length !== 2) {\n throw new ERR_OUT_OF_RANGE('time'\x2C 2\x2C time.length);\n }\n\n const sec = (hrValues[0] * 0x100000000 + hrValues[1]) - time[0];\n const nsec = hrValues[2] - time[1];\n const needsBorrow = nsec < 0;\n return [needsBorrow ? sec - 1 : sec\x2C needsBorrow ? nsec + 1e9 : nsec];\n }\n\n return [\n hrValues[0] * 0x100000000 + hrValues[1]\x2C\n hrValues[2]\x2C\n ];\n }\n\n // Use a BigUint64Array in the closure because this is actually a bit\n // faster than simply returning a BigInt from C++ in V8 7.1.\n const hrBigintValues = new BigUint64Array(_hrtime.buffer\x2C 0\x2C 1);\n function hrtimeBigInt() {\n _hrtime.hrtimeBigInt();\n return hrBigintValues[0];\n }\n\n return {\n hrtime\x2C\n hrtimeBigInt\x2C\n };\n}\n\n// The execution of this function itself should not cause any side effects.\nfunction wrapProcessMethods(binding) {\n const {\n cpuUsage: _cpuUsage\x2C\n memoryUsage: _memoryUsage\x2C\n rss\x2C\n resourceUsage: _resourceUsage\n } = binding;\n\n function _rawDebug(...args) {\n binding._rawDebug(ReflectApply(format\x2C null\x2C args));\n }\n\n // Create the argument array that will be passed to the native function.\n const cpuValues = new Float64Array(2);\n\n // Replace the native function with the JS version that calls the native\n // function.\n function cpuUsage(prevValue) {\n // If a previous value was passed in\x2C ensure it has the correct shape.\n if (prevValue) {\n if (!previousValueIsValid(prevValue.user)) {\n validateObject(prevValue\x2C 'prevValue');\n\n validateNumber(prevValue.user\x2C 'prevValue.user');\n throw new ERR_INVALID_ARG_VALUE.RangeError('prevValue.user'\x2C\n prevValue.user);\n }\n\n if (!previousValueIsValid(prevValue.system)) {\n validateNumber(prevValue.system\x2C 'prevValue.system');\n throw new ERR_INVALID_ARG_VALUE.RangeError('prevValue.system'\x2C\n prevValue.system);\n }\n }\n\n // Call the native function to get the current values.\n _cpuUsage(cpuValues);\n\n // If a previous value was passed in\x2C return diff of current from previous.\n if (prevValue) {\n return {\n user: cpuValues[0] - prevValue.user\x2C\n system: cpuValues[1] - prevValue.system\n };\n }\n\n // If no previous value passed in\x2C return current value.\n return {\n user: cpuValues[0]\x2C\n system: cpuValues[1]\n };\n }\n\n // Ensure that a previously passed in value is valid. Currently\x2C the native\n // implementation always returns numbers <= Number.MAX_SAFE_INTEGER.\n function previousValueIsValid(num) {\n return typeof num === 'number' &&\n num <= NumberMAX_SAFE_INTEGER &&\n num >= 0;\n }\n\n const memValues = new Float64Array(5);\n function memoryUsage() {\n _memoryUsage(memValues);\n return {\n rss: memValues[0]\x2C\n heapTotal: memValues[1]\x2C\n heapUsed: memValues[2]\x2C\n external: memValues[3]\x2C\n arrayBuffers: memValues[4]\n };\n }\n\n memoryUsage.rss = rss;\n\n function exit(code) {\n if (code || code === 0)\n process.exitCode = code;\n\n if (!process._exiting) {\n process._exiting = true;\n process.emit('exit'\x2C process.exitCode || 0);\n }\n // FIXME(joyeecheung): This is an undocumented API that gets monkey-patched\n // in the user land. Either document it\x2C or deprecate it in favor of a\n // better public alternative.\n process.reallyExit(process.exitCode || 0);\n }\n\n function kill(pid\x2C sig) {\n let err;\n\n // eslint-disable-next-line eqeqeq\n if (pid != (pid | 0)) {\n throw new ERR_INVALID_ARG_TYPE('pid'\x2C 'number'\x2C pid);\n }\n\n // Preserve null signal\n if (sig === (sig | 0)) {\n // XXX(joyeecheung): we have to use process._kill here because\n // it's monkey-patched by tests.\n err = process._kill(pid\x2C sig);\n } else {\n sig = sig || 'SIGTERM';\n if (constants[sig]) {\n err = process._kill(pid\x2C constants[sig]);\n } else {\n throw new ERR_UNKNOWN_SIGNAL(sig);\n }\n }\n\n if (err)\n throw errnoException(err\x2C 'kill');\n\n return true;\n }\n\n const resourceValues = new Float64Array(16);\n function resourceUsage() {\n _resourceUsage(resourceValues);\n return {\n userCPUTime: resourceValues[0]\x2C\n systemCPUTime: resourceValues[1]\x2C\n maxRSS: resourceValues[2]\x2C\n sharedMemorySize: resourceValues[3]\x2C\n unsharedDataSize: resourceValues[4]\x2C\n unsharedStackSize: resourceValues[5]\x2C\n minorPageFault: resourceValues[6]\x2C\n majorPageFault: resourceValues[7]\x2C\n swappedOut: resourceValues[8]\x2C\n fsRead: resourceValues[9]\x2C\n fsWrite: resourceValues[10]\x2C\n ipcSent: resourceValues[11]\x2C\n ipcReceived: resourceValues[12]\x2C\n signalsCount: resourceValues[13]\x2C\n voluntaryContextSwitches: resourceValues[14]\x2C\n involuntaryContextSwitches: resourceValues[15]\n };\n }\n\n\n return {\n _rawDebug\x2C\n cpuUsage\x2C\n resourceUsage\x2C\n memoryUsage\x2C\n kill\x2C\n exit\n };\n}\n\nconst replaceUnderscoresRegex = /_/g;\nconst leadingDashesRegex = /^--?/;\nconst trailingValuesRegex = /=.*$/;\n\n// This builds the initial process.allowedNodeEnvironmentFlags\n// from data in the config binding.\nfunction buildAllowedFlags() {\n const {\n envSettings: { kAllowedInEnvironment }\x2C\n types: { kBoolean }\x2C\n } = internalBinding('options');\n const { options\x2C aliases } = require('internal/options');\n\n const allowedNodeEnvironmentFlags = [];\n for (const { 0: name\x2C 1: info } of options) {\n if (info.envVarSettings === kAllowedInEnvironment) {\n ArrayPrototypePush(allowedNodeEnvironmentFlags\x2C name);\n if (info.type === kBoolean) {\n const negatedName = `--no-${name.slice(2)}`;\n ArrayPrototypePush(allowedNodeEnvironmentFlags\x2C negatedName);\n }\n }\n }\n\n function isAccepted(to) {\n if (!StringPrototypeStartsWith(to\x2C '-') || to === '--') return true;\n const recursiveExpansion = aliases.get(to);\n if (recursiveExpansion) {\n if (recursiveExpansion[0] === to)\n ArrayPrototypeSplice(recursiveExpansion\x2C 0\x2C 1);\n return ArrayPrototypeEvery(recursiveExpansion\x2C isAccepted);\n }\n return options.get(to).envVarSettings === kAllowedInEnvironment;\n }\n for (const { 0: from\x2C 1: expansion } of aliases) {\n if (ArrayPrototypeEvery(expansion\x2C isAccepted)) {\n let canonical = from;\n if (StringPrototypeEndsWith(canonical\x2C '='))\n canonical = StringPrototypeSlice(canonical\x2C 0\x2C canonical.length - 1);\n if (StringPrototypeEndsWith(canonical\x2C ' '))\n canonical = StringPrototypeSlice(canonical\x2C 0\x2C canonical.length - 4);\n ArrayPrototypePush(allowedNodeEnvironmentFlags\x2C canonical);\n }\n }\n\n const trimLeadingDashes =\n (flag) => StringPrototypeReplace(flag\x2C leadingDashesRegex\x2C '');\n\n // Save these for comparison against flags provided to\n // process.allowedNodeEnvironmentFlags.has() which lack leading dashes.\n const nodeFlags = ArrayPrototypeMap(allowedNodeEnvironmentFlags\x2C\n trimLeadingDashes);\n\n class NodeEnvironmentFlagsSet extends Set {\n constructor(array) {\n super();\n this[kInternal] = { array };\n }\n\n add() {\n // No-op\x2C `Set` API compatible\n return this;\n }\n\n delete() {\n // No-op\x2C `Set` API compatible\n return false;\n }\n\n clear() {\n // No-op\x2C `Set` API compatible\n }\n\n has(key) {\n // This will return `true` based on various possible\n // permutations of a flag\x2C including present/missing leading\n // dash(es) and/or underscores-for-dashes.\n // Strips any values after `=`\x2C inclusive.\n // TODO(addaleax): It might be more flexible to run the option parser\n // on a dummy option set and see whether it rejects the argument or\n // not.\n if (typeof key === 'string') {\n key = StringPrototypeReplace(key\x2C replaceUnderscoresRegex\x2C '-');\n if (RegExpPrototypeTest(leadingDashesRegex\x2C key)) {\n key = StringPrototypeReplace(key\x2C trailingValuesRegex\x2C '');\n return ArrayPrototypeIncludes(this[kInternal].array\x2C key);\n }\n return ArrayPrototypeIncludes(nodeFlags\x2C key);\n }\n return false;\n }\n\n entries() {\n this[kInternal].set ??=\n new Set(new SafeArrayIterator(this[kInternal].array));\n return SetPrototypeEntries(this[kInternal].set);\n }\n\n forEach(callback\x2C thisArg = undefined) {\n ArrayPrototypeForEach(\n this[kInternal].array\x2C\n (v) => ReflectApply(callback\x2C thisArg\x2C [v\x2C v\x2C this])\n );\n }\n\n get size() {\n return this[kInternal].array.length;\n }\n\n values() {\n this[kInternal].set ??=\n new Set(new SafeArrayIterator(this[kInternal].array));\n return SetPrototypeValues(this[kInternal].set);\n }\n }\n NodeEnvironmentFlagsSet.prototype.keys =\n NodeEnvironmentFlagsSet.prototype[SymbolIterator] =\n NodeEnvironmentFlagsSet.prototype.values;\n\n ObjectFreeze(NodeEnvironmentFlagsSet.prototype.constructor);\n ObjectFreeze(NodeEnvironmentFlagsSet.prototype);\n\n return ObjectFreeze(new NodeEnvironmentFlagsSet(\n allowedNodeEnvironmentFlags\n ));\n}\n\n// Lazy load internal/trace_events_async_hooks only if the async_hooks\n// trace event category is enabled.\nlet traceEventsAsyncHook;\n// Dynamically enable/disable the traceEventsAsyncHook\nfunction toggleTraceCategoryState(asyncHooksEnabled) {\n if (asyncHooksEnabled) {\n if (!traceEventsAsyncHook) {\n traceEventsAsyncHook =\n require('internal/trace_events_async_hooks').createHook();\n }\n traceEventsAsyncHook.enable();\n } else if (traceEventsAsyncHook) {\n traceEventsAsyncHook.disable();\n }\n}\n\nmodule.exports = {\n toggleTraceCategoryState\x2C\n getFastAPIs\x2C\n assert\x2C\n buildAllowedFlags\x2C\n wrapProcessMethods\n};\n code-source-info,0x337ca0b06726,23,1229,2412,C0O1229C24O1285C29O1285C34O1263C40O1500C50O1524C57O1500C62O1500C64O2232C74O2259C86O2232C91O2232C93O2367C100O2380C106O2392C112O2410,, StoreIC,0x337ca0b0678a,10164,97,5,X,X,0x000000000000,hrtime,, StoreIC,0x337ca0b06790,10170,98,5,X,X,0x000000000000,hrtimeBigInt,, StoreIC,0x337ca0b060e1,10174,94,25,X,X,0x000000000000,bigint,, StoreIC,0x337ca0b06101,10180,99,24,X,X,0x000000000000,value,, code-creation,LazyCompile,10,10261,0x337ca0b07df6,175,resolve node:path:1091:10,0x23787e1a8488,~ script-source,35,node:path,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n FunctionPrototypeBind\x2C\n StringPrototypeCharCodeAt\x2C\n StringPrototypeIndexOf\x2C\n StringPrototypeLastIndexOf\x2C\n StringPrototypeReplace\x2C\n StringPrototypeSlice\x2C\n StringPrototypeToLowerCase\x2C\n} = primordials;\n\nconst {\n CHAR_UPPERCASE_A\x2C\n CHAR_LOWERCASE_A\x2C\n CHAR_UPPERCASE_Z\x2C\n CHAR_LOWERCASE_Z\x2C\n CHAR_DOT\x2C\n CHAR_FORWARD_SLASH\x2C\n CHAR_BACKWARD_SLASH\x2C\n CHAR_COLON\x2C\n CHAR_QUESTION_MARK\x2C\n} = require('internal/constants');\nconst {\n validateObject\x2C\n validateString\x2C\n} = require('internal/validators');\n\nconst platformIsWin32 = (process.platform === 'win32');\n\nfunction isPathSeparator(code) {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n}\n\nfunction isPosixPathSeparator(code) {\n return code === CHAR_FORWARD_SLASH;\n}\n\nfunction isWindowsDeviceRoot(code) {\n return (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) ||\n (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z);\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeString(path\x2C allowAboveRoot\x2C separator\x2C isPathSeparator) {\n let res = '';\n let lastSegmentLength = 0;\n let lastSlash = -1;\n let dots = 0;\n let code = 0;\n for (let i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = StringPrototypeCharCodeAt(path\x2C i);\n else if (isPathSeparator(code))\n break;\n else\n code = CHAR_FORWARD_SLASH;\n\n if (isPathSeparator(code)) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 ||\n StringPrototypeCharCodeAt(res\x2C res.length - 1) !== CHAR_DOT ||\n StringPrototypeCharCodeAt(res\x2C res.length - 2) !== CHAR_DOT) {\n if (res.length > 2) {\n const lastSlashIndex = StringPrototypeLastIndexOf(res\x2C separator);\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = StringPrototypeSlice(res\x2C 0\x2C lastSlashIndex);\n lastSegmentLength =\n res.length - 1 - StringPrototypeLastIndexOf(res\x2C separator);\n }\n lastSlash = i;\n dots = 0;\n continue;\n } else if (res.length !== 0) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n res += res.length > 0 ? `${separator}..` : '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += `${separator}${StringPrototypeSlice(path\x2C lastSlash + 1\x2C i)}`;\n else\n res = StringPrototypeSlice(path\x2C lastSlash + 1\x2C i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === CHAR_DOT && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\n/**\n * @param {string} sep\n * @param {{\n * dir?: string;\n * root?: string;\n * base?: string;\n * name?: string;\n * ext?: string;\n * }} pathObject\n * @returns {string}\n */\nfunction _format(sep\x2C pathObject) {\n validateObject(pathObject\x2C 'pathObject');\n const dir = pathObject.dir || pathObject.root;\n const base = pathObject.base ||\n `${pathObject.name || ''}${pathObject.ext || ''}`;\n if (!dir) {\n return base;\n }\n return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep}${base}`;\n}\n\nconst win32 = {\n /**\n * path.resolve([from ...]\x2C to)\n * @param {...string} args\n * @returns {string}\n */\n resolve(...args) {\n let resolvedDevice = '';\n let resolvedTail = '';\n let resolvedAbsolute = false;\n\n for (let i = args.length - 1; i >= -1; i--) {\n let path;\n if (i >= 0) {\n path = args[i];\n validateString(path\x2C 'path');\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n } else if (resolvedDevice.length === 0) {\n path = process.cwd();\n } else {\n // Windows has the concept of drive-specific current working\n // directories. If we've resolved a drive letter but not yet an\n // absolute path\x2C get cwd for that drive\x2C or the process cwd if\n // the drive cwd is not available. We're sure the device is not\n // a UNC path at this points\x2C because UNC paths are always absolute.\n path = process.env[`=${resolvedDevice}`] || process.cwd();\n\n // Verify that a cwd was found and that it actually points\n // to our drive. If not\x2C default to the drive's root.\n if (path === undefined ||\n (StringPrototypeToLowerCase(StringPrototypeSlice(path\x2C 0\x2C 2)) !==\n StringPrototypeToLowerCase(resolvedDevice) &&\n StringPrototypeCharCodeAt(path\x2C 2) === CHAR_BACKWARD_SLASH)) {\n path = `${resolvedDevice}\\\\`;\n }\n }\n\n const len = path.length;\n let rootEnd = 0;\n let device = '';\n let isAbsolute = false;\n const code = StringPrototypeCharCodeAt(path\x2C 0);\n\n // Try to match a root\n if (len === 1) {\n if (isPathSeparator(code)) {\n // `path` contains just a path separator\n rootEnd = 1;\n isAbsolute = true;\n }\n } else if (isPathSeparator(code)) {\n // Possible UNC root\n\n // If we started with a separator\x2C we know we at least have an\n // absolute path of some kind (UNC or otherwise)\n isAbsolute = true;\n\n if (isPathSeparator(StringPrototypeCharCodeAt(path\x2C 1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len &&\n !isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j < len && j !== last) {\n const firstPart = StringPrototypeSlice(path\x2C last\x2C j);\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len &&\n isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len &&\n !isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j === len || j !== last) {\n // We matched a UNC root\n device =\n `\\\\\\\\${firstPart}\\\\${StringPrototypeSlice(path\x2C last\x2C j)}`;\n rootEnd = j;\n }\n }\n }\n } else {\n rootEnd = 1;\n }\n } else if (isWindowsDeviceRoot(code) &&\n StringPrototypeCharCodeAt(path\x2C 1) === CHAR_COLON) {\n // Possible device root\n device = StringPrototypeSlice(path\x2C 0\x2C 2);\n rootEnd = 2;\n if (len > 2 && isPathSeparator(StringPrototypeCharCodeAt(path\x2C 2))) {\n // Treat separator following drive name as an absolute path\n // indicator\n isAbsolute = true;\n rootEnd = 3;\n }\n }\n\n if (device.length > 0) {\n if (resolvedDevice.length > 0) {\n if (StringPrototypeToLowerCase(device) !==\n StringPrototypeToLowerCase(resolvedDevice))\n // This path points to another device so it is not applicable\n continue;\n } else {\n resolvedDevice = device;\n }\n }\n\n if (resolvedAbsolute) {\n if (resolvedDevice.length > 0)\n break;\n } else {\n resolvedTail =\n `${StringPrototypeSlice(path\x2C rootEnd)}\\\\${resolvedTail}`;\n resolvedAbsolute = isAbsolute;\n if (isAbsolute && resolvedDevice.length > 0) {\n break;\n }\n }\n }\n\n // At this point the path should be resolved to a full absolute path\x2C\n // but handle relative paths to be safe (might happen when process.cwd()\n // fails)\n\n // Normalize the tail path\n resolvedTail = normalizeString(resolvedTail\x2C !resolvedAbsolute\x2C '\\\\'\x2C\n isPathSeparator);\n\n return resolvedAbsolute ?\n `${resolvedDevice}\\\\${resolvedTail}` :\n `${resolvedDevice}${resolvedTail}` || '.';\n }\x2C\n\n /**\n * @param {string} path\n * @returns {string}\n */\n normalize(path) {\n validateString(path\x2C 'path');\n const len = path.length;\n if (len === 0)\n return '.';\n let rootEnd = 0;\n let device;\n let isAbsolute = false;\n const code = StringPrototypeCharCodeAt(path\x2C 0);\n\n // Try to match a root\n if (len === 1) {\n // `path` contains just a single char\x2C exit early to avoid\n // unnecessary work\n return isPosixPathSeparator(code) ? '\\\\' : path;\n }\n if (isPathSeparator(code)) {\n // Possible UNC root\n\n // If we started with a separator\x2C we know we at least have an absolute\n // path of some kind (UNC or otherwise)\n isAbsolute = true;\n\n if (isPathSeparator(StringPrototypeCharCodeAt(path\x2C 1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len &&\n !isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j < len && j !== last) {\n const firstPart = StringPrototypeSlice(path\x2C last\x2C j);\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len &&\n isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len &&\n !isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n // Return the normalized version of the UNC root since there\n // is nothing left to process\n return `\\\\\\\\${firstPart}\\\\${StringPrototypeSlice(path\x2C last)}\\\\`;\n }\n if (j !== last) {\n // We matched a UNC root with leftovers\n device =\n `\\\\\\\\${firstPart}\\\\${StringPrototypeSlice(path\x2C last\x2C j)}`;\n rootEnd = j;\n }\n }\n }\n } else {\n rootEnd = 1;\n }\n } else if (isWindowsDeviceRoot(code) &&\n StringPrototypeCharCodeAt(path\x2C 1) === CHAR_COLON) {\n // Possible device root\n device = StringPrototypeSlice(path\x2C 0\x2C 2);\n rootEnd = 2;\n if (len > 2 && isPathSeparator(StringPrototypeCharCodeAt(path\x2C 2))) {\n // Treat separator following drive name as an absolute path\n // indicator\n isAbsolute = true;\n rootEnd = 3;\n }\n }\n\n let tail = rootEnd < len ?\n normalizeString(StringPrototypeSlice(path\x2C rootEnd)\x2C\n !isAbsolute\x2C '\\\\'\x2C isPathSeparator) :\n '';\n if (tail.length === 0 && !isAbsolute)\n tail = '.';\n if (tail.length > 0 &&\n isPathSeparator(StringPrototypeCharCodeAt(path\x2C len - 1)))\n tail += '\\\\';\n if (device === undefined) {\n return isAbsolute ? `\\\\${tail}` : tail;\n }\n return isAbsolute ? `${device}\\\\${tail}` : `${device}${tail}`;\n }\x2C\n\n /**\n * @param {string} path\n * @returns {boolean}\n */\n isAbsolute(path) {\n validateString(path\x2C 'path');\n const len = path.length;\n if (len === 0)\n return false;\n\n const code = StringPrototypeCharCodeAt(path\x2C 0);\n return isPathSeparator(code) ||\n // Possible device root\n (len > 2 &&\n isWindowsDeviceRoot(code) &&\n StringPrototypeCharCodeAt(path\x2C 1) === CHAR_COLON &&\n isPathSeparator(StringPrototypeCharCodeAt(path\x2C 2)));\n }\x2C\n\n /**\n * @param {...string} args\n * @returns {string}\n */\n join(...args) {\n if (args.length === 0)\n return '.';\n\n let joined;\n let firstPart;\n for (let i = 0; i < args.length; ++i) {\n const arg = args[i];\n validateString(arg\x2C 'path');\n if (arg.length > 0) {\n if (joined === undefined)\n joined = firstPart = arg;\n else\n joined += `\\\\${arg}`;\n }\n }\n\n if (joined === undefined)\n return '.';\n\n // Make sure that the joined path doesn't start with two slashes\x2C because\n // normalize() will mistake it for a UNC path then.\n //\n // This step is skipped when it is very clear that the user actually\n // intended to point at a UNC path. This is assumed when the first\n // non-empty string arguments starts with exactly two slashes followed by\n // at least one more non-slash character.\n //\n // Note that for normalize() to treat a path as a UNC path it needs to\n // have at least 2 components\x2C so we don't filter for that here.\n // This means that the user can use join to construct UNC paths from\n // a server name and a share name; for example:\n // path.join('//server'\x2C 'share') -> '\\\\\\\\server\\\\share\\\\')\n let needsReplace = true;\n let slashCount = 0;\n if (isPathSeparator(StringPrototypeCharCodeAt(firstPart\x2C 0))) {\n ++slashCount;\n const firstLen = firstPart.length;\n if (firstLen > 1 &&\n isPathSeparator(StringPrototypeCharCodeAt(firstPart\x2C 1))) {\n ++slashCount;\n if (firstLen > 2) {\n if (isPathSeparator(StringPrototypeCharCodeAt(firstPart\x2C 2)))\n ++slashCount;\n else {\n // We matched a UNC path in the first part\n needsReplace = false;\n }\n }\n }\n }\n if (needsReplace) {\n // Find any more consecutive slashes we need to replace\n while (slashCount < joined.length &&\n isPathSeparator(StringPrototypeCharCodeAt(joined\x2C slashCount))) {\n slashCount++;\n }\n\n // Replace the slashes if needed\n if (slashCount >= 2)\n joined = `\\\\${StringPrototypeSlice(joined\x2C slashCount)}`;\n }\n\n return win32.normalize(joined);\n }\x2C\n\n /**\n * It will solve the relative path from `from` to `to`\x2C for instancee\n * from = 'C:\\\\orandea\\\\test\\\\aaa'\n * to = 'C:\\\\orandea\\\\impl\\\\bbb'\n * The output of the function should be: '..\\\\..\\\\impl\\\\bbb'\n * @param {string} from\n * @param {string} to\n * @returns {string}\n */\n relative(from\x2C to) {\n validateString(from\x2C 'from');\n validateString(to\x2C 'to');\n\n if (from === to)\n return '';\n\n const fromOrig = win32.resolve(from);\n const toOrig = win32.resolve(to);\n\n if (fromOrig === toOrig)\n return '';\n\n from = StringPrototypeToLowerCase(fromOrig);\n to = StringPrototypeToLowerCase(toOrig);\n\n if (from === to)\n return '';\n\n // Trim any leading backslashes\n let fromStart = 0;\n while (fromStart < from.length &&\n StringPrototypeCharCodeAt(from\x2C fromStart) === CHAR_BACKWARD_SLASH) {\n fromStart++;\n }\n // Trim trailing backslashes (applicable to UNC paths only)\n let fromEnd = from.length;\n while (\n fromEnd - 1 > fromStart &&\n StringPrototypeCharCodeAt(from\x2C fromEnd - 1) === CHAR_BACKWARD_SLASH\n ) {\n fromEnd--;\n }\n const fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n let toStart = 0;\n while (toStart < to.length &&\n StringPrototypeCharCodeAt(to\x2C toStart) === CHAR_BACKWARD_SLASH) {\n toStart++;\n }\n // Trim trailing backslashes (applicable to UNC paths only)\n let toEnd = to.length;\n while (toEnd - 1 > toStart &&\n StringPrototypeCharCodeAt(to\x2C toEnd - 1) === CHAR_BACKWARD_SLASH) {\n toEnd--;\n }\n const toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n const length = fromLen < toLen ? fromLen : toLen;\n let lastCommonSep = -1;\n let i = 0;\n for (; i < length; i++) {\n const fromCode = StringPrototypeCharCodeAt(from\x2C fromStart + i);\n if (fromCode !== StringPrototypeCharCodeAt(to\x2C toStart + i))\n break;\n else if (fromCode === CHAR_BACKWARD_SLASH)\n lastCommonSep = i;\n }\n\n // We found a mismatch before the first common path separator was seen\x2C so\n // return the original `to`.\n if (i !== length) {\n if (lastCommonSep === -1)\n return toOrig;\n } else {\n if (toLen > length) {\n if (StringPrototypeCharCodeAt(to\x2C toStart + i) ===\n CHAR_BACKWARD_SLASH) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\foo\\\\bar\\\\baz'\n return StringPrototypeSlice(toOrig\x2C toStart + i + 1);\n }\n if (i === 2) {\n // We get here if `from` is the device root.\n // For example: from='C:\\\\'; to='C:\\\\foo'\n return StringPrototypeSlice(toOrig\x2C toStart + i);\n }\n }\n if (fromLen > length) {\n if (StringPrototypeCharCodeAt(from\x2C fromStart + i) ===\n CHAR_BACKWARD_SLASH) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\foo'\n lastCommonSep = i;\n } else if (i === 2) {\n // We get here if `to` is the device root.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\'\n lastCommonSep = 3;\n }\n }\n if (lastCommonSep === -1)\n lastCommonSep = 0;\n }\n\n let out = '';\n // Generate the relative path based on the path difference between `to` and\n // `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd ||\n StringPrototypeCharCodeAt(from\x2C i) === CHAR_BACKWARD_SLASH) {\n out += out.length === 0 ? '..' : '\\\\..';\n }\n }\n\n toStart += lastCommonSep;\n\n // Lastly\x2C append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return `${out}${StringPrototypeSlice(toOrig\x2C toStart\x2C toEnd)}`;\n\n if (StringPrototypeCharCodeAt(toOrig\x2C toStart) === CHAR_BACKWARD_SLASH)\n ++toStart;\n return StringPrototypeSlice(toOrig\x2C toStart\x2C toEnd);\n }\x2C\n\n /**\n * @param {string} path\n * @returns {string}\n */\n toNamespacedPath(path) {\n // Note: this will *probably* throw somewhere.\n if (typeof path !== 'string' || path.length === 0)\n return path;\n\n const resolvedPath = win32.resolve(path);\n\n if (resolvedPath.length <= 2)\n return path;\n\n if (StringPrototypeCharCodeAt(resolvedPath\x2C 0) === CHAR_BACKWARD_SLASH) {\n // Possible UNC root\n if (StringPrototypeCharCodeAt(resolvedPath\x2C 1) === CHAR_BACKWARD_SLASH) {\n const code = StringPrototypeCharCodeAt(resolvedPath\x2C 2);\n if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) {\n // Matched non-long UNC root\x2C convert the path to a long UNC path\n return `\\\\\\\\?\\\\UNC\\\\${StringPrototypeSlice(resolvedPath\x2C 2)}`;\n }\n }\n } else if (\n isWindowsDeviceRoot(StringPrototypeCharCodeAt(resolvedPath\x2C 0)) &&\n StringPrototypeCharCodeAt(resolvedPath\x2C 1) === CHAR_COLON &&\n StringPrototypeCharCodeAt(resolvedPath\x2C 2) === CHAR_BACKWARD_SLASH\n ) {\n // Matched device root\x2C convert the path to a long UNC path\n return `\\\\\\\\?\\\\${resolvedPath}`;\n }\n\n return path;\n }\x2C\n\n /**\n * @param {string} path\n * @returns {string}\n */\n dirname(path) {\n validateString(path\x2C 'path');\n const len = path.length;\n if (len === 0)\n return '.';\n let rootEnd = -1;\n let offset = 0;\n const code = StringPrototypeCharCodeAt(path\x2C 0);\n\n if (len === 1) {\n // `path` contains just a path separator\x2C exit early to avoid\n // unnecessary work or a dot.\n return isPathSeparator(code) ? path : '.';\n }\n\n // Try to match a root\n if (isPathSeparator(code)) {\n // Possible UNC root\n\n rootEnd = offset = 1;\n\n if (isPathSeparator(StringPrototypeCharCodeAt(path\x2C 1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len &&\n !isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len &&\n isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len &&\n !isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n return path;\n }\n if (j !== last) {\n // We matched a UNC root with leftovers\n\n // Offset by 1 to include the separator after the UNC root to\n // treat it as a "normal root" on top of a (UNC) root\n rootEnd = offset = j + 1;\n }\n }\n }\n }\n // Possible device root\n } else if (isWindowsDeviceRoot(code) &&\n StringPrototypeCharCodeAt(path\x2C 1) === CHAR_COLON) {\n rootEnd =\n len > 2 && isPathSeparator(StringPrototypeCharCodeAt(path\x2C 2)) ? 3 : 2;\n offset = rootEnd;\n }\n\n let end = -1;\n let matchedSlash = true;\n for (let i = len - 1; i >= offset; --i) {\n if (isPathSeparator(StringPrototypeCharCodeAt(path\x2C i))) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) {\n if (rootEnd === -1)\n return '.';\n\n end = rootEnd;\n }\n return StringPrototypeSlice(path\x2C 0\x2C end);\n }\x2C\n\n /**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\n basename(path\x2C ext) {\n if (ext !== undefined)\n validateString(ext\x2C 'ext');\n validateString(path\x2C 'path');\n let start = 0;\n let end = -1;\n let matchedSlash = true;\n\n // Check for a drive letter prefix so as not to mistake the following\n // path separator as an extra separator at the end of the path that can be\n // disregarded\n if (path.length >= 2 &&\n isWindowsDeviceRoot(StringPrototypeCharCodeAt(path\x2C 0)) &&\n StringPrototypeCharCodeAt(path\x2C 1) === CHAR_COLON) {\n start = 2;\n }\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext === path)\n return '';\n let extIdx = ext.length - 1;\n let firstNonSlashEnd = -1;\n for (let i = path.length - 1; i >= start; --i) {\n const code = StringPrototypeCharCodeAt(path\x2C i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string\x2C stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator\x2C remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === StringPrototypeCharCodeAt(ext\x2C extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension\x2C so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match\x2C so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end)\n end = firstNonSlashEnd;\n else if (end === -1)\n end = path.length;\n return StringPrototypeSlice(path\x2C start\x2C end);\n }\n for (let i = path.length - 1; i >= start; --i) {\n if (isPathSeparator(StringPrototypeCharCodeAt(path\x2C i))) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string\x2C stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator\x2C mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1)\n return '';\n return StringPrototypeSlice(path\x2C start\x2C end);\n }\x2C\n\n /**\n * @param {string} path\n * @returns {string}\n */\n extname(path) {\n validateString(path\x2C 'path');\n let start = 0;\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n\n // Check for a drive letter prefix so as not to mistake the following\n // path separator as an extra separator at the end of the path that can be\n // disregarded\n\n if (path.length >= 2 &&\n StringPrototypeCharCodeAt(path\x2C 1) === CHAR_COLON &&\n isWindowsDeviceRoot(StringPrototypeCharCodeAt(path\x2C 0))) {\n start = startPart = 2;\n }\n\n for (let i = path.length - 1; i >= start; --i) {\n const code = StringPrototypeCharCodeAt(path\x2C i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string\x2C stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator\x2C mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot\x2C mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot\x2C so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 ||\n end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n return '';\n }\n return StringPrototypeSlice(path\x2C startDot\x2C end);\n }\x2C\n\n format: FunctionPrototypeBind(_format\x2C null\x2C '\\\\')\x2C\n\n /**\n * @param {string} path\n * @returns {{\n * dir: string;\n * root: string;\n * base: string;\n * name: string;\n * ext: string;\n * }}\n */\n parse(path) {\n validateString(path\x2C 'path');\n\n const ret = { root: ''\x2C dir: ''\x2C base: ''\x2C ext: ''\x2C name: '' };\n if (path.length === 0)\n return ret;\n\n const len = path.length;\n let rootEnd = 0;\n let code = StringPrototypeCharCodeAt(path\x2C 0);\n\n if (len === 1) {\n if (isPathSeparator(code)) {\n // `path` contains just a path separator\x2C exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n ret.base = ret.name = path;\n return ret;\n }\n // Try to match a root\n if (isPathSeparator(code)) {\n // Possible UNC root\n\n rootEnd = 1;\n if (isPathSeparator(StringPrototypeCharCodeAt(path\x2C 1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len &&\n !isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len &&\n isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len &&\n !isPathSeparator(StringPrototypeCharCodeAt(path\x2C j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n rootEnd = j;\n } else if (j !== last) {\n // We matched a UNC root with leftovers\n rootEnd = j + 1;\n }\n }\n }\n }\n } else if (isWindowsDeviceRoot(code) &&\n StringPrototypeCharCodeAt(path\x2C 1) === CHAR_COLON) {\n // Possible device root\n if (len <= 2) {\n // `path` contains just a drive root\x2C exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n rootEnd = 2;\n if (isPathSeparator(StringPrototypeCharCodeAt(path\x2C 2))) {\n if (len === 3) {\n // `path` contains just a drive root\x2C exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n rootEnd = 3;\n }\n }\n if (rootEnd > 0)\n ret.root = StringPrototypeSlice(path\x2C 0\x2C rootEnd);\n\n let startDot = -1;\n let startPart = rootEnd;\n let end = -1;\n let matchedSlash = true;\n let i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n\n // Get non-dir info\n for (; i >= rootEnd; --i) {\n code = StringPrototypeCharCodeAt(path\x2C i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string\x2C stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator\x2C mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot\x2C mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot\x2C so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (end !== -1) {\n if (startDot === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n ret.base = ret.name = StringPrototypeSlice(path\x2C startPart\x2C end);\n } else {\n ret.name = StringPrototypeSlice(path\x2C startPart\x2C startDot);\n ret.base = StringPrototypeSlice(path\x2C startPart\x2C end);\n ret.ext = StringPrototypeSlice(path\x2C startDot\x2C end);\n }\n }\n\n // If the directory is the root\x2C use the entire root as the `dir` including\n // the trailing slash if any (`C:\\abc` -> `C:\\`). Otherwise\x2C strip out the\n // trailing slash (`C:\\abc\\def` -> `C:\\abc`).\n if (startPart > 0 && startPart !== rootEnd)\n ret.dir = StringPrototypeSlice(path\x2C 0\x2C startPart - 1);\n else\n ret.dir = ret.root;\n\n return ret;\n }\x2C\n\n sep: '\\\\'\x2C\n delimiter: ';'\x2C\n win32: null\x2C\n posix: null\n};\n\nconst posixCwd = (() => {\n if (platformIsWin32) {\n // Converts Windows' backslash path separators to POSIX forward slashes\n // and truncates any drive indicator\n const regexp = /\\\\/g;\n return () => {\n const cwd = StringPrototypeReplace(process.cwd()\x2C regexp\x2C '/');\n return StringPrototypeSlice(cwd\x2C StringPrototypeIndexOf(cwd\x2C '/'));\n };\n }\n\n // We're already on POSIX\x2C no need for any transformations\n return () => process.cwd();\n})();\n\nconst posix = {\n /**\n * path.resolve([from ...]\x2C to)\n * @param {...string} args\n * @returns {string}\n */\n resolve(...args) {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : posixCwd();\n\n validateString(path\x2C 'path');\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute =\n StringPrototypeCharCodeAt(path\x2C 0) === CHAR_FORWARD_SLASH;\n }\n\n // At this point the path should be resolved to a full absolute path\x2C but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeString(resolvedPath\x2C !resolvedAbsolute\x2C '/'\x2C\n isPosixPathSeparator);\n\n if (resolvedAbsolute) {\n return `/${resolvedPath}`;\n }\n return resolvedPath.length > 0 ? resolvedPath : '.';\n }\x2C\n\n /**\n * @param {string} path\n * @returns {string}\n */\n normalize(path) {\n validateString(path\x2C 'path');\n\n if (path.length === 0)\n return '.';\n\n const isAbsolute =\n StringPrototypeCharCodeAt(path\x2C 0) === CHAR_FORWARD_SLASH;\n const trailingSeparator =\n StringPrototypeCharCodeAt(path\x2C path.length - 1) === CHAR_FORWARD_SLASH;\n\n // Normalize the path\n path = normalizeString(path\x2C !isAbsolute\x2C '/'\x2C isPosixPathSeparator);\n\n if (path.length === 0) {\n if (isAbsolute)\n return '/';\n return trailingSeparator ? './' : '.';\n }\n if (trailingSeparator)\n path += '/';\n\n return isAbsolute ? `/${path}` : path;\n }\x2C\n\n /**\n * @param {string} path\n * @returns {boolean}\n */\n isAbsolute(path) {\n validateString(path\x2C 'path');\n return path.length > 0 &&\n StringPrototypeCharCodeAt(path\x2C 0) === CHAR_FORWARD_SLASH;\n }\x2C\n\n /**\n * @param {...string} args\n * @returns {string}\n */\n join(...args) {\n if (args.length === 0)\n return '.';\n let joined;\n for (let i = 0; i < args.length; ++i) {\n const arg = args[i];\n validateString(arg\x2C 'path');\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += `/${arg}`;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n }\x2C\n\n /**\n * @param {string} from\n * @param {string} to\n * @returns {string}\n */\n relative(from\x2C to) {\n validateString(from\x2C 'from');\n validateString(to\x2C 'to');\n\n if (from === to)\n return '';\n\n // Trim leading forward slashes.\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to)\n return '';\n\n const fromStart = 1;\n const fromEnd = from.length;\n const fromLen = fromEnd - fromStart;\n const toStart = 1;\n const toLen = to.length - toStart;\n\n // Compare paths to find the longest common path from root\n const length = (fromLen < toLen ? fromLen : toLen);\n let lastCommonSep = -1;\n let i = 0;\n for (; i < length; i++) {\n const fromCode = StringPrototypeCharCodeAt(from\x2C fromStart + i);\n if (fromCode !== StringPrototypeCharCodeAt(to\x2C toStart + i))\n break;\n else if (fromCode === CHAR_FORWARD_SLASH)\n lastCommonSep = i;\n }\n if (i === length) {\n if (toLen > length) {\n if (StringPrototypeCharCodeAt(to\x2C toStart + i) === CHAR_FORWARD_SLASH) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return StringPrototypeSlice(to\x2C toStart + i + 1);\n }\n if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return StringPrototypeSlice(to\x2C toStart + i);\n }\n } else if (fromLen > length) {\n if (StringPrototypeCharCodeAt(from\x2C fromStart + i) ===\n CHAR_FORWARD_SLASH) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo/bar'; to='/'\n lastCommonSep = 0;\n }\n }\n }\n\n let out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`.\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd ||\n StringPrototypeCharCodeAt(from\x2C i) === CHAR_FORWARD_SLASH) {\n out += out.length === 0 ? '..' : '/..';\n }\n }\n\n // Lastly\x2C append the rest of the destination (`to`) path that comes after\n // the common path parts.\n return `${out}${StringPrototypeSlice(to\x2C toStart + lastCommonSep)}`;\n }\x2C\n\n /**\n * @param {string} path\n * @returns {string}\n */\n toNamespacedPath(path) {\n // Non-op on posix systems\n return path;\n }\x2C\n\n /**\n * @param {string} path\n * @returns {string}\n */\n dirname(path) {\n validateString(path\x2C 'path');\n if (path.length === 0)\n return '.';\n const hasRoot = StringPrototypeCharCodeAt(path\x2C 0) === CHAR_FORWARD_SLASH;\n let end = -1;\n let matchedSlash = true;\n for (let i = path.length - 1; i >= 1; --i) {\n if (StringPrototypeCharCodeAt(path\x2C i) === CHAR_FORWARD_SLASH) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1)\n return hasRoot ? '/' : '.';\n if (hasRoot && end === 1)\n return '//';\n return StringPrototypeSlice(path\x2C 0\x2C end);\n }\x2C\n\n /**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\n basename(path\x2C ext) {\n if (ext !== undefined)\n validateString(ext\x2C 'ext');\n validateString(path\x2C 'path');\n\n let start = 0;\n let end = -1;\n let matchedSlash = true;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext === path)\n return '';\n let extIdx = ext.length - 1;\n let firstNonSlashEnd = -1;\n for (let i = path.length - 1; i >= 0; --i) {\n const code = StringPrototypeCharCodeAt(path\x2C i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string\x2C stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator\x2C remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === StringPrototypeCharCodeAt(ext\x2C extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension\x2C so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match\x2C so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end)\n end = firstNonSlashEnd;\n else if (end === -1)\n end = path.length;\n return StringPrototypeSlice(path\x2C start\x2C end);\n }\n for (let i = path.length - 1; i >= 0; --i) {\n if (StringPrototypeCharCodeAt(path\x2C i) === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string\x2C stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator\x2C mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1)\n return '';\n return StringPrototypeSlice(path\x2C start\x2C end);\n }\x2C\n\n /**\n * @param {string} path\n * @returns {string}\n */\n extname(path) {\n validateString(path\x2C 'path');\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n for (let i = path.length - 1; i >= 0; --i) {\n const code = StringPrototypeCharCodeAt(path\x2C i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string\x2C stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator\x2C mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot\x2C mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot\x2C so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 ||\n end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n return '';\n }\n return StringPrototypeSlice(path\x2C startDot\x2C end);\n }\x2C\n\n format: FunctionPrototypeBind(_format\x2C null\x2C '/')\x2C\n\n /**\n * @param {string} path\n * @returns {{\n * dir: string;\n * root: string;\n * base: string;\n * name: string;\n * ext: string;\n * }}\n */\n parse(path) {\n validateString(path\x2C 'path');\n\n const ret = { root: ''\x2C dir: ''\x2C base: ''\x2C ext: ''\x2C name: '' };\n if (path.length === 0)\n return ret;\n const isAbsolute =\n StringPrototypeCharCodeAt(path\x2C 0) === CHAR_FORWARD_SLASH;\n let start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n let i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n const code = StringPrototypeCharCodeAt(path\x2C i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string\x2C stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator\x2C mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot\x2C mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot\x2C so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (end !== -1) {\n const start = startPart === 0 && isAbsolute ? 1 : startPart;\n if (startDot === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n ret.base = ret.name = StringPrototypeSlice(path\x2C start\x2C end);\n } else {\n ret.name = StringPrototypeSlice(path\x2C start\x2C startDot);\n ret.base = StringPrototypeSlice(path\x2C start\x2C end);\n ret.ext = StringPrototypeSlice(path\x2C startDot\x2C end);\n }\n }\n\n if (startPart > 0)\n ret.dir = StringPrototypeSlice(path\x2C 0\x2C startPart - 1);\n else if (isAbsolute)\n ret.dir = '/';\n\n return ret;\n }\x2C\n\n sep: '/'\x2C\n delimiter: ':'\x2C\n win32: null\x2C\n posix: null\n};\n\nposix.win32 = win32.win32 = win32;\nposix.posix = win32.posix = posix;\n\n// Legacy internal API\x2C docs-only deprecated: DEP0080\nwin32._makeLong = win32.toNamespacedPath;\nposix._makeLong = posix.toNamespacedPath;\n\nmodule.exports = platformIsWin32 ? win32 : posix;\n code-source-info,0x337ca0b07df6,35,33782,34692,C0O33782C3O33817C6O33848C8O33878C12O33885C16O33898C18O33892C25O33902C27O33946C28O33948C35O33959C42O33965C45O33965C49O33984C57O33984C62O34058C68O34065C73O34082C75O34107C87O34133C92O34155C99O34182C107O34221C109O34217C113O33921C118O33860C121O34437C126O34483C137O34452C143O34569C147O34599C152O34610C156O34625C157O34656C163O34663C174O34688,, code-creation,LazyCompile,10,11031,0x337ca0b0b02e,30,validateString node:internal/validators:117:24,0x44edd6d9ef8,~ script-source,17,node:internal/validators,'use strict';\n\nconst {\n ArrayIsArray\x2C\n ArrayPrototypeIncludes\x2C\n ArrayPrototypeJoin\x2C\n ArrayPrototypeMap\x2C\n NumberIsInteger\x2C\n NumberMAX_SAFE_INTEGER\x2C\n NumberMIN_SAFE_INTEGER\x2C\n NumberParseInt\x2C\n RegExpPrototypeTest\x2C\n String\x2C\n StringPrototypeToUpperCase\x2C\n StringPrototypeTrim\x2C\n} = primordials;\n\nconst {\n hideStackFrames\x2C\n codes: {\n ERR_SOCKET_BAD_PORT\x2C\n ERR_INVALID_ARG_TYPE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_OUT_OF_RANGE\x2C\n ERR_UNKNOWN_SIGNAL\x2C\n ERR_INVALID_CALLBACK\x2C\n }\n} = require('internal/errors');\nconst { normalizeEncoding } = require('internal/util');\nconst {\n isArrayBufferView\n} = require('internal/util/types');\nconst { signals } = internalBinding('constants').os;\n\nfunction isInt32(value) {\n return value === (value | 0);\n}\n\nfunction isUint32(value) {\n return value === (value >>> 0);\n}\n\nconst octalReg = /^[0-7]+$/;\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string';\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land\x2C but any value higher than 0o777 will result in platform-specific\n * behaviors.\n *\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified\x2C will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value\x2C name\x2C def) {\n value ??= def;\n if (typeof value === 'string') {\n if (!RegExpPrototypeTest(octalReg\x2C value)) {\n throw new ERR_INVALID_ARG_VALUE(name\x2C value\x2C modeDesc);\n }\n value = NumberParseInt(value\x2C 8);\n }\n\n validateInt32(value\x2C name\x2C 0\x2C 2 ** 32 - 1);\n return value;\n}\n\nconst validateInteger = hideStackFrames(\n (value\x2C name\x2C min = NumberMIN_SAFE_INTEGER\x2C max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number')\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'number'\x2C value);\n if (!NumberIsInteger(value))\n throw new ERR_OUT_OF_RANGE(name\x2C 'an integer'\x2C value);\n if (value < min || value > max)\n throw new ERR_OUT_OF_RANGE(name\x2C `>= ${min} && <= ${max}`\x2C value);\n }\n);\n\nconst validateInt32 = hideStackFrames(\n (value\x2C name\x2C min = -2147483648\x2C max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (!isInt32(value)) {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'number'\x2C value);\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name\x2C 'an integer'\x2C value);\n }\n throw new ERR_OUT_OF_RANGE(name\x2C `>= ${min} && <= ${max}`\x2C value);\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name\x2C `>= ${min} && <= ${max}`\x2C value);\n }\n }\n);\n\nconst validateUint32 = hideStackFrames((value\x2C name\x2C positive) => {\n if (!isUint32(value)) {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'number'\x2C value);\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name\x2C 'an integer'\x2C value);\n }\n const min = positive ? 1 : 0;\n // 2 ** 32 === 4294967296\n throw new ERR_OUT_OF_RANGE(name\x2C `>= ${min} && < 4294967296`\x2C value);\n }\n if (positive && value === 0) {\n throw new ERR_OUT_OF_RANGE(name\x2C '>= 1 && < 4294967296'\x2C value);\n }\n});\n\nfunction validateString(value\x2C name) {\n if (typeof value !== 'string')\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'string'\x2C value);\n}\n\nfunction validateNumber(value\x2C name) {\n if (typeof value !== 'number')\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'number'\x2C value);\n}\n\nconst validateOneOf = hideStackFrames((value\x2C name\x2C oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf\x2C value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf\x2C (v) =>\n (typeof v === 'string' ? `'${v}'` : String(v)))\x2C\n '\x2C ');\n const reason = 'must be one of: ' + allowed;\n throw new ERR_INVALID_ARG_VALUE(name\x2C value\x2C reason);\n }\n});\n\nfunction validateBoolean(value\x2C name) {\n if (typeof value !== 'boolean')\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'boolean'\x2C value);\n}\n\n/**\n * @param {unknown} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean\x2C\n * allowFunction?: boolean\x2C\n * nullable?: boolean\n * }} [options]\n */\nconst validateObject = hideStackFrames(\n (value\x2C name\x2C options) => {\n const useDefaultOptions = options == null;\n const allowArray = useDefaultOptions ? false : options.allowArray;\n const allowFunction = useDefaultOptions ? false : options.allowFunction;\n const nullable = useDefaultOptions ? false : options.nullable;\n if ((!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (\n !allowFunction || typeof value !== 'function'\n ))) {\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'Object'\x2C value);\n }\n });\n\nconst validateArray = hideStackFrames((value\x2C name\x2C minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'Array'\x2C value);\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`;\n throw new ERR_INVALID_ARG_VALUE(name\x2C value\x2C reason);\n }\n});\n\nfunction validateSignalName(signal\x2C name = 'signal') {\n validateString(signal\x2C name);\n\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal +\n ' (signals must use all capital letters)');\n }\n\n throw new ERR_UNKNOWN_SIGNAL(signal);\n }\n}\n\nconst validateBuffer = hideStackFrames((buffer\x2C name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name\x2C\n ['Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n buffer);\n }\n});\n\nfunction validateEncoding(data\x2C encoding) {\n const normalizedEncoding = normalizeEncoding(encoding);\n const length = data.length;\n\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding'\x2C encoding\x2C\n `is invalid for data of length ${length}`);\n }\n}\n\n// Check that the port number is not NaN when coerced to a number\x2C\n// is an integer and that it falls within the legal range of port numbers.\nfunction validatePort(port\x2C name = 'Port'\x2C allowZero = true) {\n if ((typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== (+port >>> 0) ||\n port > 0xFFFF ||\n (port === 0 && !allowZero)) {\n throw new ERR_SOCKET_BAD_PORT(name\x2C port\x2C allowZero);\n }\n return port | 0;\n}\n\nconst validateCallback = hideStackFrames((callback) => {\n if (typeof callback !== 'function')\n throw new ERR_INVALID_CALLBACK(callback);\n});\n\nconst validateAbortSignal = hideStackFrames((signal\x2C name) => {\n if (signal !== undefined &&\n (signal === null ||\n typeof signal !== 'object' ||\n !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'AbortSignal'\x2C signal);\n }\n});\n\nconst validateFunction = hideStackFrames((value\x2C name) => {\n if (typeof value !== 'function')\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'Function'\x2C value);\n});\n\nconst validateUndefined = hideStackFrames((value\x2C name) => {\n if (value !== undefined)\n throw new ERR_INVALID_ARG_TYPE(name\x2C 'undefined'\x2C value);\n});\n\nmodule.exports = {\n isInt32\x2C\n isUint32\x2C\n parseFileMode\x2C\n validateArray\x2C\n validateBoolean\x2C\n validateBuffer\x2C\n validateEncoding\x2C\n validateFunction\x2C\n validateInt32\x2C\n validateInteger\x2C\n validateNumber\x2C\n validateObject\x2C\n validateOneOf\x2C\n validatePort\x2C\n validateSignalName\x2C\n validateString\x2C\n validateUint32\x2C\n validateUndefined\x2C\n validateCallback\x2C\n validateAbortSignal\x2C\n};\n code-source-info,0x337ca0b0b02e,17,3398,3507,C0O3416C6O3451C22O3457C27O3451C29O3506,, LoadIC,0x337ca0b07e34,11171,1101,16,X,X,0x268a435c18e1,length,, code-creation,LazyCompile,10,11183,0x337ca0b0b98e,13, node:path:1082:10,0x23787e1a8438,~ code-source-info,0x337ca0b0b98e,35,33631,33650,C0O33645C3O33645C8O33645C12O33650,, code-creation,LazyCompile,10,11199,0x337ca0b0ba8e,40,wrappedCwd node:internal/bootstrap/switches/does_own_process_state:124:20,0x3edb62acd3e8,~ script-source,90,node:internal/bootstrap/switches/does_own_process_state,'use strict';\n\nconst credentials = internalBinding('credentials');\nconst rawMethods = internalBinding('process_methods');\n\nprocess.abort = rawMethods.abort;\nprocess.umask = wrappedUmask;\nprocess.chdir = wrappedChdir;\nprocess.cwd = wrappedCwd;\n\nif (credentials.implementsPosixCredentials) {\n const wrapped = wrapPosixCredentialSetters(credentials);\n\n process.initgroups = wrapped.initgroups;\n process.setgroups = wrapped.setgroups;\n process.setegid = wrapped.setegid;\n process.seteuid = wrapped.seteuid;\n process.setgid = wrapped.setgid;\n process.setuid = wrapped.setuid;\n}\n\n// ---- keep the attachment of the wrappers above so that it's easier to ----\n// ---- compare the setups side-by-side -----\n\nconst {\n parseFileMode\x2C\n validateArray\x2C\n validateString\n} = require('internal/validators');\n\nfunction wrapPosixCredentialSetters(credentials) {\n const {\n codes: {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_UNKNOWN_CREDENTIAL\n }\n } = require('internal/errors');\n const {\n validateUint32\n } = require('internal/validators');\n\n const {\n initgroups: _initgroups\x2C\n setgroups: _setgroups\x2C\n setegid: _setegid\x2C\n seteuid: _seteuid\x2C\n setgid: _setgid\x2C\n setuid: _setuid\n } = credentials;\n\n function initgroups(user\x2C extraGroup) {\n validateId(user\x2C 'user');\n validateId(extraGroup\x2C 'extraGroup');\n // Result is 0 on success\x2C 1 if user is unknown\x2C 2 if group is unknown.\n const result = _initgroups(user\x2C extraGroup);\n if (result === 1) {\n throw new ERR_UNKNOWN_CREDENTIAL('User'\x2C user);\n } else if (result === 2) {\n throw new ERR_UNKNOWN_CREDENTIAL('Group'\x2C extraGroup);\n }\n }\n\n function setgroups(groups) {\n validateArray(groups\x2C 'groups');\n for (let i = 0; i < groups.length; i++) {\n validateId(groups[i]\x2C `groups[${i}]`);\n }\n // Result is 0 on success. A positive integer indicates that the\n // corresponding group was not found.\n const result = _setgroups(groups);\n if (result > 0) {\n throw new ERR_UNKNOWN_CREDENTIAL('Group'\x2C groups[result - 1]);\n }\n }\n\n function wrapIdSetter(type\x2C method) {\n return function(id) {\n validateId(id\x2C 'id');\n if (typeof id === 'number') id |= 0;\n // Result is 0 on success\x2C 1 if credential is unknown.\n const result = method(id);\n if (result === 1) {\n throw new ERR_UNKNOWN_CREDENTIAL(type\x2C id);\n }\n };\n }\n\n function validateId(id\x2C name) {\n if (typeof id === 'number') {\n validateUint32(id\x2C name);\n } else if (typeof id !== 'string') {\n throw new ERR_INVALID_ARG_TYPE(name\x2C ['number'\x2C 'string']\x2C id);\n }\n }\n\n return {\n initgroups\x2C\n setgroups\x2C\n setegid: wrapIdSetter('Group'\x2C _setegid)\x2C\n seteuid: wrapIdSetter('User'\x2C _seteuid)\x2C\n setgid: wrapIdSetter('Group'\x2C _setgid)\x2C\n setuid: wrapIdSetter('User'\x2C _setuid)\n };\n}\n\n// Cache the working directory to prevent lots of lookups. If the working\n// directory is changed by `chdir`\x2C it'll be updated.\nlet cachedCwd = '';\n\nfunction wrappedChdir(directory) {\n validateString(directory\x2C 'directory');\n rawMethods.chdir(directory);\n // Mark cache that it requires an update.\n cachedCwd = '';\n}\n\nfunction wrappedUmask(mask) {\n if (mask !== undefined) {\n mask = parseFileMode(mask\x2C 'mask');\n }\n return rawMethods.umask(mask);\n}\n\nfunction wrappedCwd() {\n if (cachedCwd === '')\n cachedCwd = rawMethods.cwd();\n return cachedCwd;\n}\n code-source-info,0x337ca0b0ba8e,90,3341,3425,C0O3348C7O3362C12O3374C17O3397C22O3397C29O3384C35O3406C39O3423,, LoadIC,0x337ca0b07e34,11269,1101,16,X,X,0x268a435c18e1,length,, code-creation,LazyCompile,10,11326,0x337ca0b0c0f6,442,normalizeString node:path:66:25,0x23787e1a7fa0,~ code-source-info,0x337ca0b0c0f6,35,2161,4085,C0O2226C3O2256C5O2277C8O2294C10O2310C12O2328C14O2341C18O2333C23O2373C27O2366C32O2387C37O2394C45O2443C51O2472C53O2494C58O2530C64O2561C66O2581C69O2575C76O2593C83O2631C85O2640C90O2665C97O2672C104O2697C111O2718C114O2753C118O2760C122O2718C130O2769C132O2765C139O2793C142O2828C146O2835C150O2793C158O2844C160O2840C165O2874C172O2881C177O2923C182O2923C188O2979C190O2998C195O3022C198O3046C202O3104C215O3110C221O3210C225O3217C231O3223C234O3223C239O3221C243O3293C246O3320C248O3342C250O3377C256O3384C261O3405C264O3427C266O3462C269O3489C271O3511C273O3551C277O3594C283O3601C293O3610C308O3642C313O3706C319O3713C324O3728C326O3738C330O3750C335O3787C345O3750C363O3821C370O3864C380O3827C386O3881C388O3903C391O3915C395O3934C398O3955C402O3976C404O3989C406O3985C413O4006C418O4022C425O4049C428O2351C433O2315C439O4072C441O4083,, LoadIC,0x337ca0b0c104,11343,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11347,73,18,X,X,0x268a435c2aa1,length,, code-creation,LazyCompile,10,11358,0x337ca0b0c476,8,isPosixPathSeparator node:path:56:30,0x23787e1a7f00,~ code-source-info,0x337ca0b0c476,35,1854,1902,C0O1865C2O1881C4O1877C7O1900,, LoadIC,0x337ca0b0c104,11366,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11369,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11372,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11374,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11379,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11382,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11384,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11386,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11388,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11391,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c22f,11394,113,17,X,X,0x268a435c1349,length,, LoadIC,0x337ca0b0c104,11397,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11400,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11402,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11404,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11406,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11409,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11413,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11416,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11418,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11421,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11423,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11425,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11428,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11430,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11432,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11435,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c22f,11437,113,17,X,X,0x268a435c18e1,length,, LoadIC,0x337ca0b0c104,11440,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11442,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11445,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11447,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11451,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11453,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11456,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11459,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11461,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11463,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c22f,11466,113,17,X,X,0x268a435c18e1,length,, LoadIC,0x337ca0b0c104,11469,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11471,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11473,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11475,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11477,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11480,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11482,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11484,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11487,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11489,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11492,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11494,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11496,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11498,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11501,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11503,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11505,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11507,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11510,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11512,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c22f,11515,113,17,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11517,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11519,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11521,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11524,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11526,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11528,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11531,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11533,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11535,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11538,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c22f,11542,113,17,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11545,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11547,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11549,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11552,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11554,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11556,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11558,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11561,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11563,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11565,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11568,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11571,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11573,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11575,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11577,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11580,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11582,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11584,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c22f,11587,113,17,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11589,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11592,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11594,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11597,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11599,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11602,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11604,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11606,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11608,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11611,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11613,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11616,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11618,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11620,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11622,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11625,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11627,72,29,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c10d,11629,73,18,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b0c104,11635,72,29,0,1,0x268a435c2aa1,length,, code-creation,LazyCompile,10,11656,0x337ca0b0c8ee,63,addReadOnlyProcessAlias node:internal/bootstrap/pre_execution:129:33,0x2ba068cfdde8,~ code-source-info,0x337ca0b0c8ee,92,4285,4510,C16O4337C21O4337C26O4363C28O4380C36O4410C43O4473C49O4491C56O4380C62O4509,, code-creation,LazyCompile,10,11677,0x337ca0b0ca6e,82,getOptionValue node:internal/options:39:24,0x337ca0b013d8,~ code-source-info,0x337ca0b0ca6e,93,902,1145,C0O935C3O935C7O980C15O980C22O1030C30O1052C38O1052C43O1039C47O1030C53O1067C55O1092C60O1098C61O1120C66O1120C74O1135C81O1143,, code-creation,LazyCompile,10,11692,0x337ca0b0cbc6,33,getCLIOptionsFromBinding node:internal/options:18:34,0x337ca0b012e8,~ code-source-info,0x337ca0b0cbc6,93,497,598,C0O504C6O527C11O554C15O539C28O578C32O596,, LoadIC,0x337ca0b0ca75,11839,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11845,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11849,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11851,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11854,41,18,X,X,0x268a435c1349,startsWith,, StoreIC,0x337ca0b0c919,11859,135,7,X,X,0x000000000000,enumerable,, StoreIC,0x337ca0b0c91f,11863,136,7,X,X,0x000000000000,value,, LoadIC,0x337ca0b0ca75,11867,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca8c,11871,42,50,X,X,0x268a435c1349,slice,, LoadIC,0x337ca0b0ca75,11875,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca8c,11878,42,50,X,X,0x268a435c1349,slice,, LoadIC,0x337ca0b0ca75,11881,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11884,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11886,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11892,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11894,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0ca75,11897,41,18,X,X,0x268a435c1349,startsWith,, code-creation,LazyCompile,10,11915,0x337ca0b0cfa6,46,setupTraceCategoryState node:internal/bootstrap/pre_execution:221:33,0x2ba068cfe090,~ code-source-info,0x337ca0b0cfa6,92,6753,6980,C0O6795C6O6795C11O6768C16O6867C22O6867C27O6838C32O6909C35O6934C40O6909C45O6979,, code-creation,LazyCompile,10,11938,0x337ca0b0d13e,77,toggleTraceCategoryState node:internal/process/per_thread:385:34,0x44edd6fe470,~ code-source-info,0x337ca0b0d13e,23,11040,11337,C0O11064C4O11093C10O11128C16O11159C21O11203C26O11204C33O11149C39O11228C44O11249C49O11249C55O11268C61O11300C66O11321C71O11321C76O11336,, code-creation,LazyCompile,10,11951,0x337ca0b0d2ee,42,setupPerfHooks node:internal/bootstrap/pre_execution:227:24,0x2ba068cfe0e0,~ code-source-info,0x337ca0b0d2ee,92,7005,7125,C0O7012C6O7012C11O7048C16O7049C20O7072C26O7072C31O7102C36O7103C41O7124,, code-creation,LazyCompile,10,11970,0x337ca0b0d46e,42,refreshTimeOrigin node:internal/perf/performance:178:27,0x1ce311dc3b38,~ script-source,70,node:internal/perf/performance,'use strict';\n\nconst {\n ObjectDefineProperty\x2C\n ObjectDefineProperties\x2C\n ObjectSetPrototypeOf\x2C\n} = primordials;\n\nconst {\n codes: {\n ERR_ILLEGAL_CONSTRUCTOR\x2C\n }\n} = require('internal/errors');\n\nconst {\n EventTarget\x2C\n} = require('internal/event_target');\n\nconst { now } = require('internal/perf/utils');\n\nconst {\n mark\x2C\n measure\x2C\n clearMarkTimings\x2C\n} = require('internal/perf/usertiming');\nconst {\n clearEntriesFromBuffer\x2C\n filterBufferMapByNameAndType\x2C\n} = require('internal/perf/observe');\n\nconst eventLoopUtilization = require('internal/perf/event_loop_utilization');\nconst nodeTiming = require('internal/perf/nodetiming');\nconst timerify = require('internal/perf/timerify');\nconst { customInspectSymbol: kInspect } = require('internal/util');\nconst { inspect } = require('util');\n\nconst {\n getTimeOriginTimestamp\n} = internalBinding('performance');\n\nclass Performance extends EventTarget {\n constructor() {\n throw new ERR_ILLEGAL_CONSTRUCTOR();\n }\n\n [kInspect](depth\x2C options) {\n if (depth < 0) return this;\n\n const opts = {\n ...options\x2C\n depth: options.depth == null ? null : options.depth - 1\n };\n\n return `Performance ${inspect({\n nodeTiming: this.nodeTiming\x2C\n timeOrigin: this.timeOrigin\x2C\n }\x2C opts)}`;\n }\n}\n\nfunction toJSON() {\n return {\n nodeTiming: this.nodeTiming\x2C\n timeOrigin: this.timeOrigin\x2C\n eventLoopUtilization: this.eventLoopUtilization()\n };\n}\n\nfunction clearMarks(name) {\n if (name !== undefined) {\n name = `${name}`;\n }\n clearMarkTimings(name);\n clearEntriesFromBuffer('mark'\x2C name);\n}\n\nfunction clearMeasures(name) {\n if (name !== undefined) {\n name = `${name}`;\n }\n clearEntriesFromBuffer('measure'\x2C name);\n}\n\nfunction getEntries() {\n return filterBufferMapByNameAndType();\n}\n\nfunction getEntriesByName(name) {\n if (name !== undefined) {\n name = `${name}`;\n }\n return filterBufferMapByNameAndType(name\x2C undefined);\n}\n\nfunction getEntriesByType(type) {\n if (type !== undefined) {\n type = `${type}`;\n }\n return filterBufferMapByNameAndType(undefined\x2C type);\n}\n\nclass InternalPerformance extends EventTarget {}\nInternalPerformance.prototype.constructor = Performance.prototype.constructor;\nObjectSetPrototypeOf(InternalPerformance.prototype\x2C Performance.prototype);\n\nObjectDefineProperties(Performance.prototype\x2C {\n clearMarks: {\n configurable: true\x2C\n enumerable: false\x2C\n value: clearMarks\x2C\n }\x2C\n clearMeasures: {\n configurable: true\x2C\n enumerable: false\x2C\n value: clearMeasures\x2C\n }\x2C\n eventLoopUtilization: {\n configurable: true\x2C\n enumerable: false\x2C\n value: eventLoopUtilization\x2C\n }\x2C\n getEntries: {\n configurable: true\x2C\n enumerable: false\x2C\n value: getEntries\x2C\n }\x2C\n getEntriesByName: {\n configurable: true\x2C\n enumerable: false\x2C\n value: getEntriesByName\x2C\n }\x2C\n getEntriesByType: {\n configurable: true\x2C\n enumerable: false\x2C\n value: getEntriesByType\x2C\n }\x2C\n mark: {\n configurable: true\x2C\n enumerable: false\x2C\n value: mark\x2C\n }\x2C\n measure: {\n configurable: true\x2C\n enumerable: false\x2C\n value: measure\x2C\n }\x2C\n nodeTiming: {\n configurable: true\x2C\n enumerable: false\x2C\n value: nodeTiming\x2C\n }\x2C\n now: {\n configurable: true\x2C\n enumerable: false\x2C\n value: now\x2C\n }\x2C\n timerify: {\n configurable: true\x2C\n enumerable: false\x2C\n value: timerify\x2C\n }\x2C\n // This would be updated during pre-execution in case\n // the process is launched from a snapshot.\n // TODO(joyeecheung): we may want to warn about access to\n // this during snapshot building.\n timeOrigin: {\n configurable: true\x2C\n enumerable: true\x2C\n value: getTimeOriginTimestamp()\x2C\n }\x2C\n toJSON: {\n configurable: true\x2C\n enumerable: true\x2C\n value: toJSON\x2C\n }\n});\n\nfunction refreshTimeOrigin() {\n ObjectDefineProperty(Performance.prototype\x2C 'timeOrigin'\x2C {\n configurable: true\x2C\n enumerable: true\x2C\n value: getTimeOriginTimestamp()\x2C\n });\n}\n\nmodule.exports = {\n InternalPerformance\x2C\n refreshTimeOrigin\n};\n code-source-info,0x337ca0b0d46e,70,3755,3912,C0O3762C7O3783C10O3795C25O3879C28O3879C35O3762C41O3911,, StoreIC,0x337ca0b0d48d,12053,182,12,X,X,0x000000000000,value,, code-creation,LazyCompile,10,12070,0x337ca0b0db7e,19,refreshTimeOrigin node:internal/perf/utils:25:27,0x23787e1bb420,~ script-source,41,node:internal/perf/utils,'use strict';\n\nconst binding = internalBinding('performance');\nconst {\n milestones\x2C\n getTimeOrigin\x2C\n} = binding;\n\n// TODO(joyeecheung): we may want to warn about access to\n// this during snapshot building.\nlet timeOrigin = getTimeOrigin();\n\nfunction now() {\n const hr = process.hrtime();\n return (hr[0] * 1000 + hr[1] / 1e6) - timeOrigin;\n}\n\nfunction getMilestoneTimestamp(milestoneIdx) {\n const ns = milestones[milestoneIdx];\n if (ns === -1)\n return ns;\n return ns / 1e6 - timeOrigin;\n}\n\nfunction refreshTimeOrigin() {\n timeOrigin = getTimeOrigin();\n}\n\nmodule.exports = {\n now\x2C\n getMilestoneTimestamp\x2C\n refreshTimeOrigin\n};\n code-source-info,0x337ca0b0db7e,41,525,563,C0O532C5O545C11O543C18O562,, code-creation,LazyCompile,10,12101,0x337ca0b0ddee,62,setupInspectorHooks node:internal/bootstrap/pre_execution:232:29,0x2ba068cfe130,~ code-source-info,0x337ca0b0ddee,92,7155,7708,C0O7498C6O7502C11O7527C17O7592C23O7592C28O7562C33O7576C38O7638C44O7638C49O7666C54O7667C61O7707,, code-creation,Eval,10,12157,0x337ca0b0e19e,5, node:internal/inspector_async_hook:1:1,0x337ca0b0dfe8,~ script-source,94,node:internal/inspector_async_hook,'use strict';\n\nlet hook;\nlet config;\n\nconst {\n SafeSet\x2C\n} = primordials;\n\nfunction lazyHookCreation() {\n const inspector = internalBinding('inspector');\n const { createHook } = require('async_hooks');\n config = internalBinding('config');\n\n hook = createHook({\n init(asyncId\x2C type\x2C triggerAsyncId\x2C resource) {\n // It's difficult to tell which tasks will be recurring and which won't\x2C\n // therefore we mark all tasks as recurring. Based on the discussion\n // in https://github.com/nodejs/node/pull/13870#discussion_r124515293\x2C\n // this should be fine as long as we call asyncTaskCanceled() too.\n const recurring = true;\n if (type === 'PROMISE')\n this.promiseIds.add(asyncId);\n else\n inspector.asyncTaskScheduled(type\x2C asyncId\x2C recurring);\n }\x2C\n\n before(asyncId) {\n if (this.promiseIds.has(asyncId))\n return;\n inspector.asyncTaskStarted(asyncId);\n }\x2C\n\n after(asyncId) {\n if (this.promiseIds.has(asyncId))\n return;\n inspector.asyncTaskFinished(asyncId);\n }\x2C\n\n destroy(asyncId) {\n if (this.promiseIds.has(asyncId))\n return this.promiseIds.delete(asyncId);\n inspector.asyncTaskCanceled(asyncId);\n }\x2C\n });\n\n hook.promiseIds = new SafeSet();\n}\n\nfunction enable() {\n if (hook === undefined) lazyHookCreation();\n if (config.bits < 64) {\n // V8 Inspector stores task ids as (void*) pointers.\n // async_hooks store ids as 64bit numbers.\n // As a result\x2C we cannot reliably translate async_hook ids to V8 async_task\n // ids on 32bit platforms.\n process.emitWarning(\n 'Warning: Async stack traces in debugger are not available ' +\n `on ${config.bits}bit platforms. The feature is disabled.`\x2C\n {\n code: 'INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE'\x2C\n });\n } else {\n hook.enable();\n }\n}\n\nfunction disable() {\n if (hook === undefined) lazyHookCreation();\n hook.disable();\n}\n\nmodule.exports = {\n enable\x2C\n disable\n};\n code-source-info,0x337ca0b0e19e,94,0,1972,C0O0C4O1972,, code-creation,Function,10,12204,0x337ca0b0e3be,79, node:internal/inspector_async_hook:1:1,0x337ca0b0e118,~ code-source-info,0x337ca0b0e3be,94,0,1972,C0O0C42O19C43O19C45O29C46O29C48O48C54O1930C61O1951C67O1961C73O1945C78O1971,, StoreIC,0x337ca0b0e3fb,12235,74,3,X,X,0x000000000000,enable,, StoreIC,0x337ca0b0e401,12240,75,3,X,X,0x000000000000,disable,, code-creation,LazyCompile,10,12261,0x337ca0b0eb2e,69,setupWarningHandler node:internal/bootstrap/pre_execution:141:29,0x2ba068cfde38,~ code-source-info,0x337ca0b0eb2e,92,4540,4737,C0O4575C6O4575C11O4559C16O4614C24O4618C33O4662C38O4666C45O4683C50O4698C53O4706C61O4706C68O4736,, LoadIC,0x337ca0b0ca75,12272,41,18,X,X,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0eb54,12278,146,17,X,X,0x38ac3d981791,NODE_NO_WARNINGS,, code-creation,LazyCompile,10,12317,0x337ca0b0ec8e,20,addListener node:events:486:58,0x24d59d732d38,~ script-source,13,node:events,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n ArrayPrototypeIndexOf\x2C\n ArrayPrototypeJoin\x2C\n ArrayPrototypeShift\x2C\n ArrayPrototypeSlice\x2C\n ArrayPrototypeSplice\x2C\n Boolean\x2C\n Error\x2C\n ErrorCaptureStackTrace\x2C\n FunctionPrototypeBind\x2C\n FunctionPrototypeCall\x2C\n MathMin\x2C\n NumberIsNaN\x2C\n ObjectCreate\x2C\n ObjectDefineProperty\x2C\n ObjectDefineProperties\x2C\n ObjectGetPrototypeOf\x2C\n ObjectSetPrototypeOf\x2C\n Promise\x2C\n PromiseReject\x2C\n PromiseResolve\x2C\n ReflectOwnKeys\x2C\n String\x2C\n StringPrototypeSplit\x2C\n Symbol\x2C\n SymbolFor\x2C\n SymbolAsyncIterator\x2C\n} = primordials;\nconst kRejection = SymbolFor('nodejs.rejection');\nconst { inspect } = require('internal/util/inspect');\n\nlet spliceOne;\n\nconst {\n AbortError\x2C\n kEnhanceStackBeforeInspector\x2C\n codes: {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_OUT_OF_RANGE\x2C\n ERR_UNHANDLED_ERROR\n }\x2C\n} = require('internal/errors');\n\nconst {\n validateAbortSignal\x2C\n validateBoolean\x2C\n validateFunction\x2C\n} = require('internal/validators');\n\nconst kCapture = Symbol('kCapture');\nconst kErrorMonitor = Symbol('events.errorMonitor');\nconst kMaxEventTargetListeners = Symbol('events.maxEventTargetListeners');\nconst kMaxEventTargetListenersWarned =\n Symbol('events.maxEventTargetListenersWarned');\n\n/**\n * Creates a new `EventEmitter` instance.\n * @param {{ captureRejections?: boolean; }} [opts]\n * @returns {EventEmitter}\n */\nfunction EventEmitter(opts) {\n EventEmitter.init.call(this\x2C opts);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\nmodule.exports.on = on;\nmodule.exports.getEventListeners = getEventListeners;\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.captureRejectionSymbol = kRejection;\nObjectDefineProperty(EventEmitter\x2C 'captureRejections'\x2C {\n get() {\n return EventEmitter.prototype[kCapture];\n }\x2C\n set(value) {\n validateBoolean(value\x2C 'EventEmitter.captureRejections');\n\n EventEmitter.prototype[kCapture] = value;\n }\x2C\n enumerable: true\n});\n\nEventEmitter.errorMonitor = kErrorMonitor;\n\n// The default for captureRejections is false\nObjectDefineProperty(EventEmitter.prototype\x2C kCapture\x2C {\n value: false\x2C\n writable: true\x2C\n enumerable: false\n});\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nlet defaultMaxListeners = 10;\nlet isEventTarget;\n\nfunction checkListener(listener) {\n validateFunction(listener\x2C 'listener');\n}\n\nObjectDefineProperty(EventEmitter\x2C 'defaultMaxListeners'\x2C {\n enumerable: true\x2C\n get: function() {\n return defaultMaxListeners;\n }\x2C\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new ERR_OUT_OF_RANGE('defaultMaxListeners'\x2C\n 'a non-negative number'\x2C\n arg);\n }\n defaultMaxListeners = arg;\n }\n});\n\nObjectDefineProperties(EventEmitter\x2C {\n kMaxEventTargetListeners: {\n value: kMaxEventTargetListeners\x2C\n enumerable: false\x2C\n configurable: false\x2C\n writable: false\x2C\n }\x2C\n kMaxEventTargetListenersWarned: {\n value: kMaxEventTargetListenersWarned\x2C\n enumerable: false\x2C\n configurable: false\x2C\n writable: false\x2C\n }\n});\n\n/**\n * Sets the max listeners.\n * @param {number} n\n * @param {EventTarget[] | EventEmitter[]} [eventTargets]\n * @returns {void}\n */\nEventEmitter.setMaxListeners =\n function(n = defaultMaxListeners\x2C ...eventTargets) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n))\n throw new ERR_OUT_OF_RANGE('n'\x2C 'a non-negative number'\x2C n);\n if (eventTargets.length === 0) {\n defaultMaxListeners = n;\n } else {\n if (isEventTarget === undefined)\n isEventTarget = require('internal/event_target').isEventTarget;\n\n for (let i = 0; i < eventTargets.length; i++) {\n const target = eventTargets[i];\n if (isEventTarget(target)) {\n target[kMaxEventTargetListeners] = n;\n target[kMaxEventTargetListenersWarned] = false;\n } else if (typeof target.setMaxListeners === 'function') {\n target.setMaxListeners(n);\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'eventTargets'\x2C\n ['EventEmitter'\x2C 'EventTarget']\x2C\n target);\n }\n }\n }\n };\n\nEventEmitter.init = function(opts) {\n\n if (this._events === undefined ||\n this._events === ObjectGetPrototypeOf(this)._events) {\n this._events = ObjectCreate(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n\n\n if (opts?.captureRejections) {\n validateBoolean(opts.captureRejections\x2C 'options.captureRejections');\n this[kCapture] = Boolean(opts.captureRejections);\n } else {\n // Assigning the kCapture property directly saves an expensive\n // prototype lookup in a very sensitive hot path.\n this[kCapture] = EventEmitter.prototype[kCapture];\n }\n};\n\nfunction addCatch(that\x2C promise\x2C type\x2C args) {\n if (!that[kCapture]) {\n return;\n }\n\n // Handle Promises/A+ spec\x2C then could be a getter\n // that throws on second use.\n try {\n const then = promise.then;\n\n if (typeof then === 'function') {\n then.call(promise\x2C undefined\x2C function(err) {\n // The callback is called with nextTick to avoid a follow-up\n // rejection from this promise.\n process.nextTick(emitUnhandledRejectionOrErr\x2C that\x2C err\x2C type\x2C args);\n });\n }\n } catch (err) {\n that.emit('error'\x2C err);\n }\n}\n\nfunction emitUnhandledRejectionOrErr(ee\x2C err\x2C type\x2C args) {\n if (typeof ee[kRejection] === 'function') {\n ee[kRejection](err\x2C type\x2C ...args);\n } else {\n // We have to disable the capture rejections mechanism\x2C otherwise\n // we might end up in an infinite loop.\n const prev = ee[kCapture];\n\n // If the error handler throws\x2C it is not catcheable and it\n // will end up in 'uncaughtException'. We restore the previous\n // value of kCapture in case the uncaughtException is present\n // and the exception is handled.\n try {\n ee[kCapture] = false;\n ee.emit('error'\x2C err);\n } finally {\n ee[kCapture] = prev;\n }\n }\n}\n\n/**\n * Increases the max listeners of the event emitter.\n * @param {number} n\n * @returns {EventEmitter}\n */\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new ERR_OUT_OF_RANGE('n'\x2C 'a non-negative number'\x2C n);\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\n/**\n * Returns the current max listener value for the event emitter.\n * @returns {number}\n */\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\n// Returns the length and line number of the first sequence of `a` that fully\n// appears in `b` with a length of at least 4.\nfunction identicalSequenceRange(a\x2C b) {\n for (let i = 0; i < a.length - 3; i++) {\n // Find the first entry of b that matches the current entry of a.\n const pos = ArrayPrototypeIndexOf(b\x2C a[i]);\n if (pos !== -1) {\n const rest = b.length - pos;\n if (rest > 3) {\n let len = 1;\n const maxLen = MathMin(a.length - i\x2C rest);\n // Count the number of consecutive entries.\n while (maxLen > len && a[i + len] === b[pos + len]) {\n len++;\n }\n if (len > 3) {\n return [len\x2C i];\n }\n }\n }\n }\n\n return [0\x2C 0];\n}\n\nfunction enhanceStackTrace(err\x2C own) {\n let ctorInfo = '';\n try {\n const { name } = this.constructor;\n if (name !== 'EventEmitter')\n ctorInfo = ` on ${name} instance`;\n } catch {}\n const sep = `\\nEmitted 'error' event${ctorInfo} at:\\n`;\n\n const errStack = ArrayPrototypeSlice(\n StringPrototypeSplit(err.stack\x2C '\\n')\x2C 1);\n const ownStack = ArrayPrototypeSlice(\n StringPrototypeSplit(own.stack\x2C '\\n')\x2C 1);\n\n const { 0: len\x2C 1: off } = identicalSequenceRange(ownStack\x2C errStack);\n if (len > 0) {\n ArrayPrototypeSplice(ownStack\x2C off + 1\x2C len - 2\x2C\n ' [... lines matching original stack trace ...]');\n }\n\n return err.stack + sep + ArrayPrototypeJoin(ownStack\x2C '\\n');\n}\n\n/**\n * Synchronously calls each of the listeners registered\n * for the event.\n * @param {string | symbol} type\n * @param {...any} [args]\n * @returns {boolean}\n */\nEventEmitter.prototype.emit = function emit(type\x2C ...args) {\n let doError = (type === 'error');\n\n const events = this._events;\n if (events !== undefined) {\n if (doError && events[kErrorMonitor] !== undefined)\n this.emit(kErrorMonitor\x2C ...args);\n doError = (doError && events.error === undefined);\n } else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n let er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n try {\n const capture = {};\n ErrorCaptureStackTrace(capture\x2C EventEmitter.prototype.emit);\n ObjectDefineProperty(er\x2C kEnhanceStackBeforeInspector\x2C {\n value: FunctionPrototypeBind(enhanceStackTrace\x2C this\x2C er\x2C capture)\x2C\n configurable: true\n });\n } catch {}\n\n // Note: The comments on the `throw` lines are intentional\x2C they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n\n let stringifiedEr;\n try {\n stringifiedEr = inspect(er);\n } catch {\n stringifiedEr = er;\n }\n\n // At least give some kind of context to the user\n const err = new ERR_UNHANDLED_ERROR(stringifiedEr);\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n const handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n const result = handler.apply(this\x2C args);\n\n // We check if result is undefined first because that\n // is the most common case so we do not pay any perf\n // penalty\n if (result !== undefined && result !== null) {\n addCatch(this\x2C result\x2C type\x2C args);\n }\n } else {\n const len = handler.length;\n const listeners = arrayClone(handler);\n for (let i = 0; i < len; ++i) {\n const result = listeners[i].apply(this\x2C args);\n\n // We check if result is undefined first because that\n // is the most common case so we do not pay any perf\n // penalty.\n // This code is duplicated because extracting it away\n // would make it non-inlineable.\n if (result !== undefined && result !== null) {\n addCatch(this\x2C result\x2C type\x2C args);\n }\n }\n }\n\n return true;\n};\n\nfunction _addListener(target\x2C type\x2C listener\x2C prepend) {\n let m;\n let events;\n let existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = ObjectCreate(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === "newListener"! Before\n // adding it to the listeners\x2C first emit "newListener".\n if (events.newListener !== undefined) {\n target.emit('newListener'\x2C type\x2C\n listener.listener ?? listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element\x2C need to change to array.\n existing = events[type] =\n prepend ? [listener\x2C existing] : [existing\x2C listener];\n // If we've already got an array\x2C just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n const w = new Error('Possible EventEmitter memory leak detected. ' +\n `${existing.length} ${String(type)} listeners ` +\n `added to ${inspect(target\x2C { depth: -1 })}. Use ` +\n 'emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n process.emitWarning(w);\n }\n }\n\n return target;\n}\n\n/**\n * Adds a listener to the event emitter.\n * @param {string | symbol} type\n * @param {Function} listener\n * @returns {EventEmitter}\n */\nEventEmitter.prototype.addListener = function addListener(type\x2C listener) {\n return _addListener(this\x2C type\x2C listener\x2C false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\n/**\n * Adds the `listener` function to the beginning of\n * the listeners array.\n * @param {string | symbol} type\n * @param {Function} listener\n * @returns {EventEmitter}\n */\nEventEmitter.prototype.prependListener =\n function prependListener(type\x2C listener) {\n return _addListener(this\x2C type\x2C listener\x2C true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type\x2C this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target\x2C arguments);\n }\n}\n\nfunction _onceWrap(target\x2C type\x2C listener) {\n const state = { fired: false\x2C wrapFn: undefined\x2C target\x2C type\x2C listener };\n const wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\n/**\n * Adds a one-time `listener` function to the event emitter.\n * @param {string | symbol} type\n * @param {Function} listener\n * @returns {EventEmitter}\n */\nEventEmitter.prototype.once = function once(type\x2C listener) {\n checkListener(listener);\n\n this.on(type\x2C _onceWrap(this\x2C type\x2C listener));\n return this;\n};\n\n/**\n * Adds a one-time `listener` function to the beginning of\n * the listeners array.\n * @param {string | symbol} type\n * @param {Function} listener\n * @returns {EventEmitter}\n */\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type\x2C listener) {\n checkListener(listener);\n\n this.prependListener(type\x2C _onceWrap(this\x2C type\x2C listener));\n return this;\n };\n\n/**\n * Removes the specified `listener` from the listeners array.\n * @param {string | symbol} type\n * @param {Function} listener\n * @returns {EventEmitter}\n */\nEventEmitter.prototype.removeListener =\n function removeListener(type\x2C listener) {\n checkListener(listener);\n\n const events = this._events;\n if (events === undefined)\n return this;\n\n const list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = ObjectCreate(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener'\x2C type\x2C list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n let position = -1;\n\n for (let i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n if (spliceOne === undefined)\n spliceOne = require('internal/util').spliceOne;\n spliceOne(list\x2C position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener'\x2C type\x2C listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\n/**\n * Removes all listeners from the event emitter. (Only\n * removes listeners for a specific event name if specified\n * as `type`).\n * @param {string | symbol} [type]\n * @returns {EventEmitter}\n */\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n const events = this._events;\n if (events === undefined)\n return this;\n\n // Not listening for removeListener\x2C no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = ObjectCreate(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = ObjectCreate(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // Emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (const key of ReflectOwnKeys(events)) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = ObjectCreate(null);\n this._eventsCount = 0;\n return this;\n }\n\n const listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type\x2C listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (let i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type\x2C listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target\x2C type\x2C unwrap) {\n const events = target._events;\n\n if (events === undefined)\n return [];\n\n const evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener);\n}\n\n/**\n * Returns a copy of the array of listeners for the event name\n * specified as `type`.\n * @param {string | symbol} type\n * @returns {Function[]}\n */\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this\x2C type\x2C true);\n};\n\n/**\n * Returns a copy of the array of listeners and wrappers for\n * the event name specified as `type`.\n * @param {string | symbol} type\n * @returns {Function[]}\n */\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this\x2C type\x2C false);\n};\n\n/**\n * Returns the number of listeners listening to the event name\n * specified as `type`.\n * @deprecated since v3.2.0\n * @param {EventEmitter} emitter\n * @param {string | symbol} type\n * @returns {number}\n */\nEventEmitter.listenerCount = function(emitter\x2C type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n }\n return FunctionPrototypeCall(listenerCount\x2C emitter\x2C type);\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\n/**\n * Returns the number of listeners listening to event name\n * specified as `type`.\n * @param {string | symbol} type\n * @returns {number}\n */\nfunction listenerCount(type) {\n const events = this._events;\n\n if (events !== undefined) {\n const evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\n/**\n * Returns an array listing the events for which\n * the emitter has registered listeners.\n * @returns {any[]}\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr) {\n // At least since V8 8.3\x2C this implementation is faster than the previous\n // which always used a simple for-loop\n switch (arr.length) {\n case 2: return [arr[0]\x2C arr[1]];\n case 3: return [arr[0]\x2C arr[1]\x2C arr[2]];\n case 4: return [arr[0]\x2C arr[1]\x2C arr[2]\x2C arr[3]];\n case 5: return [arr[0]\x2C arr[1]\x2C arr[2]\x2C arr[3]\x2C arr[4]];\n case 6: return [arr[0]\x2C arr[1]\x2C arr[2]\x2C arr[3]\x2C arr[4]\x2C arr[5]];\n }\n return ArrayPrototypeSlice(arr);\n}\n\nfunction unwrapListeners(arr) {\n const ret = arrayClone(arr);\n for (let i = 0; i < ret.length; ++i) {\n const orig = ret[i].listener;\n if (typeof orig === 'function')\n ret[i] = orig;\n }\n return ret;\n}\n\n/**\n * Returns a copy of the array of listeners for the event name\n * specified as `type`.\n * @param {EventEmitter | EventTarget} emitterOrTarget\n * @param {string | symbol} type\n * @returns {Function[]}\n */\nfunction getEventListeners(emitterOrTarget\x2C type) {\n // First check if EventEmitter\n if (typeof emitterOrTarget.listeners === 'function') {\n return emitterOrTarget.listeners(type);\n }\n // Require event target lazily to avoid always loading it\n const { isEventTarget\x2C kEvents } = require('internal/event_target');\n if (isEventTarget(emitterOrTarget)) {\n const root = emitterOrTarget[kEvents].get(type);\n const listeners = [];\n let handler = root?.next;\n while (handler?.listener !== undefined) {\n const listener = handler.listener?.deref ?\n handler.listener.deref() : handler.listener;\n listeners.push(listener);\n handler = handler.next;\n }\n return listeners;\n }\n throw new ERR_INVALID_ARG_TYPE('emitter'\x2C\n ['EventEmitter'\x2C 'EventTarget']\x2C\n emitterOrTarget);\n}\n\n/**\n * Creates a `Promise` that is fulfilled when the emitter\n * emits the given event.\n * @param {EventEmitter} emitter\n * @param {string} name\n * @param {{ signal: AbortSignal; }} [options]\n * @returns {Promise}\n */\nasync function once(emitter\x2C name\x2C options = {}) {\n const signal = options?.signal;\n validateAbortSignal(signal\x2C 'options.signal');\n if (signal?.aborted)\n throw new AbortError();\n return new Promise((resolve\x2C reject) => {\n const errorListener = (err) => {\n emitter.removeListener(name\x2C resolver);\n if (signal != null) {\n eventTargetAgnosticRemoveListener(signal\x2C 'abort'\x2C abortListener);\n }\n reject(err);\n };\n const resolver = (...args) => {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error'\x2C errorListener);\n }\n if (signal != null) {\n eventTargetAgnosticRemoveListener(signal\x2C 'abort'\x2C abortListener);\n }\n resolve(args);\n };\n eventTargetAgnosticAddListener(emitter\x2C name\x2C resolver\x2C { once: true });\n if (name !== 'error' && typeof emitter.once === 'function') {\n emitter.once('error'\x2C errorListener);\n }\n function abortListener() {\n eventTargetAgnosticRemoveListener(emitter\x2C name\x2C resolver);\n eventTargetAgnosticRemoveListener(emitter\x2C 'error'\x2C errorListener);\n reject(new AbortError());\n }\n if (signal != null) {\n eventTargetAgnosticAddListener(\n signal\x2C 'abort'\x2C abortListener\x2C { once: true });\n }\n });\n}\n\nconst AsyncIteratorPrototype = ObjectGetPrototypeOf(\n ObjectGetPrototypeOf(async function* () {}).prototype);\n\nfunction createIterResult(value\x2C done) {\n return { value\x2C done };\n}\n\nfunction eventTargetAgnosticRemoveListener(emitter\x2C name\x2C listener\x2C flags) {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener(name\x2C listener);\n } else if (typeof emitter.removeEventListener === 'function') {\n emitter.removeEventListener(name\x2C listener\x2C flags);\n } else {\n throw new ERR_INVALID_ARG_TYPE('emitter'\x2C 'EventEmitter'\x2C emitter);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter\x2C name\x2C listener\x2C flags) {\n if (typeof emitter.on === 'function') {\n if (flags?.once) {\n emitter.once(name\x2C listener);\n } else {\n emitter.on(name\x2C listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters\x2C we do not listen to `error` events here.\n emitter.addEventListener(name\x2C (arg) => { listener(arg); }\x2C flags);\n } else {\n throw new ERR_INVALID_ARG_TYPE('emitter'\x2C 'EventEmitter'\x2C emitter);\n }\n}\n\n/**\n * Returns an `AsyncIterator` that iterates `event` events.\n * @param {EventEmitter} emitter\n * @param {string | symbol} event\n * @param {{ signal: AbortSignal; }} [options]\n * @returns {AsyncIterator}\n */\nfunction on(emitter\x2C event\x2C options) {\n const signal = options?.signal;\n validateAbortSignal(signal\x2C 'options.signal');\n if (signal?.aborted)\n throw new AbortError();\n\n const unconsumedEvents = [];\n const unconsumedPromises = [];\n let error = null;\n let finished = false;\n\n const iterator = ObjectSetPrototypeOf({\n next() {\n // First\x2C we consume all unread events\n const value = unconsumedEvents.shift();\n if (value) {\n return PromiseResolve(createIterResult(value\x2C false));\n }\n\n // Then we error\x2C if an error happened\n // This happens one time if at all\x2C because after 'error'\n // we stop listening\n if (error) {\n const p = PromiseReject(error);\n // Only the first element errors\n error = null;\n return p;\n }\n\n // If the iterator is finished\x2C resolve to done\n if (finished) {\n return PromiseResolve(createIterResult(undefined\x2C true));\n }\n\n // Wait until an event happens\n return new Promise(function(resolve\x2C reject) {\n unconsumedPromises.push({ resolve\x2C reject });\n });\n }\x2C\n\n return() {\n eventTargetAgnosticRemoveListener(emitter\x2C event\x2C eventHandler);\n eventTargetAgnosticRemoveListener(emitter\x2C 'error'\x2C errorHandler);\n\n if (signal) {\n eventTargetAgnosticRemoveListener(\n signal\x2C\n 'abort'\x2C\n abortListener\x2C\n { once: true });\n }\n\n finished = true;\n\n for (const promise of unconsumedPromises) {\n promise.resolve(createIterResult(undefined\x2C true));\n }\n\n return PromiseResolve(createIterResult(undefined\x2C true));\n }\x2C\n\n throw(err) {\n if (!err || !(err instanceof Error)) {\n throw new ERR_INVALID_ARG_TYPE('EventEmitter.AsyncIterator'\x2C\n 'Error'\x2C err);\n }\n error = err;\n eventTargetAgnosticRemoveListener(emitter\x2C event\x2C eventHandler);\n eventTargetAgnosticRemoveListener(emitter\x2C 'error'\x2C errorHandler);\n }\x2C\n\n [SymbolAsyncIterator]() {\n return this;\n }\n }\x2C AsyncIteratorPrototype);\n\n eventTargetAgnosticAddListener(emitter\x2C event\x2C eventHandler);\n if (event !== 'error' && typeof emitter.on === 'function') {\n emitter.on('error'\x2C errorHandler);\n }\n\n if (signal) {\n eventTargetAgnosticAddListener(\n signal\x2C\n 'abort'\x2C\n abortListener\x2C\n { once: true });\n }\n\n return iterator;\n\n function abortListener() {\n errorHandler(new AbortError());\n }\n\n function eventHandler(...args) {\n const promise = ArrayPrototypeShift(unconsumedPromises);\n if (promise) {\n promise.resolve(createIterResult(args\x2C false));\n } else {\n unconsumedEvents.push(args);\n }\n }\n\n function errorHandler(err) {\n finished = true;\n\n const toError = ArrayPrototypeShift(unconsumedPromises);\n\n if (toError) {\n toError.reject(err);\n } else {\n // The next time we call next()\n error = err;\n }\n\n iterator.return();\n }\n}\n code-source-info,0x337ca0b0ec8e,13,14192,14264,C0O14213C14O14220C19O14262,, code-creation,LazyCompile,10,12861,0x337ca0b10eee,387,_addListener node:events:418:22,0x24d59d732c98,~ code-source-info,0x337ca0b10eee,13,11979,13994,C0O12021C2O12030C4O12044C6O12057C9O12057C13O12101C18O12112C20O12144C22O12170C27O12170C32O12168C39O12194C40O12214C46O12380C52O12422C60O12475C77O12422C82O12654C87O12673C89O12690C93O12705C97O12816C99O12829C103O12845C109O12854C115O12883C121O12988C129O13022C140O13033C149O13043C166O13056C175O13066C182O13012C193O13141C197O13171C202O13171C209O13218C214O13218C219O13276C222O13280C227O13310C228O13316C233O13332C240O13339C245O13356C251O13372C252O13388C256O13521C264O13618C278O13628C281O13628C295O13578C304O13694C307O13702C312O13694C327O13654C333O13733C339O13521C345O13815C347O13822C351O13861C353O13871C357O13887C359O13894C363O13927C367O13916C371O13941C374O13949C379O13949C384O13978C386O13992,, code-creation,LazyCompile,10,12881,0x337ca0b11226,15,checkListener node:events:127:23,0x24d59d7325f8,~ code-source-info,0x337ca0b11226,13,3670,3726,C0O3685C8O3685C14O3725,, code-creation,LazyCompile,10,12894,0x337ca0b11316,30, node:internal/validators:235:42,0x44edd6da390,~ code-source-info,0x337ca0b11316,17,7207,7323,C0O7228C6O7265C22O7271C27O7265C29O7322,, code-creation,LazyCompile,10,12952,0x337ca0b115ae,380,emit node:events:340:44,0x24d59d732bd8,~ code-source-info,0x337ca0b115ae,13,9741,11955,C0O9741C8O9775C10O9781C14O9818C19O9829C21O9861C27O9883C29O9882C34O9924C41O9929C51O9924C56O9958C60O9987C68O10018C72O10036C73O10049C74O10108C78O10131C80O10148C86O10155C91O10166C92O10175C96O10184C98O10202C100O10191C108O10247C110O10259C120O10304C126O10314C132O10259C137O10329C145O10354C157O10403C174O10403C186O10329C197O10677C199O10677C200O10729C205O10760C211O10776C219O10774C220O10809C225O10906C232O10906C238O10950C240O10962C244O10972C246O10972C247O11033C249O11039C253O11050C255O11081C256O11094C257O11098C263O11162C268O11162C275O11316C281O11369C296O11369C303O11446C308O11476C311O11476C316O11514C318O11519C320O11519C325O11554C327O11563C332O11567C337O11567C344O11829C350O11884C365O11884C370O11528C375O11501C378O11941C379O11953,, code-creation,LazyCompile,10,12991,0x337ca0b1194e,172,startListeningIfSignal node:internal/process/signal:22:32,0x3edb62acbe98,~ script-source,89,node:internal/process/signal,'use strict';\n\nconst {\n FunctionPrototypeBind\x2C\n SafeMap\x2C\n} = primordials;\n\nconst {\n errnoException\x2C\n} = require('internal/errors');\n\nconst { signals } = internalBinding('constants').os;\n\nlet Signal;\nconst signalWraps = new SafeMap();\n\nfunction isSignal(event) {\n return typeof event === 'string' && signals[event] !== undefined;\n}\n\n// Detect presence of a listener for the special signal types\nfunction startListeningIfSignal(type) {\n if (isSignal(type) && !signalWraps.has(type)) {\n if (Signal === undefined)\n Signal = internalBinding('signal_wrap').Signal;\n const wrap = new Signal();\n\n wrap.unref();\n\n wrap.onsignal = FunctionPrototypeBind(process.emit\x2C process\x2C type\x2C type);\n\n const signum = signals[type];\n const err = wrap.start(signum);\n if (err) {\n wrap.close();\n throw errnoException(err\x2C 'uv_signal_start');\n }\n\n signalWraps.set(type\x2C wrap);\n }\n}\n\nfunction stopListeningIfSignal(type) {\n const wrap = signalWraps.get(type);\n if (wrap !== undefined && process.listenerCount(type) === 0) {\n wrap.close();\n signalWraps.delete(type);\n }\n}\n\nmodule.exports = {\n startListeningIfSignal\x2C\n stopListeningIfSignal\n};\n code-source-info,0x337ca0b1194e,89,429,904,C0O440C3O444C11O463C14O475C19O475C26O492C32O524C38O533C43O563C50O531C56O589C61O589C67O613C72O613C76O627C78O643C84O673C98O643C103O641C107O721C114O728C118O757C123O757C129O776C131O798C136O798C140O813C148O819C153O813C154O870C159O882C164O882C171O903,, code-creation,LazyCompile,10,13035,0x337ca0b11d0e,19,isSignal node:internal/process/signal:17:18,0x3edb62acbce0,~ code-source-info,0x337ca0b11d0e,89,255,334,C0O267C8O303C13O310C17O318C18O332,, LoadIC,0x337ca0b0362f,13045,37,19,X,X,0x38ac3d981791,NODE_V8_COVERAGE,, code-creation,LazyCompile,10,13059,0x337ca0b11eae,75,setupDebugEnv node:internal/bootstrap/pre_execution:193:23,0x2ba068cfdfa0,~ code-source-info,0x337ca0b11eae,92,6003,6213,C0O6010C6O6010C11O6043C19O6071C24O6075C29O6044C34O6090C42O6094C48O6138C54O6138C59O6175C64O6188C69O6189C74O6212,, LoadIC,0x337ca0b11ec6,13072,194,68,X,X,0x38ac3d981791,NODE_DEBUG,, code-creation,LazyCompile,10,13103,0x337ca0b12246,159,initializeDebugEnv node:internal/util/debuglog:22:28,0x23787e1ba7c8,~ script-source,40,node:internal/util/debuglog,'use strict';\n\nconst {\n ObjectCreate\x2C\n ObjectDefineProperty\x2C\n RegExp\x2C\n RegExpPrototypeExec\x2C\n SafeArrayIterator\x2C\n StringPrototypeToLowerCase\x2C\n StringPrototypeToUpperCase\x2C\n} = primordials;\n\nconst { inspect\x2C format\x2C formatWithOptions } = require('internal/util/inspect');\n\n// `debugImpls` and `testEnabled` are deliberately not initialized so any call\n// to `debuglog()` before `initializeDebugEnv()` is called will throw.\nlet debugImpls;\nlet testEnabled;\n\n\n// `debugEnv` is initial value of process.env.NODE_DEBUG\nfunction initializeDebugEnv(debugEnv) {\n debugImpls = ObjectCreate(null);\n if (debugEnv) {\n // This is run before any user code\x2C it's OK not to use primordials.\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g\x2C '\\\\$&')\n .replaceAll('*'\x2C '.*')\n .replaceAll('\x2C'\x2C '$|^');\n const debugEnvRegex = new RegExp(`^${debugEnv}$`\x2C 'i');\n testEnabled = (str) => RegExpPrototypeExec(debugEnvRegex\x2C str) !== null;\n } else {\n testEnabled = () => false;\n }\n}\n\n// Emits warning when user sets\n// NODE_DEBUG=http or NODE_DEBUG=http2.\nfunction emitWarningIfNeeded(set) {\n if ('HTTP' === set || 'HTTP2' === set) {\n process.emitWarning('Setting the NODE_DEBUG environment variable ' +\n 'to \\'' + StringPrototypeToLowerCase(set) + '\\' can expose sensitive ' +\n 'data (such as passwords\x2C tokens and authentication headers) ' +\n 'in the resulting log.');\n }\n}\n\nconst noop = () => {};\n\nfunction debuglogImpl(enabled\x2C set) {\n if (debugImpls[set] === undefined) {\n if (enabled) {\n const pid = process.pid;\n emitWarningIfNeeded(set);\n debugImpls[set] = function debug(...args) {\n const colors = process.stderr.hasColors && process.stderr.hasColors();\n const msg = formatWithOptions({ colors }\x2C ...args);\n const coloredPID = inspect(pid\x2C { colors });\n process.stderr.write(format('%s %s: %s\\n'\x2C set\x2C coloredPID\x2C msg));\n };\n } else {\n debugImpls[set] = noop;\n }\n }\n return debugImpls[set];\n}\n\n// debuglogImpl depends on process.pid and process.env.NODE_DEBUG\x2C\n// so it needs to be called lazily in top scopes of internal modules\n// that may be loaded before these run time states are allowed to\n// be accessed.\nfunction debuglog(set\x2C cb) {\n function init() {\n set = StringPrototypeToUpperCase(set);\n enabled = testEnabled(set);\n }\n let debug = (...args) => {\n init();\n // Only invokes debuglogImpl() when the debug function is\n // called for the first time.\n debug = debuglogImpl(enabled\x2C set);\n if (typeof cb === 'function')\n cb(debug);\n switch (args.length) {\n case 0: return debug();\n case 1: return debug(args[0]);\n case 2: return debug(args[0]\x2C args[1]);\n default: return debug(...new SafeArrayIterator(args));\n }\n };\n let enabled;\n let test = () => {\n init();\n test = () => enabled;\n return enabled;\n };\n const logger = (...args) => {\n switch (args.length) {\n case 0: return debug();\n case 1: return debug(args[0]);\n case 2: return debug(args[0]\x2C args[1]);\n default: return debug(...new SafeArrayIterator(args));\n }\n };\n ObjectDefineProperty(logger\x2C 'enabled'\x2C {\n get() {\n return test();\n }\x2C\n configurable: true\x2C\n enumerable: true\n });\n return logger;\n}\n\nmodule.exports = {\n debuglog\x2C\n initializeDebugEnv\n};\n code-source-info,0x337ca0b12246,40,546,991,C0O561C7O574C14O572C20O596C31O709C44O709C51O753C62O754C69O782C80O783C88O833C100O848C116O833C121O833C123O871C132O883C144O959C151O971C158O990,, LoadIC,0x337ca0b0ca75,13174,41,18,X,X,0x268a435c1349,startsWith,, new,MemoryChunk,0x7fe6cc040000,262144 code-creation,Function,11,13212,0x7fe6cc043060,572,getOptionValue node:internal/options:39:24,0x337ca0b013d8,^ code-source-info,0x7fe6cc043060,93,902,1145,,, code-creation,Function,11,13221,0x7fe6cc043300,112,isPosixPathSeparator node:path:56:30,0x23787e1a7f00,^ code-source-info,0x7fe6cc043300,35,1854,1902,,, code-creation,Function,11,13245,0x7fe6cc0433e0,3068,normalizeString node:path:66:25,0x23787e1a7fa0,^ code-source-info,0x7fe6cc0433e0,35,2161,4085,,, code-creation,LazyCompile,10,13268,0x337ca0b12b96,49,setupStacktracePrinterOnSigint node:internal/bootstrap/pre_execution:172:40,0x2ba068cfded8,~ code-source-info,0x337ca0b12b96,92,5567,5753,C0O5574C8O5579C14O5619C15O5626C16O5660C22O5660C27O5641C32O5710C38O5743C43O5743C48O5752,, LoadIC,0x337ca0b0ca75,13281,41,18,0,1,0x268a435c1349,startsWith,, LoadIC,0x337ca0b0caab,13286,45,18,0,1,0x38ac3d9acae1,get,, LoadIC,0x337ca0b0cab8,13290,45,33,0,1,0x38ac3d9acc49,value,, code-creation,LazyCompile,10,13306,0x337ca0b12e06,62,initializeReport node:internal/bootstrap/pre_execution:182:26,0x2ba068cfdf28,~ code-source-info,0x337ca0b12e06,92,5780,5979,C0O5780C8O5806C16O5806C21O5795C27O5844C42O5865C47O5937C55O5844C61O5978,, code-creation,Eval,10,13391,0x337ca0b13386,5, node:internal/process/report:1:1,0x337ca0b13180,~ script-source,95,node:internal/process/report,'use strict';\nconst {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_SYNTHETIC\n} = require('internal/errors').codes;\nconst {\n validateBoolean\x2C\n validateObject\x2C\n validateSignalName\x2C\n validateString\x2C\n} = require('internal/validators');\nconst nr = internalBinding('report');\nconst {\n JSONParse\x2C\n} = primordials;\nconst report = {\n writeReport(file\x2C err) {\n if (typeof file === 'object' && file !== null) {\n err = file;\n file = undefined;\n } else if (file !== undefined && typeof file !== 'string') {\n throw new ERR_INVALID_ARG_TYPE('file'\x2C 'String'\x2C file);\n } else if (err === undefined) {\n err = new ERR_SYNTHETIC();\n } else {\n validateObject(err\x2C 'err');\n }\n\n return nr.writeReport('JavaScript API'\x2C 'API'\x2C file\x2C err);\n }\x2C\n getReport(err) {\n if (err === undefined)\n err = new ERR_SYNTHETIC();\n else\n validateObject(err\x2C 'err');\n\n return JSONParse(nr.getReport(err));\n }\x2C\n get directory() {\n return nr.getDirectory();\n }\x2C\n set directory(dir) {\n validateString(dir\x2C 'directory');\n nr.setDirectory(dir);\n }\x2C\n get filename() {\n return nr.getFilename();\n }\x2C\n set filename(name) {\n validateString(name\x2C 'filename');\n nr.setFilename(name);\n }\x2C\n get compact() {\n return nr.getCompact();\n }\x2C\n set compact(b) {\n validateBoolean(b\x2C 'compact');\n nr.setCompact(b);\n }\x2C\n get signal() {\n return nr.getSignal();\n }\x2C\n set signal(sig) {\n validateSignalName(sig\x2C 'signal');\n removeSignalHandler();\n addSignalHandler(sig);\n nr.setSignal(sig);\n }\x2C\n get reportOnFatalError() {\n return nr.shouldReportOnFatalError();\n }\x2C\n set reportOnFatalError(trigger) {\n validateBoolean(trigger\x2C 'trigger');\n\n nr.setReportOnFatalError(trigger);\n }\x2C\n get reportOnSignal() {\n return nr.shouldReportOnSignal();\n }\x2C\n set reportOnSignal(trigger) {\n validateBoolean(trigger\x2C 'trigger');\n\n nr.setReportOnSignal(trigger);\n removeSignalHandler();\n addSignalHandler();\n }\x2C\n get reportOnUncaughtException() {\n return nr.shouldReportOnUncaughtException();\n }\x2C\n set reportOnUncaughtException(trigger) {\n validateBoolean(trigger\x2C 'trigger');\n\n nr.setReportOnUncaughtException(trigger);\n }\n};\n\nfunction addSignalHandler(sig) {\n if (nr.shouldReportOnSignal()) {\n if (typeof sig !== 'string')\n sig = nr.getSignal();\n\n process.on(sig\x2C signalHandler);\n }\n}\n\nfunction removeSignalHandler() {\n const sig = nr.getSignal();\n\n if (sig)\n process.removeListener(sig\x2C signalHandler);\n}\n\nfunction signalHandler(sig) {\n nr.writeReport(sig\x2C 'Signal'\x2C null\x2C '');\n}\n\nmodule.exports = {\n addSignalHandler\x2C\n report\n};\n code-source-info,0x337ca0b13386,95,0,2623,C0O0C4O2623,, code-creation,Function,10,13451,0x337ca0b13e9e,315, node:internal/process/report:1:1,0x337ca0b13300,~ code-source-info,0x337ca0b13e9e,95,0,2623,C0O0C51O66C54O66C59O92C64O24C70O48C76O189C79O189C84O110C90O129C96O147C102O169C108O232C111O232C115O232C117O269C123O312C128O316C136O756C290O2572C297O2593C303O2613C309O2587C314O2622,, StoreIC,0x337ca0b13f22,13530,17,3,X,X,0x000000000000,writeReport,, StoreIC,0x337ca0b13f2a,13537,31,3,X,X,0x000000000000,getReport,, StoreIC,0x337ca0b13fc7,13543,118,3,X,X,0x000000000000,addSignalHandler,, StoreIC,0x337ca0b13fcd,13547,119,3,X,X,0x000000000000,report,, StoreIC,0x337ca0b12e39,13553,187,5,X,X,0x000000000000,get,, code-creation,LazyCompile,10,13570,0x337ca0b15fb6,21,initializeReportSignalHandlers node:internal/bootstrap/pre_execution:201:40,0x2ba068cfdff0,~ code-source-info,0x337ca0b15fb6,92,6314,6410,C0O6350C6O6350C11O6329C16O6389C20O6409,, LoadIC,0x2ba068cfc0d1,13580,337,28,0,1,0x38ac3d98a701,map,, LoadIC,0x2ba068cfc0d6,13584,337,32,0,1,0x38ac3d983711,get,, LoadIC,0x2ba068cfc100,13587,341,14,0,1,0x38ac3d986f99,compileForInternalLoader,, code-creation,LazyCompile,10,13602,0x337ca0b160fe,57,addSignalHandler node:internal/process/report:97:26,0x337ca0b133b8,~ code-source-info,0x337ca0b160fe,95,2222,2368,C0O2232C5O2239C10O2239C16O2269C22O2304C27O2313C32O2313C38O2331C41O2339C49O2339C56O2367,, code-creation,LazyCompile,10,13623,0x337ca0b162e6,92,initializeHeapSnapshotSignalHandlers node:internal/bootstrap/pre_execution:207:46,0x2ba068cfe040,~ code-source-info,0x337ca0b162e6,92,6457,6719,C0O6457C8O6479C18O6479C23O6523C25O6540C26O6547C27O6551C35O6551C40O6581C45O6582C50O6642C58O6642C63O6620C69O6660C74O6668C79O6671C84O6668C91O6718,, code-creation,LazyCompile,10,13650,0x337ca0b16576,138,setupChildProcessIpcChannel node:internal/bootstrap/pre_execution:337:37,0x2ba068cfe210,~ code-source-info,0x337ca0b16576,92,10471,11000,C0O10478C3O10490C8O10494C14O10532C20O10532C25O10576C33O10599C38O10603C46O10576C52O10629C53O10639C57O10629C61O10720C64O10735C73O10793C76O10801C81O10805C90O10852C93O10867C102O10909C108O10909C113O10933C118O10934C124O10973C127O10988C132O10973C137O10999,, LoadIC,0x337ca0b1657e,13661,338,19,X,X,0x38ac3d981791,NODE_CHANNEL_FD,, code-creation,LazyCompile,10,13713,0x337ca0b1696e,455,initializePolicy node:internal/bootstrap/pre_execution:365:26,0x2ba068cfe2b0,~ code-source-info,0x337ca0b1696e,92,11299,13097,C0O11333C10O11333C15O11376C17O11406C21O11414C35O11414C41O11539C49O11539C55O11516C60O11531C65O11658C67O11675C75O11679C81O11694C87O11695C94O11735C100O11767C108O11749C116O11824C120O11846C126O11846C132O11824C138O11860C149O11876C153O11890C161O11904C167O11962C175O11962C180O11996C190O11996C197O12071C207O12071C212O12113C214O12166C222O12166C227O12244C235O12244C241O12212C246O12224C251O12293C257O12293C263O12343C269O12343C275O12402C277O12428C279O12452C283O12433C288O12542C290O12558C295O12493C300O12521C305O12584C311O12620C317O12620C322O12661C328O12661C334O12690C340O12710C344O12697C349O12730C356O12777C358O12806C360O12847C366O12869C376O12869C383O12847C389O12461C394O12415C397O12904C401O12931C415O12937C420O12931C421O13020C429O13020C435O13061C441O13085C447O13062C454O13096,, code-creation,LazyCompile,10,13738,0x337ca0b16d5e,63,initializeClusterIPC node:internal/bootstrap/pre_execution:356:30,0x2ba068cfe260,~ code-source-info,0x337ca0b16d5e,92,11031,11272,C0O11038C3O11050C10O11054C18O11069C23O11073C29O11111C35O11111C40O11143C45O11143C49O11232C52O11247C62O11271,, LoadIC,0x337ca0b16d75,13747,357,38,X,X,0x38ac3d981791,NODE_UNIQUE_ID,, code-creation,LazyCompile,10,13758,0x337ca0b16ece,27,initializeSourceMapsHandlers node:internal/bootstrap/pre_execution:460:38,0x2ba068cfe3f0,~ code-source-info,0x337ca0b16ece,92,14830,14979,C0O14874C6O14874C11O14845C16O14925C21O14954C26O14978,, code-creation,Eval,10,13890,0x337ca0b1784e,5, node:internal/source_map/source_map_cache:1:1,0x337ca0b174e8,~ script-source,96,node:internal/source_map/source_map_cache,'use strict';\n\nconst {\n ArrayPrototypeMap\x2C\n JSONParse\x2C\n ObjectCreate\x2C\n ObjectKeys\x2C\n ObjectGetOwnPropertyDescriptor\x2C\n ObjectPrototypeHasOwnProperty\x2C\n RegExpPrototypeTest\x2C\n SafeMap\x2C\n StringPrototypeMatch\x2C\n StringPrototypeSplit\x2C\n} = primordials;\n\nfunction ObjectGetValueSafe(obj\x2C key) {\n const desc = ObjectGetOwnPropertyDescriptor(obj\x2C key);\n return ObjectPrototypeHasOwnProperty(desc\x2C 'value') ? desc.value : undefined;\n}\n\n// See https://sourcemaps.info/spec.html for SourceMap V3 specification.\nconst { Buffer } = require('buffer');\nlet debug = require('internal/util/debuglog').debuglog('source_map'\x2C (fn) => {\n debug = fn;\n});\nconst fs = require('fs');\nconst { getOptionValue } = require('internal/options');\nconst { IterableWeakMap } = require('internal/util/iterable_weak_map');\nconst {\n normalizeReferrerURL\x2C\n} = require('internal/modules/cjs/helpers');\nconst { validateBoolean } = require('internal/validators');\n// Since the CJS module cache is mutable\x2C which leads to memory leaks when\n// modules are deleted\x2C we use a WeakMap so that the source map cache will\n// be purged automatically:\nconst cjsSourceMapCache = new IterableWeakMap();\n// The esm cache is not mutable\x2C so we can use a Map without memory concerns:\nconst esmSourceMapCache = new SafeMap();\nconst { fileURLToPath\x2C pathToFileURL\x2C URL } = require('internal/url');\nlet SourceMap;\n\nlet sourceMapsEnabled;\nfunction getSourceMapsEnabled() {\n if (sourceMapsEnabled === undefined) {\n setSourceMapsEnabled(getOptionValue('--enable-source-maps'));\n }\n return sourceMapsEnabled;\n}\n\nfunction setSourceMapsEnabled(val) {\n validateBoolean(val\x2C 'val');\n\n const {\n setSourceMapsEnabled\x2C\n setPrepareStackTraceCallback\n } = internalBinding('errors');\n setSourceMapsEnabled(val);\n if (val) {\n const {\n prepareStackTrace\n } = require('internal/source_map/prepare_stack_trace');\n setPrepareStackTraceCallback(prepareStackTrace);\n } else if (sourceMapsEnabled !== undefined) {\n // Reset prepare stack trace callback only when disabling source maps.\n const {\n prepareStackTrace\x2C\n } = require('internal/errors');\n setPrepareStackTraceCallback(prepareStackTrace);\n }\n\n sourceMapsEnabled = val;\n}\n\nfunction maybeCacheSourceMap(filename\x2C content\x2C cjsModuleInstance) {\n const sourceMapsEnabled = getSourceMapsEnabled();\n if (!(process.env.NODE_V8_COVERAGE || sourceMapsEnabled)) return;\n try {\n filename = normalizeReferrerURL(filename);\n } catch (err) {\n // This is most likely an [eval]-wrapper\x2C which is currently not\n // supported.\n debug(err.stack);\n return;\n }\n const match = StringPrototypeMatch(\n content\x2C\n /\\/[*/]#\\s+sourceMappingURL=(?[^\\s]+)/\n );\n if (match) {\n const data = dataFromUrl(filename\x2C match.groups.sourceMappingURL);\n const url = data ? null : match.groups.sourceMappingURL;\n if (cjsModuleInstance) {\n cjsSourceMapCache.set(cjsModuleInstance\x2C {\n filename\x2C\n lineLengths: lineLengths(content)\x2C\n data\x2C\n url\n });\n } else {\n // If there is no cjsModuleInstance assume we are in a\n // "modules/esm" context.\n esmSourceMapCache.set(filename\x2C {\n lineLengths: lineLengths(content)\x2C\n data\x2C\n url\n });\n }\n }\n}\n\nfunction dataFromUrl(sourceURL\x2C sourceMappingURL) {\n try {\n const url = new URL(sourceMappingURL);\n switch (url.protocol) {\n case 'data:':\n return sourceMapFromDataUrl(sourceURL\x2C url.pathname);\n default:\n debug(`unknown protocol ${url.protocol}`);\n return null;\n }\n } catch (err) {\n debug(err.stack);\n // If no scheme is present\x2C we assume we are dealing with a file path.\n const mapURL = new URL(sourceMappingURL\x2C sourceURL).href;\n return sourceMapFromFile(mapURL);\n }\n}\n\n// Cache the length of each line in the file that a source map was extracted\n// from. This allows translation from byte offset V8 coverage reports\x2C\n// to line/column offset Source Map V3.\nfunction lineLengths(content) {\n // We purposefully keep \\r as part of the line-length calculation\x2C in\n // cases where there is a \\r\\n separator\x2C so that this can be taken into\n // account in coverage calculations.\n return ArrayPrototypeMap(StringPrototypeSplit(content\x2C /\\n|\\u2028|\\u2029/)\x2C (line) => {\n return line.length;\n });\n}\n\nfunction sourceMapFromFile(mapURL) {\n try {\n const content = fs.readFileSync(fileURLToPath(mapURL)\x2C 'utf8');\n const data = JSONParse(content);\n return sourcesToAbsolute(mapURL\x2C data);\n } catch (err) {\n debug(err.stack);\n return null;\n }\n}\n\n// data:[][;base64]\x2C see:\n// https://tools.ietf.org/html/rfc2397#section-2\nfunction sourceMapFromDataUrl(sourceURL\x2C url) {\n const { 0: format\x2C 1: data } = StringPrototypeSplit(url\x2C '\x2C');\n const splitFormat = StringPrototypeSplit(format\x2C ';');\n const contentType = splitFormat[0];\n const base64 = splitFormat[splitFormat.length - 1] === 'base64';\n if (contentType === 'application/json') {\n const decodedData = base64 ?\n Buffer.from(data\x2C 'base64').toString('utf8') : data;\n try {\n const parsedData = JSONParse(decodedData);\n return sourcesToAbsolute(sourceURL\x2C parsedData);\n } catch (err) {\n debug(err.stack);\n return null;\n }\n } else {\n debug(`unknown content-type ${contentType}`);\n return null;\n }\n}\n\n// If the sources are not absolute URLs after prepending of the "sourceRoot"\x2C\n// the sources are resolved relative to the SourceMap (like resolving script\n// src in a html document).\nfunction sourcesToAbsolute(baseURL\x2C data) {\n data.sources = data.sources.map((source) => {\n source = (data.sourceRoot || '') + source;\n return new URL(source\x2C baseURL).href;\n });\n // The sources array is now resolved to absolute URLs\x2C sourceRoot should\n // be updated to noop.\n data.sourceRoot = '';\n return data;\n}\n\n// WARNING: The `sourceMapCacheToObject` and `appendCJSCache` run during\n// shutdown. In particular\x2C they also run when Workers are terminated\x2C making\n// it important that they do not call out to any user-provided code\x2C including\n// built-in prototypes that might have been tampered with.\n\n// Get serialized representation of source-map cache\x2C this is used\n// to persist a cache of source-maps to disk when NODE_V8_COVERAGE is enabled.\nfunction sourceMapCacheToObject() {\n const obj = ObjectCreate(null);\n\n for (const { 0: k\x2C 1: v } of esmSourceMapCache) {\n obj[k] = v;\n }\n\n appendCJSCache(obj);\n\n if (ObjectKeys(obj).length === 0) {\n return undefined;\n }\n return obj;\n}\n\nfunction appendCJSCache(obj) {\n for (const value of cjsSourceMapCache) {\n obj[ObjectGetValueSafe(value\x2C 'filename')] = {\n lineLengths: ObjectGetValueSafe(value\x2C 'lineLengths')\x2C\n data: ObjectGetValueSafe(value\x2C 'data')\x2C\n url: ObjectGetValueSafe(value\x2C 'url')\n };\n }\n}\n\nfunction findSourceMap(sourceURL) {\n if (!RegExpPrototypeTest(/^\\w+:\\/\\//\x2C sourceURL)) {\n sourceURL = pathToFileURL(sourceURL).href;\n }\n if (!SourceMap) {\n SourceMap = require('internal/source_map/source_map').SourceMap;\n }\n let sourceMap = esmSourceMapCache.get(sourceURL);\n if (sourceMap === undefined) {\n for (const value of cjsSourceMapCache) {\n const filename = ObjectGetValueSafe(value\x2C 'filename');\n if (sourceURL === filename) {\n sourceMap = {\n data: ObjectGetValueSafe(value\x2C 'data')\n };\n }\n }\n }\n if (sourceMap && sourceMap.data) {\n return new SourceMap(sourceMap.data);\n }\n return undefined;\n}\n\nmodule.exports = {\n findSourceMap\x2C\n getSourceMapsEnabled\x2C\n setSourceMapsEnabled\x2C\n maybeCacheSourceMap\x2C\n sourceMapCacheToObject\x2C\n};\n code-source-info,0x337ca0b1784e,96,0,7654,C0O0C4O7654,, code-creation,Function,10,14035,0x337ca0b17ec6,435, node:internal/source_map/source_map_cache:1:1,0x337ca0b177c8,~ code-source-info,0x337ca0b17ec6,96,0,7654,C0O0C152O25C158O46C164O59C170O75C176O89C182O123C188O156C194O179C199O190C205O214C211O526C217O526C222O515C228O557C234O557C239O590C252O591C258O557C260O653C266O653C270O653C272O695C278O695C283O676C289O752C295O752C300O732C305O832C311O832C316O806C322O901C328O901C333O881C339O1137C341O1137C346O1137C348O1264C350O1264C355O1264C357O1325C363O1325C368O1287C374O1302C380O1317C386O1354C387O1354C389O1370C390O1370C392O7518C399O7539C405O7556C411O7580C417O7604C423O7627C429O7533C434O7653,, code-creation,LazyCompile,10,14106,0x337ca0b18cae,82,debuglog node:internal/util/debuglog:71:18,0x23787e1bab00,~ code-source-info,0x337ca0b18cae,40,2232,3279,C0O2232C28O2357C32O2357C34O2789C35O2789C37O2811C41O2811C43O2899C48O3128C58O3149C63O3174C74O3128C79O3263C81O3277,, StoreIC,0x337ca0b18cf1,14124,105,5,X,X,0x000000000000,get,, code-creation,Eval,10,14199,0x337ca0b1922e,5, node:internal/util/iterable_weak_map:1:1,0x337ca0b18fe0,~ script-source,97,node:internal/util/iterable_weak_map,'use strict';\n\nconst {\n ObjectFreeze\x2C\n SafeFinalizationRegistry\x2C\n SafeSet\x2C\n SafeWeakMap\x2C\n SafeWeakRef\x2C\n SymbolIterator\x2C\n} = primordials;\n\n// This class is modified from the example code in the WeakRefs specification:\n// https://github.com/tc39/proposal-weakrefs\n// Licensed under ECMA's MIT-style license\x2C see:\n// https://github.com/tc39/ecma262/blob/HEAD/LICENSE.md\nclass IterableWeakMap {\n #weakMap = new SafeWeakMap();\n #refSet = new SafeSet();\n #finalizationGroup = new SafeFinalizationRegistry(cleanup);\n\n set(key\x2C value) {\n const entry = this.#weakMap.get(key);\n if (entry) {\n // If there's already an entry for the object represented by "key"\x2C\n // the value can be updated without creating a new WeakRef:\n this.#weakMap.set(key\x2C { value\x2C ref: entry.ref });\n } else {\n const ref = new SafeWeakRef(key);\n this.#weakMap.set(key\x2C { value\x2C ref });\n this.#refSet.add(ref);\n this.#finalizationGroup.register(key\x2C {\n set: this.#refSet\x2C\n ref\n }\x2C ref);\n }\n }\n\n get(key) {\n return this.#weakMap.get(key)?.value;\n }\n\n has(key) {\n return this.#weakMap.has(key);\n }\n\n delete(key) {\n const entry = this.#weakMap.get(key);\n if (!entry) {\n return false;\n }\n this.#weakMap.delete(key);\n this.#refSet.delete(entry.ref);\n this.#finalizationGroup.unregister(entry.ref);\n return true;\n }\n\n [SymbolIterator]() {\n const iterator = this.#refSet[SymbolIterator]();\n\n const next = () => {\n const result = iterator.next();\n if (result.done) return result;\n const key = result.value.deref();\n if (key == null) return next();\n const { value } = this.#weakMap.get(key);\n return { done: false\x2C value };\n };\n\n return {\n [SymbolIterator]() { return this; }\x2C\n next\x2C\n };\n }\n}\n\nfunction cleanup({ set\x2C ref }) {\n set.delete(ref);\n}\n\nObjectFreeze(IterableWeakMap.prototype);\n\nmodule.exports = {\n IterableWeakMap\x2C\n};\n code-source-info,0x337ca0b1922e,97,0,1958,C0O0C4O1958,, code-creation,Function,10,14244,0x337ca0b1998e,196, node:internal/util/iterable_weak_map:1:1,0x337ca0b191a8,~ code-source-info,0x337ca0b1998e,97,0,1958,C0O0C26O25C31O41C37O69C43O80C49O95C55O110C134O1392C168O1904C173O1875C177O1917C184O1938C190O1932C195O1957,, code-creation,Function,10,14249,0x337ca0b19b0e,75, node:internal/util/iterable_weak_map:17:3,0x337ca0b194b8,~ code-source-info,0x337ca0b19b0e,97,399,516,C3O410C10O410C27O441C34O441C48O479C62O479C74O516,, StoreIC,0x337ca0b19a2d,14290,57,4,X,X,0x000000000000,symbol(hash 9dde9e8),, StoreIC,0x337ca0b19a46,14299,83,3,X,X,0x000000000000,IterableWeakMap,, code-creation,Eval,10,14418,0x337ca0b1aa8e,5, node:internal/modules/cjs/helpers:1:1,0x337ca0b1a7d8,~ script-source,98,node:internal/modules/cjs/helpers,'use strict';\n\nconst {\n ArrayPrototypeForEach\x2C\n ArrayPrototypeJoin\x2C\n ArrayPrototypeSome\x2C\n ObjectDefineProperty\x2C\n ObjectPrototypeHasOwnProperty\x2C\n SafeMap\x2C\n SafeSet\x2C\n StringPrototypeCharCodeAt\x2C\n StringPrototypeIncludes\x2C\n StringPrototypeSlice\x2C\n StringPrototypeStartsWith\x2C\n} = primordials;\nconst {\n ERR_MANIFEST_DEPENDENCY_MISSING\x2C\n ERR_UNKNOWN_BUILTIN_MODULE\n} = require('internal/errors').codes;\nconst { NativeModule } = require('internal/bootstrap/loaders');\n\nconst { validateString } = require('internal/validators');\nconst path = require('path');\nconst { pathToFileURL\x2C fileURLToPath\x2C URL } = require('internal/url');\n\nconst { getOptionValue } = require('internal/options');\nconst userConditions = getOptionValue('--conditions');\n\nlet debug = require('internal/util/debuglog').debuglog('module'\x2C (fn) => {\n debug = fn;\n});\n\nconst noAddons = getOptionValue('--no-addons');\nconst addonConditions = noAddons ? [] : ['node-addons'];\n\n// TODO: Use this set when resolving pkg#exports conditions in loader.js.\nconst cjsConditions = new SafeSet([\n 'require'\x2C\n 'node'\x2C\n ...addonConditions\x2C\n ...userConditions\x2C\n]);\n\nfunction loadNativeModule(filename\x2C request) {\n const mod = NativeModule.map.get(filename);\n if (mod?.canBeRequiredByUsers) {\n debug('load native module %s'\x2C request);\n // compileForPublicLoader() throws if mod.canBeRequiredByUsers is false:\n mod.compileForPublicLoader();\n return mod;\n }\n}\n\n// Invoke with makeRequireFunction(module) where |module| is the Module object\n// to use as the context for the require() function.\n// Use redirects to set up a mapping from a policy and restrict dependencies\nconst urlToFileCache = new SafeMap();\nfunction makeRequireFunction(mod\x2C redirects) {\n const Module = mod.constructor;\n\n let require;\n if (redirects) {\n const id = mod.filename || mod.id;\n const conditions = cjsConditions;\n const { resolve\x2C reaction } = redirects;\n require = function require(specifier) {\n let missing = true;\n const destination = resolve(specifier\x2C conditions);\n if (destination === true) {\n missing = false;\n } else if (destination) {\n const href = destination.href;\n if (destination.protocol === 'node:') {\n const specifier = destination.pathname;\n const mod = loadNativeModule(specifier\x2C href);\n if (mod && mod.canBeRequiredByUsers) {\n return mod.exports;\n }\n throw new ERR_UNKNOWN_BUILTIN_MODULE(specifier);\n } else if (destination.protocol === 'file:') {\n let filepath;\n if (urlToFileCache.has(href)) {\n filepath = urlToFileCache.get(href);\n } else {\n filepath = fileURLToPath(destination);\n urlToFileCache.set(href\x2C filepath);\n }\n return mod.require(filepath);\n }\n }\n if (missing) {\n reaction(new ERR_MANIFEST_DEPENDENCY_MISSING(\n id\x2C\n specifier\x2C\n ArrayPrototypeJoin([...conditions]\x2C '\x2C ')\n ));\n }\n return mod.require(specifier);\n };\n } else {\n require = function require(path) {\n return mod.require(path);\n };\n }\n\n function resolve(request\x2C options) {\n validateString(request\x2C 'request');\n return Module._resolveFilename(request\x2C mod\x2C false\x2C options);\n }\n\n require.resolve = resolve;\n\n function paths(request) {\n validateString(request\x2C 'request');\n return Module._resolveLookupPaths(request\x2C mod);\n }\n\n resolve.paths = paths;\n\n require.main = process.mainModule;\n\n // Enable support to add extra extension types.\n require.extensions = Module._extensions;\n\n require.cache = Module._cache;\n\n return require;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n * because the buffer-to-string conversion in `fs.readFileSync()`\n * translates it to FEFF\x2C the UTF-16 BOM.\n */\nfunction stripBOM(content) {\n if (StringPrototypeCharCodeAt(content) === 0xFEFF) {\n content = StringPrototypeSlice(content\x2C 1);\n }\n return content;\n}\n\nfunction addBuiltinLibsToObject(object\x2C dummyModuleName) {\n // Make built-in modules available directly (loaded lazily).\n const Module = require('internal/modules/cjs/loader').Module;\n const { builtinModules } = Module;\n\n // To require built-in modules in user-land and ignore modules whose\n // `canBeRequiredByUsers` is false. So we create a dummy module object and not\n // use `require()` directly.\n const dummyModule = new Module(dummyModuleName);\n\n ArrayPrototypeForEach(builtinModules\x2C (name) => {\n // Neither add underscored modules\x2C nor ones that contain slashes (e.g.\x2C\n // 'fs/promises') or ones that are already defined.\n if (StringPrototypeStartsWith(name\x2C '_') ||\n StringPrototypeIncludes(name\x2C '/') ||\n ObjectPrototypeHasOwnProperty(object\x2C name)) {\n return;\n }\n // Goals of this mechanism are:\n // - Lazy loading of built-in modules\n // - Having all built-in modules available as non-enumerable properties\n // - Allowing the user to re-assign these variables as if there were no\n // pre-existing globals with the same name.\n\n const setReal = (val) => {\n // Deleting the property before re-assigning it disables the\n // getter/setter mechanism.\n delete object[name];\n object[name] = val;\n };\n\n ObjectDefineProperty(object\x2C name\x2C {\n get: () => {\n const lib = dummyModule.require(name);\n\n // Disable the current getter/setter and set up a new\n // non-enumerable property.\n delete object[name];\n ObjectDefineProperty(object\x2C name\x2C {\n get: () => lib\x2C\n set: setReal\x2C\n configurable: true\x2C\n enumerable: false\n });\n\n return lib;\n }\x2C\n set: setReal\x2C\n configurable: true\x2C\n enumerable: false\n });\n });\n}\n\nfunction normalizeReferrerURL(referrer) {\n if (typeof referrer === 'string' && path.isAbsolute(referrer)) {\n return pathToFileURL(referrer).href;\n }\n return new URL(referrer).href;\n}\n\n// For error messages only - used to check if ESM syntax is in use.\nfunction hasEsmSyntax(code) {\n debug('Checking for ESM syntax');\n const parser = require('internal/deps/acorn/acorn/dist/acorn').Parser;\n let root;\n try {\n root = parser.parse(code\x2C { sourceType: 'module'\x2C ecmaVersion: 'latest' });\n } catch {\n return false;\n }\n\n return ArrayPrototypeSome(root.body\x2C (stmt) =>\n stmt.type === 'ExportDefaultDeclaration' ||\n stmt.type === 'ExportNamedDeclaration' ||\n stmt.type === 'ImportDeclaration' ||\n stmt.type === 'ExportAllDeclaration');\n}\n\nmodule.exports = {\n addBuiltinLibsToObject\x2C\n cjsConditions\x2C\n hasEsmSyntax\x2C\n loadNativeModule\x2C\n makeRequireFunction\x2C\n normalizeReferrerURL\x2C\n stripBOM\x2C\n};\n code-source-info,0x337ca0b1aa8e,98,0,6746,C0O0C4O6746,, code-creation,Function,10,14542,0x337ca0b1b00e,536, node:internal/modules/cjs/helpers:1:1,0x337ca0b1aa08,~ code-source-info,0x337ca0b1b00e,98,0,6746,C0O0C104O25C110O50C116O72C122O94C128O118C134O151C139O162C144O173C150O202C156O229C162O253C168O373C174O373C179O399C184O307C190O342C196O432C202O432C207O415C213O499C219O499C224O480C230O544C236O544C240O544C242O607C248O607C253O569C259O584C265O599C271O660C277O660C282O641C287O712C290O712C295O757C301O757C306O790C319O791C325O757C327O856C330O856C335O911C346O1041C353O1083C354O1083C410O1105C465O1041C470O1041C472O1665C474O1665C479O1665C481O6586C488O6607C494O6633C500O6650C506O6666C512O6686C518O6709C524O6733C530O6601C535O6745,, StoreIC,0x337ca0b18cf1,14592,105,5,X,X,0x000000000000,get,, LoadIC,0x337ca0b0ca8c,14605,42,50,0,1,0x268a435c1349,slice,, LoadIC,0x337ca0b0caa5,14613,43,30,0,1,0x38ac3d9acc49,value,, code-creation,LazyCompile,10,14649,0x337ca0b1bc4e,27,SafeSet node:internal/per_context/primordials:364:16,0x24d59d709fc0,~ script-source,6,node:internal/per_context/primordials,'use strict';\n\n/* eslint-disable node-core/prefer-primordials */\n\n// This file subclasses and stores the JS builtins that come from the VM\n// so that Node.js's builtin modules do not need to later look these up from\n// the global proxy\x2C which can be mutated by users.\n\n// Use of primordials have sometimes a dramatic impact on performance\x2C please\n// benchmark all changes made in performance-sensitive areas of the codebase.\n// See: https://github.com/nodejs/node/pull/38248\n\nconst {\n defineProperty: ReflectDefineProperty\x2C\n getOwnPropertyDescriptor: ReflectGetOwnPropertyDescriptor\x2C\n ownKeys: ReflectOwnKeys\x2C\n} = Reflect;\n\n// `uncurryThis` is equivalent to `func => Function.prototype.call.bind(func)`.\n// It is using `bind.bind(call)` to avoid using `Function.prototype.bind`\n// and `Function.prototype.call` after it may have been mutated by users.\nconst { apply\x2C bind\x2C call } = Function.prototype;\nconst uncurryThis = bind.bind(call);\nprimordials.uncurryThis = uncurryThis;\n\n// `applyBind` is equivalent to `func => Function.prototype.apply.bind(func)`.\n// It is using `bind.bind(apply)` to avoid using `Function.prototype.bind`\n// and `Function.prototype.apply` after it may have been mutated by users.\nconst applyBind = bind.bind(apply);\nprimordials.applyBind = applyBind;\n\n// Methods that accept a variable number of arguments\x2C and thus it's useful to\n// also create `${prefix}${key}Apply`\x2C which uses `Function.prototype.apply`\x2C\n// instead of `Function.prototype.call`\x2C and thus doesn't require iterator\n// destructuring.\nconst varargsMethods = [\n // 'ArrayPrototypeConcat' is omitted\x2C because it performs the spread\n // on its own for arrays and array-likes with a truthy\n // @@isConcatSpreadable symbol property.\n 'ArrayOf'\x2C\n 'ArrayPrototypePush'\x2C\n 'ArrayPrototypeUnshift'\x2C\n // 'FunctionPrototypeCall' is omitted\x2C since there's 'ReflectApply'\n // and 'FunctionPrototypeApply'.\n 'MathHypot'\x2C\n 'MathMax'\x2C\n 'MathMin'\x2C\n 'StringPrototypeConcat'\x2C\n 'TypedArrayOf'\x2C\n];\n\nfunction getNewKey(key) {\n return typeof key === 'symbol' ?\n `Symbol${key.description[7].toUpperCase()}${key.description.slice(8)}` :\n `${key[0].toUpperCase()}${key.slice(1)}`;\n}\n\nfunction copyAccessor(dest\x2C prefix\x2C key\x2C { enumerable\x2C get\x2C set }) {\n ReflectDefineProperty(dest\x2C `${prefix}Get${key}`\x2C {\n value: uncurryThis(get)\x2C\n enumerable\n });\n if (set !== undefined) {\n ReflectDefineProperty(dest\x2C `${prefix}Set${key}`\x2C {\n value: uncurryThis(set)\x2C\n enumerable\n });\n }\n}\n\nfunction copyPropsRenamed(src\x2C dest\x2C prefix) {\n for (const key of ReflectOwnKeys(src)) {\n const newKey = getNewKey(key);\n const desc = ReflectGetOwnPropertyDescriptor(src\x2C key);\n if ('get' in desc) {\n copyAccessor(dest\x2C prefix\x2C newKey\x2C desc);\n } else {\n const name = `${prefix}${newKey}`;\n ReflectDefineProperty(dest\x2C name\x2C desc);\n if (varargsMethods.includes(name)) {\n ReflectDefineProperty(dest\x2C `${name}Apply`\x2C {\n // `src` is bound as the `this` so that the static `this` points\n // to the object it was defined on\x2C\n // e.g.: `ArrayOfApply` gets a `this` of `Array`:\n value: applyBind(desc.value\x2C src)\x2C\n });\n }\n }\n }\n}\n\nfunction copyPropsRenamedBound(src\x2C dest\x2C prefix) {\n for (const key of ReflectOwnKeys(src)) {\n const newKey = getNewKey(key);\n const desc = ReflectGetOwnPropertyDescriptor(src\x2C key);\n if ('get' in desc) {\n copyAccessor(dest\x2C prefix\x2C newKey\x2C desc);\n } else {\n const { value } = desc;\n if (typeof value === 'function') {\n desc.value = value.bind(src);\n }\n\n const name = `${prefix}${newKey}`;\n ReflectDefineProperty(dest\x2C name\x2C desc);\n if (varargsMethods.includes(name)) {\n ReflectDefineProperty(dest\x2C `${name}Apply`\x2C {\n value: applyBind(value\x2C src)\x2C\n });\n }\n }\n }\n}\n\nfunction copyPrototype(src\x2C dest\x2C prefix) {\n for (const key of ReflectOwnKeys(src)) {\n const newKey = getNewKey(key);\n const desc = ReflectGetOwnPropertyDescriptor(src\x2C key);\n if ('get' in desc) {\n copyAccessor(dest\x2C prefix\x2C newKey\x2C desc);\n } else {\n const { value } = desc;\n if (typeof value === 'function') {\n desc.value = uncurryThis(value);\n }\n\n const name = `${prefix}${newKey}`;\n ReflectDefineProperty(dest\x2C name\x2C desc);\n if (varargsMethods.includes(name)) {\n ReflectDefineProperty(dest\x2C `${name}Apply`\x2C {\n value: applyBind(value)\x2C\n });\n }\n }\n }\n}\n\n// Create copies of configurable value properties of the global object\n[\n 'Proxy'\x2C\n 'globalThis'\x2C\n].forEach((name) => {\n // eslint-disable-next-line no-restricted-globals\n primordials[name] = globalThis[name];\n});\n\n// Create copies of URI handling functions\n[\n decodeURI\x2C\n decodeURIComponent\x2C\n encodeURI\x2C\n encodeURIComponent\x2C\n].forEach((fn) => {\n primordials[fn.name] = fn;\n});\n\n// Create copies of the namespace objects\n[\n 'JSON'\x2C\n 'Math'\x2C\n 'Proxy'\x2C\n 'Reflect'\x2C\n].forEach((name) => {\n // eslint-disable-next-line no-restricted-globals\n copyPropsRenamed(global[name]\x2C primordials\x2C name);\n});\n\n// Create copies of intrinsic objects\n[\n 'AggregateError'\x2C\n 'Array'\x2C\n 'ArrayBuffer'\x2C\n 'BigInt'\x2C\n 'BigInt64Array'\x2C\n 'BigUint64Array'\x2C\n 'Boolean'\x2C\n 'DataView'\x2C\n 'Date'\x2C\n 'Error'\x2C\n 'EvalError'\x2C\n 'FinalizationRegistry'\x2C\n 'Float32Array'\x2C\n 'Float64Array'\x2C\n 'Function'\x2C\n 'Int16Array'\x2C\n 'Int32Array'\x2C\n 'Int8Array'\x2C\n 'Map'\x2C\n 'Number'\x2C\n 'Object'\x2C\n 'RangeError'\x2C\n 'ReferenceError'\x2C\n 'RegExp'\x2C\n 'Set'\x2C\n 'String'\x2C\n 'Symbol'\x2C\n 'SyntaxError'\x2C\n 'TypeError'\x2C\n 'URIError'\x2C\n 'Uint16Array'\x2C\n 'Uint32Array'\x2C\n 'Uint8Array'\x2C\n 'Uint8ClampedArray'\x2C\n 'WeakMap'\x2C\n 'WeakRef'\x2C\n 'WeakSet'\x2C\n].forEach((name) => {\n // eslint-disable-next-line no-restricted-globals\n const original = global[name];\n primordials[name] = original;\n copyPropsRenamed(original\x2C primordials\x2C name);\n copyPrototype(original.prototype\x2C primordials\x2C `${name}Prototype`);\n});\n\n// Create copies of intrinsic objects that require a valid `this` to call\n// static methods.\n// Refs: https://www.ecma-international.org/ecma-262/#sec-promise.all\n[\n 'Promise'\x2C\n].forEach((name) => {\n // eslint-disable-next-line no-restricted-globals\n const original = global[name];\n primordials[name] = original;\n copyPropsRenamedBound(original\x2C primordials\x2C name);\n copyPrototype(original.prototype\x2C primordials\x2C `${name}Prototype`);\n});\n\n// Create copies of abstract intrinsic objects that are not directly exposed\n// on the global object.\n// Refs: https://tc39.es/ecma262/#sec-%typedarray%-intrinsic-object\n[\n { name: 'TypedArray'\x2C original: Reflect.getPrototypeOf(Uint8Array) }\x2C\n { name: 'ArrayIterator'\x2C original: {\n prototype: Reflect.getPrototypeOf(Array.prototype[Symbol.iterator]())\x2C\n } }\x2C\n { name: 'StringIterator'\x2C original: {\n prototype: Reflect.getPrototypeOf(String.prototype[Symbol.iterator]())\x2C\n } }\x2C\n].forEach(({ name\x2C original }) => {\n primordials[name] = original;\n // The static %TypedArray% methods require a valid `this`\x2C but can't be bound\x2C\n // as they need a subclass constructor as the receiver:\n copyPrototype(original\x2C primordials\x2C name);\n copyPrototype(original.prototype\x2C primordials\x2C `${name}Prototype`);\n});\n\n/* eslint-enable node-core/prefer-primordials */\n\nconst {\n ArrayPrototypeForEach\x2C\n FinalizationRegistry\x2C\n FunctionPrototypeCall\x2C\n Map\x2C\n ObjectFreeze\x2C\n ObjectSetPrototypeOf\x2C\n Promise\x2C\n PromisePrototypeThen\x2C\n Set\x2C\n SymbolIterator\x2C\n WeakMap\x2C\n WeakRef\x2C\n WeakSet\x2C\n} = primordials;\n\n// Because these functions are used by `makeSafe`\x2C which is exposed\n// on the `primordials` object\x2C it's important to use const references\n// to the primordials that they use:\nconst createSafeIterator = (factory\x2C next) => {\n class SafeIterator {\n constructor(iterable) {\n this._iterator = factory(iterable);\n }\n next() {\n return next(this._iterator);\n }\n [SymbolIterator]() {\n return this;\n }\n }\n ObjectSetPrototypeOf(SafeIterator.prototype\x2C null);\n ObjectFreeze(SafeIterator.prototype);\n ObjectFreeze(SafeIterator);\n return SafeIterator;\n};\n\nprimordials.SafeArrayIterator = createSafeIterator(\n primordials.ArrayPrototypeSymbolIterator\x2C\n primordials.ArrayIteratorPrototypeNext\n);\nprimordials.SafeStringIterator = createSafeIterator(\n primordials.StringPrototypeSymbolIterator\x2C\n primordials.StringIteratorPrototypeNext\n);\n\nconst copyProps = (src\x2C dest) => {\n ArrayPrototypeForEach(ReflectOwnKeys(src)\x2C (key) => {\n if (!ReflectGetOwnPropertyDescriptor(dest\x2C key)) {\n ReflectDefineProperty(\n dest\x2C\n key\x2C\n ReflectGetOwnPropertyDescriptor(src\x2C key));\n }\n });\n};\n\n/**\n * @type {typeof primordials.makeSafe}\n */\nconst makeSafe = (unsafe\x2C safe) => {\n if (SymbolIterator in unsafe.prototype) {\n const dummy = new unsafe();\n let next; // We can reuse the same `next` method.\n\n ArrayPrototypeForEach(ReflectOwnKeys(unsafe.prototype)\x2C (key) => {\n if (!ReflectGetOwnPropertyDescriptor(safe.prototype\x2C key)) {\n const desc = ReflectGetOwnPropertyDescriptor(unsafe.prototype\x2C key);\n if (\n typeof desc.value === 'function' &&\n desc.value.length === 0 &&\n SymbolIterator in (FunctionPrototypeCall(desc.value\x2C dummy) ?? {})\n ) {\n const createIterator = uncurryThis(desc.value);\n next ??= uncurryThis(createIterator(dummy).next);\n const SafeIterator = createSafeIterator(createIterator\x2C next);\n desc.value = function() {\n return new SafeIterator(this);\n };\n }\n ReflectDefineProperty(safe.prototype\x2C key\x2C desc);\n }\n });\n } else {\n copyProps(unsafe.prototype\x2C safe.prototype);\n }\n copyProps(unsafe\x2C safe);\n\n ObjectSetPrototypeOf(safe.prototype\x2C null);\n ObjectFreeze(safe.prototype);\n ObjectFreeze(safe);\n return safe;\n};\nprimordials.makeSafe = makeSafe;\n\n// Subclass the constructors because we need to use their prototype\n// methods later.\n// Defining the `constructor` is necessary here to avoid the default\n// constructor which uses the user-mutable `%ArrayIteratorPrototype%.next`.\nprimordials.SafeMap = makeSafe(\n Map\x2C\n class SafeMap extends Map {\n constructor(i) { super(i); } // eslint-disable-line no-useless-constructor\n }\n);\nprimordials.SafeWeakMap = makeSafe(\n WeakMap\x2C\n class SafeWeakMap extends WeakMap {\n constructor(i) { super(i); } // eslint-disable-line no-useless-constructor\n }\n);\n\nprimordials.SafeSet = makeSafe(\n Set\x2C\n class SafeSet extends Set {\n constructor(i) { super(i); } // eslint-disable-line no-useless-constructor\n }\n);\nprimordials.SafeWeakSet = makeSafe(\n WeakSet\x2C\n class SafeWeakSet extends WeakSet {\n constructor(i) { super(i); } // eslint-disable-line no-useless-constructor\n }\n);\n\nprimordials.SafeFinalizationRegistry = makeSafe(\n FinalizationRegistry\x2C\n class SafeFinalizationRegistry extends FinalizationRegistry {\n // eslint-disable-next-line no-useless-constructor\n constructor(cleanupCallback) { super(cleanupCallback); }\n }\n);\nprimordials.SafeWeakRef = makeSafe(\n WeakRef\x2C\n class SafeWeakRef extends WeakRef {\n // eslint-disable-next-line no-useless-constructor\n constructor(target) { super(target); }\n }\n);\n\nconst SafePromise = makeSafe(\n Promise\x2C\n class SafePromise extends Promise {\n // eslint-disable-next-line no-useless-constructor\n constructor(executor) { super(executor); }\n }\n);\n\nprimordials.PromisePrototypeCatch = (thisPromise\x2C onRejected) =>\n PromisePrototypeThen(thisPromise\x2C undefined\x2C onRejected);\n\n/**\n * Attaches a callback that is invoked when the Promise is settled (fulfilled or\n * rejected). The resolved value cannot be modified from the callback.\n * Prefer using async functions when possible.\n * @param {Promise} thisPromise\n * @param {() => void) | undefined | null} onFinally The callback to execute\n * when the Promise is settled (fulfilled or rejected).\n * @returns A Promise for the completion of the callback.\n */\nprimordials.SafePromisePrototypeFinally = (thisPromise\x2C onFinally) =>\n // Wrapping on a new Promise is necessary to not expose the SafePromise\n // prototype to user-land.\n new Promise((a\x2C b) =>\n new SafePromise((a\x2C b) => PromisePrototypeThen(thisPromise\x2C a\x2C b))\n .finally(onFinally)\n .then(a\x2C b)\n );\n\nprimordials.AsyncIteratorPrototype =\n primordials.ReflectGetPrototypeOf(\n primordials.ReflectGetPrototypeOf(\n async function* () {}).prototype);\n\nObjectSetPrototypeOf(primordials\x2C null);\nObjectFreeze(primordials);\n code-source-info,0x337ca0b1bc4e,6,10527,10544,C3O10533C7O10539C11O10533C26O10543,, code-creation,LazyCompile,10,14875,0x337ca0b1ca8e,27,SafeMap node:internal/per_context/primordials:351:16,0x24d59d709e38,~ code-source-info,0x337ca0b1ca8e,6,10200,10217,C3O10206C7O10212C11O10206C26O10216,, StoreIC,0x337ca0b1b1f6,14898,222,3,X,X,0x000000000000,addBuiltinLibsToObject,, StoreIC,0x337ca0b1b1fc,14903,223,3,X,X,0x000000000000,cjsConditions,, StoreIC,0x337ca0b1b202,14906,224,3,X,X,0x000000000000,hasEsmSyntax,, StoreIC,0x337ca0b1b208,14909,225,3,X,X,0x000000000000,loadNativeModule,, StoreIC,0x337ca0b1b20e,14912,226,3,X,X,0x000000000000,makeRequireFunction,, StoreIC,0x337ca0b1b214,14915,227,3,X,X,0x000000000000,normalizeReferrerURL,, StoreIC,0x337ca0b1b21a,14918,228,3,X,X,0x000000000000,stripBOM,, code-creation,LazyCompile,10,14928,0x337ca0b1d346,16,IterableWeakMap node:internal/util/iterable_weak_map:16:1,0x337ca0b192b0,~ code-source-info,0x337ca0b1d346,97,373,373,C0O373C15O373,, code-creation,LazyCompile,10,14940,0x337ca0b1d416,27,SafeWeakMap node:internal/per_context/primordials:357:16,0x24d59d709ef8,~ code-source-info,0x337ca0b1d416,6,10371,10388,C3O10377C7O10383C11O10377C26O10387,, code-creation,LazyCompile,10,14954,0x337ca0b1d51e,27,SafeFinalizationRegistry node:internal/per_context/primordials:378:16,0x24d59d70a148,~ code-source-info,0x337ca0b1d51e,6,10977,11022,C3O10997C7O11003C11O10997C26O11021,, StoreIC,0x337ca0b18055,14977,246,3,X,X,0x000000000000,findSourceMap,, StoreIC,0x337ca0b1805b,14981,247,3,X,X,0x000000000000,getSourceMapsEnabled,, StoreIC,0x337ca0b18061,14985,248,3,X,X,0x000000000000,setSourceMapsEnabled,, StoreIC,0x337ca0b18067,14987,249,3,X,X,0x000000000000,maybeCacheSourceMap,, StoreIC,0x337ca0b1806d,14990,250,3,X,X,0x000000000000,sourceMapCacheToObject,, code-creation,LazyCompile,10,15050,0x337ca0b1e4f6,492,initializeDeprecations node:internal/bootstrap/pre_execution:250:32,0x2ba068cfe180,~ code-source-info,0x337ca0b1e4f6,92,7934,10433,C0O7934C11O7963C19O7963C24O7949C29O8018C39O8018C44O8209C52O8209C57O8250C65O8250C70O8303C99O8295C127O8295C130O8621C141O8641C145O8683C156O8757C167O8847C178O8802C187O8668C196O8906C199O8639C203O8284C269O9183C277O9183C282O9162C287O9212C289O9240C304O9261C311O9379C315O9240C320O9411C324O9441C334O9477C344O9554C351O9459C356O9457C360O9640C370O9682C381O9664C386O9662C390O10021C394O10021C396O10032C407O10053C418O10082C426O10124C434O10032C439O10237C445O10237C447O10247C458O10268C469O10296C477O10337C485O10247C491O10432,, LoadIC,0x2ba068cfcdce,15070,300,14,0,1,0x38ac3d986f99,loaded,, LoadIC,0x2ba068cfcdda,15074,301,19,0,1,0x38ac3d986f99,exports,, StoreIC,0x337ca0b1e69c,15088,314,5,X,X,0x000000000000,get,, StoreIC,0x337ca0b1e6a4,15092,317,5,X,X,0x000000000000,set,, StoreIC,0x337ca0b1e6cf,15098,326,5,X,X,0x000000000000,get,, StoreIC,0x337ca0b1e6d7,15101,329,5,X,X,0x000000000000,set,, code-creation,LazyCompile,10,15119,0x337ca0b1eb26,53,initializeWASI node:internal/bootstrap/pre_execution:414:24,0x2ba068cfe300,~ code-source-info,0x337ca0b1eb26,92,13122,13328,C0O13154C6O13154C11O13137C16O13220C21O13224C29O13224C35O13239C37O13270C43O13270C47O13264C52O13327,, StoreIC,0x337ca0b1eb55,15129,417,28,X,X,0x000000000000,canBeRequiredByUsers,, code-creation,LazyCompile,10,15144,0x337ca0b1ed26,66,initializeCJSLoader node:internal/bootstrap/pre_execution:421:29,0x2ba068cfe350,~ code-source-info,0x337ca0b1ed26,92,13358,13673,C0O13383C6O13383C11O13425C16O13430C20O13450C26O13488C31O13495C36O13495C40O13591C51O13612C56O13648C60O13606C65O13672,, LoadIC,0x2ba068cfcdd4,15153,300,29,0,1,0x38ac3d986f99,loading,, LoadIC,0x2ba068cfcddf,15156,304,21,0,1,0x38ac3d986f99,id,, StoreIC,0x2ba068cfcde5,15159,305,18,0,1,0x38ac3d986f99,loading,, LoadIC,0x2ba068cfcdf3,15162,308,56,0,1,0x38ac3d986f99,id,, code-creation,Eval,10,15669,0x337ca0b20cde,5, node:internal/modules/cjs/loader:1:1,0x337ca0b203f8,~ script-source,99,node:internal/modules/cjs/loader,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n ArrayIsArray\x2C\n ArrayPrototypeConcat\x2C\n ArrayPrototypeFilter\x2C\n ArrayPrototypeIncludes\x2C\n ArrayPrototypeIndexOf\x2C\n ArrayPrototypeJoin\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypeSlice\x2C\n ArrayPrototypeSplice\x2C\n ArrayPrototypeUnshift\x2C\n ArrayPrototypeUnshiftApply\x2C\n Boolean\x2C\n Error\x2C\n JSONParse\x2C\n ObjectCreate\x2C\n ObjectDefineProperty\x2C\n ObjectFreeze\x2C\n ObjectGetOwnPropertyDescriptor\x2C\n ObjectGetPrototypeOf\x2C\n ObjectKeys\x2C\n ObjectPrototype\x2C\n ObjectPrototypeHasOwnProperty\x2C\n ObjectSetPrototypeOf\x2C\n Proxy\x2C\n ReflectApply\x2C\n ReflectSet\x2C\n RegExpPrototypeExec\x2C\n RegExpPrototypeTest\x2C\n SafeMap\x2C\n SafeWeakMap\x2C\n String\x2C\n StringPrototypeCharAt\x2C\n StringPrototypeCharCodeAt\x2C\n StringPrototypeEndsWith\x2C\n StringPrototypeLastIndexOf\x2C\n StringPrototypeIndexOf\x2C\n StringPrototypeMatch\x2C\n StringPrototypeRepeat\x2C\n StringPrototypeSlice\x2C\n StringPrototypeSplit\x2C\n StringPrototypeStartsWith\x2C\n} = primordials;\n\n// Map used to store CJS parsing data.\nconst cjsParseCache = new SafeWeakMap();\n\n// Set first due to cycle with ESM loader functions.\nmodule.exports = {\n wrapSafe\x2C Module\x2C toRealPath\x2C readPackageScope\x2C cjsParseCache\x2C\n get hasLoadedAnyUserCJSModule() { return hasLoadedAnyUserCJSModule; }\n};\n\nconst { NativeModule } = require('internal/bootstrap/loaders');\nconst {\n maybeCacheSourceMap\x2C\n} = require('internal/source_map/source_map_cache');\nconst { pathToFileURL\x2C fileURLToPath\x2C isURLInstance } = require('internal/url');\nconst { deprecate } = require('internal/util');\nconst vm = require('vm');\nconst assert = require('internal/assert');\nconst fs = require('fs');\nconst internalFS = require('internal/fs/utils');\nconst path = require('path');\nconst { sep } = path;\nconst { internalModuleStat } = internalBinding('fs');\nconst packageJsonReader = require('internal/modules/package_json_reader');\nconst { safeGetenv } = internalBinding('credentials');\nconst {\n cjsConditions\x2C\n hasEsmSyntax\x2C\n loadNativeModule\x2C\n makeRequireFunction\x2C\n normalizeReferrerURL\x2C\n stripBOM\x2C\n} = require('internal/modules/cjs/helpers');\nconst { getOptionValue } = require('internal/options');\nconst preserveSymlinks = getOptionValue('--preserve-symlinks');\nconst preserveSymlinksMain = getOptionValue('--preserve-symlinks-main');\n// Do not eagerly grab .manifest\x2C it may be in TDZ\nconst policy = getOptionValue('--experimental-policy') ?\n require('internal/process/policy') :\n null;\n\n// Whether any user-provided CJS modules had been loaded (executed).\n// Used for internal assertions.\nlet hasLoadedAnyUserCJSModule = false;\n\nconst {\n codes: {\n ERR_INVALID_ARG_VALUE\x2C\n ERR_INVALID_MODULE_SPECIFIER\x2C\n ERR_REQUIRE_ESM\x2C\n ERR_UNKNOWN_BUILTIN_MODULE\x2C\n }\x2C\n setArrowMessage\x2C\n} = require('internal/errors');\nconst { validateString } = require('internal/validators');\nconst pendingDeprecation = getOptionValue('--pending-deprecation');\n\nconst {\n CHAR_FORWARD_SLASH\x2C\n CHAR_BACKWARD_SLASH\x2C\n CHAR_COLON\n} = require('internal/constants');\n\nconst {\n isProxy\n} = require('internal/util/types');\n\nconst asyncESM = require('internal/process/esm_loader');\nconst { enrichCJSError } = require('internal/modules/esm/translators');\nconst { kEvaluated } = internalBinding('module_wrap');\nconst {\n encodedSepRegEx\x2C\n packageExportsResolve\x2C\n packageImportsResolve\n} = require('internal/modules/esm/resolve');\n\nconst isWindows = process.platform === 'win32';\n\nconst relativeResolveCache = ObjectCreate(null);\n\nlet requireDepth = 0;\nlet statCache = null;\nlet isPreloading = false;\n\nfunction stat(filename) {\n filename = path.toNamespacedPath(filename);\n if (statCache !== null) {\n const result = statCache.get(filename);\n if (result !== undefined) return result;\n }\n const result = internalModuleStat(filename);\n if (statCache !== null && result >= 0) {\n // Only set cache when `internalModuleStat(filename)` succeeds.\n statCache.set(filename\x2C result);\n }\n return result;\n}\n\nfunction updateChildren(parent\x2C child\x2C scan) {\n const children = parent?.children;\n if (children && !(scan && ArrayPrototypeIncludes(children\x2C child)))\n ArrayPrototypePush(children\x2C child);\n}\n\nconst moduleParentCache = new SafeWeakMap();\nfunction Module(id = ''\x2C parent) {\n this.id = id;\n this.path = path.dirname(id);\n this.exports = {};\n moduleParentCache.set(this\x2C parent);\n updateChildren(parent\x2C this\x2C false);\n this.filename = null;\n this.loaded = false;\n this.children = [];\n}\n\nconst builtinModules = [];\nfor (const { 0: id\x2C 1: mod } of NativeModule.map) {\n if (mod.canBeRequiredByUsers) {\n ArrayPrototypePush(builtinModules\x2C id);\n }\n}\n\nObjectFreeze(builtinModules);\nModule.builtinModules = builtinModules;\n\nModule._cache = ObjectCreate(null);\nModule._pathCache = ObjectCreate(null);\nModule._extensions = ObjectCreate(null);\nlet modulePaths = [];\nModule.globalPaths = [];\n\nlet patched = false;\n\n// eslint-disable-next-line func-style\nlet wrap = function(script) {\n return Module.wrapper[0] + script + Module.wrapper[1];\n};\n\nconst wrapper = [\n '(function (exports\x2C require\x2C module\x2C __filename\x2C __dirname) { '\x2C\n '\\n});'\x2C\n];\n\nlet wrapperProxy = new Proxy(wrapper\x2C {\n set(target\x2C property\x2C value\x2C receiver) {\n patched = true;\n return ReflectSet(target\x2C property\x2C value\x2C receiver);\n }\x2C\n\n defineProperty(target\x2C property\x2C descriptor) {\n patched = true;\n return ObjectDefineProperty(target\x2C property\x2C descriptor);\n }\n});\n\nObjectDefineProperty(Module\x2C 'wrap'\x2C {\n get() {\n return wrap;\n }\x2C\n\n set(value) {\n patched = true;\n wrap = value;\n }\n});\n\nObjectDefineProperty(Module\x2C 'wrapper'\x2C {\n get() {\n return wrapperProxy;\n }\x2C\n\n set(value) {\n patched = true;\n wrapperProxy = value;\n }\n});\n\nconst isPreloadingDesc = { get() { return isPreloading; } };\nObjectDefineProperty(Module.prototype\x2C 'isPreloading'\x2C isPreloadingDesc);\nObjectDefineProperty(NativeModule.prototype\x2C 'isPreloading'\x2C isPreloadingDesc);\n\nfunction getModuleParent() {\n return moduleParentCache.get(this);\n}\n\nfunction setModuleParent(value) {\n moduleParentCache.set(this\x2C value);\n}\n\nObjectDefineProperty(Module.prototype\x2C 'parent'\x2C {\n get: pendingDeprecation ? deprecate(\n getModuleParent\x2C\n 'module.parent is deprecated due to accuracy issues. Please use ' +\n 'require.main to find program entry point instead.'\x2C\n 'DEP0144'\n ) : getModuleParent\x2C\n set: pendingDeprecation ? deprecate(\n setModuleParent\x2C\n 'module.parent is deprecated due to accuracy issues. Please use ' +\n 'require.main to find program entry point instead.'\x2C\n 'DEP0144'\n ) : setModuleParent\x2C\n});\n\nlet debug = require('internal/util/debuglog').debuglog('module'\x2C (fn) => {\n debug = fn;\n});\nModule._debug = deprecate(debug\x2C 'Module._debug is deprecated.'\x2C 'DEP0077');\n\n// Given a module name\x2C and a list of paths to test\x2C returns the first\n// matching file in the following precedence.\n//\n// require("a.")\n// -> a.\n//\n// require("a")\n// -> a\n// -> a.\n// -> a/index.\n\nconst packageJsonCache = new SafeMap();\n\nfunction readPackage(requestPath) {\n const jsonPath = path.resolve(requestPath\x2C 'package.json');\n\n const existing = packageJsonCache.get(jsonPath);\n if (existing !== undefined) return existing;\n\n const result = packageJsonReader.read(jsonPath);\n const json = result.containsKeys === false ? '{}' : result.string;\n if (json === undefined) {\n packageJsonCache.set(jsonPath\x2C false);\n return false;\n }\n\n try {\n const parsed = JSONParse(json);\n const filtered = {\n name: parsed.name\x2C\n main: parsed.main\x2C\n exports: parsed.exports\x2C\n imports: parsed.imports\x2C\n type: parsed.type\n };\n packageJsonCache.set(jsonPath\x2C filtered);\n return filtered;\n } catch (e) {\n e.path = jsonPath;\n e.message = 'Error parsing ' + jsonPath + ': ' + e.message;\n throw e;\n }\n}\n\nfunction readPackageScope(checkPath) {\n const rootSeparatorIndex = StringPrototypeIndexOf(checkPath\x2C sep);\n let separatorIndex;\n do {\n separatorIndex = StringPrototypeLastIndexOf(checkPath\x2C sep);\n checkPath = StringPrototypeSlice(checkPath\x2C 0\x2C separatorIndex);\n if (StringPrototypeEndsWith(checkPath\x2C sep + 'node_modules'))\n return false;\n const pjson = readPackage(checkPath + sep);\n if (pjson) return {\n data: pjson\x2C\n path: checkPath\x2C\n };\n } while (separatorIndex > rootSeparatorIndex);\n return false;\n}\n\nfunction tryPackage(requestPath\x2C exts\x2C isMain\x2C originalPath) {\n const pkg = readPackage(requestPath)?.main;\n\n if (!pkg) {\n return tryExtensions(path.resolve(requestPath\x2C 'index')\x2C exts\x2C isMain);\n }\n\n const filename = path.resolve(requestPath\x2C pkg);\n let actual = tryFile(filename\x2C isMain) ||\n tryExtensions(filename\x2C exts\x2C isMain) ||\n tryExtensions(path.resolve(filename\x2C 'index')\x2C exts\x2C isMain);\n if (actual === false) {\n actual = tryExtensions(path.resolve(requestPath\x2C 'index')\x2C exts\x2C isMain);\n if (!actual) {\n // eslint-disable-next-line no-restricted-syntax\n const err = new Error(\n `Cannot find module '${filename}'. ` +\n 'Please verify that the package.json has a valid "main" entry'\n );\n err.code = 'MODULE_NOT_FOUND';\n err.path = path.resolve(requestPath\x2C 'package.json');\n err.requestPath = originalPath;\n // TODO(BridgeAR): Add the requireStack as well.\n throw err;\n } else {\n const jsonPath = path.resolve(requestPath\x2C 'package.json');\n process.emitWarning(\n `Invalid 'main' field in '${jsonPath}' of '${pkg}'. ` +\n 'Please either fix that or report it to the module author'\x2C\n 'DeprecationWarning'\x2C\n 'DEP0128'\n );\n }\n }\n return actual;\n}\n\n// In order to minimize unnecessary lstat() calls\x2C\n// this cache is a list of known-real paths.\n// Set to an empty Map to reset.\nconst realpathCache = new SafeMap();\n\n// Check if the file exists and is not a directory\n// if using --preserve-symlinks and isMain is false\x2C\n// keep symlinks intact\x2C otherwise resolve to the\n// absolute realpath.\nfunction tryFile(requestPath\x2C isMain) {\n const rc = stat(requestPath);\n if (rc !== 0) return;\n if (preserveSymlinks && !isMain) {\n return path.resolve(requestPath);\n }\n return toRealPath(requestPath);\n}\n\nfunction toRealPath(requestPath) {\n return fs.realpathSync(requestPath\x2C {\n [internalFS.realpathCacheKey]: realpathCache\n });\n}\n\n// Given a path\x2C check if the file exists with any of the set extensions\nfunction tryExtensions(p\x2C exts\x2C isMain) {\n for (let i = 0; i < exts.length; i++) {\n const filename = tryFile(p + exts[i]\x2C isMain);\n\n if (filename) {\n return filename;\n }\n }\n return false;\n}\n\n// Find the longest (possibly multi-dot) extension registered in\n// Module._extensions\nfunction findLongestRegisteredExtension(filename) {\n const name = path.basename(filename);\n let currentExtension;\n let index;\n let startIndex = 0;\n while ((index = StringPrototypeIndexOf(name\x2C '.'\x2C startIndex)) !== -1) {\n startIndex = index + 1;\n if (index === 0) continue; // Skip dotfiles like .gitignore\n currentExtension = StringPrototypeSlice(name\x2C index);\n if (Module._extensions[currentExtension]) return currentExtension;\n }\n return '.js';\n}\n\nfunction trySelfParentPath(parent) {\n if (!parent) return false;\n\n if (parent.filename) {\n return parent.filename;\n } else if (parent.id === '' || parent.id === 'internal/preload') {\n try {\n return process.cwd() + path.sep;\n } catch {\n return false;\n }\n }\n}\n\nfunction trySelf(parentPath\x2C request) {\n if (!parentPath) return false;\n\n const { data: pkg\x2C path: pkgPath } = readPackageScope(parentPath) || {};\n if (!pkg || pkg.exports === undefined) return false;\n if (typeof pkg.name !== 'string') return false;\n\n let expansion;\n if (request === pkg.name) {\n expansion = '.';\n } else if (StringPrototypeStartsWith(request\x2C `${pkg.name}/`)) {\n expansion = '.' + StringPrototypeSlice(request\x2C pkg.name.length);\n } else {\n return false;\n }\n\n try {\n return finalizeEsmResolution(packageExportsResolve(\n pathToFileURL(pkgPath + '/package.json')\x2C expansion\x2C pkg\x2C\n pathToFileURL(parentPath)\x2C cjsConditions)\x2C request\x2C parentPath\x2C pkgPath);\n } catch (e) {\n if (e.code === 'ERR_MODULE_NOT_FOUND')\n throw createEsmNotFoundErr(request\x2C pkgPath + '/package.json');\n throw e;\n }\n}\n\n// This only applies to requests of a specific form:\n// 1. name/.*\n// 2. @scope/name/.*\nconst EXPORTS_PATTERN = /^((?:@[^/\\\\%]+\\/)?[^./\\\\%][^/\\\\%]*)(\\/.*)?$/;\nfunction resolveExports(nmPath\x2C request) {\n // The implementation's behavior is meant to mirror resolution in ESM.\n const { 1: name\x2C 2: expansion = '' } =\n StringPrototypeMatch(request\x2C EXPORTS_PATTERN) || [];\n if (!name)\n return;\n const pkgPath = path.resolve(nmPath\x2C name);\n const pkg = readPackage(pkgPath);\n if (pkg?.exports != null) {\n try {\n return finalizeEsmResolution(packageExportsResolve(\n pathToFileURL(pkgPath + '/package.json')\x2C '.' + expansion\x2C pkg\x2C null\x2C\n cjsConditions)\x2C request\x2C null\x2C pkgPath);\n } catch (e) {\n if (e.code === 'ERR_MODULE_NOT_FOUND')\n throw createEsmNotFoundErr(request\x2C pkgPath + '/package.json');\n throw e;\n }\n }\n}\n\nconst trailingSlashRegex = /(?:^|\\/)\\.?\\.$/;\nModule._findPath = function(request\x2C paths\x2C isMain) {\n const absoluteRequest = path.isAbsolute(request);\n if (absoluteRequest) {\n paths = [''];\n } else if (!paths || paths.length === 0) {\n return false;\n }\n\n const cacheKey = request + '\\x00' + ArrayPrototypeJoin(paths\x2C '\\x00');\n const entry = Module._pathCache[cacheKey];\n if (entry)\n return entry;\n\n let exts;\n let trailingSlash = request.length > 0 &&\n StringPrototypeCharCodeAt(request\x2C request.length - 1) ===\n CHAR_FORWARD_SLASH;\n if (!trailingSlash) {\n trailingSlash = RegExpPrototypeTest(trailingSlashRegex\x2C request);\n }\n\n // For each path\n for (let i = 0; i < paths.length; i++) {\n // Don't search further if path doesn't exist\n const curPath = paths[i];\n if (curPath && stat(curPath) < 1) continue;\n\n if (!absoluteRequest) {\n const exportsResolved = resolveExports(curPath\x2C request);\n if (exportsResolved)\n return exportsResolved;\n }\n\n const basePath = path.resolve(curPath\x2C request);\n let filename;\n\n const rc = stat(basePath);\n if (!trailingSlash) {\n if (rc === 0) { // File.\n if (!isMain) {\n if (preserveSymlinks) {\n filename = path.resolve(basePath);\n } else {\n filename = toRealPath(basePath);\n }\n } else if (preserveSymlinksMain) {\n // For the main module\x2C we use the preserveSymlinksMain flag instead\n // mainly for backward compatibility\x2C as the preserveSymlinks flag\n // historically has not applied to the main module. Most likely this\n // was intended to keep .bin/ binaries working\x2C as following those\n // symlinks is usually required for the imports in the corresponding\n // files to resolve; that said\x2C in some use cases following symlinks\n // causes bigger problems which is why the preserveSymlinksMain option\n // is needed.\n filename = path.resolve(basePath);\n } else {\n filename = toRealPath(basePath);\n }\n }\n\n if (!filename) {\n // Try it with each of the extensions\n if (exts === undefined)\n exts = ObjectKeys(Module._extensions);\n filename = tryExtensions(basePath\x2C exts\x2C isMain);\n }\n }\n\n if (!filename && rc === 1) { // Directory.\n // try it with each of the extensions at "index"\n if (exts === undefined)\n exts = ObjectKeys(Module._extensions);\n filename = tryPackage(basePath\x2C exts\x2C isMain\x2C request);\n }\n\n if (filename) {\n Module._pathCache[cacheKey] = filename;\n return filename;\n }\n }\n\n return false;\n};\n\n// 'node_modules' character codes reversed\nconst nmChars = [ 115\x2C 101\x2C 108\x2C 117\x2C 100\x2C 111\x2C 109\x2C 95\x2C 101\x2C 100\x2C 111\x2C 110 ];\nconst nmLen = nmChars.length;\nif (isWindows) {\n // 'from' is the __dirname of the module.\n Module._nodeModulePaths = function(from) {\n // Guarantee that 'from' is absolute.\n from = path.resolve(from);\n\n // note: this approach *only* works when the path is guaranteed\n // to be absolute. Doing a fully-edge-case-correct path.split\n // that works on both Windows and Posix is non-trivial.\n\n // return root node_modules when path is 'D:\\\\'.\n // path.resolve will make sure from.length >=3 in Windows.\n if (StringPrototypeCharCodeAt(from\x2C from.length - 1) ===\n CHAR_BACKWARD_SLASH &&\n StringPrototypeCharCodeAt(from\x2C from.length - 2) === CHAR_COLON)\n return [from + 'node_modules'];\n\n const paths = [];\n for (let i = from.length - 1\x2C p = 0\x2C last = from.length; i >= 0; --i) {\n const code = StringPrototypeCharCodeAt(from\x2C i);\n // The path segment separator check ('\\' and '/') was used to get\n // node_modules path for every path segment.\n // Use colon as an extra condition since we can get node_modules\n // path for drive root like 'C:\\node_modules' and don't need to\n // parse drive name.\n if (code === CHAR_BACKWARD_SLASH ||\n code === CHAR_FORWARD_SLASH ||\n code === CHAR_COLON) {\n if (p !== nmLen)\n ArrayPrototypePush(\n paths\x2C\n StringPrototypeSlice(from\x2C 0\x2C last) + '\\\\node_modules'\n );\n last = i;\n p = 0;\n } else if (p !== -1) {\n if (nmChars[p] === code) {\n ++p;\n } else {\n p = -1;\n }\n }\n }\n\n return paths;\n };\n} else { // posix\n // 'from' is the __dirname of the module.\n Module._nodeModulePaths = function(from) {\n // Guarantee that 'from' is absolute.\n from = path.resolve(from);\n // Return early not only to avoid unnecessary work\x2C but to *avoid* returning\n // an array of two items for a root: [ '//node_modules'\x2C '/node_modules' ]\n if (from === '/')\n return ['/node_modules'];\n\n // note: this approach *only* works when the path is guaranteed\n // to be absolute. Doing a fully-edge-case-correct path.split\n // that works on both Windows and Posix is non-trivial.\n const paths = [];\n for (let i = from.length - 1\x2C p = 0\x2C last = from.length; i >= 0; --i) {\n const code = StringPrototypeCharCodeAt(from\x2C i);\n if (code === CHAR_FORWARD_SLASH) {\n if (p !== nmLen)\n ArrayPrototypePush(\n paths\x2C\n StringPrototypeSlice(from\x2C 0\x2C last) + '/node_modules'\n );\n last = i;\n p = 0;\n } else if (p !== -1) {\n if (nmChars[p] === code) {\n ++p;\n } else {\n p = -1;\n }\n }\n }\n\n // Append /node_modules to handle root paths.\n ArrayPrototypePush(paths\x2C '/node_modules');\n\n return paths;\n };\n}\n\nModule._resolveLookupPaths = function(request\x2C parent) {\n if (NativeModule.canBeRequiredByUsers(request)) {\n debug('looking for %j in []'\x2C request);\n return null;\n }\n\n // Check for node modules paths.\n if (StringPrototypeCharAt(request\x2C 0) !== '.' ||\n (request.length > 1 &&\n StringPrototypeCharAt(request\x2C 1) !== '.' &&\n StringPrototypeCharAt(request\x2C 1) !== '/' &&\n (!isWindows || StringPrototypeCharAt(request\x2C 1) !== '\\\\'))) {\n\n let paths = modulePaths;\n if (parent?.paths?.length) {\n paths = ArrayPrototypeConcat(parent.paths\x2C paths);\n }\n\n debug('looking for %j in %j'\x2C request\x2C paths);\n return paths.length > 0 ? paths : null;\n }\n\n // In REPL\x2C parent.filename is null.\n if (!parent || !parent.id || !parent.filename) {\n // Make require('./path/to/foo') work - normally the path is taken\n // from realpath(__filename) but in REPL there is no filename\n const mainPaths = ['.'];\n\n debug('looking for %j in %j'\x2C request\x2C mainPaths);\n return mainPaths;\n }\n\n debug('RELATIVE: requested: %s from parent.id %s'\x2C request\x2C parent.id);\n\n const parentDir = [path.dirname(parent.filename)];\n debug('looking for %j'\x2C parentDir);\n return parentDir;\n};\n\nfunction emitCircularRequireWarning(prop) {\n process.emitWarning(\n `Accessing non-existent property '${String(prop)}' of module exports ` +\n 'inside circular dependency'\n );\n}\n\n// A Proxy that can be used as the prototype of a module.exports object and\n// warns when non-existent properties are accessed.\nconst CircularRequirePrototypeWarningProxy = new Proxy({}\x2C {\n get(target\x2C prop) {\n // Allow __esModule access in any case because it is used in the output\n // of transpiled code to determine whether something comes from an\n // ES module\x2C and is not used as a regular key of `module.exports`.\n if (prop in target || prop === '__esModule') return target[prop];\n emitCircularRequireWarning(prop);\n return undefined;\n }\x2C\n\n getOwnPropertyDescriptor(target\x2C prop) {\n if (ObjectPrototypeHasOwnProperty(target\x2C prop) || prop === '__esModule')\n return ObjectGetOwnPropertyDescriptor(target\x2C prop);\n emitCircularRequireWarning(prop);\n return undefined;\n }\n});\n\nfunction getExportsForCircularRequire(module) {\n if (module.exports &&\n !isProxy(module.exports) &&\n ObjectGetPrototypeOf(module.exports) === ObjectPrototype &&\n // Exclude transpiled ES6 modules / TypeScript code because those may\n // employ unusual patterns for accessing 'module.exports'. That should\n // be okay because ES6 modules have a different approach to circular\n // dependencies anyway.\n !module.exports.__esModule) {\n // This is later unset once the module is done loading.\n ObjectSetPrototypeOf(\n module.exports\x2C CircularRequirePrototypeWarningProxy);\n }\n\n return module.exports;\n}\n\n// Check the cache for the requested file.\n// 1. If a module already exists in the cache: return its exports object.\n// 2. If the module is native: call\n// `NativeModule.prototype.compileForPublicLoader()` and return the exports.\n// 3. Otherwise\x2C create a new module for the file and save it to the cache.\n// Then have it load the file contents before returning its exports\n// object.\nModule._load = function(request\x2C parent\x2C isMain) {\n let relResolveCacheIdentifier;\n if (parent) {\n debug('Module._load REQUEST %s parent: %s'\x2C request\x2C parent.id);\n // Fast path for (lazy loaded) modules in the same directory. The indirect\n // caching is required to allow cache invalidation without changing the old\n // cache key names.\n relResolveCacheIdentifier = `${parent.path}\\x00${request}`;\n const filename = relativeResolveCache[relResolveCacheIdentifier];\n if (filename !== undefined) {\n const cachedModule = Module._cache[filename];\n if (cachedModule !== undefined) {\n updateChildren(parent\x2C cachedModule\x2C true);\n if (!cachedModule.loaded)\n return getExportsForCircularRequire(cachedModule);\n return cachedModule.exports;\n }\n delete relativeResolveCache[relResolveCacheIdentifier];\n }\n }\n\n const filename = Module._resolveFilename(request\x2C parent\x2C isMain);\n if (StringPrototypeStartsWith(filename\x2C 'node:')) {\n // Slice 'node:' prefix\n const id = StringPrototypeSlice(filename\x2C 5);\n\n const module = loadNativeModule(id\x2C request);\n if (!module?.canBeRequiredByUsers) {\n throw new ERR_UNKNOWN_BUILTIN_MODULE(filename);\n }\n\n return module.exports;\n }\n\n const cachedModule = Module._cache[filename];\n if (cachedModule !== undefined) {\n updateChildren(parent\x2C cachedModule\x2C true);\n if (!cachedModule.loaded) {\n const parseCachedModule = cjsParseCache.get(cachedModule);\n if (!parseCachedModule || parseCachedModule.loaded)\n return getExportsForCircularRequire(cachedModule);\n parseCachedModule.loaded = true;\n } else {\n return cachedModule.exports;\n }\n }\n\n const mod = loadNativeModule(filename\x2C request);\n if (mod?.canBeRequiredByUsers) return mod.exports;\n\n // Don't call updateChildren()\x2C Module constructor already does.\n const module = cachedModule || new Module(filename\x2C parent);\n\n if (isMain) {\n process.mainModule = module;\n module.id = '.';\n }\n\n Module._cache[filename] = module;\n if (parent !== undefined) {\n relativeResolveCache[relResolveCacheIdentifier] = filename;\n }\n\n let threw = true;\n try {\n module.load(filename);\n threw = false;\n } finally {\n if (threw) {\n delete Module._cache[filename];\n if (parent !== undefined) {\n delete relativeResolveCache[relResolveCacheIdentifier];\n const children = parent?.children;\n if (ArrayIsArray(children)) {\n const index = ArrayPrototypeIndexOf(children\x2C module);\n if (index !== -1) {\n ArrayPrototypeSplice(children\x2C index\x2C 1);\n }\n }\n }\n } else if (module.exports &&\n !isProxy(module.exports) &&\n ObjectGetPrototypeOf(module.exports) ===\n CircularRequirePrototypeWarningProxy) {\n ObjectSetPrototypeOf(module.exports\x2C ObjectPrototype);\n }\n }\n\n return module.exports;\n};\n\nModule._resolveFilename = function(request\x2C parent\x2C isMain\x2C options) {\n if (StringPrototypeStartsWith(request\x2C 'node:') ||\n NativeModule.canBeRequiredByUsers(request)) {\n return request;\n }\n\n let paths;\n\n if (typeof options === 'object' && options !== null) {\n if (ArrayIsArray(options.paths)) {\n const isRelative = StringPrototypeStartsWith(request\x2C './') ||\n StringPrototypeStartsWith(request\x2C '../') ||\n ((isWindows && StringPrototypeStartsWith(request\x2C '.\\\\')) ||\n StringPrototypeStartsWith(request\x2C '..\\\\'));\n\n if (isRelative) {\n paths = options.paths;\n } else {\n const fakeParent = new Module(''\x2C null);\n\n paths = [];\n\n for (let i = 0; i < options.paths.length; i++) {\n const path = options.paths[i];\n fakeParent.paths = Module._nodeModulePaths(path);\n const lookupPaths = Module._resolveLookupPaths(request\x2C fakeParent);\n\n for (let j = 0; j < lookupPaths.length; j++) {\n if (!ArrayPrototypeIncludes(paths\x2C lookupPaths[j]))\n ArrayPrototypePush(paths\x2C lookupPaths[j]);\n }\n }\n }\n } else if (options.paths === undefined) {\n paths = Module._resolveLookupPaths(request\x2C parent);\n } else {\n throw new ERR_INVALID_ARG_VALUE('options.paths'\x2C options.paths);\n }\n } else {\n paths = Module._resolveLookupPaths(request\x2C parent);\n }\n\n if (parent?.filename) {\n if (request[0] === '#') {\n const pkg = readPackageScope(parent.filename) || {};\n if (pkg.data?.imports != null) {\n try {\n return finalizeEsmResolution(\n packageImportsResolve(request\x2C pathToFileURL(parent.filename)\x2C\n cjsConditions)\x2C request\x2C parent.filename\x2C\n pkg.path);\n } catch (e) {\n if (e.code === 'ERR_MODULE_NOT_FOUND')\n throw createEsmNotFoundErr(request);\n throw e;\n }\n }\n }\n }\n\n // Try module self resolution first\n const parentPath = trySelfParentPath(parent);\n const selfResolved = trySelf(parentPath\x2C request);\n if (selfResolved) {\n const cacheKey = request + '\\x00' +\n (paths.length === 1 ? paths[0] : ArrayPrototypeJoin(paths\x2C '\\x00'));\n Module._pathCache[cacheKey] = selfResolved;\n return selfResolved;\n }\n\n // Look up the filename first\x2C since that's the cache key.\n const filename = Module._findPath(request\x2C paths\x2C isMain\x2C false);\n if (filename) return filename;\n const requireStack = [];\n for (let cursor = parent;\n cursor;\n cursor = moduleParentCache.get(cursor)) {\n ArrayPrototypePush(requireStack\x2C cursor.filename || cursor.id);\n }\n let message = `Cannot find module '${request}'`;\n if (requireStack.length > 0) {\n message = message + '\\nRequire stack:\\n- ' +\n ArrayPrototypeJoin(requireStack\x2C '\\n- ');\n }\n // eslint-disable-next-line no-restricted-syntax\n const err = new Error(message);\n err.code = 'MODULE_NOT_FOUND';\n err.requireStack = requireStack;\n throw err;\n};\n\nfunction finalizeEsmResolution(match\x2C request\x2C parentPath\x2C pkgPath) {\n const { resolved\x2C exact } = match;\n if (RegExpPrototypeTest(encodedSepRegEx\x2C resolved))\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved\x2C 'must not include encoded "/" or "\\\\" characters'\x2C parentPath);\n const filename = fileURLToPath(resolved);\n let actual = tryFile(filename);\n if (!exact && !actual) {\n const exts = ObjectKeys(Module._extensions);\n actual = tryExtensions(filename\x2C exts\x2C false) ||\n tryPackage(filename\x2C exts\x2C false\x2C request);\n }\n if (actual)\n return actual;\n const err = createEsmNotFoundErr(filename\x2C\n path.resolve(pkgPath\x2C 'package.json'));\n throw err;\n}\n\nfunction createEsmNotFoundErr(request\x2C path) {\n // eslint-disable-next-line no-restricted-syntax\n const err = new Error(`Cannot find module '${request}'`);\n err.code = 'MODULE_NOT_FOUND';\n if (path)\n err.path = path;\n // TODO(BridgeAR): Add the requireStack as well.\n return err;\n}\n\n// Given a file name\x2C pass it to the proper extension handler.\nModule.prototype.load = function(filename) {\n debug('load %j for module %j'\x2C filename\x2C this.id);\n\n assert(!this.loaded);\n this.filename = filename;\n this.paths = Module._nodeModulePaths(path.dirname(filename));\n\n const extension = findLongestRegisteredExtension(filename);\n // allow .mjs to be overridden\n if (StringPrototypeEndsWith(filename\x2C '.mjs') && !Module._extensions['.mjs'])\n throw new ERR_REQUIRE_ESM(filename\x2C true);\n\n Module._extensions[extension](this\x2C filename);\n this.loaded = true;\n\n const esmLoader = asyncESM.esmLoader;\n // Create module entry at load time to snapshot exports correctly\n const exports = this.exports;\n // Preemptively cache\n if ((module?.module === undefined ||\n module.module.getStatus() < kEvaluated) &&\n !esmLoader.cjsCache.has(this))\n esmLoader.cjsCache.set(this\x2C exports);\n};\n\n\n// Loads a module at the given file path. Returns that module's\n// `exports` property.\nModule.prototype.require = function(id) {\n validateString(id\x2C 'id');\n if (id === '') {\n throw new ERR_INVALID_ARG_VALUE('id'\x2C id\x2C\n 'must be a non-empty string');\n }\n requireDepth++;\n try {\n return Module._load(id\x2C this\x2C /* isMain */ false);\n } finally {\n requireDepth--;\n }\n};\n\n\n// Resolved path to process.argv[1] will be lazily placed here\n// (needed for setting breakpoint when called with --inspect-brk)\nlet resolvedArgv;\nlet hasPausedEntry = false;\n\nfunction wrapSafe(filename\x2C content\x2C cjsModuleInstance) {\n if (patched) {\n const wrapper = Module.wrap(content);\n return vm.runInThisContext(wrapper\x2C {\n filename\x2C\n lineOffset: 0\x2C\n displayErrors: true\x2C\n importModuleDynamically: async (specifier) => {\n const loader = asyncESM.esmLoader;\n return loader.import(specifier\x2C normalizeReferrerURL(filename));\n }\x2C\n });\n }\n try {\n return vm.compileFunction(content\x2C [\n 'exports'\x2C\n 'require'\x2C\n 'module'\x2C\n '__filename'\x2C\n '__dirname'\x2C\n ]\x2C {\n filename\x2C\n importModuleDynamically(specifier) {\n const loader = asyncESM.esmLoader;\n return loader.import(specifier\x2C normalizeReferrerURL(filename));\n }\x2C\n });\n } catch (err) {\n if (process.mainModule === cjsModuleInstance)\n enrichCJSError(err\x2C content);\n throw err;\n }\n}\n\n// Run the file contents in the correct scope or sandbox. Expose\n// the correct helper variables (require\x2C module\x2C exports) to\n// the file.\n// Returns exception\x2C if any.\nModule.prototype._compile = function(content\x2C filename) {\n let moduleURL;\n let redirects;\n if (policy?.manifest) {\n moduleURL = pathToFileURL(filename);\n redirects = policy.manifest.getDependencyMapper(moduleURL);\n policy.manifest.assertIntegrity(moduleURL\x2C content);\n }\n\n maybeCacheSourceMap(filename\x2C content\x2C this);\n const compiledWrapper = wrapSafe(filename\x2C content\x2C this);\n\n let inspectorWrapper = null;\n if (getOptionValue('--inspect-brk') && process._eval == null) {\n if (!resolvedArgv) {\n // We enter the repl if we're not given a filename argument.\n if (process.argv[1]) {\n try {\n resolvedArgv = Module._resolveFilename(process.argv[1]\x2C null\x2C false);\n } catch {\n // We only expect this codepath to be reached in the case of a\n // preloaded module (it will fail earlier with the main entry)\n assert(ArrayIsArray(getOptionValue('--require')));\n }\n } else {\n resolvedArgv = 'repl';\n }\n }\n\n // Set breakpoint on module start\n if (resolvedArgv && !hasPausedEntry && filename === resolvedArgv) {\n hasPausedEntry = true;\n inspectorWrapper = internalBinding('inspector').callAndPauseOnStart;\n }\n }\n const dirname = path.dirname(filename);\n const require = makeRequireFunction(this\x2C redirects);\n let result;\n const exports = this.exports;\n const thisValue = exports;\n const module = this;\n if (requireDepth === 0) statCache = new SafeMap();\n if (inspectorWrapper) {\n result = inspectorWrapper(compiledWrapper\x2C thisValue\x2C exports\x2C\n require\x2C module\x2C filename\x2C dirname);\n } else {\n result = ReflectApply(compiledWrapper\x2C thisValue\x2C\n [exports\x2C require\x2C module\x2C filename\x2C dirname]);\n }\n hasLoadedAnyUserCJSModule = true;\n if (requireDepth === 0) statCache = null;\n return result;\n};\n\n// Native extension for .js\nModule._extensions['.js'] = function(module\x2C filename) {\n // If already analyzed the source\x2C then it will be cached.\n const cached = cjsParseCache.get(module);\n let content;\n if (cached?.source) {\n content = cached.source;\n cached.source = undefined;\n } else {\n content = fs.readFileSync(filename\x2C 'utf8');\n }\n if (StringPrototypeEndsWith(filename\x2C '.js')) {\n const pkg = readPackageScope(filename);\n // Function require shouldn't be used in ES modules.\n if (pkg?.data?.type === 'module') {\n const parent = moduleParentCache.get(module);\n const parentPath = parent?.filename;\n const packageJsonPath = path.resolve(pkg.path\x2C 'package.json');\n const usesEsm = hasEsmSyntax(content);\n const err = new ERR_REQUIRE_ESM(filename\x2C usesEsm\x2C parentPath\x2C\n packageJsonPath);\n // Attempt to reconstruct the parent require frame.\n if (Module._cache[parentPath]) {\n let parentSource;\n try {\n parentSource = fs.readFileSync(parentPath\x2C 'utf8');\n } catch {}\n if (parentSource) {\n const errLine = StringPrototypeSplit(\n StringPrototypeSlice(err.stack\x2C StringPrototypeIndexOf(\n err.stack\x2C ' at '))\x2C '\\n'\x2C 1)[0];\n const { 1: line\x2C 2: col } =\n RegExpPrototypeExec(/(\\d+):(\\d+)\\)/\x2C errLine) || [];\n if (line && col) {\n const srcLine = StringPrototypeSplit(parentSource\x2C '\\n')[line - 1];\n const frame = `${parentPath}:${line}\\n${srcLine}\\n${\n StringPrototypeRepeat(' '\x2C col - 1)}^\\n`;\n setArrowMessage(err\x2C frame);\n }\n }\n }\n throw err;\n }\n }\n module._compile(content\x2C filename);\n};\n\n\n// Native extension for .json\nModule._extensions['.json'] = function(module\x2C filename) {\n const content = fs.readFileSync(filename\x2C 'utf8');\n\n if (policy?.manifest) {\n const moduleURL = pathToFileURL(filename);\n policy.manifest.assertIntegrity(moduleURL\x2C content);\n }\n\n try {\n module.exports = JSONParse(stripBOM(content));\n } catch (err) {\n err.message = filename + ': ' + err.message;\n throw err;\n }\n};\n\n\n// Native extension for .node\nModule._extensions['.node'] = function(module\x2C filename) {\n if (policy?.manifest) {\n const content = fs.readFileSync(filename);\n const moduleURL = pathToFileURL(filename);\n policy.manifest.assertIntegrity(moduleURL\x2C content);\n }\n // Be aware this doesn't use `content`\n return process.dlopen(module\x2C path.toNamespacedPath(filename));\n};\n\nfunction createRequireFromPath(filename) {\n // Allow a directory to be passed as the filename\n const trailingSlash =\n StringPrototypeEndsWith(filename\x2C '/') ||\n (isWindows && StringPrototypeEndsWith(filename\x2C '\\\\'));\n\n const proxyPath = trailingSlash ?\n path.join(filename\x2C 'noop.js') :\n filename;\n\n const m = new Module(proxyPath);\n m.filename = proxyPath;\n\n m.paths = Module._nodeModulePaths(m.path);\n return makeRequireFunction(m\x2C null);\n}\n\nconst createRequireError = 'must be a file URL object\x2C file URL string\x2C or ' +\n 'absolute path string';\n\nfunction createRequire(filename) {\n let filepath;\n\n if (isURLInstance(filename) ||\n (typeof filename === 'string' && !path.isAbsolute(filename))) {\n try {\n filepath = fileURLToPath(filename);\n } catch {\n throw new ERR_INVALID_ARG_VALUE('filename'\x2C filename\x2C\n createRequireError);\n }\n } else if (typeof filename !== 'string') {\n throw new ERR_INVALID_ARG_VALUE('filename'\x2C filename\x2C createRequireError);\n } else {\n filepath = filename;\n }\n return createRequireFromPath(filepath);\n}\n\nModule.createRequire = createRequire;\n\nModule._initPaths = function() {\n const homeDir = isWindows ? process.env.USERPROFILE : safeGetenv('HOME');\n const nodePath = isWindows ? process.env.NODE_PATH : safeGetenv('NODE_PATH');\n\n // process.execPath is $PREFIX/bin/node except on Windows where it is\n // $PREFIX\\node.exe where $PREFIX is the root of the Node.js installation.\n const prefixDir = isWindows ?\n path.resolve(process.execPath\x2C '..') :\n path.resolve(process.execPath\x2C '..'\x2C '..');\n\n const paths = [path.resolve(prefixDir\x2C 'lib'\x2C 'node')];\n\n if (homeDir) {\n ArrayPrototypeUnshift(paths\x2C path.resolve(homeDir\x2C '.node_libraries'));\n ArrayPrototypeUnshift(paths\x2C path.resolve(homeDir\x2C '.node_modules'));\n }\n\n if (nodePath) {\n ArrayPrototypeUnshiftApply(paths\x2C ArrayPrototypeFilter(\n StringPrototypeSplit(nodePath\x2C path.delimiter)\x2C\n Boolean\n ));\n }\n\n modulePaths = paths;\n\n // Clone as a shallow copy\x2C for introspection.\n Module.globalPaths = ArrayPrototypeSlice(modulePaths);\n};\n\nModule._preloadModules = function(requests) {\n if (!ArrayIsArray(requests))\n return;\n\n isPreloading = true;\n\n // Preloaded modules have a dummy parent module which is deemed to exist\n // in the current working directory. This seeds the search path for\n // preloaded modules.\n const parent = new Module('internal/preload'\x2C null);\n try {\n parent.paths = Module._nodeModulePaths(process.cwd());\n } catch (e) {\n if (e.code !== 'ENOENT') {\n isPreloading = false;\n throw e;\n }\n }\n for (let n = 0; n < requests.length; n++)\n parent.require(requests[n]);\n isPreloading = false;\n};\n\nModule.syncBuiltinESMExports = function syncBuiltinESMExports() {\n for (const mod of NativeModule.map.values()) {\n if (mod.canBeRequiredByUsers) {\n mod.syncExports();\n }\n }\n};\n\n// Backwards compatibility\nModule.Module = Module;\n code-source-info,0x337ca0b20cde,99,0,40182,C0O0C4O40182,, code-creation,Function,10,16402,0x337ca0b22a7e,2547, node:internal/modules/cjs/loader:1:1,0x337ca0b20c58,~ code-source-info,0x337ca0b22a7e,99,0,40182,C0O0C446O1159C452O1175C458O1199C464O1223C470O1249C476O1274C482O1296C488O1318C494O1341C500O1365C506O1390C512O1420C518O1431C524O1440C530O1453C535O1469C541O1493C546O1509C552O1543C558O1567C564O1581C570O1600C576O1633C582O1657C587O1666C593O1682C599O1696C605O1719C611O1742C617O1753C622O1768C628O1778C634O1803C640O1832C646O1859C652O1889C658O1915C664O1939C670O1964C676O1988C682O2012C688O2118C690O2118C695O2118C697O2191C709O2212C715O2222C721O2230C727O2242C733O2260C763O2206C767O2376C771O2376C777O2359C783O2450C787O2450C793O2425C799O2555C803O2555C809O2507C815O2522C821O2537C827O2602C831O2602C837O2588C842O2639C846O2639C850O2639C852O2669C856O2669C860O2669C862O2708C866O2708C870O2708C872O2742C876O2742C880O2742C882O2785C886O2785C890O2785C892O2818C896O2810C902O2855C910O2855C916O2832C922O2904C926O2904C930O2904C932O2976C940O2976C946O2961C952O3132C956O3132C962O3018C968O3035C974O3051C980O3071C986O3094C992O3118C998O3200C1002O3200C1008O3181C1014O3254C1022O3254C1026O3254C1028O3322C1036O3322C1040O3322C1042O3432C1050O3432C1060O3476C1067O3432C1069O3656C1070O3656C1072O3825C1076O3825C1082O3825C1088O3687C1094O3714C1100O3748C1106O3769C1112O3804C1118O3880C1122O3880C1128O3861C1134O3939C1142O3939C1147O4051C1151O4051C1157O3991C1163O4013C1169O4036C1175O4105C1179O4105C1185O4093C1191O4155C1195O4155C1199O4155C1201O4222C1205O4222C1211O4203C1217O4290C1225O4290C1231O4275C1237O4402C1241O4402C1247O4332C1253O4351C1259O4376C1265O4462C1269O4470C1277O4479C1280O4462C1282O4522C1285O4522C1289O4522C1291O4562C1292O4562C1294O4581C1295O4581C1297O4606C1298O4606C1300O5250C1302O5250C1307O5250C1309O5546C1312O5595C1316O5595C1350O5577C1381O5566C1388O5573C1397O5612C1403O5640C1407O5640C1412O5550C1483O5687C1487O5717C1493O5739C1497O5758C1504O5774C1508O5772C1512O5794C1519O5814C1527O5812C1535O5834C1542O5855C1550O5853C1558O5893C1562O5893C1564O5897C1572O5916C1580O5937C1581O5937C1583O5995C1587O5995C1589O6091C1597O6205C1606O6218C1618O6345C1635O6195C1645O6195C1647O6484C1659O6505C1668O6525C1680O6558C1692O6484C1702O6618C1714O6639C1723O6662C1735O6703C1747O6618C1757O6796C1766O6798C1781O6832C1789O6860C1806O6832C1816O6906C1824O6940C1841O6906C1851O7132C1859O7160C1884O7190C1892O7313C1907O7211C1921O7394C1931O7418C1939O7541C1954O7439C1968O7622C1976O7132C1986O7656C1990O7656C2000O7689C2020O7690C2032O7656C2034O7737C2050O7753C2060O7751C2068O8066C2072O8066C2082O8066C2084O10869C2088O10869C2098O10869C2100O13498C2107O13498C2109O14282C2116O14282C2118O14300C2126O14317C2134O16993C2141O16993C2143O17070C2147O17078C2155O17070C2157O17086C2161O17149C2169O17173C2179O18757C2187O18781C2195O19927C2203O19954C2211O21502C2223O21520C2235O21897C2249O21502C2259O21502C2261O23185C2269O23198C2277O26129C2285O26153C2293O30233C2297O30240C2311O30255C2319O31169C2323O31176C2337O31194C2345O31632C2346O31632C2348O31667C2349O31667C2351O32724C2355O32731C2369O32750C2377O34632C2381O34639C2395O34658C2403O36402C2407O36409C2421O36430C2429O36830C2433O36837C2447O36858C2455O37671C2461O37721C2467O37671C2469O38305C2475O38326C2483O38344C2491O38362C2499O39331C2507O39354C2515O39941C2523O39970C2531O40158C2537O40172C2546O40181,, LoadIC,0x2ba068cfce19,16514,312,15,0,1,0x38ac3d986f99,exports,, StoreIC,0x337ca0b22d43,16565,73,3,X,X,0x000000000000,wrapSafe,, StoreIC,0x337ca0b22d49,16570,73,13,X,X,0x000000000000,Module,, StoreIC,0x337ca0b22d4f,16573,73,21,X,X,0x000000000000,toRealPath,, StoreIC,0x337ca0b22d55,16576,73,33,X,X,0x000000000000,readPackageScope,, StoreIC,0x337ca0b22d5b,16579,73,51,X,X,0x000000000000,cjsParseCache,, code-creation,Eval,10,16628,0x337ca0b2934e,5, node:internal/modules/package_json_reader:1:1,0x337ca0b291a8,~ script-source,100,node:internal/modules/package_json_reader,'use strict';\n\nconst { SafeMap } = primordials;\nconst { internalModuleReadJSON } = internalBinding('fs');\nconst { pathToFileURL } = require('url');\nconst { toNamespacedPath } = require('path');\n\nconst cache = new SafeMap();\n\nlet manifest;\n\n/**\n *\n * @param {string} jsonPath\n */\nfunction read(jsonPath) {\n if (cache.has(jsonPath)) {\n return cache.get(jsonPath);\n }\n\n const { 0: string\x2C 1: containsKeys } = internalModuleReadJSON(\n toNamespacedPath(jsonPath)\n );\n const result = { string\x2C containsKeys };\n const { getOptionValue } = require('internal/options');\n if (string !== undefined) {\n if (manifest === undefined) {\n manifest = getOptionValue('--experimental-policy') ?\n require('internal/process/policy').manifest :\n null;\n }\n if (manifest !== null) {\n const jsonURL = pathToFileURL(jsonPath);\n manifest.assertIntegrity(jsonURL\x2C string);\n }\n }\n cache.set(jsonPath\x2C result);\n return result;\n}\n\nmodule.exports = { read };\n code-source-info,0x337ca0b2934e,100,0,983,C0O0C4O983,, code-creation,Function,10,16655,0x337ca0b2949e,113, node:internal/modules/package_json_reader:1:1,0x337ca0b292c8,~ code-source-info,0x337ca0b2949e,100,0,983,C0O0C29O23C34O83C37O83C42O56C48O132C54O132C59O114C65O177C71O177C76O156C82O209C84O209C89O209C91O229C92O229C94O956C101O975C107O971C112O982,, StoreIC,0x337ca0b29503,16686,41,20,X,X,0x000000000000,read,, StoreIC,0x2ba068cfce3b,16692,314,19,0,1,0x38ac3d986f99,loaded,, StoreIC,0x2ba068cfce4c,16696,316,20,0,1,0x38ac3d986f99,loading,, LoadIC,0x2ba068cfce78,16699,320,17,0,1,0x38ac3d986f99,exports,, code-creation,Eval,10,16766,0x337ca0b29dce,5, node:internal/process/esm_loader:1:1,0x337ca0b29bd8,~ script-source,101,node:internal/process/esm_loader,'use strict';\n\nconst {\n ObjectCreate\x2C\n} = primordials;\n\nconst {\n ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING\x2C\n} = require('internal/errors').codes;\nconst { ESMLoader } = require('internal/modules/esm/loader');\nconst {\n hasUncaughtExceptionCaptureCallback\x2C\n} = require('internal/process/execution');\nconst { pathToFileURL } = require('internal/url');\nconst {\n getModuleFromWrap\x2C\n} = require('internal/vm/module');\n\nexports.initializeImportMetaObject = function(wrap\x2C meta) {\n const { callbackMap } = internalBinding('module_wrap');\n if (callbackMap.has(wrap)) {\n const { initializeImportMeta } = callbackMap.get(wrap);\n if (initializeImportMeta !== undefined) {\n initializeImportMeta(meta\x2C getModuleFromWrap(wrap) || wrap);\n }\n }\n};\n\nexports.importModuleDynamicallyCallback =\nasync function importModuleDynamicallyCallback(wrap\x2C specifier\x2C assertions) {\n const { callbackMap } = internalBinding('module_wrap');\n if (callbackMap.has(wrap)) {\n const { importModuleDynamically } = callbackMap.get(wrap);\n if (importModuleDynamically !== undefined) {\n return importModuleDynamically(\n specifier\x2C getModuleFromWrap(wrap) || wrap\x2C assertions);\n }\n }\n throw new ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING();\n};\n\nconst esmLoader = new ESMLoader();\n\nexports.esmLoader = esmLoader;\n\n/**\n * Causes side-effects: user-defined loader hooks are added to esmLoader.\n * @returns {void}\n */\nasync function initializeLoader() {\n const { getOptionValue } = require('internal/options');\n // customLoaders CURRENTLY can be only 1 (a string)\n // Once chaining is implemented\x2C it will be string[]\n const customLoaders = getOptionValue('--experimental-loader');\n\n if (!customLoaders.length) return;\n\n const { emitExperimentalWarning } = require('internal/util');\n emitExperimentalWarning('--experimental-loader');\n\n let cwd;\n try {\n cwd = process.cwd() + '/';\n } catch {\n cwd = 'file:///';\n }\n\n // A separate loader instance is necessary to avoid cross-contamination\n // between internal Node.js and userland. For example\x2C a module with internal\n // state (such as a counter) should be independent.\n const internalEsmLoader = new ESMLoader();\n\n // Importation must be handled by internal loader to avoid poluting userland\n const exports = await internalEsmLoader.import(\n customLoaders\x2C\n pathToFileURL(cwd).href\x2C\n ObjectCreate(null)\x2C\n );\n\n // Hooks must then be added to external/public loader\n // (so they're triggered in userland)\n await esmLoader.addCustomLoaders(exports);\n}\n\nexports.loadESM = async function loadESM(callback) {\n try {\n await initializeLoader();\n await callback(esmLoader);\n } catch (err) {\n if (hasUncaughtExceptionCaptureCallback()) {\n process._fatalException(err);\n return;\n }\n internalBinding('errors').triggerUncaughtException(\n err\x2C\n true /* fromPromise */\n );\n }\n};\n code-source-info,0x337ca0b29dce,101,0,2883,C0O0C4O2883,, code-creation,Function,10,16823,0x337ca0b2a06e,182, node:internal/process/esm_loader:1:1,0x337ca0b29d48,~ code-source-info,0x337ca0b2a06e,101,0,2883,C0O0C44O25C50O111C56O111C61O137C66O67C72O167C78O167C83O153C89O258C95O258C100O217C106O323C112O323C117O305C123O381C129O381C134O358C140O413C144O448C148O749C152O789C156O1259C159O1259C164O1259C166O1277C168O1295C172O2528C176O2544C181O2882,, code-creation,Eval,10,17010,0x337ca0b2b0d6,5, node:internal/modules/esm/loader:1:1,0x337ca0b2acd8,~ script-source,102,node:internal/modules/esm/loader,'use strict';\n\n// This is needed to avoid cycles in esm/resolve <-> cjs/loader\nrequire('internal/modules/cjs/loader');\n\nconst {\n Array\x2C\n ArrayIsArray\x2C\n ArrayPrototypeJoin\x2C\n ArrayPrototypePush\x2C\n FunctionPrototypeBind\x2C\n FunctionPrototypeCall\x2C\n ObjectCreate\x2C\n ObjectSetPrototypeOf\x2C\n PromiseAll\x2C\n RegExpPrototypeExec\x2C\n SafeArrayIterator\x2C\n SafeWeakMap\x2C\n globalThis\x2C\n} = primordials;\n\nconst {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_INVALID_MODULE_SPECIFIER\x2C\n ERR_INVALID_RETURN_PROPERTY_VALUE\x2C\n ERR_INVALID_RETURN_VALUE\x2C\n ERR_UNKNOWN_MODULE_FORMAT\n} = require('internal/errors').codes;\nconst { pathToFileURL\x2C isURLInstance } = require('internal/url');\nconst {\n isAnyArrayBuffer\x2C\n isArrayBufferView\x2C\n} = require('internal/util/types');\nconst ModuleMap = require('internal/modules/esm/module_map');\nconst ModuleJob = require('internal/modules/esm/module_job');\n\nconst {\n defaultResolve\x2C\n DEFAULT_CONDITIONS\x2C\n} = require('internal/modules/esm/resolve');\nconst { defaultLoad } = require('internal/modules/esm/load');\nconst { translators } = require(\n 'internal/modules/esm/translators');\nconst { getOptionValue } = require('internal/options');\n\n/**\n * An ESMLoader instance is used as the main entry point for loading ES modules.\n * Currently\x2C this is a singleton -- there is only one used for loading\n * the main module and everything in its dependency graph.\n */\nclass ESMLoader {\n /**\n * Prior to ESM loading. These are called once before any modules are started.\n * @private\n * @property {function[]} globalPreloaders First-in-first-out list of\n * preload hooks.\n */\n #globalPreloaders = [];\n\n /**\n * Phase 2 of 2 in ESM loading.\n * @private\n * @property {function[]} loaders First-in-first-out list of loader hooks.\n */\n #loaders = [\n defaultLoad\x2C\n ];\n\n /**\n * Phase 1 of 2 in ESM loading.\n * @private\n * @property {function[]} resolvers First-in-first-out list of resolver hooks\n */\n #resolvers = [\n defaultResolve\x2C\n ];\n\n /**\n * Map of already-loaded CJS modules to use\n */\n cjsCache = new SafeWeakMap();\n\n /**\n * The index for assigning unique URLs to anonymous module evaluation\n */\n evalIndex = 0;\n\n /**\n * Registry of loaded modules\x2C akin to `require.cache`\n */\n moduleMap = new ModuleMap();\n\n /**\n * Methods which translate input code or other information into ES modules\n */\n translators = translators;\n\n static pluckHooks({\n globalPreload\x2C\n resolve\x2C\n load\x2C\n // obsolete hooks:\n dynamicInstantiate\x2C\n getFormat\x2C\n getGlobalPreloadCode\x2C\n getSource\x2C\n transformSource\x2C\n }) {\n const obsoleteHooks = [];\n const acceptedHooks = ObjectCreate(null);\n\n if (getGlobalPreloadCode) {\n globalPreload ??= getGlobalPreloadCode;\n\n process.emitWarning(\n 'Loader hook "getGlobalPreloadCode" has been renamed to "globalPreload"'\n );\n }\n if (dynamicInstantiate) ArrayPrototypePush(\n obsoleteHooks\x2C\n 'dynamicInstantiate'\n );\n if (getFormat) ArrayPrototypePush(\n obsoleteHooks\x2C\n 'getFormat'\x2C\n );\n if (getSource) ArrayPrototypePush(\n obsoleteHooks\x2C\n 'getSource'\x2C\n );\n if (transformSource) ArrayPrototypePush(\n obsoleteHooks\x2C\n 'transformSource'\x2C\n );\n\n if (obsoleteHooks.length) process.emitWarning(\n `Obsolete loader hook(s) supplied and will be ignored: ${\n ArrayPrototypeJoin(obsoleteHooks\x2C '\x2C ')\n }`\x2C\n 'DeprecationWarning'\x2C\n );\n\n // Use .bind() to avoid giving access to the Loader instance when called.\n if (globalPreload) {\n acceptedHooks.globalPreloader =\n FunctionPrototypeBind(globalPreload\x2C null);\n }\n if (resolve) {\n acceptedHooks.resolver = FunctionPrototypeBind(resolve\x2C null);\n }\n if (load) {\n acceptedHooks.loader = FunctionPrototypeBind(load\x2C null);\n }\n\n return acceptedHooks;\n }\n\n /**\n * Collect custom/user-defined hook(s). After all hooks have been collected\x2C\n * calls global preload hook(s).\n * @param {object | object[]} customLoaders A list of exports from\n * user-defined loaders (as returned by ESMLoader.import()).\n */\n async addCustomLoaders(\n customLoaders = []\x2C\n ) {\n if (!ArrayIsArray(customLoaders)) customLoaders = [customLoaders];\n\n for (let i = 0; i < customLoaders.length; i++) {\n const exports = customLoaders[i];\n const {\n globalPreloader\x2C\n resolver\x2C\n loader\x2C\n } = ESMLoader.pluckHooks(exports);\n\n if (globalPreloader) ArrayPrototypePush(\n this.#globalPreloaders\x2C\n FunctionPrototypeBind(globalPreloader\x2C null)\x2C // [1]\n );\n if (resolver) ArrayPrototypePush(\n this.#resolvers\x2C\n FunctionPrototypeBind(resolver\x2C null)\x2C // [1]\n );\n if (loader) ArrayPrototypePush(\n this.#loaders\x2C\n FunctionPrototypeBind(loader\x2C null)\x2C // [1]\n );\n }\n\n // [1] ensure hook function is not bound to ESMLoader instance\n\n this.preload();\n }\n\n async eval(\n source\x2C\n url = pathToFileURL(`${process.cwd()}/[eval${++this.evalIndex}]`).href\n ) {\n const evalInstance = (url) => {\n const { ModuleWrap\x2C callbackMap } = internalBinding('module_wrap');\n const module = new ModuleWrap(url\x2C undefined\x2C source\x2C 0\x2C 0);\n callbackMap.set(module\x2C {\n importModuleDynamically: (specifier\x2C { url }) => {\n return this.import(specifier\x2C url);\n }\n });\n\n return module;\n };\n const job = new ModuleJob(this\x2C url\x2C evalInstance\x2C false\x2C false);\n this.moduleMap.set(url\x2C job);\n const { module } = await job.run();\n\n return {\n namespace: module.getNamespace()\x2C\n };\n }\n\n async getModuleJob(specifier\x2C parentURL) {\n const { format\x2C url } = await this.resolve(specifier\x2C parentURL);\n let job = this.moduleMap.get(url);\n // CommonJS will set functions for lazy job evaluation.\n if (typeof job === 'function') this.moduleMap.set(url\x2C job = job());\n\n if (job !== undefined) return job;\n\n const moduleProvider = async (url\x2C isMain) => {\n const { format: finalFormat\x2C source } = await this.load(url\x2C { format });\n\n const translator = translators.get(finalFormat);\n\n if (!translator) throw new ERR_UNKNOWN_MODULE_FORMAT(finalFormat);\n\n return FunctionPrototypeCall(translator\x2C this\x2C url\x2C source\x2C isMain);\n };\n\n const inspectBrk = (\n parentURL === undefined &&\n getOptionValue('--inspect-brk')\n );\n\n job = new ModuleJob(\n this\x2C\n url\x2C\n moduleProvider\x2C\n parentURL === undefined\x2C\n inspectBrk\n );\n\n this.moduleMap.set(url\x2C job);\n\n return job;\n }\n\n /**\n * This method is usually called indirectly as part of the loading processes.\n * Internally\x2C it is used directly to add loaders. Use directly with caution.\n *\n * This method must NOT be renamed: it functions as a dynamic import on a\n * loader module.\n *\n * @param {string | string[]} specifiers Path(s) to the module\n * @param {string} [parentURL] Path of the parent importing the module\n * @returns {object | object[]} A list of module export(s)\n */\n async import(specifiers\x2C parentURL) {\n const wasArr = ArrayIsArray(specifiers);\n if (!wasArr) specifiers = [specifiers];\n\n const count = specifiers.length;\n const jobs = new Array(count);\n\n for (let i = 0; i < count; i++) {\n jobs[i] = this.getModuleJob(specifiers[i]\x2C parentURL)\n .then((job) => job.run())\n .then(({ module }) => module.getNamespace());\n }\n\n const namespaces = await PromiseAll(new SafeArrayIterator(jobs));\n\n return wasArr ?\n namespaces :\n namespaces[0];\n }\n\n /**\n * Provide source that is understood by one of Node's translators.\n *\n * The internals of this WILL change when chaining is implemented\x2C\n * depending on the resolution/consensus from #36954\n * @param {string} url The URL/path of the module to be loaded\n * @param {Object} context Metadata about the module\n * @returns {Object}\n */\n async load(url\x2C context = {}) {\n const defaultLoader = this.#loaders[0];\n\n const loader = this.#loaders.length === 1 ?\n defaultLoader :\n this.#loaders[1];\n const loaded = await loader(url\x2C context\x2C defaultLoader);\n\n if (typeof loaded !== 'object') {\n throw new ERR_INVALID_RETURN_VALUE(\n 'object'\x2C\n 'loader load'\x2C\n loaded\x2C\n );\n }\n\n const {\n format\x2C\n source\x2C\n } = loaded;\n\n if (format == null) {\n const dataUrl = RegExpPrototypeExec(\n /^data:([^/]+\\/[^;\x2C]+)(?:[^\x2C]*?)(;base64)?\x2C/\x2C\n url\x2C\n );\n\n throw new ERR_INVALID_MODULE_SPECIFIER(\n url\x2C\n dataUrl ? `has an unsupported MIME type "${dataUrl[1]}"` : ''\n );\n }\n\n if (typeof format !== 'string') {\n throw new ERR_INVALID_RETURN_PROPERTY_VALUE(\n 'string'\x2C\n 'loader resolve'\x2C\n 'format'\x2C\n format\x2C\n );\n }\n\n if (\n source != null &&\n typeof source !== 'string' &&\n !isAnyArrayBuffer(source) &&\n !isArrayBufferView(source)\n ) throw ERR_INVALID_RETURN_PROPERTY_VALUE(\n 'string\x2C an ArrayBuffer\x2C or a TypedArray'\x2C\n 'loader load'\x2C\n 'source'\x2C\n source\n );\n\n return {\n format\x2C\n source\x2C\n };\n }\n\n preload() {\n const count = this.#globalPreloaders.length;\n if (!count) return;\n\n for (let i = 0; i < count; i++) {\n const preload = this.#globalPreloaders[i]();\n\n if (preload == null) return;\n\n if (typeof preload !== 'string') {\n throw new ERR_INVALID_RETURN_VALUE(\n 'string'\x2C\n 'loader globalPreloadCode'\x2C\n preload\x2C\n );\n }\n const { compileFunction } = require('vm');\n const preloadInit = compileFunction(\n preload\x2C\n ['getBuiltin']\x2C\n {\n filename: ''\x2C\n }\n );\n const { NativeModule } = require('internal/bootstrap/loaders');\n\n FunctionPrototypeCall(preloadInit\x2C globalThis\x2C (builtinName) => {\n if (NativeModule.canBeRequiredByUsers(builtinName)) {\n return require(builtinName);\n }\n throw new ERR_INVALID_ARG_VALUE('builtinName'\x2C builtinName);\n });\n }\n }\n\n /**\n * Resolve the location of the module.\n *\n * The internals of this WILL change when chaining is implemented\x2C\n * depending on the resolution/consensus from #36954\n * @param {string} originalSpecifier The specified URL path of the module to\n * be resolved\n * @param {String} parentURL The URL path of the module's parent\n * @returns {{ url: String }}\n */\n async resolve(originalSpecifier\x2C parentURL) {\n const isMain = parentURL === undefined;\n\n if (\n !isMain &&\n typeof parentURL !== 'string' &&\n !isURLInstance(parentURL)\n ) throw new ERR_INVALID_ARG_TYPE(\n 'parentURL'\x2C\n ['string'\x2C 'URL']\x2C\n parentURL\x2C\n );\n\n const conditions = DEFAULT_CONDITIONS;\n\n const defaultResolver = this.#resolvers[0];\n\n const resolver = this.#resolvers.length === 1 ?\n defaultResolver :\n this.#resolvers[1];\n const resolution = await resolver(\n originalSpecifier\x2C\n {\n conditions\x2C\n parentURL\x2C\n }\x2C\n defaultResolver\x2C\n );\n\n if (typeof resolution !== 'object') {\n throw new ERR_INVALID_RETURN_VALUE(\n 'object'\x2C\n 'loader resolve'\x2C\n resolution\x2C\n );\n }\n\n const { format\x2C url } = resolution;\n\n if (\n format != null &&\n typeof format !== 'string'\n ) {\n throw new ERR_INVALID_RETURN_PROPERTY_VALUE(\n 'string'\x2C\n 'loader resolve'\x2C\n 'format'\x2C\n format\x2C\n );\n }\n if (typeof url !== 'string') {\n throw new ERR_INVALID_RETURN_PROPERTY_VALUE(\n 'string'\x2C\n 'loader resolve'\x2C\n 'url'\x2C\n url\x2C\n );\n }\n\n return {\n format\x2C\n url\x2C\n };\n }\n}\n\nObjectSetPrototypeOf(ESMLoader.prototype\x2C null);\n\nexports.ESMLoader = ESMLoader;\n code-source-info,0x337ca0b2b0d6,102,0,11918,C0O0C4O11918,, code-creation,Function,10,17232,0x337ca0b2b81e,530, node:internal/modules/esm/loader:1:1,0x337ca0b2b050,~ code-source-info,0x337ca0b2b81e,102,0,11918,C0O0C104O79C110O79C114O130C120O139C126O155C132O177C138O199C144O224C150O249C156O265C161O289C167O303C173O326C179O347C185O362C191O578C197O578C202O604C207O402C213O426C219O451C225O483C231O520C237O548C243O653C249O653C254O620C260O635C266O731C272O731C277O688C283O708C289O781C295O781C299O781C301O843C307O843C311O843C313O940C319O940C324O898C330O916C336O1005C342O1005C347O989C353O1067C359O1067C364O1051C370O1142C376O1142C381O1123C510O11868C517O11837C522O11887C524O11905C529O11917,, code-creation,Function,10,17241,0x337ca0b2bc16,139, node:internal/modules/esm/loader:59:3,0x337ca0b2b3d8,~ code-source-info,0x337ca0b2bc16,102,1611,2404,C3O1631C17O1786C28O1792C45O1966C56O1972C73O2065C80O2065C94O2183C104O2270C111O2270C125O2393C138O2404,, code-creation,Eval,10,17324,0x337ca0b2cfde,5, node:internal/modules/esm/module_map:1:1,0x337ca0b2ce10,~ script-source,103,node:internal/modules/esm/module_map,'use strict';\n\nconst ModuleJob = require('internal/modules/esm/module_job');\nconst {\n SafeMap\x2C\n} = primordials;\nlet debug = require('internal/util/debuglog').debuglog('esm'\x2C (fn) => {\n debug = fn;\n});\nconst { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes;\nconst { validateString } = require('internal/validators');\n\n// Tracks the state of the loader-level module cache\nclass ModuleMap extends SafeMap {\n constructor(i) { super(i); } // eslint-disable-line no-useless-constructor\n get(url) {\n validateString(url\x2C 'url');\n return super.get(url);\n }\n set(url\x2C job) {\n validateString(url\x2C 'url');\n if (job instanceof ModuleJob !== true &&\n typeof job !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('job'\x2C 'ModuleJob'\x2C job);\n }\n debug(`Storing ${url} in ModuleMap`);\n return super.set(url\x2C job);\n }\n has(url) {\n validateString(url\x2C 'url');\n return super.has(url);\n }\n}\nmodule.exports = ModuleMap;\n code-source-info,0x337ca0b2cfde,103,0,955,C0O0C4O955,, code-creation,Function,10,17352,0x337ca0b2d3fe,149, node:internal/modules/esm/module_map:1:1,0x337ca0b2cf58,~ code-source-info,0x337ca0b2d3fe,103,0,955,C0O0C17O33C20O33C24O33C26O87C31O125C34O125C39O158C52O159C58O125C60O236C63O236C68O262C73O211C79O297C82O297C87O278C97O407C141O927C143O942C148O954,, code-creation,Eval,10,17478,0x337ca0b2de26,5, node:internal/modules/esm/module_job:1:1,0x337ca0b2db40,~ script-source,104,node:internal/modules/esm/module_job,'use strict';\n\nconst {\n ArrayPrototypeJoin\x2C\n ArrayPrototypeMap\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypeSome\x2C\n FunctionPrototype\x2C\n ObjectSetPrototypeOf\x2C\n PromiseAll\x2C\n PromiseResolve\x2C\n PromisePrototypeCatch\x2C\n ReflectApply\x2C\n RegExpPrototypeTest\x2C\n SafeArrayIterator\x2C\n SafeSet\x2C\n StringPrototypeIncludes\x2C\n StringPrototypeMatch\x2C\n StringPrototypeReplace\x2C\n StringPrototypeSplit\x2C\n StringPrototypeStartsWith\x2C\n} = primordials;\n\nconst { ModuleWrap } = internalBinding('module_wrap');\n\nconst { decorateErrorStack } = require('internal/util');\nconst {\n getSourceMapsEnabled\x2C\n} = require('internal/source_map/source_map_cache');\nconst assert = require('internal/assert');\nconst resolvedPromise = PromiseResolve();\n\nconst noop = FunctionPrototype;\n\nlet hasPausedEntry = false;\n\nconst CJSGlobalLike = [\n 'require'\x2C\n 'module'\x2C\n 'exports'\x2C\n '__filename'\x2C\n '__dirname'\x2C\n];\nconst isCommonJSGlobalLikeNotDefinedError = (errorMessage) =>\n ArrayPrototypeSome(\n CJSGlobalLike\x2C\n (globalLike) => errorMessage === `${globalLike} is not defined`\n );\n\n/* A ModuleJob tracks the loading of a single Module\x2C and the ModuleJobs of\n * its dependencies\x2C over time. */\nclass ModuleJob {\n // `loader` is the Loader instance used for loading dependencies.\n // `moduleProvider` is a function\n constructor(loader\x2C url\x2C moduleProvider\x2C isMain\x2C inspectBrk) {\n this.loader = loader;\n this.isMain = isMain;\n this.inspectBrk = inspectBrk;\n\n this.module = undefined;\n // Expose the promise to the ModuleWrap directly for linking below.\n // `this.module` is also filled in below.\n this.modulePromise = ReflectApply(moduleProvider\x2C loader\x2C [url\x2C isMain]);\n\n // Wait for the ModuleWrap instance being linked with all dependencies.\n const link = async () => {\n this.module = await this.modulePromise;\n assert(this.module instanceof ModuleWrap);\n\n // Explicitly keeping track of dependency jobs is needed in order\n // to flatten out the dependency graph below in `_instantiate()`\x2C\n // so that circular dependencies can't cause a deadlock by two of\n // these `link` callbacks depending on each other.\n const dependencyJobs = [];\n const promises = this.module.link(async (specifier) => {\n const jobPromise = this.loader.getModuleJob(specifier\x2C url);\n ArrayPrototypePush(dependencyJobs\x2C jobPromise);\n const job = await jobPromise;\n return job.modulePromise;\n });\n\n if (promises !== undefined)\n await PromiseAll(new SafeArrayIterator(promises));\n\n return PromiseAll(new SafeArrayIterator(dependencyJobs));\n };\n // Promise for the list of all dependencyJobs.\n this.linked = link();\n // This promise is awaited later anyway\x2C so silence\n // 'unhandled rejection' warnings.\n PromisePrototypeCatch(this.linked\x2C noop);\n\n // instantiated == deep dependency jobs wrappers are instantiated\x2C\n // and module wrapper is instantiated.\n this.instantiated = undefined;\n }\n\n instantiate() {\n if (this.instantiated === undefined) {\n this.instantiated = this._instantiate();\n }\n return this.instantiated;\n }\n\n async _instantiate() {\n const jobsInGraph = new SafeSet();\n const addJobsToDependencyGraph = async (moduleJob) => {\n if (jobsInGraph.has(moduleJob)) {\n return;\n }\n jobsInGraph.add(moduleJob);\n const dependencyJobs = await moduleJob.linked;\n return PromiseAll(new SafeArrayIterator(\n ArrayPrototypeMap(dependencyJobs\x2C addJobsToDependencyGraph)));\n };\n await addJobsToDependencyGraph(this);\n\n try {\n if (!hasPausedEntry && this.inspectBrk) {\n hasPausedEntry = true;\n const initWrapper = internalBinding('inspector').callAndPauseOnStart;\n initWrapper(this.module.instantiate\x2C this.module);\n } else {\n this.module.instantiate();\n }\n } catch (e) {\n decorateErrorStack(e);\n // TODO(@bcoe): Add source map support to exception that occurs as result\n // of missing named export. This is currently not possible because\n // stack trace originates in module_job\x2C not the file itself. A hidden\n // symbol with filename could be set in node_errors.cc to facilitate this.\n if (!getSourceMapsEnabled() &&\n StringPrototypeIncludes(e.message\x2C\n ' does not provide an export named')) {\n const splitStack = StringPrototypeSplit(e.stack\x2C '\\n');\n const parentFileUrl = StringPrototypeReplace(\n splitStack[0]\x2C\n /:\\d+$/\x2C\n ''\n );\n const { 1: childSpecifier\x2C 2: name } = StringPrototypeMatch(\n e.message\x2C\n /module '(.*)' does not provide an export named '(.+)'/);\n const { url: childFileURL } = await this.loader.resolve(\n childSpecifier\x2C parentFileUrl\x2C\n );\n const { format } = await this.loader.load(childFileURL);\n\n if (format === 'commonjs') {\n const importStatement = splitStack[1];\n // TODO(@ctavan): The original error stack only provides the single\n // line which causes the error. For multi-line import statements we\n // cannot generate an equivalent object destructuring assignment by\n // just parsing the error stack.\n const oneLineNamedImports = StringPrototypeMatch(importStatement\x2C /{.*}/);\n const destructuringAssignment = oneLineNamedImports &&\n StringPrototypeReplace(oneLineNamedImports\x2C /\\s+as\\s+/g\x2C ': ');\n e.message = `Named export '${name}' not found. The requested module` +\n ` '${childSpecifier}' is a CommonJS module\x2C which may not support` +\n ' all module.exports as named exports.\\nCommonJS modules can ' +\n 'always be imported via the default export\x2C for example using:' +\n `\\n\\nimport pkg from '${childSpecifier}';\\n${\n destructuringAssignment ?\n `const ${destructuringAssignment} = pkg;\\n` : ''}`;\n const newStack = StringPrototypeSplit(e.stack\x2C '\\n');\n newStack[3] = `SyntaxError: ${e.message}`;\n e.stack = ArrayPrototypeJoin(newStack\x2C '\\n');\n }\n }\n throw e;\n }\n\n for (const dependencyJob of jobsInGraph) {\n // Calling `this.module.instantiate()` instantiates not only the\n // ModuleWrap in this module\x2C but all modules in the graph.\n dependencyJob.instantiated = resolvedPromise;\n }\n }\n\n async run() {\n await this.instantiate();\n const timeout = -1;\n const breakOnSigint = false;\n try {\n await this.module.evaluate(timeout\x2C breakOnSigint);\n } catch (e) {\n if (e?.name === 'ReferenceError' &&\n isCommonJSGlobalLikeNotDefinedError(e.message)) {\n e.message += ' in ES module scope';\n\n if (StringPrototypeStartsWith(e.message\x2C 'require ')) {\n e.message += '\x2C you can use import instead';\n }\n\n const packageConfig =\n StringPrototypeStartsWith(this.module.url\x2C 'file://') &&\n RegExpPrototypeTest(/\\.js(\\?[^#]*)?(#.*)?$/\x2C this.module.url) &&\n require('internal/modules/esm/resolve')\n .getPackageScopeConfig(this.module.url);\n if (packageConfig.type === 'module') {\n e.message +=\n '\\nThis file is being treated as an ES module because it has a ' +\n `'.js' file extension and '${packageConfig.pjsonPath}' contains ` +\n '"type": "module". To treat it as a CommonJS script\x2C rename it ' +\n 'to use the \\'.cjs\\' file extension.';\n }\n }\n throw e;\n }\n return { module: this.module };\n }\n}\nObjectSetPrototypeOf(ModuleJob.prototype\x2C null);\nmodule.exports = ModuleJob;\n code-source-info,0x337ca0b2de26,104,0,7692,C0O0C4O7692,, code-creation,Function,10,17619,0x337ca0b2e316,334, node:internal/modules/esm/module_job:1:1,0x337ca0b2dda0,~ code-source-info,0x337ca0b2e316,104,0,7692,C0O0C85O25C91O47C97O68C103O90C109O112C114O133C119O157C125O171C130O189C136O214C142O230C148O253C154O274C160O285C166O312C172O336C178O362C184O386C190O454C196O454C201O439C207O518C213O518C218O495C224O580C230O580C235O554C241O644C247O644C251O644C253O696C256O696C258O728C260O728C262O769C263O769C265O799C269O799C271O917C275O917C314O7646C321O7615C326O7664C328O7679C333O7691,, StoreIC,0x337ca0b18cf1,17690,105,5,X,X,0x000000000000,get,, code-creation,Eval,10,18110,0x337ca0b3104e,5, node:internal/modules/esm/resolve:1:1,0x337ca0b30958,~ script-source,105,node:internal/modules/esm/resolve,'use strict';\n\nconst {\n ArrayIsArray\x2C\n ArrayPrototypeJoin\x2C\n ArrayPrototypeShift\x2C\n JSONParse\x2C\n JSONStringify\x2C\n ObjectFreeze\x2C\n ObjectGetOwnPropertyNames\x2C\n ObjectPrototypeHasOwnProperty\x2C\n RegExp\x2C\n RegExpPrototypeSymbolReplace\x2C\n RegExpPrototypeTest\x2C\n SafeMap\x2C\n SafeSet\x2C\n String\x2C\n StringPrototypeEndsWith\x2C\n StringPrototypeIncludes\x2C\n StringPrototypeIndexOf\x2C\n StringPrototypeLastIndexOf\x2C\n StringPrototypeSlice\x2C\n StringPrototypeSplit\x2C\n StringPrototypeStartsWith\x2C\n} = primordials;\nconst internalFS = require('internal/fs/utils');\nconst { NativeModule } = require('internal/bootstrap/loaders');\nconst {\n realpathSync\x2C\n statSync\x2C\n Stats\x2C\n} = require('fs');\nconst { getOptionValue } = require('internal/options');\n// Do not eagerly grab .manifest\x2C it may be in TDZ\nconst policy = getOptionValue('--experimental-policy') ?\n require('internal/process/policy') :\n null;\nconst { sep\x2C relative\x2C resolve } = require('path');\nconst preserveSymlinks = getOptionValue('--preserve-symlinks');\nconst preserveSymlinksMain = getOptionValue('--preserve-symlinks-main');\nconst typeFlag = getOptionValue('--input-type');\nconst pendingDeprecation = getOptionValue('--pending-deprecation');\nconst { URL\x2C pathToFileURL\x2C fileURLToPath } = require('internal/url');\nconst {\n ERR_INPUT_TYPE_NOT_ALLOWED\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_INVALID_MODULE_SPECIFIER\x2C\n ERR_INVALID_PACKAGE_CONFIG\x2C\n ERR_INVALID_PACKAGE_TARGET\x2C\n ERR_MANIFEST_DEPENDENCY_MISSING\x2C\n ERR_MODULE_NOT_FOUND\x2C\n ERR_PACKAGE_IMPORT_NOT_DEFINED\x2C\n ERR_PACKAGE_PATH_NOT_EXPORTED\x2C\n ERR_UNSUPPORTED_DIR_IMPORT\x2C\n ERR_UNSUPPORTED_ESM_URL_SCHEME\x2C\n} = require('internal/errors').codes;\nconst { Module: CJSModule } = require('internal/modules/cjs/loader');\n\nconst packageJsonReader = require('internal/modules/package_json_reader');\nconst userConditions = getOptionValue('--conditions');\nconst noAddons = getOptionValue('--no-addons');\nconst addonConditions = noAddons ? [] : ['node-addons'];\n\nconst DEFAULT_CONDITIONS = ObjectFreeze([\n 'node'\x2C\n 'import'\x2C\n ...addonConditions\x2C\n ...userConditions\x2C\n]);\n\nconst DEFAULT_CONDITIONS_SET = new SafeSet(DEFAULT_CONDITIONS);\n\n/**\n * @typedef {string | string[] | Record} Exports\n * @typedef {'module' | 'commonjs'} PackageType\n * @typedef {{\n * exports?: ExportConfig;\n * name?: string;\n * main?: string;\n * type?: PackageType;\n * }} PackageConfig\n */\n\nconst emittedPackageWarnings = new SafeSet();\n\n/**\n * @param {string} match\n * @param {URL} pjsonUrl\n * @param {boolean} isExports\n * @param {string | URL | undefined} base\n * @returns {void}\n */\nfunction emitFolderMapDeprecation(match\x2C pjsonUrl\x2C isExports\x2C base) {\n const pjsonPath = fileURLToPath(pjsonUrl);\n\n if (emittedPackageWarnings.has(pjsonPath + '|' + match))\n return;\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated folder mapping "${match}" in the ${isExports ?\n '"exports"' : '"imports"'} field module resolution of the package at ${\n pjsonPath}${base ? ` imported from ${fileURLToPath(base)}` : ''}.\\n` +\n `Update this package.json to use a subpath pattern like "${match}*".`\x2C\n 'DeprecationWarning'\x2C\n 'DEP0148'\n );\n}\n\nfunction emitTrailingSlashPatternDeprecation(match\x2C pjsonUrl\x2C isExports\x2C base) {\n if (!pendingDeprecation) return;\n const pjsonPath = fileURLToPath(pjsonUrl);\n if (emittedPackageWarnings.has(pjsonPath + '|' + match))\n return;\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated trailing slash pattern mapping "${match}" in the ${\n isExports ? '"exports"' : '"imports"'} field module resolution of the ` +\n `package at ${pjsonPath}${base ? ` imported from ${fileURLToPath(base)}` :\n ''}. Mapping specifiers ending in "/" is no longer supported.`\x2C\n 'DeprecationWarning'\x2C\n 'DEP0155'\n );\n}\n\n/**\n * @param {URL} url\n * @param {URL} packageJSONUrl\n * @param {string | URL | undefined} base\n * @param {string} main\n * @returns\n */\nfunction emitLegacyIndexDeprecation(url\x2C packageJSONUrl\x2C base\x2C main) {\n const format = defaultGetFormat(url);\n if (format !== 'module')\n return;\n const path = fileURLToPath(url);\n const pkgPath = fileURLToPath(new URL('.'\x2C packageJSONUrl));\n const basePath = fileURLToPath(base);\n if (main)\n process.emitWarning(\n `Package ${pkgPath} has a "main" field set to ${JSONStringify(main)}\x2C ` +\n `excluding the full filename and extension to the resolved file at "${\n StringPrototypeSlice(path\x2C pkgPath.length)}"\x2C imported from ${\n basePath}.\\n Automatic extension resolution of the "main" field is ` +\n 'deprecated for ES modules.'\x2C\n 'DeprecationWarning'\x2C\n 'DEP0151'\n );\n else\n process.emitWarning(\n `No "main" or "exports" field defined in the package.json for ${pkgPath\n } resolving the main entry point "${\n StringPrototypeSlice(path\x2C pkgPath.length)}"\x2C imported from ${basePath\n }.\\nDefault "index" lookups for the main are deprecated for ES modules.`\x2C\n 'DeprecationWarning'\x2C\n 'DEP0151'\n );\n}\n\n/**\n * @param {string[]} [conditions]\n * @returns {Set}\n */\nfunction getConditionsSet(conditions) {\n if (conditions !== undefined && conditions !== DEFAULT_CONDITIONS) {\n if (!ArrayIsArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE('conditions'\x2C conditions\x2C\n 'expected an array');\n }\n return new SafeSet(conditions);\n }\n return DEFAULT_CONDITIONS_SET;\n}\n\nconst realpathCache = new SafeMap();\nconst packageJSONCache = new SafeMap(); /* string -> PackageConfig */\n\n/**\n * @param {string | URL} path\n * @returns {import('fs').Stats}\n */\nconst tryStatSync =\n (path) => statSync(path\x2C { throwIfNoEntry: false }) ?? new Stats();\n\n/**\n * @param {string} path\n * @param {string} specifier\n * @param {string | URL | undefined} base\n * @returns {PackageConfig}\n */\nfunction getPackageConfig(path\x2C specifier\x2C base) {\n const existing = packageJSONCache.get(path);\n if (existing !== undefined) {\n return existing;\n }\n const source = packageJsonReader.read(path).string;\n if (source === undefined) {\n const packageConfig = {\n pjsonPath: path\x2C\n exists: false\x2C\n main: undefined\x2C\n name: undefined\x2C\n type: 'none'\x2C\n exports: undefined\x2C\n imports: undefined\x2C\n };\n packageJSONCache.set(path\x2C packageConfig);\n return packageConfig;\n }\n\n let packageJSON;\n try {\n packageJSON = JSONParse(source);\n } catch (error) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n path\x2C\n (base ? `"${specifier}" from ` : '') + fileURLToPath(base || specifier)\x2C\n error.message\n );\n }\n\n let { imports\x2C main\x2C name\x2C type } = packageJSON;\n const { exports } = packageJSON;\n if (typeof imports !== 'object' || imports === null) imports = undefined;\n if (typeof main !== 'string') main = undefined;\n if (typeof name !== 'string') name = undefined;\n // Ignore unknown types for forwards compatibility\n if (type !== 'module' && type !== 'commonjs') type = 'none';\n\n const packageConfig = {\n pjsonPath: path\x2C\n exists: true\x2C\n main\x2C\n name\x2C\n type\x2C\n exports\x2C\n imports\x2C\n };\n packageJSONCache.set(path\x2C packageConfig);\n return packageConfig;\n}\n\n/**\n * @param {URL | string} resolved\n * @returns {PackageConfig}\n */\nfunction getPackageScopeConfig(resolved) {\n let packageJSONUrl = new URL('./package.json'\x2C resolved);\n while (true) {\n const packageJSONPath = packageJSONUrl.pathname;\n if (StringPrototypeEndsWith(packageJSONPath\x2C 'node_modules/package.json'))\n break;\n const packageConfig = getPackageConfig(fileURLToPath(packageJSONUrl)\x2C\n resolved);\n if (packageConfig.exists) return packageConfig;\n\n const lastPackageJSONUrl = packageJSONUrl;\n packageJSONUrl = new URL('../package.json'\x2C packageJSONUrl);\n\n // Terminates at root where ../package.json equals ../../package.json\n // (can't just check "/package.json" for Windows support).\n if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) break;\n }\n const packageJSONPath = fileURLToPath(packageJSONUrl);\n const packageConfig = {\n pjsonPath: packageJSONPath\x2C\n exists: false\x2C\n main: undefined\x2C\n name: undefined\x2C\n type: 'none'\x2C\n exports: undefined\x2C\n imports: undefined\x2C\n };\n packageJSONCache.set(packageJSONPath\x2C packageConfig);\n return packageConfig;\n}\n\n/**\n * @param {string | URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n return statSync(url\x2C { throwIfNoEntry: false })?.isFile() ?? false;\n}\n\n/**\n * Legacy CommonJS main resolution:\n * 1. let M = pkg_url + (json main field)\n * 2. TRY(M\x2C M.js\x2C M.json\x2C M.node)\n * 3. TRY(M/index.js\x2C M/index.json\x2C M/index.node)\n * 4. TRY(pkg_url/index.js\x2C pkg_url/index.json\x2C pkg_url/index.node)\n * 5. NOT_FOUND\n * @param {URL} packageJSONUrl\n * @param {PackageConfig} packageConfig\n * @param {string | URL | undefined} base\n * @returns {URL}\n */\nfunction legacyMainResolve(packageJSONUrl\x2C packageConfig\x2C base) {\n let guess;\n if (packageConfig.main !== undefined) {\n // Note: fs check redundances will be handled by Descriptor cache here.\n if (fileExists(guess = new URL(`./${packageConfig.main}`\x2C\n packageJSONUrl))) {\n return guess;\n } else if (fileExists(guess = new URL(`./${packageConfig.main}.js`\x2C\n packageJSONUrl)));\n else if (fileExists(guess = new URL(`./${packageConfig.main}.json`\x2C\n packageJSONUrl)));\n else if (fileExists(guess = new URL(`./${packageConfig.main}.node`\x2C\n packageJSONUrl)));\n else if (fileExists(guess = new URL(`./${packageConfig.main}/index.js`\x2C\n packageJSONUrl)));\n else if (fileExists(guess = new URL(`./${packageConfig.main}/index.json`\x2C\n packageJSONUrl)));\n else if (fileExists(guess = new URL(`./${packageConfig.main}/index.node`\x2C\n packageJSONUrl)));\n else guess = undefined;\n if (guess) {\n emitLegacyIndexDeprecation(guess\x2C packageJSONUrl\x2C base\x2C\n packageConfig.main);\n return guess;\n }\n // Fallthrough.\n }\n if (fileExists(guess = new URL('./index.js'\x2C packageJSONUrl)));\n // So fs.\n else if (fileExists(guess = new URL('./index.json'\x2C packageJSONUrl)));\n else if (fileExists(guess = new URL('./index.node'\x2C packageJSONUrl)));\n else guess = undefined;\n if (guess) {\n emitLegacyIndexDeprecation(guess\x2C packageJSONUrl\x2C base\x2C packageConfig.main);\n return guess;\n }\n // Not found.\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath(new URL('.'\x2C packageJSONUrl))\x2C fileURLToPath(base));\n}\n\n/**\n * @param {URL} search\n * @returns {URL | undefined}\n */\nfunction resolveExtensionsWithTryExactName(search) {\n if (fileExists(search)) return search;\n return resolveExtensions(search);\n}\n\nconst extensions = ['.js'\x2C '.json'\x2C '.node'\x2C '.mjs'];\n\n/**\n * @param {URL} search\n * @returns {URL | undefined}\n */\nfunction resolveExtensions(search) {\n for (let i = 0; i < extensions.length; i++) {\n const extension = extensions[i];\n const guess = new URL(`${search.pathname}${extension}`\x2C search);\n if (fileExists(guess)) return guess;\n }\n return undefined;\n}\n\n/**\n * @param {URL} search\n * @returns {URL | undefined}\n */\nfunction resolveDirectoryEntry(search) {\n const dirPath = fileURLToPath(search);\n const pkgJsonPath = resolve(dirPath\x2C 'package.json');\n if (fileExists(pkgJsonPath)) {\n const pkgJson = packageJsonReader.read(pkgJsonPath);\n if (pkgJson.containsKeys) {\n const { main } = JSONParse(pkgJson.string);\n if (main != null) {\n const mainUrl = pathToFileURL(resolve(dirPath\x2C main));\n return resolveExtensionsWithTryExactName(mainUrl);\n }\n }\n }\n return resolveExtensions(new URL('index'\x2C search));\n}\n\nconst encodedSepRegEx = /%2F|%5C/i;\n/**\n * @param {URL} resolved\n * @param {string | URL | undefined} base\n * @returns {URL | undefined}\n */\nfunction finalizeResolution(resolved\x2C base) {\n if (RegExpPrototypeTest(encodedSepRegEx\x2C resolved.pathname))\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname\x2C 'must not include encoded "/" or "\\\\" characters'\x2C\n fileURLToPath(base));\n\n const path = fileURLToPath(resolved);\n if (getOptionValue('--experimental-specifier-resolution') === 'node') {\n let file = resolveExtensionsWithTryExactName(resolved);\n if (file !== undefined) return file;\n if (!StringPrototypeEndsWith(path\x2C '/')) {\n file = resolveDirectoryEntry(new URL(`${resolved}/`));\n if (file !== undefined) return file;\n } else {\n return resolveDirectoryEntry(resolved) || resolved;\n }\n throw new ERR_MODULE_NOT_FOUND(\n resolved.pathname\x2C fileURLToPath(base)\x2C 'module');\n }\n\n const stats = tryStatSync(StringPrototypeEndsWith(path\x2C '/') ?\n StringPrototypeSlice(path\x2C -1) : path);\n if (stats.isDirectory()) {\n const err = new ERR_UNSUPPORTED_DIR_IMPORT(path\x2C fileURLToPath(base));\n err.url = String(resolved);\n throw err;\n } else if (!stats.isFile()) {\n throw new ERR_MODULE_NOT_FOUND(\n path || resolved.pathname\x2C base && fileURLToPath(base)\x2C 'module');\n }\n\n return resolved;\n}\n\n/**\n * @param {string} specifier\n * @param {URL} packageJSONUrl\n * @param {string | URL | undefined} base\n */\nfunction throwImportNotDefined(specifier\x2C packageJSONUrl\x2C base) {\n throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier\x2C packageJSONUrl && fileURLToPath(new URL('.'\x2C packageJSONUrl))\x2C\n fileURLToPath(base));\n}\n\n/**\n * @param {string} specifier\n * @param {URL} packageJSONUrl\n * @param {string | URL | undefined} base\n */\nfunction throwExportsNotFound(subpath\x2C packageJSONUrl\x2C base) {\n throw new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath(new URL('.'\x2C packageJSONUrl))\x2C subpath\x2C\n base && fileURLToPath(base));\n}\n\n/**\n *\n * @param {string | URL} subpath\n * @param {URL} packageJSONUrl\n * @param {boolean} internal\n * @param {string | URL | undefined} base\n */\nfunction throwInvalidSubpath(subpath\x2C packageJSONUrl\x2C internal\x2C base) {\n const reason = `request is not a valid subpath for the "${internal ?\n 'imports' : 'exports'}" resolution of ${fileURLToPath(packageJSONUrl)}`;\n throw new ERR_INVALID_MODULE_SPECIFIER(subpath\x2C reason\x2C\n base && fileURLToPath(base));\n}\n\nfunction throwInvalidPackageTarget(\n subpath\x2C target\x2C packageJSONUrl\x2C internal\x2C base) {\n if (typeof target === 'object' && target !== null) {\n target = JSONStringify(target\x2C null\x2C '');\n } else {\n target = `${target}`;\n }\n throw new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath(new URL('.'\x2C packageJSONUrl))\x2C subpath\x2C target\x2C\n internal\x2C base && fileURLToPath(base));\n}\n\nconst invalidSegmentRegEx = /(^|\\\\|\\/)(\\.\\.?|node_modules)(\\\\|\\/|$)/;\nconst patternRegEx = /\\*/g;\n\nfunction resolvePackageTargetString(\n target\x2C subpath\x2C match\x2C packageJSONUrl\x2C base\x2C pattern\x2C internal\x2C conditions) {\n if (subpath !== '' && !pattern && target[target.length - 1] !== '/')\n throwInvalidPackageTarget(match\x2C target\x2C packageJSONUrl\x2C internal\x2C base);\n\n if (!StringPrototypeStartsWith(target\x2C './')) {\n if (internal && !StringPrototypeStartsWith(target\x2C '../') &&\n !StringPrototypeStartsWith(target\x2C '/')) {\n let isURL = false;\n try {\n new URL(target);\n isURL = true;\n } catch {}\n if (!isURL) {\n const exportTarget = pattern ?\n RegExpPrototypeSymbolReplace(patternRegEx\x2C target\x2C () => subpath) :\n target + subpath;\n return packageResolve(exportTarget\x2C packageJSONUrl\x2C conditions);\n }\n }\n throwInvalidPackageTarget(match\x2C target\x2C packageJSONUrl\x2C internal\x2C base);\n }\n\n if (RegExpPrototypeTest(invalidSegmentRegEx\x2C StringPrototypeSlice(target\x2C 2)))\n throwInvalidPackageTarget(match\x2C target\x2C packageJSONUrl\x2C internal\x2C base);\n\n const resolved = new URL(target\x2C packageJSONUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL('.'\x2C packageJSONUrl).pathname;\n\n if (!StringPrototypeStartsWith(resolvedPath\x2C packagePath))\n throwInvalidPackageTarget(match\x2C target\x2C packageJSONUrl\x2C internal\x2C base);\n\n if (subpath === '') return resolved;\n\n if (RegExpPrototypeTest(invalidSegmentRegEx\x2C subpath))\n throwInvalidSubpath(match + subpath\x2C packageJSONUrl\x2C internal\x2C base);\n\n if (pattern)\n return new URL(RegExpPrototypeSymbolReplace(patternRegEx\x2C resolved.href\x2C\n () => subpath));\n return new URL(subpath\x2C resolved);\n}\n\n/**\n * @param {string} key\n * @returns {boolean}\n */\nfunction isArrayIndex(key) {\n const keyNum = +key;\n if (`${keyNum}` !== key) return false;\n return keyNum >= 0 && keyNum < 0xFFFF_FFFF;\n}\n\nfunction resolvePackageTarget(packageJSONUrl\x2C target\x2C subpath\x2C packageSubpath\x2C\n base\x2C pattern\x2C internal\x2C conditions) {\n if (typeof target === 'string') {\n return resolvePackageTargetString(\n target\x2C subpath\x2C packageSubpath\x2C packageJSONUrl\x2C base\x2C pattern\x2C internal\x2C\n conditions);\n } else if (ArrayIsArray(target)) {\n if (target.length === 0)\n return null;\n\n let lastException;\n for (let i = 0; i < target.length; i++) {\n const targetItem = target[i];\n let resolved;\n try {\n resolved = resolvePackageTarget(\n packageJSONUrl\x2C targetItem\x2C subpath\x2C packageSubpath\x2C base\x2C pattern\x2C\n internal\x2C conditions);\n } catch (e) {\n lastException = e;\n if (e.code === 'ERR_INVALID_PACKAGE_TARGET')\n continue;\n throw e;\n }\n if (resolved === undefined)\n continue;\n if (resolved === null) {\n lastException = null;\n continue;\n }\n return resolved;\n }\n if (lastException === undefined || lastException === null)\n return lastException;\n throw lastException;\n } else if (typeof target === 'object' && target !== null) {\n const keys = ObjectGetOwnPropertyNames(target);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJSONUrl)\x2C base\x2C\n '"exports" cannot contain numeric property keys.');\n }\n }\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'default' || conditions.has(key)) {\n const conditionalTarget = target[key];\n const resolved = resolvePackageTarget(\n packageJSONUrl\x2C conditionalTarget\x2C subpath\x2C packageSubpath\x2C base\x2C\n pattern\x2C internal\x2C conditions);\n if (resolved === undefined)\n continue;\n return resolved;\n }\n }\n return undefined;\n } else if (target === null) {\n return null;\n }\n throwInvalidPackageTarget(packageSubpath\x2C target\x2C packageJSONUrl\x2C internal\x2C\n base);\n}\n\n/**\n *\n * @param {Exports} exports\n * @param {URL} packageJSONUrl\n * @param {string | URL | undefined} base\n * @returns\n */\nfunction isConditionalExportsMainSugar(exports\x2C packageJSONUrl\x2C base) {\n if (typeof exports === 'string' || ArrayIsArray(exports)) return true;\n if (typeof exports !== 'object' || exports === null) return false;\n\n const keys = ObjectGetOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n for (let j = 0; j < keys.length; j++) {\n const key = keys[j];\n const curIsConditionalSugar = key === '' || key[0] !== '.';\n if (i++ === 0) {\n isConditionalSugar = curIsConditionalSugar;\n } else if (isConditionalSugar !== curIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJSONUrl)\x2C base\x2C\n '"exports" cannot contain some keys starting with \\'.\\' and some not.' +\n ' The exports object must either be an object of package subpath keys' +\n ' or an object of main entry condition name keys only.');\n }\n }\n return isConditionalSugar;\n}\n\n/**\n * @param {URL} packageJSONUrl\n * @param {string} packageSubpath\n * @param {PackageConfig} packageConfig\n * @param {string | URL | undefined} base\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction packageExportsResolve(\n packageJSONUrl\x2C packageSubpath\x2C packageConfig\x2C base\x2C conditions) {\n let exports = packageConfig.exports;\n if (isConditionalExportsMainSugar(exports\x2C packageJSONUrl\x2C base))\n exports = { '.': exports };\n\n if (ObjectPrototypeHasOwnProperty(exports\x2C packageSubpath) &&\n !StringPrototypeIncludes(packageSubpath\x2C '*') &&\n !StringPrototypeEndsWith(packageSubpath\x2C '/')) {\n const target = exports[packageSubpath];\n const resolved = resolvePackageTarget(\n packageJSONUrl\x2C target\x2C ''\x2C packageSubpath\x2C base\x2C false\x2C false\x2C conditions\n );\n if (resolved === null || resolved === undefined)\n throwExportsNotFound(packageSubpath\x2C packageJSONUrl\x2C base);\n return { resolved\x2C exact: true };\n }\n\n let bestMatch = '';\n let bestMatchSubpath;\n const keys = ObjectGetOwnPropertyNames(exports);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const patternIndex = StringPrototypeIndexOf(key\x2C '*');\n if (patternIndex !== -1 &&\n StringPrototypeStartsWith(packageSubpath\x2C\n StringPrototypeSlice(key\x2C 0\x2C patternIndex))) {\n if (StringPrototypeEndsWith(packageSubpath\x2C '/'))\n emitTrailingSlashPatternDeprecation(packageSubpath\x2C packageJSONUrl\x2C\n true\x2C base);\n const patternTrailer = StringPrototypeSlice(key\x2C patternIndex + 1);\n if (packageSubpath.length >= key.length &&\n StringPrototypeEndsWith(packageSubpath\x2C patternTrailer) &&\n patternKeyCompare(bestMatch\x2C key) === 1 &&\n StringPrototypeLastIndexOf(key\x2C '*') === patternIndex) {\n bestMatch = key;\n bestMatchSubpath = StringPrototypeSlice(\n packageSubpath\x2C patternIndex\x2C\n packageSubpath.length - patternTrailer.length);\n }\n } else if (key[key.length - 1] === '/' &&\n StringPrototypeStartsWith(packageSubpath\x2C key) &&\n patternKeyCompare(bestMatch\x2C key) === 1) {\n bestMatch = key;\n bestMatchSubpath = StringPrototypeSlice(packageSubpath\x2C key.length);\n }\n }\n\n if (bestMatch) {\n const target = exports[bestMatch];\n const pattern = StringPrototypeIncludes(bestMatch\x2C '*');\n const resolved = resolvePackageTarget(packageJSONUrl\x2C target\x2C\n bestMatchSubpath\x2C bestMatch\x2C base\x2C\n pattern\x2C false\x2C conditions);\n if (resolved === null || resolved === undefined)\n throwExportsNotFound(packageSubpath\x2C packageJSONUrl\x2C base);\n if (!pattern)\n emitFolderMapDeprecation(bestMatch\x2C packageJSONUrl\x2C true\x2C base);\n return { resolved\x2C exact: pattern };\n }\n\n throwExportsNotFound(packageSubpath\x2C packageJSONUrl\x2C base);\n}\n\nfunction patternKeyCompare(a\x2C b) {\n const aPatternIndex = StringPrototypeIndexOf(a\x2C '*');\n const bPatternIndex = StringPrototypeIndexOf(b\x2C '*');\n const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n if (baseLenA > baseLenB) return -1;\n if (baseLenB > baseLenA) return 1;\n if (aPatternIndex === -1) return 1;\n if (bPatternIndex === -1) return -1;\n if (a.length > b.length) return -1;\n if (b.length > a.length) return 1;\n return 0;\n}\n\n/**\n * @param {string} name\n * @param {string | URL | undefined} base\n * @param {Set} conditions\n * @returns\n */\nfunction packageImportsResolve(name\x2C base\x2C conditions) {\n if (name === '#' || StringPrototypeStartsWith(name\x2C '#/')) {\n const reason = 'is not a valid internal imports specifier name';\n throw new ERR_INVALID_MODULE_SPECIFIER(name\x2C reason\x2C fileURLToPath(base));\n }\n let packageJSONUrl;\n const packageConfig = getPackageScopeConfig(base);\n if (packageConfig.exists) {\n packageJSONUrl = pathToFileURL(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (ObjectPrototypeHasOwnProperty(imports\x2C name) &&\n !StringPrototypeIncludes(name\x2C '*') &&\n !StringPrototypeEndsWith(name\x2C '/')) {\n const resolved = resolvePackageTarget(\n packageJSONUrl\x2C imports[name]\x2C ''\x2C name\x2C base\x2C false\x2C true\x2C conditions\n );\n if (resolved !== null)\n return { resolved\x2C exact: true };\n } else {\n let bestMatch = '';\n let bestMatchSubpath;\n const keys = ObjectGetOwnPropertyNames(imports);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const patternIndex = StringPrototypeIndexOf(key\x2C '*');\n if (patternIndex !== -1 &&\n StringPrototypeStartsWith(name\x2C\n StringPrototypeSlice(key\x2C 0\x2C\n patternIndex))) {\n const patternTrailer = StringPrototypeSlice(key\x2C patternIndex + 1);\n if (name.length >= key.length &&\n StringPrototypeEndsWith(name\x2C patternTrailer) &&\n patternKeyCompare(bestMatch\x2C key) === 1 &&\n StringPrototypeLastIndexOf(key\x2C '*') === patternIndex) {\n bestMatch = key;\n bestMatchSubpath = StringPrototypeSlice(\n name\x2C patternIndex\x2C name.length - patternTrailer.length);\n }\n } else if (key[key.length - 1] === '/' &&\n StringPrototypeStartsWith(name\x2C key) &&\n patternKeyCompare(bestMatch\x2C key) === 1) {\n bestMatch = key;\n bestMatchSubpath = StringPrototypeSlice(name\x2C key.length);\n }\n }\n\n if (bestMatch) {\n const target = imports[bestMatch];\n const pattern = StringPrototypeIncludes(bestMatch\x2C '*');\n const resolved = resolvePackageTarget(packageJSONUrl\x2C target\x2C\n bestMatchSubpath\x2C bestMatch\x2C\n base\x2C pattern\x2C true\x2C\n conditions);\n if (resolved !== null) {\n if (!pattern)\n emitFolderMapDeprecation(bestMatch\x2C packageJSONUrl\x2C false\x2C base);\n return { resolved\x2C exact: pattern };\n }\n }\n }\n }\n }\n throwImportNotDefined(name\x2C packageJSONUrl\x2C base);\n}\n\n/**\n * @param {URL} url\n * @returns {PackageType}\n */\nfunction getPackageType(url) {\n const packageConfig = getPackageScopeConfig(url);\n return packageConfig.type;\n}\n\n/**\n * @param {string} specifier\n * @param {string | URL | undefined} base\n * @returns {{ packageName: string\x2C packageSubpath: string\x2C isScoped: boolean }}\n */\nfunction parsePackageName(specifier\x2C base) {\n let separatorIndex = StringPrototypeIndexOf(specifier\x2C '/');\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === '@') {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = StringPrototypeIndexOf(\n specifier\x2C '/'\x2C separatorIndex + 1);\n }\n }\n\n const packageName = separatorIndex === -1 ?\n specifier : StringPrototypeSlice(specifier\x2C 0\x2C separatorIndex);\n\n // Package name cannot have leading . and cannot have percent-encoding or\n // separators.\n for (let i = 0; i < packageName.length; i++) {\n if (packageName[i] === '%' || packageName[i] === '\\\\') {\n validPackageName = false;\n break;\n }\n }\n\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier\x2C 'is not a valid package name'\x2C fileURLToPath(base));\n }\n\n const packageSubpath = '.' + (separatorIndex === -1 ? '' :\n StringPrototypeSlice(specifier\x2C separatorIndex));\n\n return { packageName\x2C packageSubpath\x2C isScoped };\n}\n\n/**\n * @param {string} specifier\n * @param {string | URL | undefined} base\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction packageResolve(specifier\x2C base\x2C conditions) {\n const { packageName\x2C packageSubpath\x2C isScoped } =\n parsePackageName(specifier\x2C base);\n\n // ResolveSelf\n const packageConfig = getPackageScopeConfig(base);\n if (packageConfig.exists) {\n const packageJSONUrl = pathToFileURL(packageConfig.pjsonPath);\n if (packageConfig.name === packageName &&\n packageConfig.exports !== undefined && packageConfig.exports !== null) {\n return packageExportsResolve(\n packageJSONUrl\x2C packageSubpath\x2C packageConfig\x2C base\x2C conditions\n ).resolved;\n }\n }\n\n let packageJSONUrl =\n new URL('./node_modules/' + packageName + '/package.json'\x2C base);\n let packageJSONPath = fileURLToPath(packageJSONUrl);\n let lastPath;\n do {\n const stat = tryStatSync(StringPrototypeSlice(packageJSONPath\x2C 0\x2C\n packageJSONPath.length - 13));\n if (!stat.isDirectory()) {\n lastPath = packageJSONPath;\n packageJSONUrl = new URL((isScoped ?\n '../../../../node_modules/' : '../../../node_modules/') +\n packageName + '/package.json'\x2C packageJSONUrl);\n packageJSONPath = fileURLToPath(packageJSONUrl);\n continue;\n }\n\n // Package match.\n const packageConfig = getPackageConfig(packageJSONPath\x2C specifier\x2C base);\n if (packageConfig.exports !== undefined && packageConfig.exports !== null)\n return packageExportsResolve(\n packageJSONUrl\x2C packageSubpath\x2C packageConfig\x2C base\x2C conditions\n ).resolved;\n if (packageSubpath === '.')\n return legacyMainResolve(packageJSONUrl\x2C packageConfig\x2C base);\n return new URL(packageSubpath\x2C packageJSONUrl);\n // Cross-platform root check.\n } while (packageJSONPath.length !== lastPath.length);\n\n // eslint can't handle the above code.\n // eslint-disable-next-line no-unreachable\n throw new ERR_MODULE_NOT_FOUND(packageName\x2C fileURLToPath(base));\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction isBareSpecifier(specifier) {\n return specifier[0] && specifier[0] !== '/' && specifier[0] !== '.';\n}\n\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === '.') {\n if (specifier.length === 1 || specifier[1] === '/') return true;\n if (specifier[1] === '.') {\n if (specifier.length === 2 || specifier[2] === '/') return true;\n }\n }\n return false;\n}\n\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === '') return false;\n if (specifier[0] === '/') return true;\n return isRelativeSpecifier(specifier);\n}\n\n/**\n * @param {string} specifier\n * @param {string | URL | undefined} base\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction moduleResolve(specifier\x2C base\x2C conditions) {\n // Order swapped from spec for minor perf gain.\n // Ok since relative URLs cannot parse as URLs.\n let resolved;\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n resolved = new URL(specifier\x2C base);\n } else if (specifier[0] === '#') {\n ({ resolved } = packageImportsResolve(specifier\x2C base\x2C conditions));\n } else {\n try {\n resolved = new URL(specifier);\n } catch {\n resolved = packageResolve(specifier\x2C base\x2C conditions);\n }\n }\n return finalizeResolution(resolved\x2C base);\n}\n\n/**\n * Try to resolve an import as a CommonJS module\n * @param {string} specifier\n * @param {string} parentURL\n * @returns {boolean|string}\n */\nfunction resolveAsCommonJS(specifier\x2C parentURL) {\n try {\n const parent = fileURLToPath(parentURL);\n const tmpModule = new CJSModule(parent\x2C null);\n tmpModule.paths = CJSModule._nodeModulePaths(parent);\n\n let found = CJSModule._resolveFilename(specifier\x2C tmpModule\x2C false);\n\n // If it is a relative specifier return the relative path\n // to the parent\n if (isRelativeSpecifier(specifier)) {\n found = relative(parent\x2C found);\n // Add '.separator if the path does not start with '..separator'\n // This should be a safe assumption because when loading\n // esm modules there should be always a file specified so\n // there should not be a specifier like '..' or '.'\n if (!StringPrototypeStartsWith(found\x2C `..${sep}`)) {\n found = `.${sep}${found}`;\n }\n } else if (isBareSpecifier(specifier)) {\n // If it is a bare specifier return the relative path within the\n // module\n const pkg = StringPrototypeSplit(specifier\x2C '/')[0];\n const index = StringPrototypeIndexOf(found\x2C pkg);\n if (index !== -1) {\n found = StringPrototypeSlice(found\x2C index);\n }\n }\n // Normalize the path separator to give a valid suggestion\n // on Windows\n if (process.platform === 'win32') {\n found = RegExpPrototypeSymbolReplace(new RegExp(`\\\\${sep}`\x2C 'g')\x2C\n found\x2C '/');\n }\n return found;\n } catch {\n return false;\n }\n}\n\nfunction defaultResolve(specifier\x2C context = {}\x2C defaultResolveUnused) {\n let { parentURL\x2C conditions } = context;\n if (parentURL && policy?.manifest) {\n const redirects = policy.manifest.getDependencyMapper(parentURL);\n if (redirects) {\n const { resolve\x2C reaction } = redirects;\n const destination = resolve(specifier\x2C new SafeSet(conditions));\n let missing = true;\n if (destination === true) {\n missing = false;\n } else if (destination) {\n const href = destination.href;\n return { url: href };\n }\n if (missing) {\n reaction(new ERR_MANIFEST_DEPENDENCY_MISSING(\n parentURL\x2C\n specifier\x2C\n ArrayPrototypeJoin([...conditions]\x2C '\x2C '))\n );\n }\n }\n }\n let parsed;\n try {\n parsed = new URL(specifier);\n if (parsed.protocol === 'data:') {\n return {\n url: specifier\n };\n }\n } catch {}\n if (parsed && parsed.protocol === 'node:')\n return { url: specifier };\n if (parsed && parsed.protocol !== 'file:' && parsed.protocol !== 'data:')\n throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed);\n if (NativeModule.canBeRequiredByUsers(specifier)) {\n return {\n url: 'node:' + specifier\n };\n }\n if (parentURL && StringPrototypeStartsWith(parentURL\x2C 'data:')) {\n // This is gonna blow up\x2C we want the error\n new URL(specifier\x2C parentURL);\n }\n\n const isMain = parentURL === undefined;\n if (isMain) {\n parentURL = pathToFileURL(`${process.cwd()}/`).href;\n\n // This is the initial entry point to the program\x2C and --input-type has\n // been passed as an option; but --input-type can only be used with\n // --eval\x2C --print or STDIN string input. It is not allowed with file\n // input\x2C to avoid user confusion over how expansive the effect of the\n // flag should be (i.e. entry point only\x2C package scope surrounding the\n // entry point\x2C etc.).\n if (typeFlag)\n throw new ERR_INPUT_TYPE_NOT_ALLOWED();\n }\n\n conditions = getConditionsSet(conditions);\n let url;\n try {\n url = moduleResolve(specifier\x2C parentURL\x2C conditions);\n } catch (error) {\n // Try to give the user a hint of what would have been the\n // resolved CommonJS module\n if (error.code === 'ERR_MODULE_NOT_FOUND' ||\n error.code === 'ERR_UNSUPPORTED_DIR_IMPORT') {\n if (StringPrototypeStartsWith(specifier\x2C 'file://')) {\n specifier = fileURLToPath(specifier);\n }\n const found = resolveAsCommonJS(specifier\x2C parentURL);\n if (found) {\n // Modify the stack and message string to include the hint\n const lines = StringPrototypeSplit(error.stack\x2C '\\n');\n const hint = `Did you mean to import ${found}?`;\n error.stack =\n ArrayPrototypeShift(lines) + '\\n' +\n hint + '\\n' +\n ArrayPrototypeJoin(lines\x2C '\\n');\n error.message += `\\n${hint}`;\n }\n }\n throw error;\n }\n\n if (isMain ? !preserveSymlinksMain : !preserveSymlinks) {\n const urlPath = fileURLToPath(url);\n const real = realpathSync(urlPath\x2C {\n [internalFS.realpathCacheKey]: realpathCache\n });\n const old = url;\n url = pathToFileURL(\n real + (StringPrototypeEndsWith(urlPath\x2C sep) ? '/' : ''));\n url.search = old.search;\n url.hash = old.hash;\n }\n\n return { url: `${url}` };\n}\n\nmodule.exports = {\n DEFAULT_CONDITIONS\x2C\n defaultResolve\x2C\n encodedSepRegEx\x2C\n getPackageScopeConfig\x2C\n getPackageType\x2C\n packageExportsResolve\x2C\n packageImportsResolve\n};\n\n// cycle\nconst { defaultGetFormat } = require('internal/modules/esm/get_format');\n code-source-info,0x337ca0b3104e,105,0,36468,C0O0C4O36468,, code-creation,Function,10,18751,0x337ca0b31fee,1086, node:internal/modules/esm/resolve:1:1,0x337ca0b30fc8,~ code-source-info,0x337ca0b31fee,105,0,36468,C0O0C379O25C385O41C391O63C397O86C403O99C409O116C414O132C420O161C426O194C432O204C438O236C444O259C449O270C455O281C461O291C467O318C473O345C479O371C485O401C491O425C497O449C503O512C506O512C510O512C512O567C515O567C520O550C526O655C529O655C534O616C540O632C546O644C552O697C555O697C560O678C566O792C572O792C581O836C588O792C590O916C593O916C598O889C604O894C610O904C616O958C622O958C626O958C628O1026C634O1026C638O1026C640O1087C646O1087C650O1087C652O1146C658O1146C662O1146C664O1233C667O1233C672O1195C678O1200C684O1215C690O1607C693O1607C698O1633C703O1268C709O1298C715O1323C721O1355C727O1385C733O1415C739O1450C745O1474C751O1508C757O1541C763O1571C769O1671C772O1671C777O1657C783O1738C786O1738C790O1738C792O1810C798O1810C803O1859C809O1859C814O1914C825O1975C832O2017C833O2017C887O2039C938O1975C942O1975C944O2091C952O2091C957O2091C959O2408C962O2408C967O2408C969O5520C971O5520C976O5520C978O5560C980O5560C985O5560C987O5700C991O5700C993O11011C997O11011C999O11985C1003O11985C1005O14877C1009O14877C1011O14940C1015O14940C1017O36212C1024O36233C1030O36255C1036O36273C1042O36292C1048O36317C1054O36335C1060O36360C1066O36227C1070O36424C1073O36424C1078O36403C1085O36467,, StoreIC,0x337ca0b323ee,18886,1084,3,X,X,0x000000000000,DEFAULT_CONDITIONS,, StoreIC,0x337ca0b323f4,18894,1085,3,X,X,0x000000000000,defaultResolve,, StoreIC,0x337ca0b323fa,18898,1086,3,X,X,0x000000000000,encodedSepRegEx,, StoreIC,0x337ca0b32400,18902,1087,3,X,X,0x000000000000,getPackageScopeConfig,, StoreIC,0x337ca0b32406,18905,1088,3,X,X,0x000000000000,getPackageType,, StoreIC,0x337ca0b3240c,18908,1089,3,X,X,0x000000000000,packageExportsResolve,, StoreIC,0x337ca0b32412,18912,1090,3,X,X,0x000000000000,packageImportsResolve,, code-creation,Eval,10,18985,0x337ca0b3741e,5, node:internal/modules/esm/get_format:1:1,0x337ca0b371f8,~ script-source,106,node:internal/modules/esm/get_format,'use strict';\nconst {\n ObjectAssign\x2C\n ObjectCreate\x2C\n ObjectPrototypeHasOwnProperty\x2C\n RegExpPrototypeExec\x2C\n} = primordials;\nconst { extname } = require('path');\nconst { getOptionValue } = require('internal/options');\n\nconst experimentalJsonModules = getOptionValue('--experimental-json-modules');\nconst experimentalSpecifierResolution =\n getOptionValue('--experimental-specifier-resolution');\nconst experimentalWasmModules = getOptionValue('--experimental-wasm-modules');\nconst { getPackageType } = require('internal/modules/esm/resolve');\nconst { URL\x2C fileURLToPath } = require('internal/url');\nconst { ERR_UNKNOWN_FILE_EXTENSION } = require('internal/errors').codes;\n\nconst extensionFormatMap = {\n '__proto__': null\x2C\n '.cjs': 'commonjs'\x2C\n '.js': 'module'\x2C\n '.mjs': 'module'\n};\n\nconst legacyExtensionFormatMap = {\n '__proto__': null\x2C\n '.cjs': 'commonjs'\x2C\n '.js': 'commonjs'\x2C\n '.json': 'commonjs'\x2C\n '.mjs': 'module'\x2C\n '.node': 'commonjs'\n};\n\nif (experimentalWasmModules)\n extensionFormatMap['.wasm'] = legacyExtensionFormatMap['.wasm'] = 'wasm';\n\nif (experimentalJsonModules)\n extensionFormatMap['.json'] = legacyExtensionFormatMap['.json'] = 'json';\n\nconst protocolHandlers = ObjectAssign(ObjectCreate(null)\x2C {\n 'data:'(parsed) {\n const { 1: mime } = RegExpPrototypeExec(\n /^([^/]+\\/[^;\x2C]+)(?:[^\x2C]*?)(;base64)?\x2C/\x2C\n parsed.pathname\x2C\n ) || [\x2C null];\n const format = ({\n '__proto__': null\x2C\n 'text/javascript': 'module'\x2C\n 'application/json': experimentalJsonModules ? 'json' : null\x2C\n 'application/wasm': experimentalWasmModules ? 'wasm' : null\n })[mime] || null;\n\n return format;\n }\x2C\n 'file:'(parsed\x2C url) {\n const ext = extname(parsed.pathname);\n let format;\n\n if (ext === '.js') {\n format = getPackageType(parsed.href) === 'module' ? 'module' : 'commonjs';\n } else {\n format = extensionFormatMap[ext];\n }\n if (!format) {\n if (experimentalSpecifierResolution === 'node') {\n process.emitWarning(\n 'The Node.js specifier resolution in ESM is experimental.'\x2C\n 'ExperimentalWarning');\n format = legacyExtensionFormatMap[ext];\n } else {\n throw new ERR_UNKNOWN_FILE_EXTENSION(ext\x2C fileURLToPath(url));\n }\n }\n\n return format || null;\n }\x2C\n 'node:'() { return 'builtin'; }\x2C\n});\n\nfunction defaultGetFormat(url\x2C context) {\n const parsed = new URL(url);\n\n return ObjectPrototypeHasOwnProperty(protocolHandlers\x2C parsed.protocol) ?\n protocolHandlers[parsed.protocol](parsed\x2C url) :\n null;\n}\n\nmodule.exports = {\n defaultGetFormat\x2C\n extensionFormatMap\x2C\n legacyExtensionFormatMap\x2C\n};\n code-source-info,0x337ca0b3741e,106,0,2630,C0O0C4O2630,, code-creation,Function,10,19042,0x337ca0b3784e,314, node:internal/modules/esm/get_format:1:1,0x337ca0b37398,~ code-source-info,0x337ca0b3784e,106,0,2630,C0O0C53O24C58O40C63O56C69O89C75O147C78O147C83O135C89O191C92O191C97O172C102O253C105O253C109O253C111O342C114O342C118O342C120O429C123O429C127O429C129O503C132O503C137O484C143O575C146O575C151O552C157O557C163O639C166O639C171O665C176O608C182O701C186O701C188O821C192O821C194O956C198O987C207O1051C213O1015C217O1062C221O1093C230O1157C236O1121C240O1193C242O1206C252O1230C260O1646C268O2284C276O1193C281O1193C283O2538C290O2559C296O2579C302O2601C308O2553C313O2629,, StoreIC,0x337ca0b3794e,19088,42,3,X,X,0x000000000000,data:,, StoreIC,0x337ca0b37956,19093,56,3,X,X,0x000000000000,file:,, StoreIC,0x337ca0b3795e,19096,78,3,X,X,0x000000000000,node:,, StoreIC,0x337ca0b37970,19105,90,3,X,X,0x000000000000,defaultGetFormat,, StoreIC,0x337ca0b37976,19108,91,3,X,X,0x000000000000,extensionFormatMap,, StoreIC,0x337ca0b3797c,19111,92,3,X,X,0x000000000000,legacyExtensionFormatMap,, code-creation,Eval,10,19147,0x337ca0b384de,5, node:internal/modules/esm/load:1:1,0x337ca0b38368,~ script-source,107,node:internal/modules/esm/load,'use strict';\n\nconst { defaultGetFormat } = require('internal/modules/esm/get_format');\nconst { defaultGetSource } = require('internal/modules/esm/get_source');\nconst { translators } = require('internal/modules/esm/translators');\n\nasync function defaultLoad(url\x2C context) {\n let {\n format\x2C\n source\x2C\n } = context;\n\n if (!translators.has(format)) format = defaultGetFormat(url);\n\n if (\n format === 'builtin' ||\n format === 'commonjs'\n ) {\n source = null;\n } else if (source == null) {\n source = await defaultGetSource(url\x2C { format });\n }\n\n return {\n format\x2C\n source\x2C\n };\n}\n\nmodule.exports = {\n defaultLoad\x2C\n};\n code-source-info,0x337ca0b384de,107,0,643,C0O0C4O643,, code-creation,Function,10,19171,0x337ca0b38626,80, node:internal/modules/esm/load:1:1,0x337ca0b38458,~ code-source-info,0x337ca0b38626,107,0,643,C0O0C19O44C22O44C27O23C33O117C36O117C41O96C47O185C50O185C55O169C61O606C68O627C74O621C79O642,, code-creation,Eval,10,19231,0x337ca0b38b8e,5, node:internal/modules/esm/get_source:1:1,0x337ca0b389b8,~ script-source,108,node:internal/modules/esm/get_source,'use strict';\n\nconst {\n RegExpPrototypeExec\x2C\n decodeURIComponent\x2C\n} = primordials;\nconst { getOptionValue } = require('internal/options');\n// Do not eagerly grab .manifest\x2C it may be in TDZ\nconst policy = getOptionValue('--experimental-policy') ?\n require('internal/process/policy') :\n null;\n\nconst { Buffer } = require('buffer');\n\nconst fs = require('internal/fs/promises').exports;\nconst { URL } = require('internal/url');\nconst {\n ERR_INVALID_URL\x2C\n ERR_INVALID_URL_SCHEME\x2C\n} = require('internal/errors').codes;\nconst readFileAsync = fs.readFile;\n\nconst DATA_URL_PATTERN = /^[^/]+\\/[^\x2C;]+(?:[^\x2C]*?)(;base64)?\x2C([\\s\\S]*)$/;\n\nasync function defaultGetSource(url\x2C { format } = {}\x2C defaultGetSource) {\n const parsed = new URL(url);\n let source;\n if (parsed.protocol === 'file:') {\n source = await readFileAsync(parsed);\n } else if (parsed.protocol === 'data:') {\n const match = RegExpPrototypeExec(DATA_URL_PATTERN\x2C parsed.pathname);\n if (!match) {\n throw new ERR_INVALID_URL(url);\n }\n const { 1: base64\x2C 2: body } = match;\n source = Buffer.from(decodeURIComponent(body)\x2C base64 ? 'base64' : 'utf8');\n } else {\n throw new ERR_INVALID_URL_SCHEME(['file'\x2C 'data']);\n }\n if (policy?.manifest) {\n policy.manifest.assertIntegrity(parsed\x2C source);\n }\n return source;\n}\nexports.defaultGetSource = defaultGetSource;\n code-source-info,0x337ca0b38b8e,108,0,1349,C0O0C4O1349,, code-creation,Function,10,19264,0x337ca0b38cfe,169, node:internal/modules/esm/get_source:1:1,0x337ca0b38b08,~ code-source-info,0x337ca0b38cfe,108,0,1349,C0O0C37O25C43O48C49O112C52O112C57O93C62O207C65O207C74O251C81O207C83O316C86O316C91O305C97O347C100O347C105O378C110O404C113O404C118O396C124O486C127O486C132O512C137O439C143O458C149O545C153O542C155O581C159O581C161O1304C163O1329C168O1348,, code-creation,Eval,10,19638,0x337ca0b3a076,5, node:internal/fs/promises:1:1,0x337ca0b398d8,~ script-source,109,node:internal/fs/promises,'use strict';\n\nconst {\n ArrayPrototypePush\x2C\n Error\x2C\n MathMax\x2C\n MathMin\x2C\n NumberIsSafeInteger\x2C\n Promise\x2C\n PromisePrototypeThen\x2C\n PromiseResolve\x2C\n SafeArrayIterator\x2C\n SafePromisePrototypeFinally\x2C\n Symbol\x2C\n Uint8Array\x2C\n} = primordials;\n\nconst {\n F_OK\x2C\n O_SYMLINK\x2C\n O_WRONLY\x2C\n S_IFMT\x2C\n S_IFREG\n} = internalBinding('constants').fs;\nconst binding = internalBinding('fs');\nconst { Buffer } = require('buffer');\n\nconst {\n codes: {\n ERR_FS_FILE_TOO_LARGE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_METHOD_NOT_IMPLEMENTED\x2C\n }\x2C\n AbortError\x2C\n} = require('internal/errors');\nconst { isArrayBufferView } = require('internal/util/types');\nconst { rimrafPromises } = require('internal/fs/rimraf');\nconst {\n constants: {\n kIoMaxLength\x2C\n kMaxUserId\x2C\n kReadFileBufferLength\x2C\n kReadFileUnknownBufferLength\x2C\n kWriteFileMaxChunkSize\x2C\n }\x2C\n copyObject\x2C\n emitRecursiveRmdirWarning\x2C\n getDirents\x2C\n getOptions\x2C\n getStatsFromBinding\x2C\n getValidatedPath\x2C\n getValidMode\x2C\n nullCheck\x2C\n preprocessSymlinkDestination\x2C\n stringToFlags\x2C\n stringToSymlinkType\x2C\n toUnixTimestamp\x2C\n validateBufferArray\x2C\n validateCpOptions\x2C\n validateOffsetLengthRead\x2C\n validateOffsetLengthWrite\x2C\n validateRmOptions\x2C\n validateRmdirOptions\x2C\n validateStringAfterArrayBufferView\x2C\n warnOnNonPortableTemplate\x2C\n} = require('internal/fs/utils');\nconst { opendir } = require('internal/fs/dir');\nconst {\n parseFileMode\x2C\n validateAbortSignal\x2C\n validateBoolean\x2C\n validateBuffer\x2C\n validateEncoding\x2C\n validateInteger\x2C\n validateString\x2C\n} = require('internal/validators');\nconst pathModule = require('path');\nconst { lazyDOMException\x2C promisify } = require('internal/util');\nconst { EventEmitterMixin } = require('internal/event_target');\nconst { watch } = require('internal/fs/watchers');\nconst { isIterable } = require('internal/streams/utils');\nconst assert = require('internal/assert');\n\nconst kHandle = Symbol('kHandle');\nconst kFd = Symbol('kFd');\nconst kRefs = Symbol('kRefs');\nconst kClosePromise = Symbol('kClosePromise');\nconst kCloseResolve = Symbol('kCloseResolve');\nconst kCloseReject = Symbol('kCloseReject');\nconst kRef = Symbol('kRef');\nconst kUnref = Symbol('kUnref');\n\nconst { kUsePromises } = binding;\nconst {\n JSTransferable\x2C kDeserialize\x2C kTransfer\x2C kTransferList\n} = require('internal/worker/js_transferable');\n\nconst getDirectoryEntriesPromise = promisify(getDirents);\nconst validateRmOptionsPromise = promisify(validateRmOptions);\n\nlet cpPromises;\nfunction lazyLoadCpPromises() {\n return cpPromises ??= require('internal/fs/cp/cp').cpFn;\n}\n\n// Lazy loaded to avoid circular dependency.\nlet fsStreams;\nfunction lazyFsStreams() {\n return fsStreams ??= require('internal/fs/streams');\n}\n\nclass FileHandle extends EventEmitterMixin(JSTransferable) {\n /**\n * @param {InternalFSBinding.FileHandle | undefined} filehandle\n */\n constructor(filehandle) {\n super();\n this[kHandle] = filehandle;\n this[kFd] = filehandle ? filehandle.fd : -1;\n\n this[kRefs] = 1;\n this[kClosePromise] = null;\n }\n\n getAsyncId() {\n return this[kHandle].getAsyncId();\n }\n\n get fd() {\n return this[kFd];\n }\n\n appendFile(data\x2C options) {\n return fsCall(writeFile\x2C this\x2C data\x2C options);\n }\n\n chmod(mode) {\n return fsCall(fchmod\x2C this\x2C mode);\n }\n\n chown(uid\x2C gid) {\n return fsCall(fchown\x2C this\x2C uid\x2C gid);\n }\n\n datasync() {\n return fsCall(fdatasync\x2C this);\n }\n\n sync() {\n return fsCall(fsync\x2C this);\n }\n\n read(buffer\x2C offset\x2C length\x2C position) {\n return fsCall(read\x2C this\x2C buffer\x2C offset\x2C length\x2C position);\n }\n\n readv(buffers\x2C position) {\n return fsCall(readv\x2C this\x2C buffers\x2C position);\n }\n\n readFile(options) {\n return fsCall(readFile\x2C this\x2C options);\n }\n\n stat(options) {\n return fsCall(fstat\x2C this\x2C options);\n }\n\n truncate(len = 0) {\n return fsCall(ftruncate\x2C this\x2C len);\n }\n\n utimes(atime\x2C mtime) {\n return fsCall(futimes\x2C this\x2C atime\x2C mtime);\n }\n\n write(buffer\x2C offset\x2C length\x2C position) {\n return fsCall(write\x2C this\x2C buffer\x2C offset\x2C length\x2C position);\n }\n\n writev(buffers\x2C position) {\n return fsCall(writev\x2C this\x2C buffers\x2C position);\n }\n\n writeFile(data\x2C options) {\n return fsCall(writeFile\x2C this\x2C data\x2C options);\n }\n\n close = () => {\n if (this[kFd] === -1) {\n return PromiseResolve();\n }\n\n if (this[kClosePromise]) {\n return this[kClosePromise];\n }\n\n this[kRefs]--;\n if (this[kRefs] === 0) {\n this[kFd] = -1;\n this[kClosePromise] = SafePromisePrototypeFinally(\n this[kHandle].close()\x2C\n () => { this[kClosePromise] = undefined; }\n );\n } else {\n this[kClosePromise] = SafePromisePrototypeFinally(\n new Promise((resolve\x2C reject) => {\n this[kCloseResolve] = resolve;\n this[kCloseReject] = reject;\n })\x2C () => {\n this[kClosePromise] = undefined;\n this[kCloseReject] = undefined;\n this[kCloseResolve] = undefined;\n }\n );\n }\n\n this.emit('close');\n return this[kClosePromise];\n }\n\n /**\n * @typedef {import('./streams').ReadStream\n * } ReadStream\n * @param {{\n * encoding?: string;\n * autoClose?: boolean;\n * emitClose?: boolean;\n * start: number;\n * end?: number;\n * highWaterMark?: number;\n * }} [options]\n * @returns {ReadStream}\n */\n createReadStream(options = undefined) {\n const { ReadStream } = lazyFsStreams();\n return new ReadStream(undefined\x2C { ...options\x2C fd: this });\n }\n\n /**\n * @typedef {import('./streams').WriteStream\n * } WriteStream\n * @param {{\n * encoding?: string;\n * autoClose?: boolean;\n * emitClose?: boolean;\n * start: number;\n * }} [options]\n * @returns {WriteStream}\n */\n createWriteStream(options = undefined) {\n const { WriteStream } = lazyFsStreams();\n return new WriteStream(undefined\x2C { ...options\x2C fd: this });\n }\n\n [kTransfer]() {\n if (this[kClosePromise] || this[kRefs] > 1) {\n throw lazyDOMException('Cannot transfer FileHandle while in use'\x2C\n 'DataCloneError');\n }\n\n const handle = this[kHandle];\n this[kFd] = -1;\n this[kHandle] = null;\n this[kRefs] = 0;\n\n return {\n data: { handle }\x2C\n deserializeInfo: 'internal/fs/promises:FileHandle'\n };\n }\n\n [kTransferList]() {\n return [ this[kHandle] ];\n }\n\n [kDeserialize]({ handle }) {\n this[kHandle] = handle;\n this[kFd] = handle.fd;\n }\n\n [kRef]() {\n this[kRefs]++;\n }\n\n [kUnref]() {\n this[kRefs]--;\n if (this[kRefs] === 0) {\n this[kFd] = -1;\n PromisePrototypeThen(\n this[kHandle].close()\x2C\n this[kCloseResolve]\x2C\n this[kCloseReject]\n );\n }\n }\n}\n\nasync function fsCall(fn\x2C handle\x2C ...args) {\n assert(handle[kRefs] !== undefined\x2C\n 'handle must be an instance of FileHandle');\n\n if (handle.fd === -1) {\n // eslint-disable-next-line no-restricted-syntax\n const err = new Error('file closed');\n err.code = 'EBADF';\n err.syscall = fn.name;\n throw err;\n }\n\n try {\n handle[kRef]();\n return await fn(handle\x2C ...new SafeArrayIterator(args));\n } finally {\n handle[kUnref]();\n }\n}\n\nfunction checkAborted(signal) {\n if (signal?.aborted)\n throw new AbortError();\n}\n\nasync function writeFileHandle(filehandle\x2C data\x2C signal\x2C encoding) {\n checkAborted(signal);\n if (isCustomIterable(data)) {\n for await (const buf of data) {\n checkAborted(signal);\n const toWrite =\n isArrayBufferView(buf) ? buf : Buffer.from(buf\x2C encoding || 'utf8');\n let remaining = toWrite.byteLength;\n while (remaining > 0) {\n const writeSize = MathMin(kWriteFileMaxChunkSize\x2C remaining);\n const { bytesWritten } = await write(\n filehandle\x2C toWrite\x2C toWrite.byteLength - remaining\x2C writeSize);\n remaining -= bytesWritten;\n checkAborted(signal);\n }\n }\n return;\n }\n data = new Uint8Array(data.buffer\x2C data.byteOffset\x2C data.byteLength);\n let remaining = data.byteLength;\n if (remaining === 0) return;\n do {\n checkAborted(signal);\n const { bytesWritten } =\n await write(filehandle\x2C data\x2C 0\x2C\n MathMin(kWriteFileMaxChunkSize\x2C data.byteLength));\n remaining -= bytesWritten;\n data = new Uint8Array(\n data.buffer\x2C\n data.byteOffset + bytesWritten\x2C\n data.byteLength - bytesWritten\n );\n } while (remaining > 0);\n}\n\nasync function readFileHandle(filehandle\x2C options) {\n const signal = options?.signal;\n\n checkAborted(signal);\n\n const statFields = await binding.fstat(filehandle.fd\x2C false\x2C kUsePromises);\n\n checkAborted(signal);\n\n let size;\n if ((statFields[1/* mode */] & S_IFMT) === S_IFREG) {\n size = statFields[8/* size */];\n } else {\n size = 0;\n }\n\n if (size > kIoMaxLength)\n throw new ERR_FS_FILE_TOO_LARGE(size);\n\n let endOfFile = false;\n let totalRead = 0;\n const noSize = size === 0;\n const buffers = [];\n const fullBuffer = noSize ? undefined : Buffer.allocUnsafeSlow(size);\n do {\n checkAborted(signal);\n let buffer;\n let offset;\n let length;\n if (noSize) {\n buffer = Buffer.allocUnsafeSlow(kReadFileUnknownBufferLength);\n offset = 0;\n length = kReadFileUnknownBufferLength;\n } else {\n buffer = fullBuffer;\n offset = totalRead;\n length = MathMin(size - totalRead\x2C kReadFileBufferLength);\n }\n\n const bytesRead = (await binding.read(filehandle.fd\x2C buffer\x2C offset\x2C\n length\x2C -1\x2C kUsePromises)) || 0;\n totalRead += bytesRead;\n endOfFile = bytesRead === 0 || totalRead === size;\n if (noSize && bytesRead > 0) {\n const isBufferFull = bytesRead === kReadFileUnknownBufferLength;\n const chunkBuffer = isBufferFull ? buffer : buffer.slice(0\x2C bytesRead);\n ArrayPrototypePush(buffers\x2C chunkBuffer);\n }\n } while (!endOfFile);\n\n let result;\n if (size > 0) {\n result = totalRead === size ? fullBuffer : fullBuffer.slice(0\x2C totalRead);\n } else {\n result = buffers.length === 1 ? buffers[0] : Buffer.concat(buffers\x2C\n totalRead);\n }\n\n return options.encoding ? result.toString(options.encoding) : result;\n}\n\n// All of the functions are defined as async in order to ensure that errors\n// thrown cause promise rejections rather than being thrown synchronously.\nasync function access(path\x2C mode = F_OK) {\n path = getValidatedPath(path);\n\n mode = getValidMode(mode\x2C 'access');\n return binding.access(pathModule.toNamespacedPath(path)\x2C mode\x2C\n kUsePromises);\n}\n\nasync function cp(src\x2C dest\x2C options) {\n options = validateCpOptions(options);\n src = pathModule.toNamespacedPath(getValidatedPath(src\x2C 'src'));\n dest = pathModule.toNamespacedPath(getValidatedPath(dest\x2C 'dest'));\n return lazyLoadCpPromises()(src\x2C dest\x2C options);\n}\n\nasync function copyFile(src\x2C dest\x2C mode) {\n src = getValidatedPath(src\x2C 'src');\n dest = getValidatedPath(dest\x2C 'dest');\n mode = getValidMode(mode\x2C 'copyFile');\n return binding.copyFile(pathModule.toNamespacedPath(src)\x2C\n pathModule.toNamespacedPath(dest)\x2C\n mode\x2C\n kUsePromises);\n}\n\n// Note that unlike fs.open() which uses numeric file descriptors\x2C\n// fsPromises.open() uses the fs.FileHandle class.\nasync function open(path\x2C flags\x2C mode) {\n path = getValidatedPath(path);\n const flagsNumber = stringToFlags(flags);\n mode = parseFileMode(mode\x2C 'mode'\x2C 0o666);\n return new FileHandle(\n await binding.openFileHandle(pathModule.toNamespacedPath(path)\x2C\n flagsNumber\x2C mode\x2C kUsePromises));\n}\n\nasync function read(handle\x2C bufferOrOptions\x2C offset\x2C length\x2C position) {\n let buffer = bufferOrOptions;\n if (!isArrayBufferView(buffer)) {\n if (bufferOrOptions === undefined) {\n bufferOrOptions = {};\n }\n if (bufferOrOptions.buffer) {\n buffer = bufferOrOptions.buffer;\n validateBuffer(buffer);\n } else {\n buffer = Buffer.alloc(16384);\n }\n offset = bufferOrOptions.offset || 0;\n length = buffer.byteLength;\n position = bufferOrOptions.position || null;\n }\n\n if (offset == null) {\n offset = 0;\n } else {\n validateInteger(offset\x2C 'offset'\x2C 0);\n }\n\n length |= 0;\n\n if (length === 0)\n return { bytesRead: length\x2C buffer };\n\n if (buffer.byteLength === 0) {\n throw new ERR_INVALID_ARG_VALUE('buffer'\x2C buffer\x2C\n 'is empty and cannot be written');\n }\n\n validateOffsetLengthRead(offset\x2C length\x2C buffer.byteLength);\n\n if (!NumberIsSafeInteger(position))\n position = -1;\n\n const bytesRead = (await binding.read(handle.fd\x2C buffer\x2C offset\x2C length\x2C\n position\x2C kUsePromises)) || 0;\n\n return { bytesRead\x2C buffer };\n}\n\nasync function readv(handle\x2C buffers\x2C position) {\n validateBufferArray(buffers);\n\n if (typeof position !== 'number')\n position = null;\n\n const bytesRead = (await binding.readBuffers(handle.fd\x2C buffers\x2C position\x2C\n kUsePromises)) || 0;\n return { bytesRead\x2C buffers };\n}\n\nasync function write(handle\x2C buffer\x2C offset\x2C length\x2C position) {\n if (buffer?.byteLength === 0)\n return { bytesWritten: 0\x2C buffer };\n\n if (isArrayBufferView(buffer)) {\n if (offset == null) {\n offset = 0;\n } else {\n validateInteger(offset\x2C 'offset'\x2C 0);\n }\n if (typeof length !== 'number')\n length = buffer.byteLength - offset;\n if (typeof position !== 'number')\n position = null;\n validateOffsetLengthWrite(offset\x2C length\x2C buffer.byteLength);\n const bytesWritten =\n (await binding.writeBuffer(handle.fd\x2C buffer\x2C offset\x2C\n length\x2C position\x2C kUsePromises)) || 0;\n return { bytesWritten\x2C buffer };\n }\n\n validateStringAfterArrayBufferView(buffer\x2C 'buffer');\n validateEncoding(buffer\x2C length);\n const bytesWritten = (await binding.writeString(handle.fd\x2C buffer\x2C offset\x2C\n length\x2C kUsePromises)) || 0;\n return { bytesWritten\x2C buffer };\n}\n\nasync function writev(handle\x2C buffers\x2C position) {\n validateBufferArray(buffers);\n\n if (typeof position !== 'number')\n position = null;\n\n const bytesWritten = (await binding.writeBuffers(handle.fd\x2C buffers\x2C position\x2C\n kUsePromises)) || 0;\n return { bytesWritten\x2C buffers };\n}\n\nasync function rename(oldPath\x2C newPath) {\n oldPath = getValidatedPath(oldPath\x2C 'oldPath');\n newPath = getValidatedPath(newPath\x2C 'newPath');\n return binding.rename(pathModule.toNamespacedPath(oldPath)\x2C\n pathModule.toNamespacedPath(newPath)\x2C\n kUsePromises);\n}\n\nasync function truncate(path\x2C len = 0) {\n const fd = await open(path\x2C 'r+');\n return SafePromisePrototypeFinally(ftruncate(fd\x2C len)\x2C fd.close);\n}\n\nasync function ftruncate(handle\x2C len = 0) {\n validateInteger(len\x2C 'len');\n len = MathMax(0\x2C len);\n return binding.ftruncate(handle.fd\x2C len\x2C kUsePromises);\n}\n\nasync function rm(path\x2C options) {\n path = pathModule.toNamespacedPath(getValidatedPath(path));\n options = await validateRmOptionsPromise(path\x2C options\x2C false);\n return rimrafPromises(path\x2C options);\n}\n\nasync function rmdir(path\x2C options) {\n path = pathModule.toNamespacedPath(getValidatedPath(path));\n options = validateRmdirOptions(options);\n\n if (options.recursive) {\n emitRecursiveRmdirWarning();\n const stats = await stat(path);\n if (stats.isDirectory()) {\n return rimrafPromises(path\x2C options);\n }\n }\n\n return binding.rmdir(path\x2C kUsePromises);\n}\n\nasync function fdatasync(handle) {\n return binding.fdatasync(handle.fd\x2C kUsePromises);\n}\n\nasync function fsync(handle) {\n return binding.fsync(handle.fd\x2C kUsePromises);\n}\n\nasync function mkdir(path\x2C options) {\n if (typeof options === 'number' || typeof options === 'string') {\n options = { mode: options };\n }\n const {\n recursive = false\x2C\n mode = 0o777\n } = options || {};\n path = getValidatedPath(path);\n validateBoolean(recursive\x2C 'options.recursive');\n\n return binding.mkdir(pathModule.toNamespacedPath(path)\x2C\n parseFileMode(mode\x2C 'mode'\x2C 0o777)\x2C recursive\x2C\n kUsePromises);\n}\n\nasync function readdir(path\x2C options) {\n options = getOptions(options\x2C {});\n path = getValidatedPath(path);\n const result = await binding.readdir(pathModule.toNamespacedPath(path)\x2C\n options.encoding\x2C\n !!options.withFileTypes\x2C\n kUsePromises);\n return options.withFileTypes ?\n getDirectoryEntriesPromise(path\x2C result) :\n result;\n}\n\nasync function readlink(path\x2C options) {\n options = getOptions(options\x2C {});\n path = getValidatedPath(path\x2C 'oldPath');\n return binding.readlink(pathModule.toNamespacedPath(path)\x2C\n options.encoding\x2C kUsePromises);\n}\n\nasync function symlink(target\x2C path\x2C type_) {\n const type = (typeof type_ === 'string' ? type_ : null);\n target = getValidatedPath(target\x2C 'target');\n path = getValidatedPath(path);\n return binding.symlink(preprocessSymlinkDestination(target\x2C type\x2C path)\x2C\n pathModule.toNamespacedPath(path)\x2C\n stringToSymlinkType(type)\x2C\n kUsePromises);\n}\n\nasync function fstat(handle\x2C options = { bigint: false }) {\n const result = await binding.fstat(handle.fd\x2C options.bigint\x2C kUsePromises);\n return getStatsFromBinding(result);\n}\n\nasync function lstat(path\x2C options = { bigint: false }) {\n path = getValidatedPath(path);\n const result = await binding.lstat(pathModule.toNamespacedPath(path)\x2C\n options.bigint\x2C kUsePromises);\n return getStatsFromBinding(result);\n}\n\nasync function stat(path\x2C options = { bigint: false }) {\n path = getValidatedPath(path);\n const result = await binding.stat(pathModule.toNamespacedPath(path)\x2C\n options.bigint\x2C kUsePromises);\n return getStatsFromBinding(result);\n}\n\nasync function link(existingPath\x2C newPath) {\n existingPath = getValidatedPath(existingPath\x2C 'existingPath');\n newPath = getValidatedPath(newPath\x2C 'newPath');\n return binding.link(pathModule.toNamespacedPath(existingPath)\x2C\n pathModule.toNamespacedPath(newPath)\x2C\n kUsePromises);\n}\n\nasync function unlink(path) {\n path = getValidatedPath(path);\n return binding.unlink(pathModule.toNamespacedPath(path)\x2C kUsePromises);\n}\n\nasync function fchmod(handle\x2C mode) {\n mode = parseFileMode(mode\x2C 'mode');\n return binding.fchmod(handle.fd\x2C mode\x2C kUsePromises);\n}\n\nasync function chmod(path\x2C mode) {\n path = getValidatedPath(path);\n mode = parseFileMode(mode\x2C 'mode');\n return binding.chmod(pathModule.toNamespacedPath(path)\x2C mode\x2C kUsePromises);\n}\n\nasync function lchmod(path\x2C mode) {\n if (O_SYMLINK === undefined)\n throw new ERR_METHOD_NOT_IMPLEMENTED('lchmod()');\n\n const fd = await open(path\x2C O_WRONLY | O_SYMLINK);\n return SafePromisePrototypeFinally(fchmod(fd\x2C mode)\x2C fd.close);\n}\n\nasync function lchown(path\x2C uid\x2C gid) {\n path = getValidatedPath(path);\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n return binding.lchown(pathModule.toNamespacedPath(path)\x2C\n uid\x2C gid\x2C kUsePromises);\n}\n\nasync function fchown(handle\x2C uid\x2C gid) {\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n return binding.fchown(handle.fd\x2C uid\x2C gid\x2C kUsePromises);\n}\n\nasync function chown(path\x2C uid\x2C gid) {\n path = getValidatedPath(path);\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n return binding.chown(pathModule.toNamespacedPath(path)\x2C\n uid\x2C gid\x2C kUsePromises);\n}\n\nasync function utimes(path\x2C atime\x2C mtime) {\n path = getValidatedPath(path);\n return binding.utimes(pathModule.toNamespacedPath(path)\x2C\n toUnixTimestamp(atime)\x2C\n toUnixTimestamp(mtime)\x2C\n kUsePromises);\n}\n\nasync function futimes(handle\x2C atime\x2C mtime) {\n atime = toUnixTimestamp(atime\x2C 'atime');\n mtime = toUnixTimestamp(mtime\x2C 'mtime');\n return binding.futimes(handle.fd\x2C atime\x2C mtime\x2C kUsePromises);\n}\n\nasync function lutimes(path\x2C atime\x2C mtime) {\n path = getValidatedPath(path);\n return binding.lutimes(pathModule.toNamespacedPath(path)\x2C\n toUnixTimestamp(atime)\x2C\n toUnixTimestamp(mtime)\x2C\n kUsePromises);\n}\n\nasync function realpath(path\x2C options) {\n options = getOptions(options\x2C {});\n path = getValidatedPath(path);\n return binding.realpath(path\x2C options.encoding\x2C kUsePromises);\n}\n\nasync function mkdtemp(prefix\x2C options) {\n options = getOptions(options\x2C {});\n\n validateString(prefix\x2C 'prefix');\n nullCheck(prefix);\n warnOnNonPortableTemplate(prefix);\n return binding.mkdtemp(`${prefix}XXXXXX`\x2C options.encoding\x2C kUsePromises);\n}\n\nasync function writeFile(path\x2C data\x2C options) {\n options = getOptions(options\x2C { encoding: 'utf8'\x2C mode: 0o666\x2C flag: 'w' });\n const flag = options.flag || 'w';\n\n if (!isArrayBufferView(data) && !isCustomIterable(data)) {\n validateStringAfterArrayBufferView(data\x2C 'data');\n data = Buffer.from(data\x2C options.encoding || 'utf8');\n }\n\n validateAbortSignal(options.signal);\n if (path instanceof FileHandle)\n return writeFileHandle(path\x2C data\x2C options.signal\x2C options.encoding);\n\n checkAborted(options.signal);\n\n const fd = await open(path\x2C flag\x2C options.mode);\n return SafePromisePrototypeFinally(\n writeFileHandle(fd\x2C data\x2C options.signal\x2C options.encoding)\x2C fd.close);\n}\n\nfunction isCustomIterable(obj) {\n return isIterable(obj) && !isArrayBufferView(obj) && typeof obj !== 'string';\n}\n\nasync function appendFile(path\x2C data\x2C options) {\n options = getOptions(options\x2C { encoding: 'utf8'\x2C mode: 0o666\x2C flag: 'a' });\n options = copyObject(options);\n options.flag = options.flag || 'a';\n return writeFile(path\x2C data\x2C options);\n}\n\nasync function readFile(path\x2C options) {\n options = getOptions(options\x2C { flag: 'r' });\n const flag = options.flag || 'r';\n\n if (path instanceof FileHandle)\n return readFileHandle(path\x2C options);\n\n checkAborted(options.signal);\n\n const fd = await open(path\x2C flag\x2C 0o666);\n return SafePromisePrototypeFinally(readFileHandle(fd\x2C options)\x2C fd.close);\n}\n\nmodule.exports = {\n exports: {\n access\x2C\n copyFile\x2C\n cp\x2C\n open\x2C\n opendir: promisify(opendir)\x2C\n rename\x2C\n truncate\x2C\n rm\x2C\n rmdir\x2C\n mkdir\x2C\n readdir\x2C\n readlink\x2C\n symlink\x2C\n lstat\x2C\n stat\x2C\n link\x2C\n unlink\x2C\n chmod\x2C\n lchmod\x2C\n lchown\x2C\n chown\x2C\n utimes\x2C\n lutimes\x2C\n realpath\x2C\n mkdtemp\x2C\n writeFile\x2C\n appendFile\x2C\n readFile\x2C\n watch\x2C\n }\x2C\n\n FileHandle\x2C\n kRef\x2C\n kUnref\x2C\n};\n code-source-info,0x337ca0b3a076,109,0,22879,C0O0C4O22879,, code-creation,Function,10,20061,0x337ca0b3c7ae,1659, node:internal/fs/promises:1:1,0x337ca0b39ff0,~ code-source-info,0x337ca0b3c7ae,109,0,22879,C0O0C490O25C496O47C502O56C508O67C514O78C520O101C526O112C532O136C538O154C544O175C550O206C555O216C561O311C565O311C571O339C577O256C583O264C589O277C595O289C601O299C607O360C611O360C615O360C617O402C625O402C631O391C637O550C645O550C651O550C657O445C663O472C669O499C675O534C681O608C689O608C695O586C701O667C709O667C715O648C721O1300C729O1300C735O1300C741O725C747O743C753O759C759O786C765O820C771O851C777O865C783O894C788O908C794O922C800O945C806O965C812O981C818O994C824O1026C830O1043C836O1066C842O1085C848O1108C854O1129C860O1157C866O1186C871O1207C877O1231C883O1269C889O1350C897O1350C903O1338C908O1524C916O1524C922O1388C928O1405C934O1428C940O1447C946O1465C952O1485C958O1504C964O1575C972O1575C976O1575C978O1632C986O1632C992O1600C998O1618C1003O1688C1011O1688C1017O1666C1022O1740C1030O1740C1036O1730C1041O1796C1049O1796C1055O1781C1061O1846C1069O1846C1073O1846C1075O1891C1079O1891C1083O1891C1085O1922C1089O1922C1093O1922C1095O1951C1099O1951C1103O1951C1105O1990C1109O1990C1113O1990C1115O2037C1119O2037C1123O2037C1125O2083C1129O2083C1133O2083C1135O2120C1139O2120C1143O2120C1145O2151C1149O2151C1153O2151C1155O2195C1159O2178C1165O2273C1173O2273C1179O2214C1184O2230C1189O2244C1194O2255C1199O2353C1203O2353C1205O2409C1209O2409C1211O2444C1212O2444C1214O2599C1215O2599C1217O2720C1339O5857C1349O6260C1359O6317C1371O6408C1381O6445C1413O2695C1415O22436C1421O22466C1429O22472C1435O22484C1441O22498C1447O22506C1451O22525C1461O22549C1467O22561C1473O22575C1479O22583C1485O22594C1491O22605C1497O22618C1503O22632C1509O22645C1515O22656C1521O22666C1527O22676C1533O22688C1539O22699C1545O22711C1551O22723C1557O22734C1563O22746C1569O22759C1575O22773C1581O22786C1587O22801C1593O22817C1599O22831C1619O22846C1629O22860C1639O22868C1649O22451C1658O22878,, code-creation,Function,10,20082,0x337ca0b3d156,27, node:internal/fs/promises:189:3,0x337ca0b3b650,~ code-source-info,0x337ca0b3d156,109,4202,5000,C0O4202C12O4210C26O5000,, new,MemoryChunk,0x3dda0e040000,262144 code-creation,Eval,10,20306,0x337ca0b3fbf6,5, node:internal/fs/rimraf:1:1,0x337ca0b3f890,~ script-source,110,node:internal/fs/rimraf,// This file is a modified version of the rimraf module on npm. It has been\n// modified in the following ways:\n// - Use of the assert module has been replaced with core's error system.\n// - All code related to the glob dependency has been removed.\n// - Bring your own custom fs module is not currently supported.\n// - Some basic code cleanup.\n'use strict';\n\nconst {\n ArrayPrototypeForEach\x2C\n Promise\x2C\n SafeSet\x2C\n} = primordials;\n\nconst { Buffer } = require('buffer');\nconst fs = require('fs');\nconst {\n chmod\x2C\n chmodSync\x2C\n lstat\x2C\n lstatSync\x2C\n readdir\x2C\n readdirSync\x2C\n rmdir\x2C\n rmdirSync\x2C\n stat\x2C\n statSync\x2C\n unlink\x2C\n unlinkSync\n} = fs;\nconst { sep } = require('path');\nconst { setTimeout } = require('timers');\nconst { sleep } = require('internal/util');\nconst notEmptyErrorCodes = new SafeSet(['ENOTEMPTY'\x2C 'EEXIST'\x2C 'EPERM']);\nconst retryErrorCodes = new SafeSet(\n ['EBUSY'\x2C 'EMFILE'\x2C 'ENFILE'\x2C 'ENOTEMPTY'\x2C 'EPERM']);\nconst isWindows = process.platform === 'win32';\nconst epermHandler = isWindows ? fixWinEPERM : _rmdir;\nconst epermHandlerSync = isWindows ? fixWinEPERMSync : _rmdirSync;\nconst readdirEncoding = 'buffer';\nconst separator = Buffer.from(sep);\n\n\nfunction rimraf(path\x2C options\x2C callback) {\n let retries = 0;\n\n _rimraf(path\x2C options\x2C function CB(err) {\n if (err) {\n if (retryErrorCodes.has(err.code) && retries < options.maxRetries) {\n retries++;\n const delay = retries * options.retryDelay;\n return setTimeout(_rimraf\x2C delay\x2C path\x2C options\x2C CB);\n }\n\n // The file is already gone.\n if (err.code === 'ENOENT')\n err = null;\n }\n\n callback(err);\n });\n}\n\n\nfunction _rimraf(path\x2C options\x2C callback) {\n // SunOS lets the root user unlink directories. Use lstat here to make sure\n // it's not a directory.\n lstat(path\x2C (err\x2C stats) => {\n if (err) {\n if (err.code === 'ENOENT')\n return callback(null);\n\n // Windows can EPERM on stat.\n if (isWindows && err.code === 'EPERM')\n return fixWinEPERM(path\x2C options\x2C err\x2C callback);\n } else if (stats.isDirectory()) {\n return _rmdir(path\x2C options\x2C err\x2C callback);\n }\n\n unlink(path\x2C (err) => {\n if (err) {\n if (err.code === 'ENOENT')\n return callback(null);\n if (err.code === 'EISDIR')\n return _rmdir(path\x2C options\x2C err\x2C callback);\n if (err.code === 'EPERM') {\n return epermHandler(path\x2C options\x2C err\x2C callback);\n }\n }\n\n return callback(err);\n });\n });\n}\n\n\nfunction fixWinEPERM(path\x2C options\x2C originalErr\x2C callback) {\n chmod(path\x2C 0o666\x2C (err) => {\n if (err)\n return callback(err.code === 'ENOENT' ? null : originalErr);\n\n stat(path\x2C (err\x2C stats) => {\n if (err)\n return callback(err.code === 'ENOENT' ? null : originalErr);\n\n if (stats.isDirectory())\n _rmdir(path\x2C options\x2C originalErr\x2C callback);\n else\n unlink(path\x2C callback);\n });\n });\n}\n\n\nfunction _rmdir(path\x2C options\x2C originalErr\x2C callback) {\n rmdir(path\x2C (err) => {\n if (err) {\n if (notEmptyErrorCodes.has(err.code))\n return _rmchildren(path\x2C options\x2C callback);\n if (err.code === 'ENOTDIR')\n return callback(originalErr);\n }\n\n callback(err);\n });\n}\n\n\nfunction _rmchildren(path\x2C options\x2C callback) {\n const pathBuf = Buffer.from(path);\n\n readdir(pathBuf\x2C readdirEncoding\x2C (err\x2C files) => {\n if (err)\n return callback(err);\n\n let numFiles = files.length;\n\n if (numFiles === 0)\n return rmdir(path\x2C callback);\n\n let done = false;\n\n ArrayPrototypeForEach(files\x2C (child) => {\n const childPath = Buffer.concat([pathBuf\x2C separator\x2C child]);\n\n rimraf(childPath\x2C options\x2C (err) => {\n if (done)\n return;\n\n if (err) {\n done = true;\n return callback(err);\n }\n\n numFiles--;\n if (numFiles === 0)\n rmdir(path\x2C callback);\n });\n });\n });\n}\n\n\nfunction rimrafPromises(path\x2C options) {\n return new Promise((resolve\x2C reject) => {\n rimraf(path\x2C options\x2C (err) => {\n if (err)\n return reject(err);\n\n resolve();\n });\n });\n}\n\n\nfunction rimrafSync(path\x2C options) {\n let stats;\n\n try {\n stats = lstatSync(path);\n } catch (err) {\n if (err.code === 'ENOENT')\n return;\n\n // Windows can EPERM on stat.\n if (isWindows && err.code === 'EPERM')\n fixWinEPERMSync(path\x2C options\x2C err);\n }\n\n try {\n // SunOS lets the root user unlink directories.\n if (stats?.isDirectory())\n _rmdirSync(path\x2C options\x2C null);\n else\n _unlinkSync(path\x2C options);\n } catch (err) {\n if (err.code === 'ENOENT')\n return;\n if (err.code === 'EPERM')\n return epermHandlerSync(path\x2C options\x2C err);\n if (err.code !== 'EISDIR')\n throw err;\n\n _rmdirSync(path\x2C options\x2C err);\n }\n}\n\n\nfunction _unlinkSync(path\x2C options) {\n const tries = options.maxRetries + 1;\n\n for (let i = 1; i <= tries; i++) {\n try {\n return unlinkSync(path);\n } catch (err) {\n // Only sleep if this is not the last try\x2C and the delay is greater\n // than zero\x2C and an error was encountered that warrants a retry.\n if (retryErrorCodes.has(err.code) &&\n i < tries &&\n options.retryDelay > 0) {\n sleep(i * options.retryDelay);\n }\n }\n }\n}\n\n\nfunction _rmdirSync(path\x2C options\x2C originalErr) {\n try {\n rmdirSync(path);\n } catch (err) {\n if (err.code === 'ENOENT')\n return;\n if (err.code === 'ENOTDIR')\n throw originalErr;\n\n if (notEmptyErrorCodes.has(err.code)) {\n // Removing failed. Try removing all children and then retrying the\n // original removal. Windows has a habit of not closing handles promptly\n // when files are deleted\x2C resulting in spurious ENOTEMPTY failures. Work\n // around that issue by retrying on Windows.\n const pathBuf = Buffer.from(path);\n\n ArrayPrototypeForEach(readdirSync(pathBuf\x2C readdirEncoding)\x2C (child) => {\n const childPath = Buffer.concat([pathBuf\x2C separator\x2C child]);\n\n rimrafSync(childPath\x2C options);\n });\n\n const tries = options.maxRetries + 1;\n\n for (let i = 1; i <= tries; i++) {\n try {\n return fs.rmdirSync(path);\n } catch (err) {\n // Only sleep if this is not the last try\x2C and the delay is greater\n // than zero\x2C and an error was encountered that warrants a retry.\n if (retryErrorCodes.has(err.code) &&\n i < tries &&\n options.retryDelay > 0) {\n sleep(i * options.retryDelay);\n }\n }\n }\n }\n }\n}\n\n\nfunction fixWinEPERMSync(path\x2C options\x2C originalErr) {\n try {\n chmodSync(path\x2C 0o666);\n } catch (err) {\n if (err.code === 'ENOENT')\n return;\n\n throw originalErr;\n }\n\n let stats;\n\n try {\n stats = statSync(path\x2C { throwIfNoEntry: false });\n } catch {\n throw originalErr;\n }\n\n if (stats === undefined) return;\n\n if (stats.isDirectory())\n _rmdirSync(path\x2C options\x2C originalErr);\n else\n _unlinkSync(path\x2C options);\n}\n\n\nmodule.exports = { rimraf\x2C rimrafPromises\x2C rimrafSync };\n code-source-info,0x337ca0b3fbf6,110,0,7095,C0O0C4O7095,, code-creation,Function,10,20441,0x3dda0e0412c6,409, node:internal/fs/rimraf:1:1,0x337ca0b3fb70,~ code-source-info,0x3dda0e0412c6,110,0,7095,C0O0C139O368C145O393C151O404C156O450C159O450C164O439C170O480C173O480C177O480C179O642C182O505C188O514C194O527C200O536C206O549C212O560C218O575C224O584C230O597C236O605C242O617C248O627C254O662C257O662C262O654C267O702C270O702C275O687C281O739C284O739C289O729C295O792C302O792C307O792C309O863C316O863C321O863C323O958C330O967C333O950C335O1001C345O1001C347O1060C357O1060C359O1126C361O1126C363O1154C366O1161C371O1161C376O1154C378O7038C385O7057C391O7065C397O7081C403O7053C408O7094,, code-creation,LazyCompile,10,20551,0x3dda0e04215e,188,from node:buffer:295:28,0x44edd6e4b08,~ script-source,18,node:buffer,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n Array\x2C\n ArrayIsArray\x2C\n ArrayPrototypeForEach\x2C\n Error\x2C\n MathFloor\x2C\n MathMin\x2C\n MathTrunc\x2C\n NumberIsNaN\x2C\n NumberMAX_SAFE_INTEGER\x2C\n NumberMIN_SAFE_INTEGER\x2C\n ObjectCreate\x2C\n ObjectDefineProperties\x2C\n ObjectDefineProperty\x2C\n ObjectSetPrototypeOf\x2C\n StringPrototypeCharCodeAt\x2C\n StringPrototypeReplace\x2C\n StringPrototypeSlice\x2C\n StringPrototypeToLowerCase\x2C\n StringPrototypeTrim\x2C\n SymbolSpecies\x2C\n SymbolToPrimitive\x2C\n TypedArrayPrototypeGetByteLength\x2C\n TypedArrayPrototypeFill\x2C\n TypedArrayPrototypeSet\x2C\n Uint8Array\x2C\n Uint8ArrayPrototype\x2C\n} = primordials;\n\nconst {\n byteLengthUtf8\x2C\n compare: _compare\x2C\n compareOffset\x2C\n createFromString\x2C\n fill: bindingFill\x2C\n indexOfBuffer\x2C\n indexOfNumber\x2C\n indexOfString\x2C\n swap16: _swap16\x2C\n swap32: _swap32\x2C\n swap64: _swap64\x2C\n kMaxLength\x2C\n kStringMaxLength\n} = internalBinding('buffer');\nconst {\n getOwnNonIndexProperties\x2C\n propertyFilter: {\n ALL_PROPERTIES\x2C\n ONLY_ENUMERABLE\n }\x2C\n} = internalBinding('util');\nconst {\n customInspectSymbol\x2C\n isInsideNodeModules\x2C\n lazyDOMException\x2C\n normalizeEncoding\x2C\n kIsEncodingSymbol\n} = require('internal/util');\nconst {\n isAnyArrayBuffer\x2C\n isArrayBufferView\x2C\n isUint8Array\n} = require('internal/util/types');\nconst {\n inspect: utilInspect\n} = require('internal/util/inspect');\nconst { encodings } = internalBinding('string_decoder');\n\nconst {\n codes: {\n ERR_BUFFER_OUT_OF_BOUNDS\x2C\n ERR_INVALID_ARG_TYPE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_INVALID_BUFFER_SIZE\x2C\n ERR_OUT_OF_RANGE\x2C\n ERR_UNKNOWN_ENCODING\n }\x2C\n hideStackFrames\n} = require('internal/errors');\nconst {\n validateArray\x2C\n validateBuffer\x2C\n validateNumber\x2C\n validateInteger\x2C\n validateString\n} = require('internal/validators');\n// Provide validateInteger() but with kMaxLength as the default maximum value.\nconst validateOffset = (value\x2C name\x2C min = 0\x2C max = kMaxLength) =>\n validateInteger(value\x2C name\x2C min\x2C max);\n\nconst {\n FastBuffer\x2C\n markAsUntransferable\x2C\n addBufferPrototypeMethods\x2C\n createUnsafeBuffer\n} = require('internal/buffer');\n\nconst {\n Blob\x2C\n resolveObjectURL\x2C\n} = require('internal/blob');\n\nFastBuffer.prototype.constructor = Buffer;\nBuffer.prototype = FastBuffer.prototype;\naddBufferPrototypeMethods(Buffer.prototype);\n\nconst constants = ObjectDefineProperties({}\x2C {\n MAX_LENGTH: {\n value: kMaxLength\x2C\n writable: false\x2C\n enumerable: true\n }\x2C\n MAX_STRING_LENGTH: {\n value: kStringMaxLength\x2C\n writable: false\x2C\n enumerable: true\n }\n});\n\nBuffer.poolSize = 8 * 1024;\nlet poolSize\x2C poolOffset\x2C allocPool;\n\nconst encodingsMap = ObjectCreate(null);\nfor (let i = 0; i < encodings.length; ++i)\n encodingsMap[encodings[i]] = i;\n\nfunction createPool() {\n poolSize = Buffer.poolSize;\n allocPool = createUnsafeBuffer(poolSize).buffer;\n markAsUntransferable(allocPool);\n poolOffset = 0;\n}\ncreatePool();\n\nfunction alignPool() {\n // Ensure aligned slices\n if (poolOffset & 0x7) {\n poolOffset |= 0x7;\n poolOffset++;\n }\n}\n\nlet bufferWarningAlreadyEmitted = false;\nlet nodeModulesCheckCounter = 0;\nconst bufferWarning = 'Buffer() is deprecated due to security and usability ' +\n 'issues. Please use the Buffer.alloc()\x2C ' +\n 'Buffer.allocUnsafe()\x2C or Buffer.from() methods instead.';\n\nfunction showFlaggedDeprecation() {\n if (bufferWarningAlreadyEmitted ||\n ++nodeModulesCheckCounter > 10000 ||\n (!require('internal/options').getOptionValue('--pending-deprecation') &&\n isInsideNodeModules())) {\n // We don't emit a warning\x2C because we either:\n // - Already did so\x2C or\n // - Already checked too many times whether a call is coming\n // from node_modules and want to stop slowing down things\x2C or\n // - We aren't running with `--pending-deprecation` enabled\x2C\n // and the code is inside `node_modules`.\n return;\n }\n\n process.emitWarning(bufferWarning\x2C 'DeprecationWarning'\x2C 'DEP0005');\n bufferWarningAlreadyEmitted = true;\n}\n\nfunction toInteger(n\x2C defaultVal) {\n n = +n;\n if (!NumberIsNaN(n) &&\n n >= NumberMIN_SAFE_INTEGER &&\n n <= NumberMAX_SAFE_INTEGER) {\n return ((n % 1) === 0 ? n : MathFloor(n));\n }\n return defaultVal;\n}\n\nfunction _copy(source\x2C target\x2C targetStart\x2C sourceStart\x2C sourceEnd) {\n if (!isUint8Array(source))\n throw new ERR_INVALID_ARG_TYPE('source'\x2C ['Buffer'\x2C 'Uint8Array']\x2C source);\n if (!isUint8Array(target))\n throw new ERR_INVALID_ARG_TYPE('target'\x2C ['Buffer'\x2C 'Uint8Array']\x2C target);\n\n if (targetStart === undefined) {\n targetStart = 0;\n } else {\n targetStart = toInteger(targetStart\x2C 0);\n if (targetStart < 0)\n throw new ERR_OUT_OF_RANGE('targetStart'\x2C '>= 0'\x2C targetStart);\n }\n\n if (sourceStart === undefined) {\n sourceStart = 0;\n } else {\n sourceStart = toInteger(sourceStart\x2C 0);\n if (sourceStart < 0)\n throw new ERR_OUT_OF_RANGE('sourceStart'\x2C '>= 0'\x2C sourceStart);\n }\n\n if (sourceEnd === undefined) {\n sourceEnd = source.length;\n } else {\n sourceEnd = toInteger(sourceEnd\x2C 0);\n if (sourceEnd < 0)\n throw new ERR_OUT_OF_RANGE('sourceEnd'\x2C '>= 0'\x2C sourceEnd);\n }\n\n if (targetStart >= target.length || sourceStart >= sourceEnd)\n return 0;\n\n if (sourceStart > source.length) {\n throw new ERR_OUT_OF_RANGE('sourceStart'\x2C\n `<= ${source.length}`\x2C\n sourceStart);\n }\n\n return _copyActual(source\x2C target\x2C targetStart\x2C sourceStart\x2C sourceEnd);\n}\n\nfunction _copyActual(source\x2C target\x2C targetStart\x2C sourceStart\x2C sourceEnd) {\n if (sourceEnd - sourceStart > target.length - targetStart)\n sourceEnd = sourceStart + target.length - targetStart;\n\n let nb = sourceEnd - sourceStart;\n const sourceLen = source.length - sourceStart;\n if (nb > sourceLen)\n nb = sourceLen;\n\n if (sourceStart !== 0 || sourceEnd < source.length)\n source = new Uint8Array(source.buffer\x2C source.byteOffset + sourceStart\x2C nb);\n\n TypedArrayPrototypeSet(target\x2C source\x2C targetStart);\n\n return nb;\n}\n\n/**\n * The Buffer() constructor is deprecated in documentation and should not be\n * used moving forward. Rather\x2C developers should use one of the three new\n * factory APIs: Buffer.from()\x2C Buffer.allocUnsafe() or Buffer.alloc() based on\n * their specific needs. There is no runtime deprecation because of the extent\n * to which the Buffer constructor is used in the ecosystem currently -- a\n * runtime deprecation would introduce too much breakage at this time. It's not\n * likely that the Buffer constructors would ever actually be removed.\n * Deprecation Code: DEP0005\n */\nfunction Buffer(arg\x2C encodingOrOffset\x2C length) {\n showFlaggedDeprecation();\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new ERR_INVALID_ARG_TYPE('string'\x2C 'string'\x2C arg);\n }\n return Buffer.alloc(arg);\n }\n return Buffer.from(arg\x2C encodingOrOffset\x2C length);\n}\n\nObjectDefineProperty(Buffer\x2C SymbolSpecies\x2C {\n enumerable: false\x2C\n configurable: true\x2C\n get() { return FastBuffer; }\n});\n\n/**\n * Functionally equivalent to Buffer(arg\x2C encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[\x2C encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[\x2C byteOffset[\x2C length]])\n */\nBuffer.from = function from(value\x2C encodingOrOffset\x2C length) {\n if (typeof value === 'string')\n return fromString(value\x2C encodingOrOffset);\n\n if (typeof value === 'object' && value !== null) {\n if (isAnyArrayBuffer(value))\n return fromArrayBuffer(value\x2C encodingOrOffset\x2C length);\n\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null &&\n valueOf !== value &&\n (typeof valueOf === 'string' || typeof valueOf === 'object')) {\n return from(valueOf\x2C encodingOrOffset\x2C length);\n }\n\n const b = fromObject(value);\n if (b)\n return b;\n\n if (typeof value[SymbolToPrimitive] === 'function') {\n const primitive = value[SymbolToPrimitive]('string');\n if (typeof primitive === 'string') {\n return fromString(primitive\x2C encodingOrOffset);\n }\n }\n }\n\n throw new ERR_INVALID_ARG_TYPE(\n 'first argument'\x2C\n ['string'\x2C 'Buffer'\x2C 'ArrayBuffer'\x2C 'Array'\x2C 'Array-like Object']\x2C\n value\n );\n};\n\n// Identical to the built-in %TypedArray%.of()\x2C but avoids using the deprecated\n// Buffer() constructor. Must use arrow function syntax to avoid automatically\n// adding a `prototype` property and making the function a constructor.\n//\n// Refs: https://tc39.github.io/ecma262/#sec-%typedarray%.of\n// Refs: https://esdiscuss.org/topic/isconstructor#content-11\nconst of = (...items) => {\n const newObj = createUnsafeBuffer(items.length);\n for (let k = 0; k < items.length; k++)\n newObj[k] = items[k];\n return newObj;\n};\nBuffer.of = of;\n\nObjectSetPrototypeOf(Buffer\x2C Uint8Array);\n\n// The 'assertSize' method will remove itself from the callstack when an error\n// occurs. This is done simply to keep the internal details of the\n// implementation from bleeding out to users.\nconst assertSize = hideStackFrames((size) => {\n validateNumber(size\x2C 'size');\n if (!(size >= 0 && size <= kMaxLength)) {\n throw new ERR_INVALID_ARG_VALUE.RangeError('size'\x2C size);\n }\n});\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[\x2C fill[\x2C encoding]])\n */\nBuffer.alloc = function alloc(size\x2C fill\x2C encoding) {\n assertSize(size);\n if (fill !== undefined && fill !== 0 && size > 0) {\n const buf = createUnsafeBuffer(size);\n return _fill(buf\x2C fill\x2C 0\x2C buf.length\x2C encoding);\n }\n return new FastBuffer(size);\n};\n\n/**\n * Equivalent to Buffer(num)\x2C by default creates a non-zero-filled Buffer\n * instance. If `--zero-fill-buffers` is set\x2C will zero-fill the buffer.\n */\nBuffer.allocUnsafe = function allocUnsafe(size) {\n assertSize(size);\n return allocate(size);\n};\n\n/**\n * Equivalent to SlowBuffer(num)\x2C by default creates a non-zero-filled\n * Buffer instance that is not allocated off the pre-initialized pool.\n * If `--zero-fill-buffers` is set\x2C will zero-fill the buffer.\n */\nBuffer.allocUnsafeSlow = function allocUnsafeSlow(size) {\n assertSize(size);\n return createUnsafeBuffer(size);\n};\n\n// If --zero-fill-buffers command line argument is set\x2C a zero-filled\n// buffer is returned.\nfunction SlowBuffer(length) {\n assertSize(length);\n return createUnsafeBuffer(length);\n}\n\nObjectSetPrototypeOf(SlowBuffer.prototype\x2C Uint8ArrayPrototype);\nObjectSetPrototypeOf(SlowBuffer\x2C Uint8Array);\n\nfunction allocate(size) {\n if (size <= 0) {\n return new FastBuffer();\n }\n if (size < (Buffer.poolSize >>> 1)) {\n if (size > (poolSize - poolOffset))\n createPool();\n const b = new FastBuffer(allocPool\x2C poolOffset\x2C size);\n poolOffset += size;\n alignPool();\n return b;\n }\n return createUnsafeBuffer(size);\n}\n\nfunction fromStringFast(string\x2C ops) {\n const length = ops.byteLength(string);\n\n if (length >= (Buffer.poolSize >>> 1))\n return createFromString(string\x2C ops.encodingVal);\n\n if (length > (poolSize - poolOffset))\n createPool();\n let b = new FastBuffer(allocPool\x2C poolOffset\x2C length);\n const actual = ops.write(b\x2C string\x2C 0\x2C length);\n if (actual !== length) {\n // byteLength() may overestimate. That's a rare case\x2C though.\n b = new FastBuffer(allocPool\x2C poolOffset\x2C actual);\n }\n poolOffset += actual;\n alignPool();\n return b;\n}\n\nfunction fromString(string\x2C encoding) {\n let ops;\n if (typeof encoding !== 'string' || encoding.length === 0) {\n if (string.length === 0)\n return new FastBuffer();\n ops = encodingOps.utf8;\n encoding = undefined;\n } else {\n ops = getEncodingOps(encoding);\n if (ops === undefined)\n throw new ERR_UNKNOWN_ENCODING(encoding);\n if (string.length === 0)\n return new FastBuffer();\n }\n return fromStringFast(string\x2C ops);\n}\n\nfunction fromArrayBuffer(obj\x2C byteOffset\x2C length) {\n // Convert byteOffset to integer\n if (byteOffset === undefined) {\n byteOffset = 0;\n } else {\n byteOffset = +byteOffset;\n if (NumberIsNaN(byteOffset))\n byteOffset = 0;\n }\n\n const maxLength = obj.byteLength - byteOffset;\n\n if (maxLength < 0)\n throw new ERR_BUFFER_OUT_OF_BOUNDS('offset');\n\n if (length === undefined) {\n length = maxLength;\n } else {\n // Convert length to non-negative integer.\n length = +length;\n if (length > 0) {\n if (length > maxLength)\n throw new ERR_BUFFER_OUT_OF_BOUNDS('length');\n } else {\n length = 0;\n }\n }\n\n return new FastBuffer(obj\x2C byteOffset\x2C length);\n}\n\nfunction fromArrayLike(obj) {\n if (obj.length <= 0)\n return new FastBuffer();\n if (obj.length < (Buffer.poolSize >>> 1)) {\n if (obj.length > (poolSize - poolOffset))\n createPool();\n const b = new FastBuffer(allocPool\x2C poolOffset\x2C obj.length);\n TypedArrayPrototypeSet(b\x2C obj\x2C 0);\n poolOffset += obj.length;\n alignPool();\n return b;\n }\n return new FastBuffer(obj);\n}\n\nfunction fromObject(obj) {\n if (obj.length !== undefined || isAnyArrayBuffer(obj.buffer)) {\n if (typeof obj.length !== 'number') {\n return new FastBuffer();\n }\n return fromArrayLike(obj);\n }\n\n if (obj.type === 'Buffer' && ArrayIsArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n}\n\n// Static methods\n\nBuffer.isBuffer = function isBuffer(b) {\n return b instanceof Buffer;\n};\n\nBuffer.compare = function compare(buf1\x2C buf2) {\n if (!isUint8Array(buf1)) {\n throw new ERR_INVALID_ARG_TYPE('buf1'\x2C ['Buffer'\x2C 'Uint8Array']\x2C buf1);\n }\n\n if (!isUint8Array(buf2)) {\n throw new ERR_INVALID_ARG_TYPE('buf2'\x2C ['Buffer'\x2C 'Uint8Array']\x2C buf2);\n }\n\n if (buf1 === buf2) {\n return 0;\n }\n\n return _compare(buf1\x2C buf2);\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n return typeof encoding === 'string' && encoding.length !== 0 &&\n normalizeEncoding(encoding) !== undefined;\n};\nBuffer[kIsEncodingSymbol] = Buffer.isEncoding;\n\nBuffer.concat = function concat(list\x2C length) {\n validateArray(list\x2C 'list');\n\n if (list.length === 0)\n return new FastBuffer();\n\n if (length === undefined) {\n length = 0;\n for (let i = 0; i < list.length; i++) {\n if (list[i].length) {\n length += list[i].length;\n }\n }\n } else {\n validateOffset(length\x2C 'length');\n }\n\n const buffer = Buffer.allocUnsafe(length);\n let pos = 0;\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n if (!isUint8Array(buf)) {\n // TODO(BridgeAR): This should not be of type ERR_INVALID_ARG_TYPE.\n // Instead\x2C find the proper error code for this.\n throw new ERR_INVALID_ARG_TYPE(\n `list[${i}]`\x2C ['Buffer'\x2C 'Uint8Array']\x2C list[i]);\n }\n pos += _copyActual(buf\x2C buffer\x2C pos\x2C 0\x2C buf.length);\n }\n\n // Note: `length` is always equal to `buffer.length` at this point\n if (pos < length) {\n // Zero-fill the remaining bytes if the specified `length` was more than\n // the actual total length\x2C i.e. if we have some remaining allocated bytes\n // there were not initialized.\n TypedArrayPrototypeFill(buffer\x2C 0\x2C pos\x2C length);\n }\n\n return buffer;\n};\n\nfunction base64ByteLength(str\x2C bytes) {\n // Handle padding\n if (StringPrototypeCharCodeAt(str\x2C bytes - 1) === 0x3D)\n bytes--;\n if (bytes > 1 && StringPrototypeCharCodeAt(str\x2C bytes - 1) === 0x3D)\n bytes--;\n\n // Base64 ratio: 3/4\n return (bytes * 3) >>> 2;\n}\n\nconst encodingOps = {\n utf8: {\n encoding: 'utf8'\x2C\n encodingVal: encodingsMap.utf8\x2C\n byteLength: byteLengthUtf8\x2C\n write: (buf\x2C string\x2C offset\x2C len) => buf.utf8Write(string\x2C offset\x2C len)\x2C\n slice: (buf\x2C start\x2C end) => buf.utf8Slice(start\x2C end)\x2C\n indexOf: (buf\x2C val\x2C byteOffset\x2C dir) =>\n indexOfString(buf\x2C val\x2C byteOffset\x2C encodingsMap.utf8\x2C dir)\n }\x2C\n ucs2: {\n encoding: 'ucs2'\x2C\n encodingVal: encodingsMap.utf16le\x2C\n byteLength: (string) => string.length * 2\x2C\n write: (buf\x2C string\x2C offset\x2C len) => buf.ucs2Write(string\x2C offset\x2C len)\x2C\n slice: (buf\x2C start\x2C end) => buf.ucs2Slice(start\x2C end)\x2C\n indexOf: (buf\x2C val\x2C byteOffset\x2C dir) =>\n indexOfString(buf\x2C val\x2C byteOffset\x2C encodingsMap.utf16le\x2C dir)\n }\x2C\n utf16le: {\n encoding: 'utf16le'\x2C\n encodingVal: encodingsMap.utf16le\x2C\n byteLength: (string) => string.length * 2\x2C\n write: (buf\x2C string\x2C offset\x2C len) => buf.ucs2Write(string\x2C offset\x2C len)\x2C\n slice: (buf\x2C start\x2C end) => buf.ucs2Slice(start\x2C end)\x2C\n indexOf: (buf\x2C val\x2C byteOffset\x2C dir) =>\n indexOfString(buf\x2C val\x2C byteOffset\x2C encodingsMap.utf16le\x2C dir)\n }\x2C\n latin1: {\n encoding: 'latin1'\x2C\n encodingVal: encodingsMap.latin1\x2C\n byteLength: (string) => string.length\x2C\n write: (buf\x2C string\x2C offset\x2C len) => buf.latin1Write(string\x2C offset\x2C len)\x2C\n slice: (buf\x2C start\x2C end) => buf.latin1Slice(start\x2C end)\x2C\n indexOf: (buf\x2C val\x2C byteOffset\x2C dir) =>\n indexOfString(buf\x2C val\x2C byteOffset\x2C encodingsMap.latin1\x2C dir)\n }\x2C\n ascii: {\n encoding: 'ascii'\x2C\n encodingVal: encodingsMap.ascii\x2C\n byteLength: (string) => string.length\x2C\n write: (buf\x2C string\x2C offset\x2C len) => buf.asciiWrite(string\x2C offset\x2C len)\x2C\n slice: (buf\x2C start\x2C end) => buf.asciiSlice(start\x2C end)\x2C\n indexOf: (buf\x2C val\x2C byteOffset\x2C dir) =>\n indexOfBuffer(buf\x2C\n fromStringFast(val\x2C encodingOps.ascii)\x2C\n byteOffset\x2C\n encodingsMap.ascii\x2C\n dir)\n }\x2C\n base64: {\n encoding: 'base64'\x2C\n encodingVal: encodingsMap.base64\x2C\n byteLength: (string) => base64ByteLength(string\x2C string.length)\x2C\n write: (buf\x2C string\x2C offset\x2C len) => buf.base64Write(string\x2C offset\x2C len)\x2C\n slice: (buf\x2C start\x2C end) => buf.base64Slice(start\x2C end)\x2C\n indexOf: (buf\x2C val\x2C byteOffset\x2C dir) =>\n indexOfBuffer(buf\x2C\n fromStringFast(val\x2C encodingOps.base64)\x2C\n byteOffset\x2C\n encodingsMap.base64\x2C\n dir)\n }\x2C\n base64url: {\n encoding: 'base64url'\x2C\n encodingVal: encodingsMap.base64url\x2C\n byteLength: (string) => base64ByteLength(string\x2C string.length)\x2C\n write: (buf\x2C string\x2C offset\x2C len) =>\n buf.base64urlWrite(string\x2C offset\x2C len)\x2C\n slice: (buf\x2C start\x2C end) => buf.base64urlSlice(start\x2C end)\x2C\n indexOf: (buf\x2C val\x2C byteOffset\x2C dir) =>\n indexOfBuffer(buf\x2C\n fromStringFast(val\x2C encodingOps.base64url)\x2C\n byteOffset\x2C\n encodingsMap.base64url\x2C\n dir)\n }\x2C\n hex: {\n encoding: 'hex'\x2C\n encodingVal: encodingsMap.hex\x2C\n byteLength: (string) => string.length >>> 1\x2C\n write: (buf\x2C string\x2C offset\x2C len) => buf.hexWrite(string\x2C offset\x2C len)\x2C\n slice: (buf\x2C start\x2C end) => buf.hexSlice(start\x2C end)\x2C\n indexOf: (buf\x2C val\x2C byteOffset\x2C dir) =>\n indexOfBuffer(buf\x2C\n fromStringFast(val\x2C encodingOps.hex)\x2C\n byteOffset\x2C\n encodingsMap.hex\x2C\n dir)\n }\n};\nfunction getEncodingOps(encoding) {\n encoding += '';\n switch (encoding.length) {\n case 4:\n if (encoding === 'utf8') return encodingOps.utf8;\n if (encoding === 'ucs2') return encodingOps.ucs2;\n encoding = StringPrototypeToLowerCase(encoding);\n if (encoding === 'utf8') return encodingOps.utf8;\n if (encoding === 'ucs2') return encodingOps.ucs2;\n break;\n case 5:\n if (encoding === 'utf-8') return encodingOps.utf8;\n if (encoding === 'ascii') return encodingOps.ascii;\n if (encoding === 'ucs-2') return encodingOps.ucs2;\n encoding = StringPrototypeToLowerCase(encoding);\n if (encoding === 'utf-8') return encodingOps.utf8;\n if (encoding === 'ascii') return encodingOps.ascii;\n if (encoding === 'ucs-2') return encodingOps.ucs2;\n break;\n case 7:\n if (encoding === 'utf16le' ||\n StringPrototypeToLowerCase(encoding) === 'utf16le')\n return encodingOps.utf16le;\n break;\n case 8:\n if (encoding === 'utf-16le' ||\n StringPrototypeToLowerCase(encoding) === 'utf-16le')\n return encodingOps.utf16le;\n break;\n case 6:\n if (encoding === 'latin1' || encoding === 'binary')\n return encodingOps.latin1;\n if (encoding === 'base64') return encodingOps.base64;\n encoding = StringPrototypeToLowerCase(encoding);\n if (encoding === 'latin1' || encoding === 'binary')\n return encodingOps.latin1;\n if (encoding === 'base64') return encodingOps.base64;\n break;\n case 3:\n if (encoding === 'hex' || StringPrototypeToLowerCase(encoding) === 'hex')\n return encodingOps.hex;\n break;\n case 9:\n if (encoding === 'base64url' ||\n StringPrototypeToLowerCase(encoding) === 'base64url')\n return encodingOps.base64url;\n break;\n }\n}\n\nfunction byteLength(string\x2C encoding) {\n if (typeof string !== 'string') {\n if (isArrayBufferView(string) || isAnyArrayBuffer(string)) {\n return string.byteLength;\n }\n\n throw new ERR_INVALID_ARG_TYPE(\n 'string'\x2C ['string'\x2C 'Buffer'\x2C 'ArrayBuffer']\x2C string\n );\n }\n\n const len = string.length;\n const mustMatch = (arguments.length > 2 && arguments[2] === true);\n if (!mustMatch && len === 0)\n return 0;\n\n if (!encoding)\n return (mustMatch ? -1 : byteLengthUtf8(string));\n\n const ops = getEncodingOps(encoding);\n if (ops === undefined)\n return (mustMatch ? -1 : byteLengthUtf8(string));\n return ops.byteLength(string);\n}\n\nBuffer.byteLength = byteLength;\n\n// For backwards compatibility.\nObjectDefineProperty(Buffer.prototype\x2C 'parent'\x2C {\n enumerable: true\x2C\n get() {\n if (!(this instanceof Buffer))\n return undefined;\n return this.buffer;\n }\n});\nObjectDefineProperty(Buffer.prototype\x2C 'offset'\x2C {\n enumerable: true\x2C\n get() {\n if (!(this instanceof Buffer))\n return undefined;\n return this.byteOffset;\n }\n});\n\nBuffer.prototype.copy =\n function copy(target\x2C targetStart\x2C sourceStart\x2C sourceEnd) {\n return _copy(this\x2C target\x2C targetStart\x2C sourceStart\x2C sourceEnd);\n };\n\n// No need to verify that "buf.length <= MAX_UINT32" since it's a read-only\n// property of a typed array.\n// This behaves neither like String nor Uint8Array in that we set start/end\n// to their upper/lower bounds if the value passed is out of range.\nBuffer.prototype.toString = function toString(encoding\x2C start\x2C end) {\n if (arguments.length === 0) {\n return this.utf8Slice(0\x2C this.length);\n }\n\n const len = this.length;\n\n if (start <= 0)\n start = 0;\n else if (start >= len)\n return '';\n else\n start |= 0;\n\n if (end === undefined || end > len)\n end = len;\n else\n end |= 0;\n\n if (end <= start)\n return '';\n\n if (encoding === undefined)\n return this.utf8Slice(start\x2C end);\n\n const ops = getEncodingOps(encoding);\n if (ops === undefined)\n throw new ERR_UNKNOWN_ENCODING(encoding);\n\n return ops.slice(this\x2C start\x2C end);\n};\n\nBuffer.prototype.equals = function equals(otherBuffer) {\n if (!isUint8Array(otherBuffer)) {\n throw new ERR_INVALID_ARG_TYPE(\n 'otherBuffer'\x2C ['Buffer'\x2C 'Uint8Array']\x2C otherBuffer);\n }\n\n if (this === otherBuffer)\n return true;\n\n if (this.byteLength !== otherBuffer.byteLength)\n return false;\n\n return this.byteLength === 0 || _compare(this\x2C otherBuffer) === 0;\n};\n\nlet INSPECT_MAX_BYTES = 50;\n// Override how buffers are presented by util.inspect().\nBuffer.prototype[customInspectSymbol] = function inspect(recurseTimes\x2C ctx) {\n const max = INSPECT_MAX_BYTES;\n const actualMax = MathMin(max\x2C this.length);\n const remaining = this.length - max;\n let str = StringPrototypeTrim(StringPrototypeReplace(\n this.hexSlice(0\x2C actualMax)\x2C /(.{2})/g\x2C '$1 '));\n if (remaining > 0)\n str += ` ... ${remaining} more byte${remaining > 1 ? 's' : ''}`;\n // Inspect special properties as well\x2C if possible.\n if (ctx) {\n let extras = false;\n const filter = ctx.showHidden ? ALL_PROPERTIES : ONLY_ENUMERABLE;\n const obj = ObjectCreate(null);\n ArrayPrototypeForEach(getOwnNonIndexProperties(this\x2C filter)\x2C\n (key) => {\n extras = true;\n obj[key] = this[key];\n });\n if (extras) {\n if (this.length !== 0)\n str += '\x2C ';\n // '[Object: null prototype] {'.length === 26\n // This is guarded with a test.\n str += StringPrototypeSlice(utilInspect(obj\x2C {\n ...ctx\x2C\n breakLength: Infinity\x2C\n compact: true\n })\x2C 27\x2C -2);\n }\n }\n return `<${this.constructor.name} ${str}>`;\n};\nBuffer.prototype.inspect = Buffer.prototype[customInspectSymbol];\n\nBuffer.prototype.compare = function compare(target\x2C\n targetStart\x2C\n targetEnd\x2C\n sourceStart\x2C\n sourceEnd) {\n if (!isUint8Array(target)) {\n throw new ERR_INVALID_ARG_TYPE('target'\x2C ['Buffer'\x2C 'Uint8Array']\x2C target);\n }\n if (arguments.length === 1)\n return _compare(this\x2C target);\n\n if (targetStart === undefined)\n targetStart = 0;\n else\n validateOffset(targetStart\x2C 'targetStart');\n\n if (targetEnd === undefined)\n targetEnd = target.length;\n else\n validateOffset(targetEnd\x2C 'targetEnd'\x2C 0\x2C target.length);\n\n if (sourceStart === undefined)\n sourceStart = 0;\n else\n validateOffset(sourceStart\x2C 'sourceStart');\n\n if (sourceEnd === undefined)\n sourceEnd = this.length;\n else\n validateOffset(sourceEnd\x2C 'sourceEnd'\x2C 0\x2C this.length);\n\n if (sourceStart >= sourceEnd)\n return (targetStart >= targetEnd ? 0 : -1);\n if (targetStart >= targetEnd)\n return 1;\n\n return compareOffset(this\x2C target\x2C targetStart\x2C sourceStart\x2C targetEnd\x2C\n sourceEnd);\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`\x2C\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string\x2C Buffer\x2C or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding\x2C relevant if val is a string\n// - dir - true for indexOf\x2C false for lastIndexOf\nfunction bidirectionalIndexOf(buffer\x2C val\x2C byteOffset\x2C encoding\x2C dir) {\n validateBuffer(buffer);\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = undefined;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n // Coerce to Number. Values like null and [] become 0.\n byteOffset = +byteOffset;\n // If the offset is undefined\x2C "foo"\x2C {}\x2C coerces to NaN\x2C search whole buffer.\n if (NumberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : (buffer.length || buffer.byteLength);\n }\n dir = !!dir; // Cast to bool.\n\n if (typeof val === 'number')\n return indexOfNumber(buffer\x2C val >>> 0\x2C byteOffset\x2C dir);\n\n let ops;\n if (encoding === undefined)\n ops = encodingOps.utf8;\n else\n ops = getEncodingOps(encoding);\n\n if (typeof val === 'string') {\n if (ops === undefined)\n throw new ERR_UNKNOWN_ENCODING(encoding);\n return ops.indexOf(buffer\x2C val\x2C byteOffset\x2C dir);\n }\n\n if (isUint8Array(val)) {\n const encodingVal =\n (ops === undefined ? encodingsMap.utf8 : ops.encodingVal);\n return indexOfBuffer(buffer\x2C val\x2C byteOffset\x2C encodingVal\x2C dir);\n }\n\n throw new ERR_INVALID_ARG_TYPE(\n 'value'\x2C ['number'\x2C 'string'\x2C 'Buffer'\x2C 'Uint8Array']\x2C val\n );\n}\n\nBuffer.prototype.indexOf = function indexOf(val\x2C byteOffset\x2C encoding) {\n return bidirectionalIndexOf(this\x2C val\x2C byteOffset\x2C encoding\x2C true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val\x2C byteOffset\x2C encoding) {\n return bidirectionalIndexOf(this\x2C val\x2C byteOffset\x2C encoding\x2C false);\n};\n\nBuffer.prototype.includes = function includes(val\x2C byteOffset\x2C encoding) {\n return this.indexOf(val\x2C byteOffset\x2C encoding) !== -1;\n};\n\n// Usage:\n// buffer.fill(number[\x2C offset[\x2C end]])\n// buffer.fill(buffer[\x2C offset[\x2C end]])\n// buffer.fill(string[\x2C offset[\x2C end]][\x2C encoding])\nBuffer.prototype.fill = function fill(value\x2C offset\x2C end\x2C encoding) {\n return _fill(this\x2C value\x2C offset\x2C end\x2C encoding);\n};\n\nfunction _fill(buf\x2C value\x2C offset\x2C end\x2C encoding) {\n if (typeof value === 'string') {\n if (offset === undefined || typeof offset === 'string') {\n encoding = offset;\n offset = 0;\n end = buf.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = buf.length;\n }\n\n const normalizedEncoding = normalizeEncoding(encoding);\n if (normalizedEncoding === undefined) {\n validateString(encoding\x2C 'encoding');\n throw new ERR_UNKNOWN_ENCODING(encoding);\n }\n\n if (value.length === 0) {\n // If value === '' default to zero.\n value = 0;\n } else if (value.length === 1) {\n // Fast path: If `value` fits into a single byte\x2C use that numeric value.\n if (normalizedEncoding === 'utf8') {\n const code = StringPrototypeCharCodeAt(value\x2C 0);\n if (code < 128) {\n value = code;\n }\n } else if (normalizedEncoding === 'latin1') {\n value = StringPrototypeCharCodeAt(value\x2C 0);\n }\n }\n } else {\n encoding = undefined;\n }\n\n if (offset === undefined) {\n offset = 0;\n end = buf.length;\n } else {\n validateOffset(offset\x2C 'offset');\n // Invalid ranges are not set to a default\x2C so can range check early.\n if (end === undefined) {\n end = buf.length;\n } else {\n validateOffset(end\x2C 'end'\x2C 0\x2C buf.length);\n }\n if (offset >= end)\n return buf;\n }\n\n\n if (typeof value === 'number') {\n // OOB check\n const byteLen = TypedArrayPrototypeGetByteLength(buf);\n const fillLength = end - offset;\n if (offset > end || fillLength + offset > byteLen)\n throw new ERR_BUFFER_OUT_OF_BOUNDS();\n\n TypedArrayPrototypeFill(buf\x2C value\x2C offset\x2C end);\n } else {\n const res = bindingFill(buf\x2C value\x2C offset\x2C end\x2C encoding);\n if (res < 0) {\n if (res === -1)\n throw new ERR_INVALID_ARG_VALUE('value'\x2C value);\n throw new ERR_BUFFER_OUT_OF_BOUNDS();\n }\n }\n\n return buf;\n}\n\nBuffer.prototype.write = function write(string\x2C offset\x2C length\x2C encoding) {\n // Buffer#write(string);\n if (offset === undefined) {\n return this.utf8Write(string\x2C 0\x2C this.length);\n }\n // Buffer#write(string\x2C encoding)\n if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n\n // Buffer#write(string\x2C offset[\x2C length][\x2C encoding])\n } else {\n validateOffset(offset\x2C 'offset'\x2C 0\x2C this.length);\n\n const remaining = this.length - offset;\n\n if (length === undefined) {\n length = remaining;\n } else if (typeof length === 'string') {\n encoding = length;\n length = remaining;\n } else {\n validateOffset(length\x2C 'length'\x2C 0\x2C this.length);\n if (length > remaining)\n length = remaining;\n }\n }\n\n if (!encoding)\n return this.utf8Write(string\x2C offset\x2C length);\n\n const ops = getEncodingOps(encoding);\n if (ops === undefined)\n throw new ERR_UNKNOWN_ENCODING(encoding);\n return ops.write(this\x2C string\x2C offset\x2C length);\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n if (this.length > 0) {\n const data = new Array(this.length);\n for (let i = 0; i < this.length; ++i)\n data[i] = this[i];\n return { type: 'Buffer'\x2C data };\n }\n return { type: 'Buffer'\x2C data: [] };\n};\n\nfunction adjustOffset(offset\x2C length) {\n // Use Math.trunc() to convert offset to an integer value that can be larger\n // than an Int32. Hence\x2C don't use offset | 0 or similar techniques.\n offset = MathTrunc(offset);\n if (offset === 0) {\n return 0;\n }\n if (offset < 0) {\n offset += length;\n return offset > 0 ? offset : 0;\n }\n if (offset < length) {\n return offset;\n }\n return NumberIsNaN(offset) ? 0 : length;\n}\n\nBuffer.prototype.slice = function slice(start\x2C end) {\n const srcLength = this.length;\n start = adjustOffset(start\x2C srcLength);\n end = end !== undefined ? adjustOffset(end\x2C srcLength) : srcLength;\n const newLength = end > start ? end - start : 0;\n return new FastBuffer(this.buffer\x2C this.byteOffset + start\x2C newLength);\n};\n\nfunction swap(b\x2C n\x2C m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n // For Buffer.length < 128\x2C it's generally faster to\n // do the swap in javascript. For larger buffers\x2C\n // dropping down to the native code is faster.\n const len = this.length;\n if (len % 2 !== 0)\n throw new ERR_INVALID_BUFFER_SIZE('16-bits');\n if (len < 128) {\n for (let i = 0; i < len; i += 2)\n swap(this\x2C i\x2C i + 1);\n return this;\n }\n return _swap16(this);\n};\n\nBuffer.prototype.swap32 = function swap32() {\n // For Buffer.length < 192\x2C it's generally faster to\n // do the swap in javascript. For larger buffers\x2C\n // dropping down to the native code is faster.\n const len = this.length;\n if (len % 4 !== 0)\n throw new ERR_INVALID_BUFFER_SIZE('32-bits');\n if (len < 192) {\n for (let i = 0; i < len; i += 4) {\n swap(this\x2C i\x2C i + 3);\n swap(this\x2C i + 1\x2C i + 2);\n }\n return this;\n }\n return _swap32(this);\n};\n\nBuffer.prototype.swap64 = function swap64() {\n // For Buffer.length < 192\x2C it's generally faster to\n // do the swap in javascript. For larger buffers\x2C\n // dropping down to the native code is faster.\n const len = this.length;\n if (len % 8 !== 0)\n throw new ERR_INVALID_BUFFER_SIZE('64-bits');\n if (len < 192) {\n for (let i = 0; i < len; i += 8) {\n swap(this\x2C i\x2C i + 7);\n swap(this\x2C i + 1\x2C i + 6);\n swap(this\x2C i + 2\x2C i + 5);\n swap(this\x2C i + 3\x2C i + 4);\n }\n return this;\n }\n return _swap64(this);\n};\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\nlet transcode;\nif (internalBinding('config').hasIntl) {\n const {\n icuErrName\x2C\n transcode: _transcode\n } = internalBinding('icu');\n\n // Transcodes the Buffer from one encoding to another\x2C returning a new\n // Buffer instance.\n transcode = function transcode(source\x2C fromEncoding\x2C toEncoding) {\n if (!isUint8Array(source)) {\n throw new ERR_INVALID_ARG_TYPE('source'\x2C\n ['Buffer'\x2C 'Uint8Array']\x2C source);\n }\n if (source.length === 0) return Buffer.alloc(0);\n\n fromEncoding = normalizeEncoding(fromEncoding) || fromEncoding;\n toEncoding = normalizeEncoding(toEncoding) || toEncoding;\n const result = _transcode(source\x2C fromEncoding\x2C toEncoding);\n if (typeof result !== 'number')\n return result;\n\n const code = icuErrName(result);\n // eslint-disable-next-line no-restricted-syntax\n const err = new Error(`Unable to transcode Buffer [${code}]`);\n err.code = code;\n err.errno = result;\n throw err;\n };\n}\n\nfunction btoa(input) {\n // The implementation here has not been performance optimized in any way and\n // should not be.\n // Refs: https://github.com/nodejs/node/pull/38433#issuecomment-828426932\n input = `${input}`;\n for (let n = 0; n < input.length; n++) {\n if (input[n].charCodeAt(0) > 0xff)\n throw lazyDOMException('Invalid character'\x2C 'InvalidCharacterError');\n }\n const buf = Buffer.from(input\x2C 'latin1');\n return buf.toString('base64');\n}\n\nconst kBase64Digits =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction atob(input) {\n // The implementation here has not been performance optimized in any way and\n // should not be.\n // Refs: https://github.com/nodejs/node/pull/38433#issuecomment-828426932\n input = `${input}`;\n for (let n = 0; n < input.length; n++) {\n if (!kBase64Digits.includes(input[n]))\n throw lazyDOMException('Invalid character'\x2C 'InvalidCharacterError');\n }\n return Buffer.from(input\x2C 'base64').toString('latin1');\n}\n\nmodule.exports = {\n Blob\x2C\n resolveObjectURL\x2C\n Buffer\x2C\n SlowBuffer\x2C\n transcode\x2C\n // Legacy\n kMaxLength\x2C\n kStringMaxLength\x2C\n btoa\x2C\n atob\x2C\n};\n\nObjectDefineProperties(module.exports\x2C {\n constants: {\n configurable: false\x2C\n enumerable: true\x2C\n value: constants\n }\x2C\n INSPECT_MAX_BYTES: {\n configurable: true\x2C\n enumerable: true\x2C\n get() { return INSPECT_MAX_BYTES; }\x2C\n set(val) { INSPECT_MAX_BYTES = val; }\n }\n});\n code-source-info,0x3dda0e04215e,18,8406,9357,C3O8444C9O8479C12O8486C17O8522C18O8526C28O8581C33O8585C39O8616C51O8623C56O8672C57O8700C63O8717C68O8717C73O8732C78O8771C95O8862C104O8869C109O8909C110O8931C113O8931C118O8954C120O8967C122O8976C123O8982C125O8999C127O8998C134O9060C136O9066C138O9065C145O9084C151O9102C155O9147C158O9154C163O9194C164O9216C182O9222C187O9216,, code-creation,LazyCompile,10,21211,0x3dda0e044b36,110,fromString node:buffer:431:20,0x44edd6e4ef0,~ code-source-info,0x3dda0e044b36,18,12457,12891,C0O12484C2O12491C8O12536C14O12543C19O12567C25O12574C30O12587C35O12594C40O12611C41O12616C46O12634C51O12644C56O12681C59O12687C64O12717C66O12746C73O12752C78O12746C79O12803C85O12810C90O12823C95O12830C100O12847C101O12854C104O12861C109O12889,, LoadIC,0x3dda0e044b49,21222,434,16,X,X,0x268a435c1349,length,, code-creation,LazyCompile,10,21247,0x3dda0e044cee,177,fromStringFast node:buffer:412:24,0x44edd6e4e50,~ code-source-info,0x3dda0e044cee,18,11913,12436,C0O11950C5O11950C11O11973C14O11995C18O12004C21O11984C26O12016C31O12052C36O12023C41O12065C42O12069C44O12083C49O12094C51O12092C54O12080C59O12111C62O12111C65O12135C72O12150C77O12161C85O12135C91O12203C110O12203C116O12234C118O12245C123O12329C130O12348C135O12359C143O12333C149O12386C156O12400C162O12397C168O12410C171O12410C174O12425C176O12434,, code-creation,LazyCompile,10,21266,0x3dda0e044ede,36,FastBuffer node:internal/buffer:958:14,0x44edd6f1a18,~ code-source-info,0x3dda0e044ede,19,26364,26453,C3O26407C7O26441C20O26407C35O26452,, code-creation,LazyCompile,10,21280,0x3dda0e044fde,23,write node:buffer:592:12,0x44edd6e5260,~ code-source-info,0x3dda0e044fde,18,16525,16589,C0O16559C17O16559C22O16589,, LoadIC,0x3dda0e044fde,21287,592,46,X,X,0x38ac3d987e81,utf8Write,, code-creation,LazyCompile,10,21300,0x3dda0e0450ce,42,alignPool node:buffer:158:19,0x44edd6e4888,~ code-source-info,0x3dda0e0450ce,18,3998,4102,C0O4032C4O4047C9O4060C19O4071C25O4083C34O4093C41O4101,, StoreIC,0x3dda0e041447,21320,297,20,X,X,0x000000000000,rimraf,, StoreIC,0x3dda0e04144d,21325,297,28,X,X,0x000000000000,rimrafPromises,, StoreIC,0x3dda0e041453,21328,297,44,X,X,0x000000000000,rimrafSync,, code-creation,LazyCompile,10,21395,0x3dda0e045dee,251,promisify node:internal/util:324:19,0x24d59d72a438,~ script-source,12,node:internal/util,'use strict';\n\nconst {\n ArrayFrom\x2C\n ArrayIsArray\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypeSlice\x2C\n ArrayPrototypeSort\x2C\n Error\x2C\n ObjectCreate\x2C\n ObjectDefineProperties\x2C\n ObjectDefineProperty\x2C\n ObjectGetOwnPropertyDescriptor\x2C\n ObjectGetOwnPropertyDescriptors\x2C\n ObjectGetPrototypeOf\x2C\n ObjectSetPrototypeOf\x2C\n Promise\x2C\n ReflectApply\x2C\n ReflectConstruct\x2C\n RegExpPrototypeExec\x2C\n RegExpPrototypeTest\x2C\n SafeMap\x2C\n SafeSet\x2C\n StringPrototypeReplace\x2C\n StringPrototypeToLowerCase\x2C\n StringPrototypeToUpperCase\x2C\n Symbol\x2C\n SymbolFor\x2C\n} = primordials;\n\nconst {\n hideStackFrames\x2C\n codes: {\n ERR_NO_CRYPTO\x2C\n ERR_UNKNOWN_SIGNAL\n }\x2C\n uvErrmapGet\x2C\n overrideStackTrace\x2C\n} = require('internal/errors');\nconst { signals } = internalBinding('constants').os;\nconst {\n getHiddenValue\x2C\n setHiddenValue\x2C\n arrow_message_private_symbol: kArrowMessagePrivateSymbolIndex\x2C\n decorated_private_symbol: kDecoratedPrivateSymbolIndex\x2C\n sleep: _sleep\x2C\n toUSVString: _toUSVString\x2C\n} = internalBinding('util');\nconst { isNativeError } = internalBinding('types');\n\nconst noCrypto = !process.versions.openssl;\n\nconst experimentalWarnings = new SafeSet();\n\nconst colorRegExp = /\\u001b\\[\\d\\d?m/g; // eslint-disable-line no-control-regex\n\nconst unpairedSurrogateRe =\n /(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])/;\nfunction toUSVString(val) {\n const str = `${val}`;\n // As of V8 5.5\x2C `str.search()` (and `unpairedSurrogateRe[@@search]()`) are\n // slower than `unpairedSurrogateRe.exec()`.\n const match = RegExpPrototypeExec(unpairedSurrogateRe\x2C str);\n if (!match)\n return str;\n return _toUSVString(str\x2C match.index);\n}\n\nlet uvBinding;\n\nfunction lazyUv() {\n uvBinding ??= internalBinding('uv');\n return uvBinding;\n}\n\nfunction removeColors(str) {\n return StringPrototypeReplace(str\x2C colorRegExp\x2C '');\n}\n\nfunction isError(e) {\n // An error could be an instance of Error while not being a native error\n // or could be from a different realm and not be instance of Error but still\n // be a native error.\n return isNativeError(e) || e instanceof Error;\n}\n\n// Keep a list of deprecation codes that have been warned on so we only warn on\n// each one once.\nconst codesWarned = new SafeSet();\n\nlet validateString;\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set\x2C then it is a no-op.\nfunction deprecate(fn\x2C msg\x2C code) {\n if (process.noDeprecation === true) {\n return fn;\n }\n\n // Lazy-load to avoid a circular dependency.\n if (validateString === undefined)\n ({ validateString } = require('internal/validators'));\n\n if (code !== undefined)\n validateString(code\x2C 'code');\n\n let warned = false;\n function deprecated(...args) {\n if (!warned) {\n warned = true;\n if (code !== undefined) {\n if (!codesWarned.has(code)) {\n process.emitWarning(msg\x2C 'DeprecationWarning'\x2C code\x2C deprecated);\n codesWarned.add(code);\n }\n } else {\n process.emitWarning(msg\x2C 'DeprecationWarning'\x2C deprecated);\n }\n }\n if (new.target) {\n return ReflectConstruct(fn\x2C args\x2C new.target);\n }\n return ReflectApply(fn\x2C this\x2C args);\n }\n\n // The wrapper will keep the same prototype as fn to maintain prototype chain\n ObjectSetPrototypeOf(deprecated\x2C fn);\n if (fn.prototype) {\n // Setting this (rather than using Object.setPrototype\x2C as above) ensures\n // that calling the unwrapped constructor gives an instanceof the wrapped\n // constructor.\n deprecated.prototype = fn.prototype;\n }\n\n return deprecated;\n}\n\nfunction decorateErrorStack(err) {\n if (!(isError(err) && err.stack) ||\n getHiddenValue(err\x2C kDecoratedPrivateSymbolIndex) === true)\n return;\n\n const arrow = getHiddenValue(err\x2C kArrowMessagePrivateSymbolIndex);\n\n if (arrow) {\n err.stack = arrow + err.stack;\n setHiddenValue(err\x2C kDecoratedPrivateSymbolIndex\x2C true);\n }\n}\n\nfunction assertCrypto() {\n if (noCrypto)\n throw new ERR_NO_CRYPTO();\n}\n\n// Return undefined if there is no match.\n// Move the "slow cases" to a separate function to make sure this function gets\n// inlined properly. That prioritizes the common case.\nfunction normalizeEncoding(enc) {\n if (enc == null || enc === 'utf8' || enc === 'utf-8') return 'utf8';\n return slowCases(enc);\n}\n\nfunction slowCases(enc) {\n switch (enc.length) {\n case 4:\n if (enc === 'UTF8') return 'utf8';\n if (enc === 'ucs2' || enc === 'UCS2') return 'utf16le';\n enc = `${enc}`.toLowerCase();\n if (enc === 'utf8') return 'utf8';\n if (enc === 'ucs2') return 'utf16le';\n break;\n case 3:\n if (enc === 'hex' || enc === 'HEX' ||\n `${enc}`.toLowerCase() === 'hex')\n return 'hex';\n break;\n case 5:\n if (enc === 'ascii') return 'ascii';\n if (enc === 'ucs-2') return 'utf16le';\n if (enc === 'UTF-8') return 'utf8';\n if (enc === 'ASCII') return 'ascii';\n if (enc === 'UCS-2') return 'utf16le';\n enc = `${enc}`.toLowerCase();\n if (enc === 'utf-8') return 'utf8';\n if (enc === 'ascii') return 'ascii';\n if (enc === 'ucs-2') return 'utf16le';\n break;\n case 6:\n if (enc === 'base64') return 'base64';\n if (enc === 'latin1' || enc === 'binary') return 'latin1';\n if (enc === 'BASE64') return 'base64';\n if (enc === 'LATIN1' || enc === 'BINARY') return 'latin1';\n enc = `${enc}`.toLowerCase();\n if (enc === 'base64') return 'base64';\n if (enc === 'latin1' || enc === 'binary') return 'latin1';\n break;\n case 7:\n if (enc === 'utf16le' || enc === 'UTF16LE' ||\n `${enc}`.toLowerCase() === 'utf16le')\n return 'utf16le';\n break;\n case 8:\n if (enc === 'utf-16le' || enc === 'UTF-16LE' ||\n `${enc}`.toLowerCase() === 'utf-16le')\n return 'utf16le';\n break;\n case 9:\n if (enc === 'base64url' || enc === 'BASE64URL' ||\n `${enc}`.toLowerCase() === 'base64url')\n return 'base64url';\n break;\n default:\n if (enc === '') return 'utf8';\n }\n}\n\nfunction emitExperimentalWarning(feature) {\n if (experimentalWarnings.has(feature)) return;\n const msg = `${feature} is an experimental feature. This feature could ` +\n 'change at any time';\n experimentalWarnings.add(feature);\n process.emitWarning(msg\x2C 'ExperimentalWarning');\n}\n\nfunction filterDuplicateStrings(items\x2C low) {\n const map = new SafeMap();\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const key = StringPrototypeToLowerCase(item);\n if (low) {\n map.set(key\x2C key);\n } else {\n map.set(key\x2C item);\n }\n }\n return ArrayPrototypeSort(ArrayFrom(map.values()));\n}\n\nfunction cachedResult(fn) {\n let result;\n return () => {\n if (result === undefined)\n result = fn();\n return ArrayPrototypeSlice(result);\n };\n}\n\n// Useful for Wrapping an ES6 Class with a constructor Function that\n// does not require the new keyword. For instance:\n// class A { constructor(x) {this.x = x;}}\n// const B = createClassWrapper(A);\n// B() instanceof A // true\n// B() instanceof B // true\nfunction createClassWrapper(type) {\n function fn(...args) {\n return ReflectConstruct(type\x2C args\x2C new.target || type);\n }\n // Mask the wrapper function name and length values\n ObjectDefineProperties(fn\x2C {\n name: { value: type.name }\x2C\n length: { value: type.length }\n });\n ObjectSetPrototypeOf(fn\x2C type);\n fn.prototype = type.prototype;\n return fn;\n}\n\nlet signalsToNamesMapping;\nfunction getSignalsToNamesMapping() {\n if (signalsToNamesMapping !== undefined)\n return signalsToNamesMapping;\n\n signalsToNamesMapping = ObjectCreate(null);\n for (const key in signals) {\n signalsToNamesMapping[signals[key]] = key;\n }\n\n return signalsToNamesMapping;\n}\n\nfunction convertToValidSignal(signal) {\n if (typeof signal === 'number' && getSignalsToNamesMapping()[signal])\n return signal;\n\n if (typeof signal === 'string') {\n const signalName = signals[StringPrototypeToUpperCase(signal)];\n if (signalName) return signalName;\n }\n\n throw new ERR_UNKNOWN_SIGNAL(signal);\n}\n\nfunction getConstructorOf(obj) {\n while (obj) {\n const descriptor = ObjectGetOwnPropertyDescriptor(obj\x2C 'constructor');\n if (descriptor !== undefined &&\n typeof descriptor.value === 'function' &&\n descriptor.value.name !== '') {\n return descriptor.value;\n }\n\n obj = ObjectGetPrototypeOf(obj);\n }\n\n return null;\n}\n\nfunction getSystemErrorName(err) {\n const entry = uvErrmapGet(err);\n return entry ? entry[0] : `Unknown system error ${err}`;\n}\n\nfunction getSystemErrorMap() {\n return lazyUv().getErrorMap();\n}\n\nconst kCustomPromisifiedSymbol = SymbolFor('nodejs.util.promisify.custom');\nconst kCustomPromisifyArgsSymbol = Symbol('customPromisifyArgs');\n\nlet validateFunction;\n\nfunction promisify(original) {\n // Lazy-load to avoid a circular dependency.\n if (validateFunction === undefined)\n ({ validateFunction } = require('internal/validators'));\n\n validateFunction(original\x2C 'original');\n\n if (original[kCustomPromisifiedSymbol]) {\n const fn = original[kCustomPromisifiedSymbol];\n\n validateFunction(fn\x2C 'util.promisify.custom');\n\n return ObjectDefineProperty(fn\x2C kCustomPromisifiedSymbol\x2C {\n value: fn\x2C enumerable: false\x2C writable: false\x2C configurable: true\n });\n }\n\n // Names to create an object from in case the callback receives multiple\n // arguments\x2C e.g. ['bytesRead'\x2C 'buffer'] for fs.read.\n const argumentNames = original[kCustomPromisifyArgsSymbol];\n\n function fn(...args) {\n return new Promise((resolve\x2C reject) => {\n ArrayPrototypePush(args\x2C (err\x2C ...values) => {\n if (err) {\n return reject(err);\n }\n if (argumentNames !== undefined && values.length > 1) {\n const obj = {};\n for (let i = 0; i < argumentNames.length; i++)\n obj[argumentNames[i]] = values[i];\n resolve(obj);\n } else {\n resolve(values[0]);\n }\n });\n ReflectApply(original\x2C this\x2C args);\n });\n }\n\n ObjectSetPrototypeOf(fn\x2C ObjectGetPrototypeOf(original));\n\n ObjectDefineProperty(fn\x2C kCustomPromisifiedSymbol\x2C {\n value: fn\x2C enumerable: false\x2C writable: false\x2C configurable: true\n });\n return ObjectDefineProperties(\n fn\x2C\n ObjectGetOwnPropertyDescriptors(original)\n );\n}\n\npromisify.custom = kCustomPromisifiedSymbol;\n\n// The built-in Array#join is slower in v8 6.0\nfunction join(output\x2C separator) {\n let str = '';\n if (output.length !== 0) {\n const lastIndex = output.length - 1;\n for (let i = 0; i < lastIndex; i++) {\n // It is faster not to use a template string here\n str += output[i];\n str += separator;\n }\n str += output[lastIndex];\n }\n return str;\n}\n\n// As of V8 6.6\x2C depending on the size of the array\x2C this is anywhere\n// between 1.5-10x faster than the two-arg version of Array#splice()\nfunction spliceOne(list\x2C index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nconst kNodeModulesRE = /^(.*)[\\\\/]node_modules[\\\\/]/;\n\nlet getStructuredStack;\n\nfunction isInsideNodeModules() {\n if (getStructuredStack === undefined) {\n // Lazy-load to avoid a circular dependency.\n const { runInNewContext } = require('vm');\n // Use `runInNewContext()` to get something tamper-proof and\n // side-effect-free. Since this is currently only used for a deprecated API\x2C\n // the perf implications should be okay.\n getStructuredStack = runInNewContext(`(function() {\n try { Error.stackTraceLimit = Infinity; } catch {}\n return function structuredStack() {\n const e = new Error();\n overrideStackTrace.set(e\x2C (err\x2C trace) => trace);\n return e.stack;\n };\n })()`\x2C { overrideStackTrace }\x2C { filename: 'structured-stack' });\n }\n\n const stack = getStructuredStack();\n\n // Iterate over all stack frames and look for the first one not coming\n // from inside Node.js itself:\n if (ArrayIsArray(stack)) {\n for (const frame of stack) {\n const filename = frame.getFileName();\n // If a filename does not start with / or contain \\\x2C\n // it's likely from Node.js core.\n if (!RegExpPrototypeTest(/^\\/|\\\\/\x2C filename))\n continue;\n return RegExpPrototypeTest(kNodeModulesRE\x2C filename);\n }\n }\n return false;\n}\n\nfunction once(callback) {\n let called = false;\n return function(...args) {\n if (called) return;\n called = true;\n ReflectApply(callback\x2C this\x2C args);\n };\n}\n\nlet validateUint32;\n\nfunction sleep(msec) {\n // Lazy-load to avoid a circular dependency.\n if (validateUint32 === undefined)\n ({ validateUint32 } = require('internal/validators'));\n\n validateUint32(msec\x2C 'msec');\n _sleep(msec);\n}\n\nfunction createDeferredPromise() {\n let resolve;\n let reject;\n const promise = new Promise((res\x2C rej) => {\n resolve = res;\n reject = rej;\n });\n\n return { promise\x2C resolve\x2C reject };\n}\n\nlet DOMException;\nconst lazyDOMException = hideStackFrames((message\x2C name) => {\n if (DOMException === undefined)\n DOMException = internalBinding('messaging').DOMException;\n return new DOMException(message\x2C name);\n});\n\nfunction structuredClone(value) {\n const {\n DefaultSerializer\x2C\n DefaultDeserializer\x2C\n } = require('v8');\n const ser = new DefaultSerializer();\n ser._getDataCloneError = hideStackFrames((message) =>\n lazyDOMException(message\x2C 'DataCloneError'));\n ser.writeValue(value);\n const serialized = ser.releaseBuffer();\n\n const des = new DefaultDeserializer(serialized);\n return des.readValue();\n}\n\nmodule.exports = {\n assertCrypto\x2C\n cachedResult\x2C\n convertToValidSignal\x2C\n createClassWrapper\x2C\n createDeferredPromise\x2C\n decorateErrorStack\x2C\n deprecate\x2C\n emitExperimentalWarning\x2C\n filterDuplicateStrings\x2C\n getConstructorOf\x2C\n getSystemErrorMap\x2C\n getSystemErrorName\x2C\n isError\x2C\n isInsideNodeModules\x2C\n join\x2C\n lazyDOMException\x2C\n normalizeEncoding\x2C\n once\x2C\n promisify\x2C\n sleep\x2C\n spliceOne\x2C\n structuredClone\x2C\n toUSVString\x2C\n removeColors\x2C\n\n // Symbol used to customize promisify conversion\n customPromisifyArgs: kCustomPromisifyArgsSymbol\x2C\n\n // Symbol used to provide a custom inspect function for an object as an\n // alternative to using 'inspect'\n customInspectSymbol: SymbolFor('nodejs.util.inspect.custom')\x2C\n\n // Used by the buffer module to capture an internal reference to the\n // default isEncoding implementation\x2C just in case userland overrides it.\n kIsEncodingSymbol: Symbol('kIsEncodingSymbol')\x2C\n kVmBreakFirstLineSymbol: Symbol('kVmBreakFirstLineSymbol')\n};\n code-source-info,0x3dda0e045dee,12,8845,10349,C0O8845C17O8907C25O8947C33O8971C38O8950C55O9007C68O9007C73O9050C80O9063C82O9062C87O9107C94O9116C96O9115C100O9148C110O9148C115O9200C126O9232C136O9273C143O9207C148O9339C149O9502C156O9511C158O9510C161O9502C163O10066C174O10091C180O10091C185O10066C190O10127C201O10152C211O10191C218O10127C223O10258C234O10301C240O10301C245O10265C250O10347,, StoreIC,0x3dda0e045ec1,21660,367,12,X,X,0x000000000000,value,, StoreIC,0x3dda0e045ec1,21683,367,12,X,X,0x000000000000,value,, code-creation,LazyCompile,10,21734,0x3dda0e047316,65,EventEmitterMixin node:internal/event_target:827:27,0x23787e1b6290,~ script-source,38,node:internal/event_target,'use strict';\n\nconst {\n ArrayFrom\x2C\n Boolean\x2C\n Error\x2C\n FunctionPrototypeBind\x2C\n FunctionPrototypeCall\x2C\n NumberIsInteger\x2C\n ObjectAssign\x2C\n ObjectCreate\x2C\n ObjectDefineProperties\x2C\n ObjectDefineProperty\x2C\n ObjectGetOwnPropertyDescriptor\x2C\n ObjectGetOwnPropertyDescriptors\x2C\n ReflectApply\x2C\n SafeArrayIterator\x2C\n SafeFinalizationRegistry\x2C\n SafeMap\x2C\n SafeWeakMap\x2C\n SafeWeakRef\x2C\n SafeWeakSet\x2C\n String\x2C\n Symbol\x2C\n SymbolFor\x2C\n SymbolToStringTag\x2C\n} = primordials;\n\nconst {\n codes: {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_EVENT_RECURSION\x2C\n ERR_MISSING_ARGS\x2C\n ERR_INVALID_THIS\x2C\n }\n} = require('internal/errors');\nconst { validateObject\x2C validateString } = require('internal/validators');\n\nconst { customInspectSymbol } = require('internal/util');\nconst { inspect } = require('util');\n\nconst kIsEventTarget = SymbolFor('nodejs.event_target');\nconst kIsNodeEventTarget = Symbol('kIsNodeEventTarget');\n\nconst EventEmitter = require('events');\nconst {\n kMaxEventTargetListeners\x2C\n kMaxEventTargetListenersWarned\x2C\n} = EventEmitter;\n\nconst kEvents = Symbol('kEvents');\nconst kIsBeingDispatched = Symbol('kIsBeingDispatched');\nconst kStop = Symbol('kStop');\nconst kTarget = Symbol('kTarget');\nconst kHandlers = Symbol('khandlers');\nconst kWeakHandler = Symbol('kWeak');\n\nconst kHybridDispatch = SymbolFor('nodejs.internal.kHybridDispatch');\nconst kCreateEvent = Symbol('kCreateEvent');\nconst kNewListener = Symbol('kNewListener');\nconst kRemoveListener = Symbol('kRemoveListener');\nconst kIsNodeStyleListener = Symbol('kIsNodeStyleListener');\nconst kTrustEvent = Symbol('kTrustEvent');\n\nconst { now } = require('internal/perf/utils');\n\n// TODO(joyeecheung): V8 snapshot does not support instance member\n// initializers for now:\n// https://bugs.chromium.org/p/v8/issues/detail?id=10704\nconst kType = Symbol('type');\nconst kDefaultPrevented = Symbol('defaultPrevented');\nconst kCancelable = Symbol('cancelable');\nconst kTimestamp = Symbol('timestamp');\nconst kBubbles = Symbol('bubbles');\nconst kComposed = Symbol('composed');\nconst kPropagationStopped = Symbol('propagationStopped');\n\nconst isTrustedSet = new SafeWeakSet();\nconst isTrusted = ObjectGetOwnPropertyDescriptor({\n get isTrusted() {\n return isTrustedSet.has(this);\n }\n}\x2C 'isTrusted').get;\n\nfunction isEvent(value) {\n return typeof value?.[kType] === 'string';\n}\n\nclass Event {\n constructor(type\x2C options = null) {\n if (arguments.length === 0)\n throw new ERR_MISSING_ARGS('type');\n validateObject(options\x2C 'options'\x2C {\n allowArray: true\x2C allowFunction: true\x2C nullable: true\x2C\n });\n const { cancelable\x2C bubbles\x2C composed } = { ...options };\n this[kCancelable] = !!cancelable;\n this[kBubbles] = !!bubbles;\n this[kComposed] = !!composed;\n this[kType] = `${type}`;\n this[kDefaultPrevented] = false;\n this[kTimestamp] = now();\n this[kPropagationStopped] = false;\n if (options?.[kTrustEvent]) {\n isTrustedSet.add(this);\n }\n\n // isTrusted is special (LegacyUnforgeable)\n ObjectDefineProperty(this\x2C 'isTrusted'\x2C {\n get: isTrusted\x2C\n enumerable: true\x2C\n configurable: false\n });\n this[kTarget] = null;\n this[kIsBeingDispatched] = false;\n }\n\n [customInspectSymbol](depth\x2C options) {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n const name = this.constructor.name;\n if (depth < 0)\n return name;\n\n const opts = ObjectAssign({}\x2C options\x2C {\n depth: NumberIsInteger(options.depth) ? options.depth - 1 : options.depth\n });\n\n return `${name} ${inspect({\n type: this[kType]\x2C\n defaultPrevented: this[kDefaultPrevented]\x2C\n cancelable: this[kCancelable]\x2C\n timeStamp: this[kTimestamp]\x2C\n }\x2C opts)}`;\n }\n\n stopImmediatePropagation() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n this[kStop] = true;\n }\n\n preventDefault() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n this[kDefaultPrevented] = true;\n }\n\n get target() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kTarget];\n }\n\n get currentTarget() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kTarget];\n }\n\n get srcElement() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kTarget];\n }\n\n get type() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kType];\n }\n\n get cancelable() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kCancelable];\n }\n\n get defaultPrevented() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kCancelable] && this[kDefaultPrevented];\n }\n\n get timeStamp() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kTimestamp];\n }\n\n\n // The following are non-op and unused properties/methods from Web API Event.\n // These are not supported in Node.js and are provided purely for\n // API completeness.\n\n composedPath() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kIsBeingDispatched] ? [this[kTarget]] : [];\n }\n\n get returnValue() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return !this.defaultPrevented;\n }\n\n get bubbles() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kBubbles];\n }\n\n get composed() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kComposed];\n }\n\n get eventPhase() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kIsBeingDispatched] ? Event.AT_TARGET : Event.NONE;\n }\n\n get cancelBubble() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n return this[kPropagationStopped];\n }\n\n set cancelBubble(value) {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n if (value) {\n this.stopPropagation();\n }\n }\n\n stopPropagation() {\n if (!isEvent(this))\n throw new ERR_INVALID_THIS('Event');\n this[kPropagationStopped] = true;\n }\n\n static NONE = 0;\n static CAPTURING_PHASE = 1;\n static AT_TARGET = 2;\n static BUBBLING_PHASE = 3;\n}\n\nconst kEnumerableProperty = ObjectCreate(null);\nkEnumerableProperty.enumerable = true;\n\nObjectDefineProperties(\n Event.prototype\x2C {\n [SymbolToStringTag]: {\n writable: false\x2C\n enumerable: false\x2C\n configurable: true\x2C\n value: 'Event'\x2C\n }\x2C\n stopImmediatePropagation: kEnumerableProperty\x2C\n preventDefault: kEnumerableProperty\x2C\n target: kEnumerableProperty\x2C\n currentTarget: kEnumerableProperty\x2C\n srcElement: kEnumerableProperty\x2C\n type: kEnumerableProperty\x2C\n cancelable: kEnumerableProperty\x2C\n defaultPrevented: kEnumerableProperty\x2C\n timeStamp: kEnumerableProperty\x2C\n composedPath: kEnumerableProperty\x2C\n returnValue: kEnumerableProperty\x2C\n bubbles: kEnumerableProperty\x2C\n composed: kEnumerableProperty\x2C\n eventPhase: kEnumerableProperty\x2C\n cancelBubble: kEnumerableProperty\x2C\n stopPropagation: kEnumerableProperty\x2C\n });\n\nclass NodeCustomEvent extends Event {\n constructor(type\x2C options) {\n super(type\x2C options);\n if (options?.detail) {\n this.detail = options.detail;\n }\n }\n}\n\n// Weak listener cleanup\n// This has to be lazy for snapshots to work\nlet weakListenersState = null;\n// The resource needs to retain the callback so that it doesn't\n// get garbage collected now that it's weak.\nlet objectToWeakListenerMap = null;\nfunction weakListeners() {\n weakListenersState ??= new SafeFinalizationRegistry(\n (listener) => listener.remove()\n );\n objectToWeakListenerMap ??= new SafeWeakMap();\n return { registry: weakListenersState\x2C map: objectToWeakListenerMap };\n}\n\n// The listeners for an EventTarget are maintained as a linked list.\n// Unfortunately\x2C the way EventTarget is defined\x2C listeners are accounted\n// using the tuple [handler\x2Ccapture]\x2C and even if we don't actually make\n// use of capture or bubbling\x2C in order to be spec compliant we have to\n// take on the additional complexity of supporting it. Fortunately\x2C using\n// the linked list makes dispatching faster\x2C even if adding/removing is\n// slower.\nclass Listener {\n constructor(previous\x2C listener\x2C once\x2C capture\x2C passive\x2C\n isNodeStyleListener\x2C weak) {\n this.next = undefined;\n if (previous !== undefined)\n previous.next = this;\n this.previous = previous;\n this.listener = listener;\n // TODO(benjamingr) these 4 can be 'flags' to save 3 slots\n this.once = once;\n this.capture = capture;\n this.passive = passive;\n this.isNodeStyleListener = isNodeStyleListener;\n this.removed = false;\n this.weak = Boolean(weak); // Don't retain the object\n\n if (this.weak) {\n this.callback = new SafeWeakRef(listener);\n weakListeners().registry.register(listener\x2C this\x2C this);\n // Make the retainer retain the listener in a WeakMap\n weakListeners().map.set(weak\x2C listener);\n this.listener = this.callback;\n } else if (typeof listener === 'function') {\n this.callback = listener;\n this.listener = listener;\n } else {\n this.callback = FunctionPrototypeBind(listener.handleEvent\x2C listener);\n this.listener = listener;\n }\n }\n\n same(listener\x2C capture) {\n const myListener = this.weak ? this.listener.deref() : this.listener;\n return myListener === listener && this.capture === capture;\n }\n\n remove() {\n if (this.previous !== undefined)\n this.previous.next = this.next;\n if (this.next !== undefined)\n this.next.previous = this.previous;\n this.removed = true;\n if (this.weak)\n weakListeners().registry.unregister(this);\n }\n}\n\nfunction initEventTarget(self) {\n self[kEvents] = new SafeMap();\n self[kMaxEventTargetListeners] = EventEmitter.defaultMaxListeners;\n self[kMaxEventTargetListenersWarned] = false;\n}\n\nclass EventTarget {\n // Used in checking whether an object is an EventTarget. This is a well-known\n // symbol as EventTarget may be used cross-realm.\n // Ref: https://github.com/nodejs/node/pull/33661\n static [kIsEventTarget] = true;\n\n constructor() {\n initEventTarget(this);\n }\n\n [kNewListener](size\x2C type\x2C listener\x2C once\x2C capture\x2C passive) {\n if (this[kMaxEventTargetListeners] > 0 &&\n size > this[kMaxEventTargetListeners] &&\n !this[kMaxEventTargetListenersWarned]) {\n this[kMaxEventTargetListenersWarned] = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n const w = new Error('Possible EventTarget memory leak detected. ' +\n `${size} ${type} listeners ` +\n `added to ${inspect(this\x2C { depth: -1 })}. Use ` +\n 'events.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.target = this;\n w.type = type;\n w.count = size;\n process.emitWarning(w);\n }\n }\n [kRemoveListener](size\x2C type\x2C listener\x2C capture) {}\n\n addEventListener(type\x2C listener\x2C options = {}) {\n if (!isEventTarget(this))\n throw new ERR_INVALID_THIS('EventTarget');\n if (arguments.length < 2)\n throw new ERR_MISSING_ARGS('type'\x2C 'listener');\n\n // We validateOptions before the shouldAddListeners check because the spec\n // requires us to hit getters.\n const {\n once\x2C\n capture\x2C\n passive\x2C\n signal\x2C\n isNodeStyleListener\x2C\n weak\x2C\n } = validateEventListenerOptions(options);\n\n if (!shouldAddListener(listener)) {\n // The DOM silently allows passing undefined as a second argument\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n const w = new Error(`addEventListener called with ${listener}` +\n ' which has no effect.');\n w.name = 'AddEventListenerArgumentTypeWarning';\n w.target = this;\n w.type = type;\n process.emitWarning(w);\n return;\n }\n type = String(type);\n\n if (signal) {\n if (signal.aborted) {\n return;\n }\n // TODO(benjamingr) make this weak somehow? ideally the signal would\n // not prevent the event target from GC.\n signal.addEventListener('abort'\x2C () => {\n this.removeEventListener(type\x2C listener\x2C options);\n }\x2C { once: true\x2C [kWeakHandler]: this });\n }\n\n let root = this[kEvents].get(type);\n\n if (root === undefined) {\n root = { size: 1\x2C next: undefined };\n // This is the first handler in our linked list.\n new Listener(root\x2C listener\x2C once\x2C capture\x2C passive\x2C\n isNodeStyleListener\x2C weak);\n this[kNewListener](root.size\x2C type\x2C listener\x2C once\x2C capture\x2C passive);\n this[kEvents].set(type\x2C root);\n return;\n }\n\n let handler = root.next;\n let previous = root;\n\n // We have to walk the linked list to see if we have a match\n while (handler !== undefined && !handler.same(listener\x2C capture)) {\n previous = handler;\n handler = handler.next;\n }\n\n if (handler !== undefined) { // Duplicate! Ignore\n return;\n }\n\n new Listener(previous\x2C listener\x2C once\x2C capture\x2C passive\x2C\n isNodeStyleListener\x2C weak);\n root.size++;\n this[kNewListener](root.size\x2C type\x2C listener\x2C once\x2C capture\x2C passive);\n }\n\n removeEventListener(type\x2C listener\x2C options = {}) {\n if (!isEventTarget(this))\n throw new ERR_INVALID_THIS('EventTarget');\n if (!shouldAddListener(listener))\n return;\n\n type = String(type);\n const capture = options?.capture === true;\n\n const root = this[kEvents].get(type);\n if (root === undefined || root.next === undefined)\n return;\n\n let handler = root.next;\n while (handler !== undefined) {\n if (handler.same(listener\x2C capture)) {\n handler.remove();\n root.size--;\n if (root.size === 0)\n this[kEvents].delete(type);\n this[kRemoveListener](root.size\x2C type\x2C listener\x2C capture);\n break;\n }\n handler = handler.next;\n }\n }\n\n dispatchEvent(event) {\n if (!isEventTarget(this))\n throw new ERR_INVALID_THIS('EventTarget');\n\n if (!(event instanceof Event))\n throw new ERR_INVALID_ARG_TYPE('event'\x2C 'Event'\x2C event);\n\n if (event[kIsBeingDispatched])\n throw new ERR_EVENT_RECURSION(event.type);\n\n this[kHybridDispatch](event\x2C event.type\x2C event);\n\n return event.defaultPrevented !== true;\n }\n\n [kHybridDispatch](nodeValue\x2C type\x2C event) {\n const createEvent = () => {\n if (event === undefined) {\n event = this[kCreateEvent](nodeValue\x2C type);\n event[kTarget] = this;\n event[kIsBeingDispatched] = true;\n }\n return event;\n };\n if (event !== undefined) {\n event[kTarget] = this;\n event[kIsBeingDispatched] = true;\n }\n\n const root = this[kEvents].get(type);\n if (root === undefined || root.next === undefined) {\n if (event !== undefined)\n event[kIsBeingDispatched] = false;\n return true;\n }\n\n let handler = root.next;\n let next;\n\n while (handler !== undefined &&\n (handler.passive || event?.[kStop] !== true)) {\n // Cache the next item in case this iteration removes the current one\n next = handler.next;\n\n if (handler.removed) {\n // Deal with the case an event is removed while event handlers are\n // Being processed (removeEventListener called from a listener)\n handler = next;\n continue;\n }\n if (handler.once) {\n handler.remove();\n root.size--;\n const { listener\x2C capture } = handler;\n this[kRemoveListener](root.size\x2C type\x2C listener\x2C capture);\n }\n\n try {\n let arg;\n if (handler.isNodeStyleListener) {\n arg = nodeValue;\n } else {\n arg = createEvent();\n }\n const callback = handler.weak ?\n handler.callback.deref() : handler.callback;\n let result;\n if (callback) {\n result = FunctionPrototypeCall(callback\x2C this\x2C arg);\n if (!handler.isNodeStyleListener) {\n arg[kIsBeingDispatched] = false;\n }\n }\n if (result !== undefined && result !== null)\n addCatch(result);\n } catch (err) {\n emitUncaughtException(err);\n }\n\n handler = next;\n }\n\n if (event !== undefined)\n event[kIsBeingDispatched] = false;\n }\n\n [kCreateEvent](nodeValue\x2C type) {\n return new NodeCustomEvent(type\x2C { detail: nodeValue });\n }\n [customInspectSymbol](depth\x2C options) {\n if (!isEventTarget(this))\n throw new ERR_INVALID_THIS('EventTarget');\n const name = this.constructor.name;\n if (depth < 0)\n return name;\n\n const opts = ObjectAssign({}\x2C options\x2C {\n depth: NumberIsInteger(options.depth) ? options.depth - 1 : options.depth\n });\n\n return `${name} ${inspect({}\x2C opts)}`;\n }\n}\n\nObjectDefineProperties(EventTarget.prototype\x2C {\n addEventListener: kEnumerableProperty\x2C\n removeEventListener: kEnumerableProperty\x2C\n dispatchEvent: kEnumerableProperty\x2C\n [SymbolToStringTag]: {\n writable: false\x2C\n enumerable: false\x2C\n configurable: true\x2C\n value: 'EventTarget'\x2C\n }\n});\n\nfunction initNodeEventTarget(self) {\n initEventTarget(self);\n}\n\nclass NodeEventTarget extends EventTarget {\n static [kIsNodeEventTarget] = true;\n static defaultMaxListeners = 10;\n\n constructor() {\n super();\n initNodeEventTarget(this);\n }\n\n setMaxListeners(n) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n EventEmitter.setMaxListeners(n\x2C this);\n }\n\n getMaxListeners() {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n return this[kMaxEventTargetListeners];\n }\n\n eventNames() {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n return ArrayFrom(this[kEvents].keys());\n }\n\n listenerCount(type) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n const root = this[kEvents].get(String(type));\n return root !== undefined ? root.size : 0;\n }\n\n off(type\x2C listener\x2C options) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n this.removeEventListener(type\x2C listener\x2C options);\n return this;\n }\n\n removeListener(type\x2C listener\x2C options) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n this.removeEventListener(type\x2C listener\x2C options);\n return this;\n }\n\n on(type\x2C listener) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n this.addEventListener(type\x2C listener\x2C { [kIsNodeStyleListener]: true });\n return this;\n }\n\n addListener(type\x2C listener) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n this.addEventListener(type\x2C listener\x2C { [kIsNodeStyleListener]: true });\n return this;\n }\n emit(type\x2C arg) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n validateString(type\x2C 'type');\n const hadListeners = this.listenerCount(type) > 0;\n this[kHybridDispatch](arg\x2C type);\n return hadListeners;\n }\n\n once(type\x2C listener) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n this.addEventListener(type\x2C listener\x2C\n { once: true\x2C [kIsNodeStyleListener]: true });\n return this;\n }\n\n removeAllListeners(type) {\n if (!isNodeEventTarget(this))\n throw new ERR_INVALID_THIS('NodeEventTarget');\n if (type !== undefined) {\n this[kEvents].delete(String(type));\n } else {\n this[kEvents].clear();\n }\n\n return this;\n }\n}\n\nObjectDefineProperties(NodeEventTarget.prototype\x2C {\n setMaxListeners: kEnumerableProperty\x2C\n getMaxListeners: kEnumerableProperty\x2C\n eventNames: kEnumerableProperty\x2C\n listenerCount: kEnumerableProperty\x2C\n off: kEnumerableProperty\x2C\n removeListener: kEnumerableProperty\x2C\n on: kEnumerableProperty\x2C\n addListener: kEnumerableProperty\x2C\n once: kEnumerableProperty\x2C\n emit: kEnumerableProperty\x2C\n removeAllListeners: kEnumerableProperty\x2C\n});\n\n// EventTarget API\n\nfunction shouldAddListener(listener) {\n if (typeof listener === 'function' ||\n typeof listener?.handleEvent === 'function') {\n return true;\n }\n\n if (listener == null)\n return false;\n\n throw new ERR_INVALID_ARG_TYPE('listener'\x2C 'EventListener'\x2C listener);\n}\n\nfunction validateEventListenerOptions(options) {\n if (typeof options === 'boolean')\n return { capture: options };\n\n if (options === null)\n return {};\n validateObject(options\x2C 'options'\x2C {\n allowArray: true\x2C allowFunction: true\x2C\n });\n return {\n once: Boolean(options.once)\x2C\n capture: Boolean(options.capture)\x2C\n passive: Boolean(options.passive)\x2C\n signal: options.signal\x2C\n weak: options[kWeakHandler]\x2C\n isNodeStyleListener: Boolean(options[kIsNodeStyleListener])\n };\n}\n\n// Test whether the argument is an event object. This is far from a fool-proof\n// test\x2C for example this input will result in a false positive:\n// > isEventTarget({ constructor: EventTarget })\n// It stands in its current implementation as a compromise.\n// Ref: https://github.com/nodejs/node/pull/33661\nfunction isEventTarget(obj) {\n return obj?.constructor?.[kIsEventTarget];\n}\n\nfunction isNodeEventTarget(obj) {\n return obj?.constructor?.[kIsNodeEventTarget];\n}\n\nfunction addCatch(promise) {\n const then = promise.then;\n if (typeof then === 'function') {\n FunctionPrototypeCall(then\x2C promise\x2C undefined\x2C function(err) {\n // The callback is called with nextTick to avoid a follow-up\n // rejection from this promise.\n emitUncaughtException(err);\n });\n }\n}\n\nfunction emitUncaughtException(err) {\n process.nextTick(() => { throw err; });\n}\n\nfunction makeEventHandler(handler) {\n // Event handlers are dispatched in the order they were first set\n // See https://github.com/nodejs/node/pull/35949#issuecomment-722496598\n function eventHandler(...args) {\n if (typeof eventHandler.handler !== 'function') {\n return;\n }\n return ReflectApply(eventHandler.handler\x2C this\x2C args);\n }\n eventHandler.handler = handler;\n return eventHandler;\n}\n\nfunction defineEventHandler(emitter\x2C name) {\n // 8.1.5.1 Event handlers - basically `on[eventName]` attributes\n ObjectDefineProperty(emitter\x2C `on${name}`\x2C {\n get() {\n return this[kHandlers]?.get(name)?.handler;\n }\x2C\n set(value) {\n if (!this[kHandlers]) {\n this[kHandlers] = new SafeMap();\n }\n let wrappedHandler = this[kHandlers]?.get(name);\n if (wrappedHandler) {\n if (typeof wrappedHandler.handler === 'function') {\n this[kEvents].get(name).size--;\n const size = this[kEvents].get(name).size;\n this[kRemoveListener](size\x2C name\x2C wrappedHandler.handler\x2C false);\n }\n wrappedHandler.handler = value;\n if (typeof wrappedHandler.handler === 'function') {\n this[kEvents].get(name).size++;\n const size = this[kEvents].get(name).size;\n this[kNewListener](size\x2C name\x2C value\x2C false\x2C false\x2C false);\n }\n } else {\n wrappedHandler = makeEventHandler(value);\n this.addEventListener(name\x2C wrappedHandler);\n }\n this[kHandlers].set(name\x2C wrappedHandler);\n }\x2C\n configurable: true\x2C\n enumerable: true\n });\n}\n\nconst EventEmitterMixin = (Superclass) => {\n class MixedEventEmitter extends Superclass {\n constructor(...args) {\n args = new SafeArrayIterator(args);\n super(...args);\n FunctionPrototypeCall(EventEmitter\x2C this);\n }\n }\n const protoProps = ObjectGetOwnPropertyDescriptors(EventEmitter.prototype);\n delete protoProps.constructor;\n ObjectDefineProperties(MixedEventEmitter.prototype\x2C protoProps);\n return MixedEventEmitter;\n};\n\nmodule.exports = {\n Event\x2C\n EventEmitterMixin\x2C\n EventTarget\x2C\n NodeEventTarget\x2C\n defineEventHandler\x2C\n initEventTarget\x2C\n initNodeEventTarget\x2C\n kCreateEvent\x2C\n kNewListener\x2C\n kTrustEvent\x2C\n kRemoveListener\x2C\n kEvents\x2C\n kWeakHandler\x2C\n isEventTarget\x2C\n};\n code-source-info,0x3dda0e047316,38,23423,23845,C0O23475C23O23659C30O23691C33O23704C38O23659C43O23718C47O23751C52O23792C57O23751C62O23818C64O23843,, StoreIC,0x337ca0b3cd2d,22214,286,4,X,X,0x000000000000,symbol(hash 9dde9e8),, StoreIC,0x337ca0b3cd43,22235,801,5,X,X,0x000000000000,access,, StoreIC,0x337ca0b3cd49,22240,802,5,X,X,0x000000000000,copyFile,, StoreIC,0x337ca0b3cd4f,22243,803,5,X,X,0x000000000000,cp,, StoreIC,0x337ca0b3cd55,22247,804,5,X,X,0x000000000000,open,, StoreIC,0x3dda0e045ec1,22252,367,12,X,X,0x000000000000,value,, StoreIC,0x337ca0b3cd5d,22264,805,14,X,X,0x000000000000,opendir,, StoreIC,0x337ca0b3cd63,22268,806,5,X,X,0x000000000000,rename,, StoreIC,0x337ca0b3cd69,22272,807,5,X,X,0x000000000000,truncate,, StoreIC,0x337ca0b3cd6f,22275,808,5,X,X,0x000000000000,rm,, StoreIC,0x337ca0b3cd75,22279,809,5,X,X,0x000000000000,rmdir,, StoreIC,0x337ca0b3cd7b,22282,810,5,X,X,0x000000000000,mkdir,, StoreIC,0x337ca0b3cd81,22286,811,5,X,X,0x000000000000,readdir,, StoreIC,0x337ca0b3cd87,22289,812,5,X,X,0x000000000000,readlink,, StoreIC,0x337ca0b3cd8d,22293,813,5,X,X,0x000000000000,symlink,, StoreIC,0x337ca0b3cd93,22296,814,5,X,X,0x000000000000,lstat,, StoreIC,0x337ca0b3cd99,22300,815,5,X,X,0x000000000000,stat,, StoreIC,0x337ca0b3cd9f,22303,816,5,X,X,0x000000000000,link,, StoreIC,0x337ca0b3cda5,22306,817,5,X,X,0x000000000000,unlink,, StoreIC,0x337ca0b3cdab,22310,818,5,X,X,0x000000000000,chmod,, StoreIC,0x337ca0b3cdb1,22314,819,5,X,X,0x000000000000,lchmod,, StoreIC,0x337ca0b3cdb7,22318,820,5,X,X,0x000000000000,lchown,, StoreIC,0x337ca0b3cdbd,22321,821,5,X,X,0x000000000000,chown,, StoreIC,0x337ca0b3cdc3,22324,822,5,X,X,0x000000000000,utimes,, StoreIC,0x337ca0b3cdc9,22328,823,5,X,X,0x000000000000,lutimes,, StoreIC,0x337ca0b3cdcf,22331,824,5,X,X,0x000000000000,realpath,, StoreIC,0x337ca0b3cdd5,22335,825,5,X,X,0x000000000000,mkdtemp,, StoreIC,0x337ca0b3cddb,22338,826,5,X,X,0x000000000000,writeFile,, StoreIC,0x337ca0b3cde1,22342,827,5,X,X,0x000000000000,appendFile,, StoreIC,0x337ca0b3cde7,22346,828,5,X,X,0x000000000000,readFile,, StoreIC,0x337ca0b3cded,22351,829,5,X,X,0x000000000000,watch,, StoreIC,0x337ca0b3cdf7,22355,829,5,X,X,0x000000000000,exports,, StoreIC,0x337ca0b3ce01,22358,832,3,X,X,0x000000000000,FileHandle,, StoreIC,0x337ca0b3ce0b,22362,833,3,X,X,0x000000000000,kRef,, StoreIC,0x337ca0b3ce15,22365,834,3,X,X,0x000000000000,kUnref,, StoreIC,0x337ca0b38da1,22379,45,26,X,X,0x000000000000,defaultGetSource,, code-creation,Eval,10,22571,0x3dda0e04b5e6,5, node:internal/modules/esm/translators:1:1,0x3dda0e04b130,~ script-source,111,node:internal/modules/esm/translators,'use strict';\n\nconst {\n ArrayPrototypeForEach\x2C\n ArrayPrototypeMap\x2C\n Boolean\x2C\n JSONParse\x2C\n ObjectGetPrototypeOf\x2C\n ObjectPrototypeHasOwnProperty\x2C\n ObjectKeys\x2C\n PromisePrototypeThen\x2C\n PromiseReject\x2C\n SafeArrayIterator\x2C\n SafeMap\x2C\n SafeSet\x2C\n StringPrototypeReplace\x2C\n StringPrototypeSlice\x2C\n StringPrototypeStartsWith\x2C\n SyntaxErrorPrototype\x2C\n globalThis: { WebAssembly }\x2C\n} = primordials;\n\nlet _TYPES = null;\nfunction lazyTypes() {\n if (_TYPES !== null) return _TYPES;\n return _TYPES = require('internal/util/types');\n}\n\nconst { readFileSync } = require('fs');\nconst { extname\x2C isAbsolute } = require('path');\nconst {\n hasEsmSyntax\x2C\n loadNativeModule\x2C\n stripBOM\x2C\n} = require('internal/modules/cjs/helpers');\nconst {\n Module: CJSModule\x2C\n cjsParseCache\n} = require('internal/modules/cjs/loader');\nconst internalURLModule = require('internal/url');\nconst createDynamicModule = require(\n 'internal/modules/esm/create_dynamic_module');\nconst { fileURLToPath\x2C URL } = require('url');\nlet debug = require('internal/util/debuglog').debuglog('esm'\x2C (fn) => {\n debug = fn;\n});\nconst { emitExperimentalWarning } = require('internal/util');\nconst {\n ERR_UNKNOWN_BUILTIN_MODULE\x2C\n ERR_INVALID_RETURN_PROPERTY_VALUE\n} = require('internal/errors').codes;\nconst { maybeCacheSourceMap } = require('internal/source_map/source_map_cache');\nconst moduleWrap = internalBinding('module_wrap');\nconst { ModuleWrap } = moduleWrap;\nconst { getOptionValue } = require('internal/options');\nconst experimentalImportMetaResolve =\n getOptionValue('--experimental-import-meta-resolve');\nconst asyncESM = require('internal/process/esm_loader');\nconst { emitWarningSync } = require('internal/process/warning');\nconst { TextDecoder } = require('internal/encoding');\n\nlet cjsParse;\nasync function initCJSParse() {\n if (typeof WebAssembly === 'undefined') {\n cjsParse = require('internal/deps/cjs-module-lexer/lexer').parse;\n } else {\n const { parse\x2C init } =\n require('internal/deps/cjs-module-lexer/dist/lexer');\n await init();\n cjsParse = parse;\n }\n}\n\nconst translators = new SafeMap();\nexports.translators = translators;\nexports.enrichCJSError = enrichCJSError;\n\nlet DECODER = null;\nfunction assertBufferSource(body\x2C allowString\x2C hookName) {\n if (allowString && typeof body === 'string') {\n return;\n }\n const { isArrayBufferView\x2C isAnyArrayBuffer } = lazyTypes();\n if (isArrayBufferView(body) || isAnyArrayBuffer(body)) {\n return;\n }\n throw new ERR_INVALID_RETURN_PROPERTY_VALUE(\n `${allowString ? 'string\x2C ' : ''}array buffer\x2C or typed array`\x2C\n hookName\x2C\n 'source'\x2C\n body\n );\n}\n\nfunction stringify(body) {\n if (typeof body === 'string') return body;\n assertBufferSource(body\x2C false\x2C 'transformSource');\n DECODER = DECODER === null ? new TextDecoder() : DECODER;\n return DECODER.decode(body);\n}\n\nfunction errPath(url) {\n const parsed = new URL(url);\n if (parsed.protocol === 'file:') {\n return fileURLToPath(parsed);\n }\n return url;\n}\n\nasync function importModuleDynamically(specifier\x2C { url }) {\n return asyncESM.esmLoader.import(specifier\x2C url);\n}\n\nfunction createImportMetaResolve(defaultParentUrl) {\n return async function resolve(specifier\x2C parentUrl = defaultParentUrl) {\n return PromisePrototypeThen(\n asyncESM.esmLoader.resolve(specifier\x2C parentUrl)\x2C\n ({ url }) => url\x2C\n (error) => (\n error.code === 'ERR_UNSUPPORTED_DIR_IMPORT' ?\n error.url : PromiseReject(error))\n );\n };\n}\n\nfunction initializeImportMeta(meta\x2C { url }) {\n // Alphabetical\n if (experimentalImportMetaResolve)\n meta.resolve = createImportMetaResolve(url);\n meta.url = url;\n}\n\n// Strategy for loading a standard JavaScript module.\ntranslators.set('module'\x2C async function moduleStrategy(url\x2C source\x2C isMain) {\n assertBufferSource(source\x2C true\x2C 'load');\n source = stringify(source);\n maybeCacheSourceMap(url\x2C source);\n debug(`Translating StandardModule ${url}`);\n const module = new ModuleWrap(url\x2C undefined\x2C source\x2C 0\x2C 0);\n moduleWrap.callbackMap.set(module\x2C {\n initializeImportMeta\x2C\n importModuleDynamically\x2C\n });\n return module;\n});\n\n/**\n * @param {Error | any} err\n * @param {string} [content] Content of the file\x2C if known.\n * @param {string} [filename] Useful only if `content` is unknown.\n */\nfunction enrichCJSError(err\x2C content\x2C filename) {\n if (err != null && ObjectGetPrototypeOf(err) === SyntaxErrorPrototype &&\n hasEsmSyntax(content || readFileSync(filename\x2C 'utf-8'))) {\n // Emit the warning synchronously because we are in the middle of handling\n // a SyntaxError that will throw and likely terminate the process before an\n // asynchronous warning would be emitted.\n emitWarningSync(\n 'To load an ES module\x2C set "type": "module" in the package.json or use ' +\n 'the .mjs extension.'\n );\n }\n}\n\n// Strategy for loading a node-style CommonJS module\nconst isWindows = process.platform === 'win32';\nconst winSepRegEx = /\\//g;\ntranslators.set('commonjs'\x2C async function commonjsStrategy(url\x2C source\x2C\n isMain) {\n debug(`Translating CJSModule ${url}`);\n\n let filename = internalURLModule.fileURLToPath(new URL(url));\n if (isWindows)\n filename = StringPrototypeReplace(filename\x2C winSepRegEx\x2C '\\\\');\n\n if (!cjsParse) await initCJSParse();\n const { module\x2C exportNames } = cjsPreparseModuleExports(filename);\n const namesWithDefault = exportNames.has('default') ?\n [...exportNames] : ['default'\x2C ...exportNames];\n\n return new ModuleWrap(url\x2C undefined\x2C namesWithDefault\x2C function() {\n debug(`Loading CJSModule ${url}`);\n\n let exports;\n if (asyncESM.esmLoader.cjsCache.has(module)) {\n exports = asyncESM.esmLoader.cjsCache.get(module);\n asyncESM.esmLoader.cjsCache.delete(module);\n } else {\n try {\n exports = CJSModule._load(filename\x2C undefined\x2C isMain);\n } catch (err) {\n enrichCJSError(err\x2C undefined\x2C filename);\n throw err;\n }\n }\n\n for (const exportName of exportNames) {\n if (!ObjectPrototypeHasOwnProperty(exports\x2C exportName) ||\n exportName === 'default')\n continue;\n // We might trigger a getter -> dont fail.\n let value;\n try {\n value = exports[exportName];\n } catch {}\n this.setExport(exportName\x2C value);\n }\n this.setExport('default'\x2C exports);\n });\n});\n\nfunction cjsPreparseModuleExports(filename) {\n let module = CJSModule._cache[filename];\n if (module) {\n const cached = cjsParseCache.get(module);\n if (cached)\n return { module\x2C exportNames: cached.exportNames };\n }\n const loaded = Boolean(module);\n if (!loaded) {\n module = new CJSModule(filename);\n module.filename = filename;\n module.paths = CJSModule._nodeModulePaths(module.path);\n CJSModule._cache[filename] = module;\n }\n\n let source;\n try {\n source = readFileSync(filename\x2C 'utf8');\n } catch {}\n\n let exports\x2C reexports;\n try {\n ({ exports\x2C reexports } = cjsParse(source || ''));\n } catch {\n exports = [];\n reexports = [];\n }\n\n const exportNames = new SafeSet(new SafeArrayIterator(exports));\n\n // Set first for cycles.\n cjsParseCache.set(module\x2C { source\x2C exportNames\x2C loaded });\n\n if (reexports.length) {\n module.filename = filename;\n module.paths = CJSModule._nodeModulePaths(module.path);\n }\n ArrayPrototypeForEach(reexports\x2C (reexport) => {\n let resolved;\n try {\n resolved = CJSModule._resolveFilename(reexport\x2C module);\n } catch {\n return;\n }\n const ext = extname(resolved);\n if ((ext === '.js' || ext === '.cjs' || !CJSModule._extensions[ext]) &&\n isAbsolute(resolved)) {\n const { exportNames: reexportNames } = cjsPreparseModuleExports(resolved);\n for (const name of reexportNames)\n exportNames.add(name);\n }\n });\n\n return { module\x2C exportNames };\n}\n\n// Strategy for loading a node builtin CommonJS module that isn't\n// through normal resolution\ntranslators.set('builtin'\x2C async function builtinStrategy(url) {\n debug(`Translating BuiltinModule ${url}`);\n // Slice 'node:' scheme\n const id = StringPrototypeSlice(url\x2C 5);\n const module = loadNativeModule(id\x2C url);\n if (!StringPrototypeStartsWith(url\x2C 'node:') || !module) {\n throw new ERR_UNKNOWN_BUILTIN_MODULE(url);\n }\n debug(`Loading BuiltinModule ${url}`);\n return module.getESMFacade();\n});\n\n// Strategy for loading a JSON file\ntranslators.set('json'\x2C async function jsonStrategy(url\x2C source) {\n emitExperimentalWarning('Importing JSON modules');\n assertBufferSource(source\x2C true\x2C 'load');\n debug(`Loading JSONModule ${url}`);\n const pathname = StringPrototypeStartsWith(url\x2C 'file:') ?\n fileURLToPath(url) : null;\n let modulePath;\n let module;\n if (pathname) {\n modulePath = isWindows ?\n StringPrototypeReplace(pathname\x2C winSepRegEx\x2C '\\\\') : pathname;\n module = CJSModule._cache[modulePath];\n if (module && module.loaded) {\n const exports = module.exports;\n return new ModuleWrap(url\x2C undefined\x2C ['default']\x2C function() {\n this.setExport('default'\x2C exports);\n });\n }\n }\n source = stringify(source);\n if (pathname) {\n // A require call could have been called on the same file during loading and\n // that resolves synchronously. To make sure we always return the identical\n // export\x2C we have to check again if the module already exists or not.\n module = CJSModule._cache[modulePath];\n if (module && module.loaded) {\n const exports = module.exports;\n return new ModuleWrap(url\x2C undefined\x2C ['default']\x2C function() {\n this.setExport('default'\x2C exports);\n });\n }\n }\n try {\n const exports = JSONParse(stripBOM(source));\n module = {\n exports\x2C\n loaded: true\n };\n } catch (err) {\n // TODO (BridgeAR): We could add a NodeCore error that wraps the JSON\n // parse error instead of just manipulating the original error message.\n // That would allow to add further properties and maybe additional\n // debugging information.\n err.message = errPath(url) + ': ' + err.message;\n throw err;\n }\n if (pathname) {\n CJSModule._cache[modulePath] = module;\n }\n return new ModuleWrap(url\x2C undefined\x2C ['default']\x2C function() {\n debug(`Parsing JSONModule ${url}`);\n this.setExport('default'\x2C module.exports);\n });\n});\n\n// Strategy for loading a wasm module\ntranslators.set('wasm'\x2C async function(url\x2C source) {\n emitExperimentalWarning('Importing Web Assembly modules');\n\n assertBufferSource(source\x2C false\x2C 'load');\n\n debug(`Translating WASMModule ${url}`);\n\n let compiled;\n try {\n compiled = await WebAssembly.compile(source);\n } catch (err) {\n err.message = errPath(url) + ': ' + err.message;\n throw err;\n }\n\n const imports =\n ArrayPrototypeMap(WebAssembly.Module.imports(compiled)\x2C\n ({ module }) => module);\n const exports =\n ArrayPrototypeMap(WebAssembly.Module.exports(compiled)\x2C\n ({ name }) => name);\n\n return createDynamicModule(imports\x2C exports\x2C url\x2C (reflect) => {\n const { exports } = new WebAssembly.Instance(compiled\x2C reflect.imports);\n for (const expt of ObjectKeys(exports))\n reflect.exports[expt].set(exports[expt]);\n }).module;\n});\n code-source-info,0x3dda0e04b5e6,111,0,11226,C0O0C4O11226,, code-creation,Function,10,22779,0x3dda0e04be86,773, node:internal/modules/esm/translators:1:1,0x3dda0e04b560,~ code-source-info,0x3dda0e04be86,111,0,11226,C0O0C201O25C207O50C213O71C219O82C225O95C231O119C237O152C243O166C249O190C255O207C261O228C266O239C272O250C278O276C284O300C290O329C301O367C307O413C308O413C310O558C316O558C321O541C327O605C333O605C338O581C344O590C350O682C356O682C361O632C367O648C373O668C379O772C385O772C390O741C396O754C402O838C408O838C412O838C414O891C420O891C424O891C426O980C432O980C437O957C443O972C449O1008C455O1008C460O1041C473O1042C479O1008C481O1122C487O1122C492O1094C498O1226C504O1226C509O1252C514O1158C520O1188C526O1292C532O1292C537O1268C543O1360C546O1360C550O1360C552O1415C555O1400C561O1454C567O1454C572O1435C577O1525C580O1525C584O1525C586O1596C592O1596C596O1596C598O1664C604O1664C609O1644C615O1725C621O1725C626O1709C632O1760C633O1760C635O2084C637O2084C643O2099C645O2119C649O2134C651O2157C655O2190C656O2190C658O3712C671O3712C677O4902C684O4911C687O4894C689O4944C693O4944C695O4963C708O4963C714O7967C727O7967C733O8416C746O8416C752O10364C765O10364C772O11225,, LoadIC,0x3dda0e04bfb3,22843,20,17,X,X,0x38ac3d9aaa89,WebAssembly,, code-creation,Eval,10,22907,0x3dda0e04e026,5, node:internal/modules/esm/create_dynamic_module:1:1,0x3dda0e04de50,~ script-source,112,node:internal/modules/esm/create_dynamic_module,'use strict';\n\nconst {\n ArrayPrototypeJoin\x2C\n ArrayPrototypeMap\x2C\n JSONStringify\x2C\n ObjectCreate\x2C\n SafeSet\x2C\n} = primordials;\n\nlet debug = require('internal/util/debuglog').debuglog('esm'\x2C (fn) => {\n debug = fn;\n});\n\nfunction createImport(impt\x2C index) {\n const imptPath = JSONStringify(impt);\n return `import * as $import_${index} from ${imptPath};\nimport.meta.imports[${imptPath}] = $import_${index};`;\n}\n\nfunction createExport(expt) {\n const name = `${expt}`;\n return `let $${name};\nexport { $${name} as ${name} };\nimport.meta.exports.${name} = {\n get: () => $${name}\x2C\n set: (v) => $${name} = v\x2C\n};`;\n}\n\nconst createDynamicModule = (imports\x2C exports\x2C url = ''\x2C evaluate) => {\n debug('creating ESM facade for %s with exports: %j'\x2C url\x2C exports);\n const source = `\n${ArrayPrototypeJoin(ArrayPrototypeMap(imports\x2C createImport)\x2C '\\n')}\n${ArrayPrototypeJoin(ArrayPrototypeMap(exports\x2C createExport)\x2C '\\n')}\nimport.meta.done();\n`;\n const { ModuleWrap\x2C callbackMap } = internalBinding('module_wrap');\n const m = new ModuleWrap(`${url}`\x2C undefined\x2C source\x2C 0\x2C 0);\n\n const readyfns = new SafeSet();\n const reflect = {\n exports: ObjectCreate(null)\x2C\n onReady: (cb) => { readyfns.add(cb); }\x2C\n };\n\n if (imports.length)\n reflect.imports = ObjectCreate(null);\n\n callbackMap.set(m\x2C {\n initializeImportMeta: (meta\x2C wrap) => {\n meta.exports = reflect.exports;\n if (reflect.imports)\n meta.imports = reflect.imports;\n meta.done = () => {\n evaluate(reflect);\n reflect.onReady = (cb) => cb(reflect);\n for (const fn of readyfns) {\n readyfns.delete(fn);\n fn(reflect);\n }\n };\n }\x2C\n });\n\n return {\n module: m\x2C\n reflect\x2C\n };\n};\n\nmodule.exports = createDynamicModule;\n code-source-info,0x3dda0e04e026,112,0,1756,C0O0C4O1756,, code-creation,Function,10,22949,0x3dda0e04e24e,111, node:internal/modules/esm/create_dynamic_module:1:1,0x3dda0e04dfa0,~ code-source-info,0x3dda0e04e24e,112,0,1756,C0O0C39O25C45O47C51O68C57O85C63O101C69O140C72O140C77O173C90O174C96O140C98O642C103O1718C105O1733C110O1755,, StoreIC,0x337ca0b18cf1,22976,105,5,X,X,0x000000000000,get,, StoreIC,0x337ca0b18cf1,22987,105,5,X,X,0x000000000000,get,, StoreIC,0x3dda0e04c10b,22996,75,21,X,X,0x000000000000,translators,, StoreIC,0x3dda0e04c111,23001,76,24,X,X,0x000000000000,enrichCJSError,, StoreIC,0x337ca0b3866a,23010,31,3,X,X,0x000000000000,defaultLoad,, StoreIC,0x337ca0b2ba13,23034,45,9,X,X,0x000000000000,symbol(hash 9dde9e8),, StoreIC,0x337ca0b2ba2a,23040,470,19,X,X,0x000000000000,ESMLoader,, code-creation,Eval,10,23246,0x3dda0e0504e6,5, node:internal/vm/module:1:1,0x3dda0e04ffa0,~ script-source,113,node:internal/vm/module,'use strict';\n\nconst assert = require('internal/assert');\nconst {\n ArrayIsArray\x2C\n ArrayPrototypeForEach\x2C\n ArrayPrototypeIndexOf\x2C\n ArrayPrototypeSome\x2C\n ObjectCreate\x2C\n ObjectDefineProperty\x2C\n ObjectGetPrototypeOf\x2C\n ObjectSetPrototypeOf\x2C\n PromiseAll\x2C\n ReflectApply\x2C\n SafeWeakMap\x2C\n Symbol\x2C\n SymbolToStringTag\x2C\n TypeError\x2C\n} = primordials;\n\nconst { isContext } = internalBinding('contextify');\nconst {\n isModuleNamespaceObject\x2C\n isArrayBufferView\x2C\n} = require('internal/util/types');\nconst {\n getConstructorOf\x2C\n customInspectSymbol\x2C\n emitExperimentalWarning\x2C\n} = require('internal/util');\nconst {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_VM_MODULE_ALREADY_LINKED\x2C\n ERR_VM_MODULE_DIFFERENT_CONTEXT\x2C\n ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA\x2C\n ERR_VM_MODULE_LINKING_ERRORED\x2C\n ERR_VM_MODULE_NOT_MODULE\x2C\n ERR_VM_MODULE_STATUS\x2C\n} = require('internal/errors').codes;\nconst {\n validateBoolean\x2C\n validateFunction\x2C\n validateInt32\x2C\n validateObject\x2C\n validateUint32\x2C\n validateString\x2C\n} = require('internal/validators');\n\nconst binding = internalBinding('module_wrap');\nconst {\n ModuleWrap\x2C\n kUninstantiated\x2C\n kInstantiating\x2C\n kInstantiated\x2C\n kEvaluating\x2C\n kEvaluated\x2C\n kErrored\x2C\n} = binding;\n\nconst STATUS_MAP = {\n [kUninstantiated]: 'unlinked'\x2C\n [kInstantiating]: 'linking'\x2C\n [kInstantiated]: 'linked'\x2C\n [kEvaluating]: 'evaluating'\x2C\n [kEvaluated]: 'evaluated'\x2C\n [kErrored]: 'errored'\x2C\n};\n\nlet globalModuleId = 0;\nconst defaultModuleName = 'vm:module';\nconst wrapToModuleMap = new SafeWeakMap();\n\nconst kWrap = Symbol('kWrap');\nconst kContext = Symbol('kContext');\nconst kPerContextModuleId = Symbol('kPerContextModuleId');\nconst kLink = Symbol('kLink');\n\nclass Module {\n constructor(options) {\n emitExperimentalWarning('VM Modules');\n\n if (new.target === Module) {\n // eslint-disable-next-line no-restricted-syntax\n throw new TypeError('Module is not a constructor');\n }\n\n const {\n context\x2C\n sourceText\x2C\n syntheticExportNames\x2C\n syntheticEvaluationSteps\x2C\n } = options;\n\n if (context !== undefined) {\n validateObject(context\x2C 'context');\n if (!isContext(context)) {\n throw new ERR_INVALID_ARG_TYPE('options.context'\x2C 'vm.Context'\x2C\n context);\n }\n }\n\n let { identifier } = options;\n if (identifier !== undefined) {\n validateString(identifier\x2C 'options.identifier');\n } else if (context === undefined) {\n identifier = `${defaultModuleName}(${globalModuleId++})`;\n } else if (context[kPerContextModuleId] !== undefined) {\n const curId = context[kPerContextModuleId];\n identifier = `${defaultModuleName}(${curId})`;\n context[kPerContextModuleId] += 1;\n } else {\n identifier = `${defaultModuleName}(0)`;\n ObjectDefineProperty(context\x2C kPerContextModuleId\x2C {\n value: 1\x2C\n writable: true\x2C\n enumerable: false\x2C\n configurable: true\x2C\n });\n }\n\n if (sourceText !== undefined) {\n this[kWrap] = new ModuleWrap(identifier\x2C context\x2C sourceText\x2C\n options.lineOffset\x2C options.columnOffset\x2C\n options.cachedData);\n\n binding.callbackMap.set(this[kWrap]\x2C {\n initializeImportMeta: options.initializeImportMeta\x2C\n importModuleDynamically: options.importModuleDynamically ?\n importModuleDynamicallyWrap(options.importModuleDynamically) :\n undefined\x2C\n });\n } else {\n assert(syntheticEvaluationSteps);\n this[kWrap] = new ModuleWrap(identifier\x2C context\x2C\n syntheticExportNames\x2C\n syntheticEvaluationSteps);\n }\n\n wrapToModuleMap.set(this[kWrap]\x2C this);\n\n this[kContext] = context;\n }\n\n get identifier() {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n return this[kWrap].url;\n }\n\n get context() {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n return this[kContext];\n }\n\n get namespace() {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n if (this[kWrap].getStatus() < kInstantiated) {\n throw new ERR_VM_MODULE_STATUS('must not be unlinked or linking');\n }\n return this[kWrap].getNamespace();\n }\n\n get status() {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n return STATUS_MAP[this[kWrap].getStatus()];\n }\n\n get error() {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n if (this[kWrap].getStatus() !== kErrored) {\n throw new ERR_VM_MODULE_STATUS('must be errored');\n }\n return this[kWrap].getError();\n }\n\n async link(linker) {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n validateFunction(linker\x2C 'linker');\n if (this.status === 'linked') {\n throw new ERR_VM_MODULE_ALREADY_LINKED();\n }\n if (this.status !== 'unlinked') {\n throw new ERR_VM_MODULE_STATUS('must be unlinked');\n }\n await this[kLink](linker);\n this[kWrap].instantiate();\n }\n\n async evaluate(options = {}) {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n\n validateObject(options\x2C 'options');\n\n let timeout = options.timeout;\n if (timeout === undefined) {\n timeout = -1;\n } else {\n validateUint32(timeout\x2C 'options.timeout'\x2C true);\n }\n const { breakOnSigint = false } = options;\n validateBoolean(breakOnSigint\x2C 'options.breakOnSigint');\n const status = this[kWrap].getStatus();\n if (status !== kInstantiated &&\n status !== kEvaluated &&\n status !== kErrored) {\n throw new ERR_VM_MODULE_STATUS(\n 'must be one of linked\x2C evaluated\x2C or errored'\n );\n }\n await this[kWrap].evaluate(timeout\x2C breakOnSigint);\n }\n\n [customInspectSymbol](depth\x2C options) {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n if (typeof depth === 'number' && depth < 0)\n return this;\n\n const constructor = getConstructorOf(this) || Module;\n const o = ObjectCreate({ constructor });\n o.status = this.status;\n o.identifier = this.identifier;\n o.context = this.context;\n\n ObjectSetPrototypeOf(o\x2C ObjectGetPrototypeOf(this));\n ObjectDefineProperty(o\x2C SymbolToStringTag\x2C {\n value: constructor.name\x2C\n configurable: true\n });\n\n // Lazy to avoid circular dependency\n const { inspect } = require('internal/util/inspect');\n return inspect(o\x2C { ...options\x2C customInspect: false });\n }\n}\n\nconst kDependencySpecifiers = Symbol('kDependencySpecifiers');\nconst kNoError = Symbol('kNoError');\n\nclass SourceTextModule extends Module {\n #error = kNoError;\n #statusOverride;\n\n constructor(sourceText\x2C options = {}) {\n validateString(sourceText\x2C 'sourceText');\n validateObject(options\x2C 'options');\n\n const {\n lineOffset = 0\x2C\n columnOffset = 0\x2C\n initializeImportMeta\x2C\n importModuleDynamically\x2C\n context\x2C\n identifier\x2C\n cachedData\x2C\n } = options;\n\n validateInt32(lineOffset\x2C 'options.lineOffset');\n validateInt32(columnOffset\x2C 'options.columnOffset');\n\n if (initializeImportMeta !== undefined &&\n typeof initializeImportMeta !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(\n 'options.initializeImportMeta'\x2C 'function'\x2C initializeImportMeta);\n }\n\n if (importModuleDynamically !== undefined &&\n typeof importModuleDynamically !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(\n 'options.importModuleDynamically'\x2C 'function'\x2C\n importModuleDynamically);\n }\n\n if (cachedData !== undefined && !isArrayBufferView(cachedData)) {\n throw new ERR_INVALID_ARG_TYPE(\n 'options.cachedData'\x2C\n ['Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n cachedData\n );\n }\n\n super({\n sourceText\x2C\n context\x2C\n identifier\x2C\n lineOffset\x2C\n columnOffset\x2C\n cachedData\x2C\n initializeImportMeta\x2C\n importModuleDynamically\x2C\n });\n\n this[kLink] = async (linker) => {\n this.#statusOverride = 'linking';\n\n const promises = this[kWrap].link(async (identifier\x2C assert) => {\n const module = await linker(identifier\x2C this\x2C { assert });\n if (module[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n if (module.context !== this.context) {\n throw new ERR_VM_MODULE_DIFFERENT_CONTEXT();\n }\n if (module.status === 'errored') {\n // TODO(devsnek): replace with ERR_VM_MODULE_LINK_FAILURE\n // and error cause proposal.\n throw new ERR_VM_MODULE_LINKING_ERRORED();\n }\n if (module.status === 'unlinked') {\n await module[kLink](linker);\n }\n return module[kWrap];\n });\n\n try {\n if (promises !== undefined) {\n await PromiseAll(promises);\n }\n } catch (e) {\n this.#error = e;\n throw e;\n } finally {\n this.#statusOverride = undefined;\n }\n };\n\n this[kDependencySpecifiers] = undefined;\n }\n\n get dependencySpecifiers() {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n if (this[kDependencySpecifiers] === undefined) {\n this[kDependencySpecifiers] = this[kWrap].getStaticDependencySpecifiers();\n }\n return this[kDependencySpecifiers];\n }\n\n get status() {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n if (this.#error !== kNoError) {\n return 'errored';\n }\n if (this.#statusOverride) {\n return this.#statusOverride;\n }\n return super.status;\n }\n\n get error() {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n if (this.#error !== kNoError) {\n return this.#error;\n }\n return super.error;\n }\n\n createCachedData() {\n const { status } = this;\n if (status === 'evaluating' ||\n status === 'evaluated' ||\n status === 'errored') {\n throw new ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA();\n }\n return this[kWrap].createCachedData();\n }\n}\n\nclass SyntheticModule extends Module {\n constructor(exportNames\x2C evaluateCallback\x2C options = {}) {\n if (!ArrayIsArray(exportNames) ||\n ArrayPrototypeSome(exportNames\x2C (e) => typeof e !== 'string')) {\n throw new ERR_INVALID_ARG_TYPE('exportNames'\x2C\n 'Array of unique strings'\x2C\n exportNames);\n } else {\n ArrayPrototypeForEach(exportNames\x2C (name\x2C i) => {\n if (ArrayPrototypeIndexOf(exportNames\x2C name\x2C i + 1) !== -1) {\n throw new ERR_INVALID_ARG_VALUE(`exportNames.${name}`\x2C\n name\x2C\n 'is duplicated');\n }\n });\n }\n validateFunction(evaluateCallback\x2C 'evaluateCallback');\n\n validateObject(options\x2C 'options');\n\n const { context\x2C identifier } = options;\n\n super({\n syntheticExportNames: exportNames\x2C\n syntheticEvaluationSteps: evaluateCallback\x2C\n context\x2C\n identifier\x2C\n });\n\n this[kLink] = () => this[kWrap].link(() => {\n assert.fail('link callback should not be called');\n });\n }\n\n setExport(name\x2C value) {\n if (this[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n validateString(name\x2C 'name');\n if (this[kWrap].getStatus() < kInstantiated) {\n throw new ERR_VM_MODULE_STATUS('must be linked');\n }\n this[kWrap].setExport(name\x2C value);\n }\n}\n\nfunction importModuleDynamicallyWrap(importModuleDynamically) {\n const importModuleDynamicallyWrapper = async (...args) => {\n const m = await ReflectApply(importModuleDynamically\x2C this\x2C args);\n if (isModuleNamespaceObject(m)) {\n return m;\n }\n if (!m || m[kWrap] === undefined) {\n throw new ERR_VM_MODULE_NOT_MODULE();\n }\n if (m.status === 'errored') {\n throw m.error;\n }\n return m.namespace;\n };\n return importModuleDynamicallyWrapper;\n}\n\nmodule.exports = {\n Module\x2C\n SourceTextModule\x2C\n SyntheticModule\x2C\n importModuleDynamicallyWrap\x2C\n getModuleFromWrap: (wrap) => wrapToModuleMap.get(wrap)\x2C\n};\n code-source-info,0x3dda0e0504e6,113,0,12310,C0O0C4O12310,, code-creation,Function,10,23471,0x3dda0e051746,872, node:internal/vm/module:1:1,0x3dda0e050460,~ code-source-info,0x3dda0e051746,113,0,12310,C0O0C156O30C162O30C166O30C168O68C174O84C180O109C186O134C192O156C198O172C204O196C210O220C216O244C222O258C228O274C233O289C238O299C244O320C250O371C253O371C258O357C264O462C270O462C275O412C281O439C287O576C293O576C298O504C304O524C309O547C315O858C321O858C326O884C331O612C337O636C343O661C349O693C355O728C361O771C367O804C373O832C379O1014C385O1014C390O902C396O921C402O941C408O958C414O976C420O994C426O1063C429O1063C433O1063C435O1216C438O1105C444O1119C449O1138C454O1156C460O1173C465O1188C471O1202C477O1245C484O1250C488O1268C495O1283C499O1300C506O1314C510O1330C517O1343C521O1357C528O1374C532O1387C539O1403C543O1414C550O1245C552O1450C553O1450C555O1479C557O1479C559O1516C561O1516C566O1516C568O1550C571O1550C575O1550C577O1584C580O1584C584O1584C586O1632C589O1632C593O1632C595O1677C598O1677C602O1677C660O5923C688O6683C691O6683C695O6683C697O6733C700O6733C704O6733C736O6785C799O10265C827O12150C834O12171C840O12181C846O12201C852O12220C856O12270C866O12165C871O12309,, code-creation,Function,10,23487,0x3dda0e051c86,30, node:internal/vm/module:256:3,0x3dda0e050ad0,~ code-source-info,0x3dda0e051c86,113,6796,6832,C3O6805C29O6832,, StoreIC,0x3dda0e051a5c,23569,255,32,X,X,0x000000000000,symbol(hash 9dde9e8),, StoreIC,0x3dda0e051a88,23580,453,3,X,X,0x000000000000,Module,, StoreIC,0x3dda0e051a8e,23585,454,3,X,X,0x000000000000,SourceTextModule,, StoreIC,0x3dda0e051a94,23588,455,3,X,X,0x000000000000,SyntheticModule,, StoreIC,0x3dda0e051a9a,23592,456,3,X,X,0x000000000000,importModuleDynamicallyWrap,, StoreIC,0x3dda0e051aa2,23595,457,22,X,X,0x000000000000,getModuleFromWrap,, StoreIC,0x337ca0b2a0fe,23609,19,36,X,X,0x000000000000,initializeImportMetaObject,, StoreIC,0x337ca0b2a106,23614,29,41,X,X,0x000000000000,importModuleDynamicallyCallback,, code-creation,LazyCompile,10,23625,0x3dda0e0542e6,16,ESMLoader node:internal/modules/esm/loader:52:1,0x337ca0b2b108,~ code-source-info,0x3dda0e0542e6,102,1392,1392,C0O1392C15O1392,, code-creation,LazyCompile,10,23649,0x3dda0e0543b6,27,ModuleMap node:internal/modules/esm/module_map:15:14,0x337ca0b2d060,~ code-source-info,0x3dda0e0543b6,103,430,447,C3O436C7O442C11O436C26O446,, StoreIC,0x337ca0b2a116,23661,44,19,X,X,0x000000000000,esmLoader,, StoreIC,0x337ca0b2a11e,23665,85,17,X,X,0x000000000000,loadESM,, code-creation,LazyCompile,10,23678,0x3dda0e054616,13,desc.value node:internal/per_context/primordials:325:32,0x24d59d709d90,~ code-source-info,0x3dda0e054616,6,9496,9555,C0O9513C7O9520C12O9543,, code-creation,LazyCompile,10,23692,0x3dda0e05471e,13,SafeIterator node:internal/per_context/primordials:270:16,0x24d59d7097e0,~ code-source-info,0x3dda0e05471e,6,7785,7845,C0O7804C3O7821C7O7819C12O7844,, StoreIC,0x3dda0e054725,23701,271,22,X,X,0x000000000000,_iterator,, code-creation,LazyCompile,10,23710,0x3dda0e054856,13,next node:internal/per_context/primordials:273:9,0x24d59d7098a8,~ code-source-info,0x3dda0e054856,6,7854,7899,C0O7865C3O7882C8O7872C12O7893,, LoadIC,0x3dda0e054859,23723,274,24,0,1,0x38ac3d9b1491,_iterator,, StoreIC,0x337ca0b23053,23754,191,23,X,X,0x000000000000,builtinModules,, StoreIC,0x337ca0b23062,23759,193,15,X,X,0x000000000000,_cache,, StoreIC,0x337ca0b23075,23764,194,19,X,X,0x000000000000,_pathCache,, StoreIC,0x337ca0b2308c,23768,195,20,X,X,0x000000000000,_extensions,, StoreIC,0x337ca0b230a2,23773,197,20,X,X,0x000000000000,globalPaths,, StoreIC,0x337ca0b230c8,23779,212,3,X,X,0x000000000000,set,, StoreIC,0x337ca0b230d4,23784,217,3,X,X,0x000000000000,defineProperty,, StoreIC,0x337ca0b23106,23789,224,3,X,X,0x000000000000,get,, StoreIC,0x337ca0b23112,23793,228,3,X,X,0x000000000000,set,, StoreIC,0x337ca0b2313d,23799,235,3,X,X,0x000000000000,get,, StoreIC,0x337ca0b23149,23802,239,3,X,X,0x000000000000,set,, StoreIC,0x337ca0b23168,23807,245,28,X,X,0x000000000000,get,, LoadIC,0x337ca0b2317b,23812,246,29,X,X,0x38ac3d9b17a9,prototype,, StoreIC,0x337ca0b231ff,23820,263,7,X,X,0x000000000000,get,, StoreIC,0x337ca0b2322e,23823,269,7,X,X,0x000000000000,set,, LoadIC,0x2ba068cfc100,23829,341,14,^,1,0x38ac3d986f99,compileForInternalLoader,, StoreIC,0x337ca0b18cf1,23837,105,5,X,X,0x000000000000,get,, code-creation,LazyCompile,10,23873,0x3dda0e054ad6,152,deprecate node:internal/util:96:19,0x24d59d729cc0,~ code-source-info,0x3dda0e054ad6,12,2408,3584,C0O2408C26O2428C31O2440C37O2454C42O2470C44O2480C45O2535C53O2573C61O2595C66O2576C83O2631C87O2659C100O2659C105O2705C106O2705C108O3280C121O3280C126O3320C129O3327C135O3520C141O3546C145O3541C149O3564C151O3582,, StoreIC,0x337ca0b2328a,23892,275,15,X,X,0x000000000000,_debug,, StoreIC,0x337ca0b232cc,23907,494,18,X,X,0x000000000000,_findPath,, StoreIC,0x337ca0b23309,23913,629,27,X,X,0x000000000000,_nodeModulePaths,, StoreIC,0x337ca0b23319,23917,667,28,X,X,0x000000000000,_resolveLookupPaths,, StoreIC,0x337ca0b23331,23923,716,3,X,X,0x000000000000,get,, StoreIC,0x337ca0b2333d,23927,725,3,X,X,0x000000000000,getOwnPropertyDescriptor,, StoreIC,0x337ca0b2335b,23932,757,14,X,X,0x000000000000,_load,, StoreIC,0x337ca0b2336b,23937,848,25,X,X,0x000000000000,_resolveFilename,, StoreIC,0x337ca0b23429,23943,1225,22,X,X,0x000000000000,createRequire,, StoreIC,0x337ca0b23439,23948,1227,19,X,X,0x000000000000,_initPaths,, StoreIC,0x337ca0b23449,23953,1257,24,X,X,0x000000000000,_preloadModules,, StoreIC,0x337ca0b23459,23958,1280,30,X,X,0x000000000000,syncBuiltinESMExports,, StoreIC,0x337ca0b23467,23963,1289,15,X,X,0x000000000000,Module,, code-creation,LazyCompile,10,23978,0x3dda0e0550b6,28,getEmbedderOptions node:internal/options:32:28,0x337ca0b01388,~ code-source-info,0x3dda0e0550b6,93,760,877,C0O767C6O795C11O813C17O811C23O852C27O875,, code-creation,LazyCompile,10,24019,0x3dda0e05535e,315,Module._initPaths node:internal/modules/cjs/loader:1227:29,0x337ca0b21f60,~ code-source-info,0x3dda0e05535e,99,38372,39328,C0O38395C9O38415C14O38419C22O38433C28O38433C33O38472C42O38492C47O38496C55O38508C61O38508C66O38703C74O38719C77O38724C85O38740C93O38724C103O38762C106O38767C114O38783C125O38767C131O38823C140O38824C143O38829C157O38829C169O38868C173O38887C180O38916C183O38921C191O38921C198O38887C203O38963C210O38992C213O38997C221O38997C228O38963C233O39040C237O39060C244O39094C249O39122C254O39153C257O39158C262O39122C270O39176C273O39094C279O39060C284O39199C286O39211C292O39272C297O39293C302O39313C305O39293C309O39291C314O39327,, LoadIC,0x337ca0b07e34,24038,1101,16,X,X,0x268a435c1349,length,, LoadIC,0x337ca0b07e34,24043,1101,16,X,X,0x268a435c1349,length,, LoadIC,0x337ca0b07e34,24046,1101,16,X,X,0x268a435c1349,length,, LoadIC,0x337ca0b0c22f,24054,113,17,1,P,0x268a435c1349,length,, LoadIC,0x337ca0b0c22f,24059,113,17,P,P,0x268a435c18e1,length,, LoadIC,0x337ca0b0c1d3,24066,95,21,P,P,0x268a435c2bc1,length,, LoadIC,0x337ca0b07e34,24071,1101,16,X,X,0x268a435c1349,length,, LoadIC,0x337ca0b07e34,24074,1101,16,X,X,0x268a435c1349,length,, LoadIC,0x337ca0b07e34,24077,1101,16,X,X,0x268a435c2aa1,length,, LoadIC,0x337ca0b07e34,24082,1101,16,X,X,0x268a435c1349,length,, LoadIC,0x337ca0b07e34,24085,1101,16,X,X,0x268a435c18e1,length,, LoadIC,0x337ca0b07e34,24093,1101,16,X,X,0x268a435c1349,length,, LoadIC,0x337ca0b07e34,24096,1101,16,X,X,0x268a435c18e1,length,, code-creation,Function,11,24118,0x7fe6cc044040,1280,resolve node:path:1091:10,0x23787e1a8488,^ code-source-info,0x7fe6cc044040,35,33782,34692,,, code-creation,Function,11,24129,0x7fe6cc0445a0,660,nativeModuleRequire node:internal/bootstrap/loaders:332:29,0x24d59d70f8f8,^ code-source-info,0x7fe6cc0445a0,9,10315,10658,,, code-creation,Function,11,24142,0x7fe6cc0448a0,1248,compileForInternalLoader node:internal/bootstrap/loaders:299:27,0x24d59d70f828,^ code-source-info,0x7fe6cc0448a0,9,9528,10089,,, code-creation,Function,11,24151,0x7fe6cc044de0,428,getCLIOptionsFromBinding node:internal/options:18:34,0x337ca0b012e8,^ code-source-info,0x7fe6cc044de0,93,497,598,,, code-creation,Function,11,24158,0x7fe6cc045000,104,next node:internal/per_context/primordials:273:9,0x24d59d7098a8,^ code-source-info,0x7fe6cc045000,6,7854,7899,,, code-creation,Function,11,24165,0x7fe6cc0450e0,244,SafeMap node:internal/per_context/primordials:351:16,0x24d59d709e38,^ code-source-info,0x7fe6cc0450e0,6,10200,10217,,, StoreIC,0x3dda0e055493,24175,1254,22,X,X,0x000000000000,globalPaths,, code-creation,Eval,10,24246,0x3dda0e055df6,5, node:internal/modules/run_main:1:1,0x3dda0e055bf0,~ script-source,114,node:internal/modules/run_main,'use strict';\n\nconst {\n StringPrototypeEndsWith\x2C\n} = primordials;\nconst CJSLoader = require('internal/modules/cjs/loader');\nconst { Module\x2C toRealPath\x2C readPackageScope } = CJSLoader;\nconst { getOptionValue } = require('internal/options');\nconst path = require('path');\n\nfunction resolveMainPath(main) {\n // Note extension resolution for the main entry point can be deprecated in a\n // future major.\n // Module._findPath is monkey-patchable here.\n let mainPath = Module._findPath(path.resolve(main)\x2C null\x2C true);\n if (!mainPath)\n return;\n\n const preserveSymlinksMain = getOptionValue('--preserve-symlinks-main');\n if (!preserveSymlinksMain)\n mainPath = toRealPath(mainPath);\n\n return mainPath;\n}\n\nfunction shouldUseESMLoader(mainPath) {\n const userLoader = getOptionValue('--experimental-loader');\n if (userLoader)\n return true;\n const esModuleSpecifierResolution =\n getOptionValue('--experimental-specifier-resolution');\n if (esModuleSpecifierResolution === 'node')\n return true;\n // Determine the module format of the main\n if (mainPath && StringPrototypeEndsWith(mainPath\x2C '.mjs'))\n return true;\n if (!mainPath || StringPrototypeEndsWith(mainPath\x2C '.cjs'))\n return false;\n const pkg = readPackageScope(mainPath);\n return pkg && pkg.data.type === 'module';\n}\n\nfunction runMainESM(mainPath) {\n const { loadESM } = require('internal/process/esm_loader');\n const { pathToFileURL } = require('internal/url');\n\n handleMainPromise(loadESM((esmLoader) => {\n const main = path.isAbsolute(mainPath) ?\n pathToFileURL(mainPath).href :\n mainPath;\n return esmLoader.import(main);\n }));\n}\n\nasync function handleMainPromise(promise) {\n // Handle a Promise from running code that potentially does Top-Level Await.\n // In that case\x2C it makes sense to set the exit code to a specific non-zero\n // value if the main code never finishes running.\n function handler() {\n if (process.exitCode === undefined)\n process.exitCode = 13;\n }\n process.on('exit'\x2C handler);\n try {\n return await promise;\n } finally {\n process.off('exit'\x2C handler);\n }\n}\n\n// For backwards compatibility\x2C we have to run a bunch of\n// monkey-patchable code that belongs to the CJS loader (exposed by\n// `require('module')`) even when the entry point is ESM.\nfunction executeUserEntryPoint(main = process.argv[1]) {\n const resolvedMain = resolveMainPath(main);\n const useESMLoader = shouldUseESMLoader(resolvedMain);\n if (useESMLoader) {\n runMainESM(resolvedMain || main);\n } else {\n // Module._load is the monkey-patchable CJS module loader.\n Module._load(main\x2C null\x2C true);\n }\n}\n\nmodule.exports = {\n executeUserEntryPoint\x2C\n handleMainPromise\x2C\n};\n code-source-info,0x3dda0e055df6,114,0,2695,C0O0C4O2695,, code-creation,Function,10,24302,0x3dda0e0560ee,149, node:internal/modules/run_main:1:1,0x3dda0e055d70,~ code-source-info,0x3dda0e0560ee,114,0,2695,C0O0C60O25C66O85C72O85C77O133C83O141C89O153C95O212C101O212C106O193C112O254C118O254C122O254C124O2627C131O2648C137O2673C143O2642C148O2694,, StoreIC,0x3dda0e056171,24337,86,3,X,X,0x000000000000,executeUserEntryPoint,, StoreIC,0x3dda0e056177,24342,87,3,X,X,0x000000000000,handleMainPromise,, StoreIC,0x337ca0b1ed62,24348,427,28,X,X,0x000000000000,runMain,, code-creation,LazyCompile,10,24377,0x3dda0e056b7e,163,initializeESMLoader node:internal/bootstrap/pre_execution:431:29,0x2ba068cfe3a0,~ code-source-info,0x3dda0e056b7e,92,13703,14791,C0O13785C6O13785C13O13834C16O13830C21O13828C25O13852C30O13856C34O13876C40O13905C41O13912C42O14012C48O14012C53O13928C58O13968C63O14058C69O14058C74O14259C79O14217C83O14329C88O14290C92O14495C100O14499C106O14615C112O14615C117O14564C122O14572C127O14590C132O14661C138O14661C143O14680C145O14690C149O14704C151O14724C155O14748C157O14767C162O14790,, StoreIC,0x3dda0e056b93,24393,433,46,X,X,0x000000000000,callbackMap,, code-creation,LazyCompile,10,24407,0x3dda0e056d96,5,get hasLoadedAnyUserCJSModule node:internal/modules/cjs/loader:74:32,0x337ca0b21450,~ code-source-info,0x3dda0e056d96,99,2306,2346,C0O2311C4O2344,, code-creation,LazyCompile,10,24423,0x3dda0e056e3e,21,assert node:internal/assert:11:16,0x44edd6d77b8,~ script-source,16,node:internal/assert,'use strict';\n\nlet error;\nfunction lazyError() {\n if (!error) {\n error = require('internal/errors').codes.ERR_INTERNAL_ASSERTION;\n }\n return error;\n}\n\nfunction assert(value\x2C message) {\n if (!value) {\n const ERR_INTERNAL_ASSERTION = lazyError();\n throw new ERR_INTERNAL_ASSERTION(message);\n }\n}\n\nfunction fail(message) {\n const ERR_INTERNAL_ASSERTION = lazyError();\n throw new ERR_INTERNAL_ASSERTION(message);\n}\n\nassert.fail = fail;\n\nmodule.exports = assert;\n code-source-info,0x3dda0e056e3e,16,172,307,C0O193C4O242C7O242C11O259C13O265C18O259C20O306,, code-creation,LazyCompile,10,24451,0x3dda0e05703e,53,loadPreloadModules node:internal/bootstrap/pre_execution:474:28,0x2ba068cfe490,~ code-source-info,0x3dda0e05703e,92,15267,15587,C0O15354C8O15354C13O15385C15O15422C21O15429C26O15505C32O15505C37O15505C42O15472C47O15549C52O15586,, code-creation,LazyCompile,10,24468,0x3dda0e057226,50,initializeFrozenIntrinsics node:internal/bootstrap/pre_execution:466:36,0x2ba068cfe440,~ code-source-info,0x3dda0e057226,92,15016,15238,C0O15023C8O15027C14O15072C17O15080C28O15080C34O15192C40O15192C45O15229C49O15237,, code-creation,LazyCompile,10,24490,0x3dda0e05734e,80,executeUserEntryPoint node:internal/modules/run_main:74:31,0x3dda0e055f90,~ code-source-info,0x3dda0e05734e,114,2320,2625,C7O2336C14O2340C22O2370C25O2370C30O2416C33O2416C38O2452C40O2476C45O2487C50O2476C56O2588C61O2595C73O2595C79O2624,, code-creation,LazyCompile,10,24510,0x3dda0e0574c6,68,resolveMainPath node:internal/modules/run_main:11:25,0x3dda0e055e28,~ code-source-info,0x3dda0e0574c6,114,296,710,C0O468C5O475C12O485C15O490C20O490C30O475C36O520C38O539C39O546C40O579C48O579C53O625C55O656C60O667C65O692C67O708,, LoadIC,0x337ca0b07dfe,24520,1095,23,0,1,0x38ac3d983441,length,, KeyedLoadIC,0x337ca0b07e19,24526,1096,33,0,1,0x38ac3d983441,0,, LoadIC,0x337ca0b07e34,24530,1101,16,0,1,0x268a435c2aa1,length,, code-creation,LazyCompile,10,24594,0x3dda0e0576c6,436,Module._findPath node:internal/modules/cjs/loader:494:28,0x337ca0b21770,~ code-source-info,0x3dda0e0576c6,99,14327,16931,C0O14380C5O14385C10O14385C16O14408C18O14435C26O14458C30O14478C36O14485C41O14498C42O14511C43O14536C45O14544C51O14555C57O14555C62O14553C66O14606C69O14613C76O14623C80O14637C82O14652C84O14665C85O14673C87O14709C93O14716C100O14727C103O14770C107O14777C111O14727C119O14790C121O14782C125O14812C127O14838C134O14874C137O14854C143O14943C145O14956C149O14948C154O15041C156O15046C160O15055C165O15070C172O15084C177O15089C179O15104C183O15158C186O15158C192O15198C194O15227C196O15250C197O15279C202O15284C207O15284C214O15319C216O15345C219O15345C224O15365C228O15393C229O15400C234O15427C238O15452C244O15488C249O15504C254O15504C262O15554C265O15565C272O15614C278O16228C283O16244C288O16244C296O16290C299O16301C304O16348C308O16419C312O16453C320O16478C325O16460C330O16500C342O16511C348O16569C354O16589C359O16674C363O16706C371O16731C376O16713C381O16751C396O16762C402O16818C406O16840C409O16847C416O16868C420O16886C422O16902C423O14965C428O14930C434O16916C435O16929,, code-creation,LazyCompile,10,24619,0x3dda0e057a76,45,isAbsolute node:path:1156:13,0x23787e1a8528,~ code-source-info,0x3dda0e057a76,35,35448,35594,C0O35461C8O35461C13O35507C19O35514C26O35532C31O35532C39O35571C41O35567C44O35590,, LoadIC,0x3dda0e057a83,24627,1158,17,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e05771d,24635,508,31,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e05772d,24638,509,48,X,X,0x268a435c2aa1,length,, code-creation,LazyCompile,10,24704,0x3dda0e057ca6,85,stat node:internal/modules/cjs/loader:151:14,0x337ca0b20d10,~ code-source-info,0x3dda0e057ca6,99,4627,5024,C0O4642C5O4658C10O4658C17O4688C23O4733C28O4743C33O4743C39O4762C41O4788C43O4802C44O4824C49O4824C54O4856C61O4889C66O4969C71O4979C76O4979C82O5008C84O5022,, code-creation,LazyCompile,10,24723,0x3dda0e057de6,3,toNamespacedPath node:path:1266:19,0x23787e1a8618,~ code-source-info,0x3dda0e057de6,35,38609,38669,C0O38653C2O38665,, code-creation,LazyCompile,10,24741,0x3dda0e057ed6,42,toRealPath node:internal/modules/cjs/loader:393:20,0x337ca0b20fe0,~ code-source-info,0x3dda0e057ed6,99,11292,11404,C0O11310C5O11320C10O11333C17O11353C20O11364C28O11383C35O11320C41O11402,, code-creation,LazyCompile,10,24919,0x3dda0e058306,1036,realpathSync node:fs:2408:22,0x1ce311de28b0,~ script-source,77,node:fs,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// Maintainers\x2C keep in mind that ES1-style octal literals (`0666`) are not\n// allowed in strict mode. Use ES6-style octal literals instead (`0o666`).\n\n'use strict';\n\n// When using FSReqCallback\x2C make sure to create the object only *after* all\n// parameter validation has happened\x2C so that the objects are not kept in memory\n// in case they are created but never used due to an exception.\n\nconst {\n ArrayPrototypePush\x2C\n BigIntPrototypeToString\x2C\n MathMax\x2C\n Number\x2C\n ObjectCreate\x2C\n ObjectDefineProperties\x2C\n ObjectDefineProperty\x2C\n Promise\x2C\n ReflectApply\x2C\n RegExpPrototypeExec\x2C\n SafeMap\x2C\n String\x2C\n StringPrototypeCharCodeAt\x2C\n StringPrototypeIndexOf\x2C\n StringPrototypeSlice\x2C\n} = primordials;\n\nconst { fs: constants } = internalBinding('constants');\nconst {\n S_IFIFO\x2C\n S_IFLNK\x2C\n S_IFMT\x2C\n S_IFREG\x2C\n S_IFSOCK\x2C\n F_OK\x2C\n R_OK\x2C\n W_OK\x2C\n X_OK\x2C\n O_WRONLY\x2C\n O_SYMLINK\n} = constants;\n\nconst pathModule = require('path');\nconst { isArrayBufferView } = require('internal/util/types');\n\n// We need to get the statValues from the binding at the callsite since\n// it's re-initialized after deserialization.\n\nconst binding = internalBinding('fs');\nconst { Buffer } = require('buffer');\nconst {\n aggregateTwoErrors\x2C\n codes: {\n ERR_FS_FILE_TOO_LARGE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_FEATURE_UNAVAILABLE_ON_PLATFORM\x2C\n }\x2C\n AbortError\x2C\n uvErrmapGet\x2C\n uvException\n} = require('internal/errors');\n\nconst { FSReqCallback } = binding;\nconst { toPathIfFileURL } = require('internal/url');\nconst internalUtil = require('internal/util');\nconst {\n constants: {\n kIoMaxLength\x2C\n kMaxUserId\x2C\n }\x2C\n copyObject\x2C\n Dirent\x2C\n emitRecursiveRmdirWarning\x2C\n getDirents\x2C\n getOptions\x2C\n getValidatedFd\x2C\n getValidatedPath\x2C\n getValidMode\x2C\n handleErrorFromBinding\x2C\n nullCheck\x2C\n preprocessSymlinkDestination\x2C\n Stats\x2C\n getStatsFromBinding\x2C\n realpathCacheKey\x2C\n stringToFlags\x2C\n stringToSymlinkType\x2C\n toUnixTimestamp\x2C\n validateBufferArray\x2C\n validateCpOptions\x2C\n validateOffsetLengthRead\x2C\n validateOffsetLengthWrite\x2C\n validatePath\x2C\n validatePosition\x2C\n validateRmOptions\x2C\n validateRmOptionsSync\x2C\n validateRmdirOptions\x2C\n validateStringAfterArrayBufferView\x2C\n warnOnNonPortableTemplate\n} = require('internal/fs/utils');\nconst {\n Dir\x2C\n opendir\x2C\n opendirSync\n} = require('internal/fs/dir');\nconst {\n CHAR_FORWARD_SLASH\x2C\n CHAR_BACKWARD_SLASH\x2C\n} = require('internal/constants');\nconst {\n isUint32\x2C\n parseFileMode\x2C\n validateBoolean\x2C\n validateBuffer\x2C\n validateCallback\x2C\n validateEncoding\x2C\n validateFunction\x2C\n validateInteger\x2C\n validateString\x2C\n} = require('internal/validators');\n\nconst watchers = require('internal/fs/watchers');\nconst ReadFileContext = require('internal/fs/read_file_context');\n\nlet truncateWarn = true;\nlet fs;\n\n// Lazy loaded\nlet cpFn;\nlet cpSyncFn;\nlet promises = null;\nlet ReadStream;\nlet WriteStream;\nlet rimraf;\nlet rimrafSync;\n\n// These have to be separate because of how graceful-fs happens to do it's\n// monkeypatching.\nlet FileReadStream;\nlet FileWriteStream;\n\nconst isWindows = process.platform === 'win32';\nconst isOSX = process.platform === 'darwin';\n\n\nfunction showTruncateDeprecation() {\n if (truncateWarn) {\n process.emitWarning(\n 'Using fs.truncate with a file descriptor is deprecated. Please use ' +\n 'fs.ftruncate with a file descriptor instead.'\x2C\n 'DeprecationWarning'\x2C 'DEP0081');\n truncateWarn = false;\n }\n}\n\nfunction maybeCallback(cb) {\n validateCallback(cb);\n\n return cb;\n}\n\n// Ensure that callbacks run in the global context. Only use this function\n// for callbacks that are passed to the binding layer\x2C callbacks that are\n// invoked from JS already run in the proper scope.\nfunction makeCallback(cb) {\n validateCallback(cb);\n\n return (...args) => ReflectApply(cb\x2C this\x2C args);\n}\n\n// Special case of `makeCallback()` that is specific to async `*stat()` calls as\n// an optimization\x2C since the data passed back to the callback needs to be\n// transformed anyway.\nfunction makeStatsCallback(cb) {\n validateCallback(cb);\n\n return (err\x2C stats) => {\n if (err) return cb(err);\n cb(err\x2C getStatsFromBinding(stats));\n };\n}\n\nconst isFd = isUint32;\n\nfunction isFileType(stats\x2C fileType) {\n // Use stats array directly to avoid creating an fs.Stats instance just for\n // our internal use.\n let mode = stats[1];\n if (typeof mode === 'bigint')\n mode = Number(mode);\n return (mode & S_IFMT) === fileType;\n}\n\n/**\n * Tests a user's permissions for the file or directory\n * specified by `path`.\n * @param {string | Buffer | URL} path\n * @param {number} [mode]\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction access(path\x2C mode\x2C callback) {\n if (typeof mode === 'function') {\n callback = mode;\n mode = F_OK;\n }\n\n path = getValidatedPath(path);\n mode = getValidMode(mode\x2C 'access');\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.access(pathModule.toNamespacedPath(path)\x2C mode\x2C req);\n}\n\n/**\n * Synchronously tests a user's permissions for the file or\n * directory specified by `path`.\n * @param {string | Buffer | URL} path\n * @param {number} [mode]\n * @returns {void | never}\n */\nfunction accessSync(path\x2C mode) {\n path = getValidatedPath(path);\n mode = getValidMode(mode\x2C 'access');\n\n const ctx = { path };\n binding.access(pathModule.toNamespacedPath(path)\x2C mode\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Tests whether or not the given path exists.\n * @param {string | Buffer | URL} path\n * @param {(exists?: boolean) => any} callback\n * @returns {void}\n */\nfunction exists(path\x2C callback) {\n maybeCallback(callback);\n\n function suppressedCallback(err) {\n callback(err ? false : true);\n }\n\n try {\n fs.access(path\x2C F_OK\x2C suppressedCallback);\n } catch {\n return callback(false);\n }\n}\n\nObjectDefineProperty(exists\x2C internalUtil.promisify.custom\x2C {\n value: (path) => {\n return new Promise((resolve) => fs.exists(path\x2C resolve));\n }\n});\n\n// fs.existsSync never throws\x2C it only returns true or false.\n// Since fs.existsSync never throws\x2C users have established\n// the expectation that passing invalid arguments to it\x2C even like\n// fs.existsSync()\x2C would only get a false in return\x2C so we cannot signal\n// validation errors to users properly out of compatibility concerns.\n// TODO(joyeecheung): deprecate the never-throw-on-invalid-arguments behavior\n/**\n * Synchronously tests whether or not the given path exists.\n * @param {string | Buffer | URL} path\n * @returns {boolean}\n */\nfunction existsSync(path) {\n try {\n path = getValidatedPath(path);\n } catch {\n return false;\n }\n const ctx = { path };\n const nPath = pathModule.toNamespacedPath(path);\n binding.access(nPath\x2C F_OK\x2C undefined\x2C ctx);\n\n // In case of an invalid symlink\x2C `binding.access()` on win32\n // will **not** return an error and is therefore not enough.\n // Double check with `binding.stat()`.\n if (isWindows && ctx.errno === undefined) {\n binding.stat(nPath\x2C false\x2C undefined\x2C ctx);\n }\n\n return ctx.errno === undefined;\n}\n\nfunction readFileAfterOpen(err\x2C fd) {\n const context = this.context;\n\n if (err) {\n context.callback(err);\n return;\n }\n\n context.fd = fd;\n\n const req = new FSReqCallback();\n req.oncomplete = readFileAfterStat;\n req.context = context;\n binding.fstat(fd\x2C false\x2C req);\n}\n\nfunction readFileAfterStat(err\x2C stats) {\n const context = this.context;\n\n if (err)\n return context.close(err);\n\n const size = context.size = isFileType(stats\x2C S_IFREG) ? stats[8] : 0;\n\n if (size > kIoMaxLength) {\n err = new ERR_FS_FILE_TOO_LARGE(size);\n return context.close(err);\n }\n\n try {\n if (size === 0) {\n context.buffers = [];\n } else {\n context.buffer = Buffer.allocUnsafeSlow(size);\n }\n } catch (err) {\n return context.close(err);\n }\n context.read();\n}\n\nfunction checkAborted(signal\x2C callback) {\n if (signal?.aborted) {\n callback(new AbortError());\n return true;\n }\n return false;\n}\n\n/**\n * Asynchronously reads the entire contents of a file.\n * @param {string | Buffer | URL | number} path\n * @param {{\n * encoding?: string | null;\n * flag?: string;\n * signal?: AbortSignal;\n * } | string} [options]\n * @param {(\n * err?: Error\x2C\n * data?: string | Buffer\n * ) => any} callback\n * @returns {void}\n */\nfunction readFile(path\x2C options\x2C callback) {\n callback = maybeCallback(callback || options);\n options = getOptions(options\x2C { flag: 'r' });\n const context = new ReadFileContext(callback\x2C options.encoding);\n context.isUserFd = isFd(path); // File descriptor ownership\n\n if (options.signal) {\n context.signal = options.signal;\n }\n if (context.isUserFd) {\n process.nextTick(function tick(context) {\n ReflectApply(readFileAfterOpen\x2C { context }\x2C [null\x2C path]);\n }\x2C context);\n return;\n }\n\n if (checkAborted(options.signal\x2C callback))\n return;\n\n const flagsNumber = stringToFlags(options.flag\x2C 'options.flag');\n path = getValidatedPath(path);\n\n const req = new FSReqCallback();\n req.context = context;\n req.oncomplete = readFileAfterOpen;\n binding.open(pathModule.toNamespacedPath(path)\x2C\n flagsNumber\x2C\n 0o666\x2C\n req);\n}\n\nfunction tryStatSync(fd\x2C isUserFd) {\n const ctx = {};\n const stats = binding.fstat(fd\x2C false\x2C undefined\x2C ctx);\n if (ctx.errno !== undefined && !isUserFd) {\n fs.closeSync(fd);\n throw uvException(ctx);\n }\n return stats;\n}\n\nfunction tryCreateBuffer(size\x2C fd\x2C isUserFd) {\n let threw = true;\n let buffer;\n try {\n if (size > kIoMaxLength) {\n throw new ERR_FS_FILE_TOO_LARGE(size);\n }\n buffer = Buffer.allocUnsafe(size);\n threw = false;\n } finally {\n if (threw && !isUserFd) fs.closeSync(fd);\n }\n return buffer;\n}\n\nfunction tryReadSync(fd\x2C isUserFd\x2C buffer\x2C pos\x2C len) {\n let threw = true;\n let bytesRead;\n try {\n bytesRead = fs.readSync(fd\x2C buffer\x2C pos\x2C len);\n threw = false;\n } finally {\n if (threw && !isUserFd) fs.closeSync(fd);\n }\n return bytesRead;\n}\n\n/**\n * Synchronously reads the entire contents of a file.\n * @param {string | Buffer | URL | number} path\n * @param {{\n * encoding?: string | null;\n * flag?: string;\n * }} [options]\n * @returns {string | Buffer}\n */\nfunction readFileSync(path\x2C options) {\n options = getOptions(options\x2C { flag: 'r' });\n const isUserFd = isFd(path); // File descriptor ownership\n const fd = isUserFd ? path : fs.openSync(path\x2C options.flag\x2C 0o666);\n\n const stats = tryStatSync(fd\x2C isUserFd);\n const size = isFileType(stats\x2C S_IFREG) ? stats[8] : 0;\n let pos = 0;\n let buffer; // Single buffer with file data\n let buffers; // List for when size is unknown\n\n if (size === 0) {\n buffers = [];\n } else {\n buffer = tryCreateBuffer(size\x2C fd\x2C isUserFd);\n }\n\n let bytesRead;\n\n if (size !== 0) {\n do {\n bytesRead = tryReadSync(fd\x2C isUserFd\x2C buffer\x2C pos\x2C size - pos);\n pos += bytesRead;\n } while (bytesRead !== 0 && pos < size);\n } else {\n do {\n // The kernel lies about many files.\n // Go ahead and try to read some bytes.\n buffer = Buffer.allocUnsafe(8192);\n bytesRead = tryReadSync(fd\x2C isUserFd\x2C buffer\x2C 0\x2C 8192);\n if (bytesRead !== 0) {\n ArrayPrototypePush(buffers\x2C buffer.slice(0\x2C bytesRead));\n }\n pos += bytesRead;\n } while (bytesRead !== 0);\n }\n\n if (!isUserFd)\n fs.closeSync(fd);\n\n if (size === 0) {\n // Data was collected into the buffers list.\n buffer = Buffer.concat(buffers\x2C pos);\n } else if (pos < size) {\n buffer = buffer.slice(0\x2C pos);\n }\n\n if (options.encoding) buffer = buffer.toString(options.encoding);\n return buffer;\n}\n\nfunction defaultCloseCallback(err) {\n if (err != null) throw err;\n}\n\n/**\n * Closes the file descriptor.\n * @param {number} fd\n * @param {(err?: Error) => any} [callback]\n * @returns {void}\n */\nfunction close(fd\x2C callback = defaultCloseCallback) {\n fd = getValidatedFd(fd);\n if (callback !== defaultCloseCallback)\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.close(fd\x2C req);\n}\n\n/**\n * Synchronously closes the file descriptor.\n * @param {number} fd\n * @returns {void}\n */\nfunction closeSync(fd) {\n fd = getValidatedFd(fd);\n\n const ctx = {};\n binding.close(fd\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Asynchronously opens a file.\n * @param {string | Buffer | URL} path\n * @param {string | number} [flags]\n * @param {string | number} [mode]\n * @param {(\n * err?: Error\x2C\n * fd?: number\n * ) => any} callback\n * @returns {void}\n */\nfunction open(path\x2C flags\x2C mode\x2C callback) {\n path = getValidatedPath(path);\n if (arguments.length < 3) {\n callback = flags;\n flags = 'r';\n mode = 0o666;\n } else if (typeof mode === 'function') {\n callback = mode;\n mode = 0o666;\n } else {\n mode = parseFileMode(mode\x2C 'mode'\x2C 0o666);\n }\n const flagsNumber = stringToFlags(flags);\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n\n binding.open(pathModule.toNamespacedPath(path)\x2C\n flagsNumber\x2C\n mode\x2C\n req);\n}\n\n/**\n * Synchronously opens a file.\n * @param {string | Buffer | URL} path\n * @param {string | number} [flags]\n * @param {string | number} [mode]\n * @returns {number}\n */\nfunction openSync(path\x2C flags\x2C mode) {\n path = getValidatedPath(path);\n const flagsNumber = stringToFlags(flags);\n mode = parseFileMode(mode\x2C 'mode'\x2C 0o666);\n\n const ctx = { path };\n const result = binding.open(pathModule.toNamespacedPath(path)\x2C\n flagsNumber\x2C mode\x2C\n undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return result;\n}\n\n/**\n * Reads file from the specified `fd` (file descriptor).\n * @param {number} fd\n * @param {Buffer | TypedArray | DataView} buffer\n * @param {number} offset\n * @param {number} length\n * @param {number | bigint} position\n * @param {(\n * err?: Error\x2C\n * bytesRead?: number\x2C\n * buffer?: Buffer\n * ) => any} callback\n * @returns {void}\n */\nfunction read(fd\x2C buffer\x2C offset\x2C length\x2C position\x2C callback) {\n fd = getValidatedFd(fd);\n\n if (arguments.length <= 3) {\n // Assume fs.read(fd\x2C options\x2C callback)\n let options = {};\n if (arguments.length < 3) {\n // This is fs.read(fd\x2C callback)\n // buffer will be the callback\n callback = buffer;\n } else {\n // This is fs.read(fd\x2C {}\x2C callback)\n // buffer will be the options object\n // offset is the callback\n options = buffer;\n callback = offset;\n }\n\n ({\n buffer = Buffer.alloc(16384)\x2C\n offset = 0\x2C\n length = buffer.byteLength\x2C\n position\n } = options);\n }\n\n validateBuffer(buffer);\n callback = maybeCallback(callback);\n\n if (offset == null) {\n offset = 0;\n } else {\n validateInteger(offset\x2C 'offset'\x2C 0);\n }\n\n length |= 0;\n\n if (length === 0) {\n return process.nextTick(function tick() {\n callback(null\x2C 0\x2C buffer);\n });\n }\n\n if (buffer.byteLength === 0) {\n throw new ERR_INVALID_ARG_VALUE('buffer'\x2C buffer\x2C\n 'is empty and cannot be written');\n }\n\n validateOffsetLengthRead(offset\x2C length\x2C buffer.byteLength);\n\n if (position == null)\n position = -1;\n\n validatePosition(position\x2C 'position');\n\n function wrapper(err\x2C bytesRead) {\n // Retain a reference to buffer so that it can't be GC'ed too soon.\n callback(err\x2C bytesRead || 0\x2C buffer);\n }\n\n const req = new FSReqCallback();\n req.oncomplete = wrapper;\n\n binding.read(fd\x2C buffer\x2C offset\x2C length\x2C position\x2C req);\n}\n\nObjectDefineProperty(read\x2C internalUtil.customPromisifyArgs\x2C\n { value: ['bytesRead'\x2C 'buffer']\x2C enumerable: false });\n\n/**\n * Synchronously reads the file from the\n * specified `fd` (file descriptor).\n * @param {number} fd\n * @param {Buffer | TypedArray | DataView} buffer\n * @param {{\n * offset?: number;\n * length?: number;\n * position?: number | bigint;\n * }} [offset]\n * @returns {number}\n */\nfunction readSync(fd\x2C buffer\x2C offset\x2C length\x2C position) {\n fd = getValidatedFd(fd);\n\n validateBuffer(buffer);\n\n if (arguments.length <= 3) {\n // Assume fs.read(fd\x2C buffer\x2C options)\n const options = offset || {};\n\n ({ offset = 0\x2C length = buffer.byteLength\x2C position } = options);\n }\n\n if (offset == null) {\n offset = 0;\n } else {\n validateInteger(offset\x2C 'offset'\x2C 0);\n }\n\n length |= 0;\n\n if (length === 0) {\n return 0;\n }\n\n if (buffer.byteLength === 0) {\n throw new ERR_INVALID_ARG_VALUE('buffer'\x2C buffer\x2C\n 'is empty and cannot be written');\n }\n\n validateOffsetLengthRead(offset\x2C length\x2C buffer.byteLength);\n\n if (position == null)\n position = -1;\n\n validatePosition(position\x2C 'position');\n\n const ctx = {};\n const result = binding.read(fd\x2C buffer\x2C offset\x2C length\x2C position\x2C\n undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return result;\n}\n\n/**\n * Reads file from the specified `fd` (file descriptor)\n * and writes to an array of `ArrayBufferView`s.\n * @param {number} fd\n * @param {ArrayBufferView[]} buffers\n * @param {number} [position]\n * @param {(\n * err?: Error\x2C\n * bytesRead?: number\x2C\n * buffers?: ArrayBufferView[];\n * ) => any} callback\n * @returns {void}\n */\nfunction readv(fd\x2C buffers\x2C position\x2C callback) {\n function wrapper(err\x2C read) {\n callback(err\x2C read || 0\x2C buffers);\n }\n\n fd = getValidatedFd(fd);\n validateBufferArray(buffers);\n callback = maybeCallback(callback || position);\n\n const req = new FSReqCallback();\n req.oncomplete = wrapper;\n\n if (typeof position !== 'number')\n position = null;\n\n return binding.readBuffers(fd\x2C buffers\x2C position\x2C req);\n}\n\nObjectDefineProperty(readv\x2C internalUtil.customPromisifyArgs\x2C\n { value: ['bytesRead'\x2C 'buffers']\x2C enumerable: false });\n\n/**\n * Synchronously reads file from the\n * specified `fd` (file descriptor) and writes to an array\n * of `ArrayBufferView`s.\n * @param {number} fd\n * @param {ArrayBufferView[]} buffers\n * @param {number} [position]\n * @returns {number}\n */\nfunction readvSync(fd\x2C buffers\x2C position) {\n fd = getValidatedFd(fd);\n validateBufferArray(buffers);\n\n const ctx = {};\n\n if (typeof position !== 'number')\n position = null;\n\n const result = binding.readBuffers(fd\x2C buffers\x2C position\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return result;\n}\n\n/**\n * Writes `buffer` to the specified `fd` (file descriptor).\n * @param {number} fd\n * @param {Buffer | TypedArray | DataView | string | Object} buffer\n * @param {number} [offset]\n * @param {number} [length]\n * @param {number} [position]\n * @param {(\n * err?: Error\x2C\n * bytesWritten?: number;\n * buffer?: Buffer | TypedArray | DataView\n * ) => any} callback\n * @returns {void}\n */\nfunction write(fd\x2C buffer\x2C offset\x2C length\x2C position\x2C callback) {\n function wrapper(err\x2C written) {\n // Retain a reference to buffer so that it can't be GC'ed too soon.\n callback(err\x2C written || 0\x2C buffer);\n }\n\n fd = getValidatedFd(fd);\n\n if (isArrayBufferView(buffer)) {\n callback = maybeCallback(callback || position || length || offset);\n if (offset == null || typeof offset === 'function') {\n offset = 0;\n } else {\n validateInteger(offset\x2C 'offset'\x2C 0);\n }\n if (typeof length !== 'number')\n length = buffer.byteLength - offset;\n if (typeof position !== 'number')\n position = null;\n validateOffsetLengthWrite(offset\x2C length\x2C buffer.byteLength);\n\n const req = new FSReqCallback();\n req.oncomplete = wrapper;\n return binding.writeBuffer(fd\x2C buffer\x2C offset\x2C length\x2C position\x2C req);\n }\n\n validateStringAfterArrayBufferView(buffer\x2C 'buffer');\n\n if (typeof position !== 'function') {\n if (typeof offset === 'function') {\n position = offset;\n offset = null;\n } else {\n position = length;\n }\n length = 'utf8';\n }\n\n const str = String(buffer);\n validateEncoding(str\x2C length);\n callback = maybeCallback(position);\n\n const req = new FSReqCallback();\n req.oncomplete = wrapper;\n return binding.writeString(fd\x2C str\x2C offset\x2C length\x2C req);\n}\n\nObjectDefineProperty(write\x2C internalUtil.customPromisifyArgs\x2C\n { value: ['bytesWritten'\x2C 'buffer']\x2C enumerable: false });\n\n/**\n * Synchronously writes `buffer` to the\n * specified `fd` (file descriptor).\n * @param {number} fd\n * @param {Buffer | TypedArray | DataView | string | Object} buffer\n * @param {number} [offset]\n * @param {number} [length]\n * @param {number} [position]\n * @returns {number}\n */\nfunction writeSync(fd\x2C buffer\x2C offset\x2C length\x2C position) {\n fd = getValidatedFd(fd);\n const ctx = {};\n let result;\n if (isArrayBufferView(buffer)) {\n if (position === undefined)\n position = null;\n if (offset == null) {\n offset = 0;\n } else {\n validateInteger(offset\x2C 'offset'\x2C 0);\n }\n if (typeof length !== 'number')\n length = buffer.byteLength - offset;\n validateOffsetLengthWrite(offset\x2C length\x2C buffer.byteLength);\n result = binding.writeBuffer(fd\x2C buffer\x2C offset\x2C length\x2C position\x2C\n undefined\x2C ctx);\n } else {\n validateStringAfterArrayBufferView(buffer\x2C 'buffer');\n validateEncoding(buffer\x2C length);\n\n if (offset === undefined)\n offset = null;\n result = binding.writeString(fd\x2C buffer\x2C offset\x2C length\x2C\n undefined\x2C ctx);\n }\n handleErrorFromBinding(ctx);\n return result;\n}\n\n/**\n * Writes an array of `ArrayBufferView`s to the\n * specified `fd` (file descriptor).\n * @param {number} fd\n * @param {ArrayBufferView[]} buffers\n * @param {number} [position]\n * @param {(\n * err?: Error\x2C\n * bytesWritten?: number\x2C\n * buffers?: ArrayBufferView[]\n * ) => any} callback\n * @returns {void}\n */\nfunction writev(fd\x2C buffers\x2C position\x2C callback) {\n function wrapper(err\x2C written) {\n callback(err\x2C written || 0\x2C buffers);\n }\n\n fd = getValidatedFd(fd);\n validateBufferArray(buffers);\n callback = maybeCallback(callback || position);\n\n const req = new FSReqCallback();\n req.oncomplete = wrapper;\n\n if (typeof position !== 'number')\n position = null;\n\n return binding.writeBuffers(fd\x2C buffers\x2C position\x2C req);\n}\n\nObjectDefineProperty(writev\x2C internalUtil.customPromisifyArgs\x2C {\n value: ['bytesWritten'\x2C 'buffer']\x2C\n enumerable: false\n});\n\n/**\n * Synchronously writes an array of `ArrayBufferView`s\n * to the specified `fd` (file descriptor).\n * @param {number} fd\n * @param {ArrayBufferView[]} buffers\n * @param {number} [position]\n * @returns {number}\n */\nfunction writevSync(fd\x2C buffers\x2C position) {\n fd = getValidatedFd(fd);\n validateBufferArray(buffers);\n\n const ctx = {};\n\n if (typeof position !== 'number')\n position = null;\n\n const result = binding.writeBuffers(fd\x2C buffers\x2C position\x2C undefined\x2C ctx);\n\n handleErrorFromBinding(ctx);\n return result;\n}\n\n/**\n * Asynchronously renames file at `oldPath` to\n * the pathname provided as `newPath`.\n * @param {string | Buffer | URL} oldPath\n * @param {string | Buffer | URL} newPath\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction rename(oldPath\x2C newPath\x2C callback) {\n callback = makeCallback(callback);\n oldPath = getValidatedPath(oldPath\x2C 'oldPath');\n newPath = getValidatedPath(newPath\x2C 'newPath');\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.rename(pathModule.toNamespacedPath(oldPath)\x2C\n pathModule.toNamespacedPath(newPath)\x2C\n req);\n}\n\n\n/**\n * Synchronously renames file at `oldPath` to\n * the pathname provided as `newPath`.\n * @param {string | Buffer | URL} oldPath\n * @param {string | Buffer | URL} newPath\n * @returns {void}\n */\nfunction renameSync(oldPath\x2C newPath) {\n oldPath = getValidatedPath(oldPath\x2C 'oldPath');\n newPath = getValidatedPath(newPath\x2C 'newPath');\n const ctx = { path: oldPath\x2C dest: newPath };\n binding.rename(pathModule.toNamespacedPath(oldPath)\x2C\n pathModule.toNamespacedPath(newPath)\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Truncates the file.\n * @param {string | Buffer | URL} path\n * @param {number} [len]\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction truncate(path\x2C len\x2C callback) {\n if (typeof path === 'number') {\n showTruncateDeprecation();\n return fs.ftruncate(path\x2C len\x2C callback);\n }\n if (typeof len === 'function') {\n callback = len;\n len = 0;\n } else if (len === undefined) {\n len = 0;\n }\n\n validateInteger(len\x2C 'len');\n len = MathMax(0\x2C len);\n callback = maybeCallback(callback);\n fs.open(path\x2C 'r+'\x2C (er\x2C fd) => {\n if (er) return callback(er);\n const req = new FSReqCallback();\n req.oncomplete = function oncomplete(er) {\n fs.close(fd\x2C (er2) => {\n callback(aggregateTwoErrors(er2\x2C er));\n });\n };\n binding.ftruncate(fd\x2C len\x2C req);\n });\n}\n\n/**\n * Synchronously truncates the file.\n * @param {string | Buffer | URL} path\n * @param {number} [len]\n * @returns {void}\n */\nfunction truncateSync(path\x2C len) {\n if (typeof path === 'number') {\n // legacy\n showTruncateDeprecation();\n return fs.ftruncateSync(path\x2C len);\n }\n if (len === undefined) {\n len = 0;\n }\n // Allow error to be thrown\x2C but still close fd.\n const fd = fs.openSync(path\x2C 'r+');\n let ret;\n\n try {\n ret = fs.ftruncateSync(fd\x2C len);\n } finally {\n fs.closeSync(fd);\n }\n return ret;\n}\n\n/**\n * Truncates the file descriptor.\n * @param {number} fd\n * @param {number} [len]\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction ftruncate(fd\x2C len = 0\x2C callback) {\n if (typeof len === 'function') {\n callback = len;\n len = 0;\n }\n fd = getValidatedFd(fd);\n validateInteger(len\x2C 'len');\n len = MathMax(0\x2C len);\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.ftruncate(fd\x2C len\x2C req);\n}\n\n/**\n * Synchronously truncates the file descriptor.\n * @param {number} fd\n * @param {number} [len]\n * @returns {void}\n */\nfunction ftruncateSync(fd\x2C len = 0) {\n fd = getValidatedFd(fd);\n validateInteger(len\x2C 'len');\n len = MathMax(0\x2C len);\n const ctx = {};\n binding.ftruncate(fd\x2C len\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\nfunction lazyLoadCp() {\n if (cpFn === undefined) {\n ({ cpFn } = require('internal/fs/cp/cp'));\n cpFn = require('util').callbackify(cpFn);\n ({ cpSyncFn } = require('internal/fs/cp/cp-sync'));\n }\n}\n\nfunction lazyLoadRimraf() {\n if (rimraf === undefined)\n ({ rimraf\x2C rimrafSync } = require('internal/fs/rimraf'));\n}\n\n/**\n * Asynchronously removes a directory.\n * @param {string | Buffer | URL} path\n * @param {{\n * maxRetries?: number;\n * recursive?: boolean;\n * retryDelay?: number;\n * }} [options]\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction rmdir(path\x2C options\x2C callback) {\n if (typeof options === 'function') {\n callback = options;\n options = undefined;\n }\n\n callback = makeCallback(callback);\n path = pathModule.toNamespacedPath(getValidatedPath(path));\n\n if (options?.recursive) {\n emitRecursiveRmdirWarning();\n validateRmOptions(\n path\x2C\n { ...options\x2C force: false }\x2C\n true\x2C\n (err\x2C options) => {\n if (err === false) {\n const req = new FSReqCallback();\n req.oncomplete = callback;\n return binding.rmdir(path\x2C req);\n }\n if (err) {\n return callback(err);\n }\n\n lazyLoadRimraf();\n rimraf(path\x2C options\x2C callback);\n });\n } else {\n validateRmdirOptions(options);\n const req = new FSReqCallback();\n req.oncomplete = callback;\n return binding.rmdir(path\x2C req);\n }\n}\n\n/**\n * Synchronously removes a directory.\n * @param {string | Buffer | URL} path\n * @param {{\n * maxRetries?: number;\n * recursive?: boolean;\n * retryDelay?: number;\n * }} [options]\n * @returns {void}\n */\nfunction rmdirSync(path\x2C options) {\n path = getValidatedPath(path);\n\n if (options?.recursive) {\n emitRecursiveRmdirWarning();\n options = validateRmOptionsSync(path\x2C { ...options\x2C force: false }\x2C true);\n if (options !== false) {\n lazyLoadRimraf();\n return rimrafSync(pathModule.toNamespacedPath(path)\x2C options);\n }\n } else {\n validateRmdirOptions(options);\n }\n\n const ctx = { path };\n binding.rmdir(pathModule.toNamespacedPath(path)\x2C undefined\x2C ctx);\n return handleErrorFromBinding(ctx);\n}\n\n/**\n * Asynchronously removes files and\n * directories (modeled on the standard POSIX `rm` utility).\n * @param {string | Buffer | URL} path\n * @param {{\n * force?: boolean;\n * maxRetries?: number;\n * recursive?: boolean;\n * retryDelay?: number;\n * }} [options]\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction rm(path\x2C options\x2C callback) {\n if (typeof options === 'function') {\n callback = options;\n options = undefined;\n }\n\n validateRmOptions(path\x2C options\x2C false\x2C (err\x2C options) => {\n if (err) {\n return callback(err);\n }\n lazyLoadRimraf();\n return rimraf(pathModule.toNamespacedPath(path)\x2C options\x2C callback);\n });\n}\n\n/**\n * Synchronously removes files and\n * directories (modeled on the standard POSIX `rm` utility).\n * @param {string | Buffer | URL} path\n * @param {{\n * force?: boolean;\n * maxRetries?: number;\n * recursive?: boolean;\n * retryDelay?: number;\n * }} [options]\n * @returns {void}\n */\nfunction rmSync(path\x2C options) {\n options = validateRmOptionsSync(path\x2C options\x2C false);\n\n lazyLoadRimraf();\n return rimrafSync(pathModule.toNamespacedPath(path)\x2C options);\n}\n\n/**\n * Forces all currently queued I/O operations associated\n * with the file to the operating system's synchronized\n * I/O completion state.\n * @param {number} fd\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction fdatasync(fd\x2C callback) {\n fd = getValidatedFd(fd);\n const req = new FSReqCallback();\n req.oncomplete = makeCallback(callback);\n binding.fdatasync(fd\x2C req);\n}\n\n/**\n * Synchronously forces all currently queued I/O operations\n * associated with the file to the operating\n * system's synchronized I/O completion state.\n * @param {number} fd\n * @returns {void}\n */\nfunction fdatasyncSync(fd) {\n fd = getValidatedFd(fd);\n const ctx = {};\n binding.fdatasync(fd\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Requests for all data for the open file descriptor\n * to be flushed to the storage device.\n * @param {number} fd\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction fsync(fd\x2C callback) {\n fd = getValidatedFd(fd);\n const req = new FSReqCallback();\n req.oncomplete = makeCallback(callback);\n binding.fsync(fd\x2C req);\n}\n\n/**\n * Synchronously requests for all data for the open\n * file descriptor to be flushed to the storage device.\n * @param {number} fd\n * @returns {void}\n */\nfunction fsyncSync(fd) {\n fd = getValidatedFd(fd);\n const ctx = {};\n binding.fsync(fd\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Asynchronously creates a directory.\n * @param {string | Buffer | URL} path\n * @param {{\n * recursive?: boolean;\n * mode?: string | number;\n * } | number} [options]\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction mkdir(path\x2C options\x2C callback) {\n let mode = 0o777;\n let recursive = false;\n if (typeof options === 'function') {\n callback = options;\n } else if (typeof options === 'number' || typeof options === 'string') {\n mode = options;\n } else if (options) {\n if (options.recursive !== undefined)\n recursive = options.recursive;\n if (options.mode !== undefined)\n mode = options.mode;\n }\n callback = makeCallback(callback);\n path = getValidatedPath(path);\n\n validateBoolean(recursive\x2C 'options.recursive');\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.mkdir(pathModule.toNamespacedPath(path)\x2C\n parseFileMode(mode\x2C 'mode')\x2C recursive\x2C req);\n}\n\n/**\n * Synchronously creates a directory.\n * @param {string | Buffer | URL} path\n * @param {{\n * recursive?: boolean;\n * mode?: string | number;\n * } | number} [options]\n * @returns {string | void}\n */\nfunction mkdirSync(path\x2C options) {\n let mode = 0o777;\n let recursive = false;\n if (typeof options === 'number' || typeof options === 'string') {\n mode = options;\n } else if (options) {\n if (options.recursive !== undefined)\n recursive = options.recursive;\n if (options.mode !== undefined)\n mode = options.mode;\n }\n path = getValidatedPath(path);\n validateBoolean(recursive\x2C 'options.recursive');\n\n const ctx = { path };\n const result = binding.mkdir(pathModule.toNamespacedPath(path)\x2C\n parseFileMode(mode\x2C 'mode')\x2C recursive\x2C\n undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n if (recursive) {\n return result;\n }\n}\n\n/**\n * Reads the contents of a directory.\n * @param {string | Buffer | URL} path\n * @param {string | {\n * encoding?: string;\n * withFileTypes?: boolean;\n * }} [options]\n * @param {(\n * err?: Error\x2C\n * files?: string[] | Buffer[] | Direct[];\n * ) => any} callback\n * @returns {void}\n */\nfunction readdir(path\x2C options\x2C callback) {\n callback = makeCallback(typeof options === 'function' ? options : callback);\n options = getOptions(options\x2C {});\n path = getValidatedPath(path);\n\n const req = new FSReqCallback();\n if (!options.withFileTypes) {\n req.oncomplete = callback;\n } else {\n req.oncomplete = (err\x2C result) => {\n if (err) {\n callback(err);\n return;\n }\n getDirents(path\x2C result\x2C callback);\n };\n }\n binding.readdir(pathModule.toNamespacedPath(path)\x2C options.encoding\x2C\n !!options.withFileTypes\x2C req);\n}\n\n/**\n * Synchronously reads the contents of a directory.\n * @param {string | Buffer | URL} path\n * @param {string | {\n * encoding?: string;\n * withFileTypes?: boolean;\n * }} [options]\n * @returns {string | Buffer[] | Dirent[]}\n */\nfunction readdirSync(path\x2C options) {\n options = getOptions(options\x2C {});\n path = getValidatedPath(path);\n const ctx = { path };\n const result = binding.readdir(pathModule.toNamespacedPath(path)\x2C\n options.encoding\x2C !!options.withFileTypes\x2C\n undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return options.withFileTypes ? getDirents(path\x2C result) : result;\n}\n\n/**\n * Invokes the callback with the `fs.Stats`\n * for the file descriptor.\n * @param {number} fd\n * @param {{ bigint?: boolean; }} [options]\n * @param {(\n * err?: Error\x2C\n * stats?: Stats\n * ) => any} callback\n * @returns {void}\n */\nfunction fstat(fd\x2C options = { bigint: false }\x2C callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n fd = getValidatedFd(fd);\n callback = makeStatsCallback(callback);\n\n const req = new FSReqCallback(options.bigint);\n req.oncomplete = callback;\n binding.fstat(fd\x2C options.bigint\x2C req);\n}\n\n/**\n * Retrieves the `fs.Stats` for the symbolic link\n * referred to by the `path`.\n * @param {string | Buffer | URL} path\n * @param {{ bigint?: boolean; }} [options]\n * @param {(\n * err?: Error\x2C\n * stats?: Stats\n * ) => any} callback\n * @returns {void}\n */\nfunction lstat(path\x2C options = { bigint: false }\x2C callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n callback = makeStatsCallback(callback);\n path = getValidatedPath(path);\n\n const req = new FSReqCallback(options.bigint);\n req.oncomplete = callback;\n binding.lstat(pathModule.toNamespacedPath(path)\x2C options.bigint\x2C req);\n}\n\n/**\n * Asynchronously gets the stats of a file.\n * @param {string | Buffer | URL} path\n * @param {{ bigint?: boolean; }} [options]\n * @param {(\n * err?: Error\x2C\n * stats?: Stats\n * ) => any} callback\n * @returns {void}\n */\nfunction stat(path\x2C options = { bigint: false }\x2C callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n callback = makeStatsCallback(callback);\n path = getValidatedPath(path);\n\n const req = new FSReqCallback(options.bigint);\n req.oncomplete = callback;\n binding.stat(pathModule.toNamespacedPath(path)\x2C options.bigint\x2C req);\n}\n\nfunction hasNoEntryError(ctx) {\n if (ctx.errno) {\n const uvErr = uvErrmapGet(ctx.errno);\n return uvErr?.[0] === 'ENOENT';\n }\n\n if (ctx.error) {\n return ctx.error.code === 'ENOENT';\n }\n\n return false;\n}\n\n/**\n * Synchronously retrieves the `fs.Stats` for\n * the file descriptor.\n * @param {number} fd\n * @param {{\n * bigint?: boolean;\n * throwIfNoEntry?: boolean;\n * }} [options]\n * @returns {Stats}\n */\nfunction fstatSync(fd\x2C options = { bigint: false\x2C throwIfNoEntry: true }) {\n fd = getValidatedFd(fd);\n const ctx = { fd };\n const stats = binding.fstat(fd\x2C options.bigint\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return getStatsFromBinding(stats);\n}\n\n/**\n * Synchronously retrieves the `fs.Stats` for\n * the symbolic link referred to by the `path`.\n * @param {string | Buffer | URL} path\n * @param {{\n * bigint?: boolean;\n * throwIfNoEntry?: boolean;\n * }} [options]\n * @returns {Stats}\n */\nfunction lstatSync(path\x2C options = { bigint: false\x2C throwIfNoEntry: true }) {\n path = getValidatedPath(path);\n const ctx = { path };\n const stats = binding.lstat(pathModule.toNamespacedPath(path)\x2C\n options.bigint\x2C undefined\x2C ctx);\n if (options.throwIfNoEntry === false && hasNoEntryError(ctx)) {\n return undefined;\n }\n handleErrorFromBinding(ctx);\n return getStatsFromBinding(stats);\n}\n\n/**\n * Synchronously retrieves the `fs.Stats`\n * for the `path`.\n * @param {string | Buffer | URL} path\n * @param {{\n * bigint?: boolean;\n * throwIfNoEntry?: boolean;\n * }} [options]\n * @returns {Stats}\n */\nfunction statSync(path\x2C options = { bigint: false\x2C throwIfNoEntry: true }) {\n path = getValidatedPath(path);\n const ctx = { path };\n const stats = binding.stat(pathModule.toNamespacedPath(path)\x2C\n options.bigint\x2C undefined\x2C ctx);\n if (options.throwIfNoEntry === false && hasNoEntryError(ctx)) {\n return undefined;\n }\n handleErrorFromBinding(ctx);\n return getStatsFromBinding(stats);\n}\n\n/**\n * Reads the contents of a symbolic link\n * referred to by `path`.\n * @param {string | Buffer | URL} path\n * @param {{ encoding?: string; } | string} [options]\n * @param {(\n * err?: Error\x2C\n * linkString?: string | Buffer\n * ) => any} callback\n * @returns {void}\n */\nfunction readlink(path\x2C options\x2C callback) {\n callback = makeCallback(typeof options === 'function' ? options : callback);\n options = getOptions(options\x2C {});\n path = getValidatedPath(path\x2C 'oldPath');\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.readlink(pathModule.toNamespacedPath(path)\x2C options.encoding\x2C req);\n}\n\n/**\n * Synchronously reads the contents of a symbolic link\n * referred to by `path`.\n * @param {string | Buffer | URL} path\n * @param {{ encoding?: string; } | string} [options]\n * @returns {string | Buffer}\n */\nfunction readlinkSync(path\x2C options) {\n options = getOptions(options\x2C {});\n path = getValidatedPath(path\x2C 'oldPath');\n const ctx = { path };\n const result = binding.readlink(pathModule.toNamespacedPath(path)\x2C\n options.encoding\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return result;\n}\n\n/**\n * Creates the link called `path` pointing to `target`.\n * @param {string | Buffer | URL} target\n * @param {string | Buffer | URL} path\n * @param {string} [type_]\n * @param {(err?: Error) => any} callback_\n * @returns {void}\n */\nfunction symlink(target\x2C path\x2C type_\x2C callback_) {\n const type = (typeof type_ === 'string' ? type_ : null);\n const callback = makeCallback(arguments[arguments.length - 1]);\n\n target = getValidatedPath(target\x2C 'target');\n path = getValidatedPath(path);\n\n if (isWindows && type === null) {\n let absoluteTarget;\n try {\n // Symlinks targets can be relative to the newly created path.\n // Calculate absolute file name of the symlink target\x2C and check\n // if it is a directory. Ignore resolve error to keep symlink\n // errors consistent between platforms if invalid path is\n // provided.\n absoluteTarget = pathModule.resolve(path\x2C '..'\x2C target);\n } catch { }\n if (absoluteTarget !== undefined) {\n stat(absoluteTarget\x2C (err\x2C stat) => {\n const resolvedType = !err && stat.isDirectory() ? 'dir' : 'file';\n const resolvedFlags = stringToSymlinkType(resolvedType);\n const destination = preprocessSymlinkDestination(target\x2C\n resolvedType\x2C\n path);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.symlink(destination\x2C\n pathModule.toNamespacedPath(path)\x2C resolvedFlags\x2C req);\n });\n return;\n }\n }\n\n const destination = preprocessSymlinkDestination(target\x2C type\x2C path);\n\n const flags = stringToSymlinkType(type);\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.symlink(destination\x2C pathModule.toNamespacedPath(path)\x2C flags\x2C req);\n}\n\n/**\n * Synchronously creates the link called `path`\n * pointing to `target`.\n * @param {string | Buffer | URL} target\n * @param {string | Buffer | URL} path\n * @param {string} [type]\n * @returns {void}\n */\nfunction symlinkSync(target\x2C path\x2C type) {\n type = (typeof type === 'string' ? type : null);\n if (isWindows && type === null) {\n const absoluteTarget = pathModule.resolve(`${path}`\x2C '..'\x2C `${target}`);\n if (statSync(absoluteTarget\x2C { throwIfNoEntry: false })?.isDirectory()) {\n type = 'dir';\n }\n }\n target = getValidatedPath(target\x2C 'target');\n path = getValidatedPath(path);\n const flags = stringToSymlinkType(type);\n\n const ctx = { path: target\x2C dest: path };\n binding.symlink(preprocessSymlinkDestination(target\x2C type\x2C path)\x2C\n pathModule.toNamespacedPath(path)\x2C flags\x2C undefined\x2C ctx);\n\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Creates a new link from the `existingPath`\n * to the `newPath`.\n * @param {string | Buffer | URL} existingPath\n * @param {string | Buffer | URL} newPath\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction link(existingPath\x2C newPath\x2C callback) {\n callback = makeCallback(callback);\n\n existingPath = getValidatedPath(existingPath\x2C 'existingPath');\n newPath = getValidatedPath(newPath\x2C 'newPath');\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n\n binding.link(pathModule.toNamespacedPath(existingPath)\x2C\n pathModule.toNamespacedPath(newPath)\x2C\n req);\n}\n\n/**\n * Synchronously creates a new link from the `existingPath`\n * to the `newPath`.\n * @param {string | Buffer | URL} existingPath\n * @param {string | Buffer | URL} newPath\n * @returns {void}\n */\nfunction linkSync(existingPath\x2C newPath) {\n existingPath = getValidatedPath(existingPath\x2C 'existingPath');\n newPath = getValidatedPath(newPath\x2C 'newPath');\n\n const ctx = { path: existingPath\x2C dest: newPath };\n const result = binding.link(pathModule.toNamespacedPath(existingPath)\x2C\n pathModule.toNamespacedPath(newPath)\x2C\n undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return result;\n}\n\n/**\n * Asynchronously removes a file or symbolic link.\n * @param {string | Buffer | URL} path\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction unlink(path\x2C callback) {\n callback = makeCallback(callback);\n path = getValidatedPath(path);\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.unlink(pathModule.toNamespacedPath(path)\x2C req);\n}\n\n/**\n * Synchronously removes a file or symbolic link.\n * @param {string | Buffer | URL} path\n * @returns {void}\n */\nfunction unlinkSync(path) {\n path = getValidatedPath(path);\n const ctx = { path };\n binding.unlink(pathModule.toNamespacedPath(path)\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Sets the permissions on the file.\n * @param {number} fd\n * @param {string | number} mode\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction fchmod(fd\x2C mode\x2C callback) {\n fd = getValidatedFd(fd);\n mode = parseFileMode(mode\x2C 'mode');\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.fchmod(fd\x2C mode\x2C req);\n}\n\n/**\n * Synchronously sets the permissions on the file.\n * @param {number} fd\n * @param {string | number} mode\n * @returns {void}\n */\nfunction fchmodSync(fd\x2C mode) {\n fd = getValidatedFd(fd);\n mode = parseFileMode(mode\x2C 'mode');\n const ctx = {};\n binding.fchmod(fd\x2C mode\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Changes the permissions on a symbolic link.\n * @param {string | Buffer | URL} path\n * @param {number} mode\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction lchmod(path\x2C mode\x2C callback) {\n callback = maybeCallback(callback);\n mode = parseFileMode(mode\x2C 'mode');\n fs.open(path\x2C O_WRONLY | O_SYMLINK\x2C (err\x2C fd) => {\n if (err) {\n callback(err);\n return;\n }\n // Prefer to return the chmod error\x2C if one occurs\x2C\n // but still try to close\x2C and report closing errors if they occur.\n fs.fchmod(fd\x2C mode\x2C (err) => {\n fs.close(fd\x2C (err2) => {\n callback(aggregateTwoErrors(err2\x2C err));\n });\n });\n });\n}\n\n/**\n * Synchronously changes the permissions on a symbolic link.\n * @param {string | Buffer | URL} path\n * @param {number} mode\n * @returns {void}\n */\nfunction lchmodSync(path\x2C mode) {\n const fd = fs.openSync(path\x2C O_WRONLY | O_SYMLINK);\n\n // Prefer to return the chmod error\x2C if one occurs\x2C\n // but still try to close\x2C and report closing errors if they occur.\n let ret;\n try {\n ret = fs.fchmodSync(fd\x2C mode);\n } finally {\n fs.closeSync(fd);\n }\n return ret;\n}\n\n/**\n * Asynchronously changes the permissions of a file.\n * @param {string | Buffer | URL} path\n * @param {string | number} mode\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction chmod(path\x2C mode\x2C callback) {\n path = getValidatedPath(path);\n mode = parseFileMode(mode\x2C 'mode');\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.chmod(pathModule.toNamespacedPath(path)\x2C mode\x2C req);\n}\n\n/**\n * Synchronously changes the permissions of a file.\n * @param {string | Buffer | URL} path\n * @param {string | number} mode\n * @returns {void}\n */\nfunction chmodSync(path\x2C mode) {\n path = getValidatedPath(path);\n mode = parseFileMode(mode\x2C 'mode');\n\n const ctx = { path };\n binding.chmod(pathModule.toNamespacedPath(path)\x2C mode\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Sets the owner of the symbolic link.\n * @param {string | Buffer | URL} path\n * @param {number} uid\n * @param {number} gid\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction lchown(path\x2C uid\x2C gid\x2C callback) {\n callback = makeCallback(callback);\n path = getValidatedPath(path);\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.lchown(pathModule.toNamespacedPath(path)\x2C uid\x2C gid\x2C req);\n}\n\n/**\n * Synchronously sets the owner of the symbolic link.\n * @param {string | Buffer | URL} path\n * @param {number} uid\n * @param {number} gid\n * @returns {void}\n */\nfunction lchownSync(path\x2C uid\x2C gid) {\n path = getValidatedPath(path);\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n const ctx = { path };\n binding.lchown(pathModule.toNamespacedPath(path)\x2C uid\x2C gid\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Sets the owner of the file.\n * @param {number} fd\n * @param {number} uid\n * @param {number} gid\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction fchown(fd\x2C uid\x2C gid\x2C callback) {\n fd = getValidatedFd(fd);\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.fchown(fd\x2C uid\x2C gid\x2C req);\n}\n\n/**\n * Synchronously sets the owner of the file.\n * @param {number} fd\n * @param {number} uid\n * @param {number} gid\n * @returns {void}\n */\nfunction fchownSync(fd\x2C uid\x2C gid) {\n fd = getValidatedFd(fd);\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n\n const ctx = {};\n binding.fchown(fd\x2C uid\x2C gid\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Asynchronously changes the owner and group\n * of a file.\n * @param {string | Buffer | URL} path\n * @param {number} uid\n * @param {number} gid\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction chown(path\x2C uid\x2C gid\x2C callback) {\n callback = makeCallback(callback);\n path = getValidatedPath(path);\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.chown(pathModule.toNamespacedPath(path)\x2C uid\x2C gid\x2C req);\n}\n\n/**\n * Synchronously changes the owner and group\n * of a file.\n * @param {string | Buffer | URL} path\n * @param {number} uid\n * @param {number} gid\n * @returns {void}\n */\nfunction chownSync(path\x2C uid\x2C gid) {\n path = getValidatedPath(path);\n validateInteger(uid\x2C 'uid'\x2C -1\x2C kMaxUserId);\n validateInteger(gid\x2C 'gid'\x2C -1\x2C kMaxUserId);\n const ctx = { path };\n binding.chown(pathModule.toNamespacedPath(path)\x2C uid\x2C gid\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Changes the file system timestamps of the object\n * referenced by `path`.\n * @param {string | Buffer | URL} path\n * @param {number | string | Date} atime\n * @param {number | string | Date} mtime\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction utimes(path\x2C atime\x2C mtime\x2C callback) {\n callback = makeCallback(callback);\n path = getValidatedPath(path);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.utimes(pathModule.toNamespacedPath(path)\x2C\n toUnixTimestamp(atime)\x2C\n toUnixTimestamp(mtime)\x2C\n req);\n}\n\n/**\n * Synchronously changes the file system timestamps\n * of the object referenced by `path`.\n * @param {string | Buffer | URL} path\n * @param {number | string | Date} atime\n * @param {number | string | Date} mtime\n * @returns {void}\n */\nfunction utimesSync(path\x2C atime\x2C mtime) {\n path = getValidatedPath(path);\n const ctx = { path };\n binding.utimes(pathModule.toNamespacedPath(path)\x2C\n toUnixTimestamp(atime)\x2C toUnixTimestamp(mtime)\x2C\n undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Changes the file system timestamps of the object\n * referenced by the supplied `fd` (file descriptor).\n * @param {number} fd\n * @param {number | string | Date} atime\n * @param {number | string | Date} mtime\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction futimes(fd\x2C atime\x2C mtime\x2C callback) {\n fd = getValidatedFd(fd);\n atime = toUnixTimestamp(atime\x2C 'atime');\n mtime = toUnixTimestamp(mtime\x2C 'mtime');\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.futimes(fd\x2C atime\x2C mtime\x2C req);\n}\n\n/**\n * Synchronously changes the file system timestamps\n * of the object referenced by the\n * supplied `fd` (file descriptor).\n * @param {number} fd\n * @param {number | string | Date} atime\n * @param {number | string | Date} mtime\n * @returns {void}\n */\nfunction futimesSync(fd\x2C atime\x2C mtime) {\n fd = getValidatedFd(fd);\n atime = toUnixTimestamp(atime\x2C 'atime');\n mtime = toUnixTimestamp(mtime\x2C 'mtime');\n const ctx = {};\n binding.futimes(fd\x2C atime\x2C mtime\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Changes the access and modification times of\n * a file in the same way as `fs.utimes()`.\n * @param {string | Buffer | URL} path\n * @param {number | string | Date} atime\n * @param {number | string | Date} mtime\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction lutimes(path\x2C atime\x2C mtime\x2C callback) {\n callback = makeCallback(callback);\n path = getValidatedPath(path);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.lutimes(pathModule.toNamespacedPath(path)\x2C\n toUnixTimestamp(atime)\x2C\n toUnixTimestamp(mtime)\x2C\n req);\n}\n\n/**\n * Synchronously changes the access and modification\n * times of a file in the same way as `fs.utimesSync()`.\n * @param {string | Buffer | URL} path\n * @param {number | string | Date} atime\n * @param {number | string | Date} mtime\n * @returns {void}\n */\nfunction lutimesSync(path\x2C atime\x2C mtime) {\n path = getValidatedPath(path);\n const ctx = { path };\n binding.lutimes(pathModule.toNamespacedPath(path)\x2C\n toUnixTimestamp(atime)\x2C\n toUnixTimestamp(mtime)\x2C\n undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\nfunction writeAll(fd\x2C isUserFd\x2C buffer\x2C offset\x2C length\x2C signal\x2C callback) {\n if (signal?.aborted) {\n const abortError = new AbortError();\n if (isUserFd) {\n callback(abortError);\n } else {\n fs.close(fd\x2C (err) => {\n callback(aggregateTwoErrors(err\x2C abortError));\n });\n }\n return;\n }\n // write(fd\x2C buffer\x2C offset\x2C length\x2C position\x2C callback)\n fs.write(fd\x2C buffer\x2C offset\x2C length\x2C null\x2C (writeErr\x2C written) => {\n if (writeErr) {\n if (isUserFd) {\n callback(writeErr);\n } else {\n fs.close(fd\x2C (err) => {\n callback(aggregateTwoErrors(err\x2C writeErr));\n });\n }\n } else if (written === length) {\n if (isUserFd) {\n callback(null);\n } else {\n fs.close(fd\x2C callback);\n }\n } else {\n offset += written;\n length -= written;\n writeAll(fd\x2C isUserFd\x2C buffer\x2C offset\x2C length\x2C signal\x2C callback);\n }\n });\n}\n\n/**\n * Asynchronously writes data to the file.\n * @param {string | Buffer | URL | number} path\n * @param {string | Buffer | TypedArray | DataView | Object} data\n * @param {{\n * encoding?: string | null;\n * mode?: number;\n * flag?: string;\n * signal?: AbortSignal;\n * } | string} [options]\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction writeFile(path\x2C data\x2C options\x2C callback) {\n callback = maybeCallback(callback || options);\n options = getOptions(options\x2C { encoding: 'utf8'\x2C mode: 0o666\x2C flag: 'w' });\n const flag = options.flag || 'w';\n\n if (!isArrayBufferView(data)) {\n validateStringAfterArrayBufferView(data\x2C 'data');\n data = Buffer.from(String(data)\x2C options.encoding || 'utf8');\n }\n\n if (isFd(path)) {\n const isUserFd = true;\n const signal = options.signal;\n writeAll(path\x2C isUserFd\x2C data\x2C 0\x2C data.byteLength\x2C signal\x2C callback);\n return;\n }\n\n if (checkAborted(options.signal\x2C callback))\n return;\n\n fs.open(path\x2C flag\x2C options.mode\x2C (openErr\x2C fd) => {\n if (openErr) {\n callback(openErr);\n } else {\n const isUserFd = false;\n const signal = options.signal;\n writeAll(fd\x2C isUserFd\x2C data\x2C 0\x2C data.byteLength\x2C signal\x2C callback);\n }\n });\n}\n\n/**\n * Synchronously writes data to the file.\n * @param {string | Buffer | URL | number} path\n * @param {string | Buffer | TypedArray | DataView | Object} data\n * @param {{\n * encoding?: string | null;\n * mode?: number;\n * flag?: string;\n * } | string} [options]\n * @returns {void}\n */\nfunction writeFileSync(path\x2C data\x2C options) {\n options = getOptions(options\x2C { encoding: 'utf8'\x2C mode: 0o666\x2C flag: 'w' });\n\n if (!isArrayBufferView(data)) {\n validateStringAfterArrayBufferView(data\x2C 'data');\n data = Buffer.from(String(data)\x2C options.encoding || 'utf8');\n }\n\n const flag = options.flag || 'w';\n\n const isUserFd = isFd(path); // File descriptor ownership\n const fd = isUserFd ? path : fs.openSync(path\x2C flag\x2C options.mode);\n\n let offset = 0;\n let length = data.byteLength;\n try {\n while (length > 0) {\n const written = fs.writeSync(fd\x2C data\x2C offset\x2C length);\n offset += written;\n length -= written;\n }\n } finally {\n if (!isUserFd) fs.closeSync(fd);\n }\n}\n\n/**\n * Asynchronously appends data to a file.\n * @param {string | Buffer | URL | number} path\n * @param {string | Buffer} data\n * @param {{\n * encoding?: string | null;\n * mode?: number;\n * flag?: string;\n * } | string} [options]\n * @param {(err?: Error) => any} callback\n * @returns {void}\n */\nfunction appendFile(path\x2C data\x2C options\x2C callback) {\n callback = maybeCallback(callback || options);\n options = getOptions(options\x2C { encoding: 'utf8'\x2C mode: 0o666\x2C flag: 'a' });\n\n // Don't make changes directly on options object\n options = copyObject(options);\n\n // Force append behavior when using a supplied file descriptor\n if (!options.flag || isFd(path))\n options.flag = 'a';\n\n fs.writeFile(path\x2C data\x2C options\x2C callback);\n}\n\n/**\n * Synchronously appends data to a file.\n * @param {string | Buffer | URL | number} path\n * @param {string | Buffer} data\n * @param {{\n * encoding?: string | null;\n * mode?: number;\n * flag?: string;\n * } | string} [options]\n * @returns {void}\n */\nfunction appendFileSync(path\x2C data\x2C options) {\n options = getOptions(options\x2C { encoding: 'utf8'\x2C mode: 0o666\x2C flag: 'a' });\n\n // Don't make changes directly on options object\n options = copyObject(options);\n\n // Force append behavior when using a supplied file descriptor\n if (!options.flag || isFd(path))\n options.flag = 'a';\n\n fs.writeFileSync(path\x2C data\x2C options);\n}\n\n/**\n * Watches for the changes on `filename`.\n * @param {string | Buffer | URL} filename\n * @param {string | {\n * persistent?: boolean;\n * recursive?: boolean;\n * encoding?: string;\n * signal?: AbortSignal;\n * }} [options]\n * @param {(\n * eventType?: string\x2C\n * filename?: string | Buffer\n * ) => any} [listener]\n * @returns {watchers.FSWatcher}\n */\nfunction watch(filename\x2C options\x2C listener) {\n if (typeof options === 'function') {\n listener = options;\n }\n options = getOptions(options\x2C {});\n\n // Don't make changes directly on options object\n options = copyObject(options);\n\n if (options.persistent === undefined) options.persistent = true;\n if (options.recursive === undefined) options.recursive = false;\n if (options.recursive && !(isOSX || isWindows))\n throw new ERR_FEATURE_UNAVAILABLE_ON_PLATFORM('watch recursively');\n const watcher = new watchers.FSWatcher();\n watcher[watchers.kFSWatchStart](filename\x2C\n options.persistent\x2C\n options.recursive\x2C\n options.encoding);\n\n if (listener) {\n watcher.addListener('change'\x2C listener);\n }\n if (options.signal) {\n if (options.signal.aborted) {\n process.nextTick(() => watcher.close());\n } else {\n const listener = () => watcher.close();\n options.signal.addEventListener('abort'\x2C listener);\n watcher.once('close'\x2C () => {\n options.signal.removeEventListener('abort'\x2C listener);\n });\n }\n }\n\n return watcher;\n}\n\n\nconst statWatchers = new SafeMap();\n\n/**\n * Watches for changes on `filename`.\n * @param {string | Buffer | URL} filename\n * @param {{\n * bigint?: boolean;\n * persistent?: boolean;\n * interval?: number;\n * }} [options]\n * @param {(\n * current?: Stats\x2C\n * previous?: Stats\n * ) => any} listener\n * @returns {watchers.StatWatcher}\n */\nfunction watchFile(filename\x2C options\x2C listener) {\n filename = getValidatedPath(filename);\n filename = pathModule.resolve(filename);\n let stat;\n\n if (options === null || typeof options !== 'object') {\n listener = options;\n options = null;\n }\n\n options = {\n // Poll interval in milliseconds. 5007 is what libev used to use. It's\n // a little on the slow side but let's stick with it for now to keep\n // behavioral changes to a minimum.\n interval: 5007\x2C\n persistent: true\x2C\n ...options\n };\n\n validateFunction(listener\x2C 'listener');\n\n stat = statWatchers.get(filename);\n\n if (stat === undefined) {\n stat = new watchers.StatWatcher(options.bigint);\n stat[watchers.kFSStatWatcherStart](filename\x2C\n options.persistent\x2C options.interval);\n statWatchers.set(filename\x2C stat);\n } else {\n stat[watchers.kFSStatWatcherAddOrCleanRef]('add');\n }\n\n stat.addListener('change'\x2C listener);\n return stat;\n}\n\n/**\n * Stops watching for changes on `filename`.\n * @param {string | Buffer | URL} filename\n * @param {() => any} [listener]\n * @returns {void}\n */\nfunction unwatchFile(filename\x2C listener) {\n filename = getValidatedPath(filename);\n filename = pathModule.resolve(filename);\n const stat = statWatchers.get(filename);\n\n if (stat === undefined) return;\n\n if (typeof listener === 'function') {\n const beforeListenerCount = stat.listenerCount('change');\n stat.removeListener('change'\x2C listener);\n if (stat.listenerCount('change') < beforeListenerCount)\n stat[watchers.kFSStatWatcherAddOrCleanRef]('clean');\n } else {\n stat.removeAllListeners('change');\n stat[watchers.kFSStatWatcherAddOrCleanRef]('cleanAll');\n }\n\n if (stat.listenerCount('change') === 0) {\n stat.stop();\n statWatchers.delete(filename);\n }\n}\n\n\nlet splitRoot;\nif (isWindows) {\n // Regex to find the device root on Windows (e.g. 'c:\\\\')\x2C including trailing\n // slash.\n const splitRootRe = /^(?:[a-zA-Z]:|[\\\\/]{2}[^\\\\/]+[\\\\/][^\\\\/]+)?[\\\\/]*/;\n splitRoot = function splitRoot(str) {\n return RegExpPrototypeExec(splitRootRe\x2C str)[0];\n };\n} else {\n splitRoot = function splitRoot(str) {\n for (let i = 0; i < str.length; ++i) {\n if (StringPrototypeCharCodeAt(str\x2C i) !== CHAR_FORWARD_SLASH)\n return StringPrototypeSlice(str\x2C 0\x2C i);\n }\n return str;\n };\n}\n\nfunction encodeRealpathResult(result\x2C options) {\n if (!options || !options.encoding || options.encoding === 'utf8')\n return result;\n const asBuffer = Buffer.from(result);\n if (options.encoding === 'buffer') {\n return asBuffer;\n }\n return asBuffer.toString(options.encoding);\n}\n\n// Finds the next portion of a (partial) path\x2C up to the next path delimiter\nlet nextPart;\nif (isWindows) {\n nextPart = function nextPart(p\x2C i) {\n for (; i < p.length; ++i) {\n const ch = StringPrototypeCharCodeAt(p\x2C i);\n\n // Check for a separator character\n if (ch === CHAR_BACKWARD_SLASH || ch === CHAR_FORWARD_SLASH)\n return i;\n }\n return -1;\n };\n} else {\n nextPart = function nextPart(p\x2C i) {\n return StringPrototypeIndexOf(p\x2C '/'\x2C i);\n };\n}\n\nconst emptyObj = ObjectCreate(null);\n\n/**\n * Returns the resolved pathname.\n * @param {string | Buffer | URL} p\n * @param {string | { encoding?: string | null; }} [options]\n * @returns {string | Buffer}\n */\nfunction realpathSync(p\x2C options) {\n options = getOptions(options\x2C emptyObj);\n p = toPathIfFileURL(p);\n if (typeof p !== 'string') {\n p += '';\n }\n validatePath(p);\n p = pathModule.resolve(p);\n\n const cache = options[realpathCacheKey];\n const maybeCachedResult = cache?.get(p);\n if (maybeCachedResult) {\n return maybeCachedResult;\n }\n\n const seenLinks = ObjectCreate(null);\n const knownHard = ObjectCreate(null);\n const original = p;\n\n // Current character position in p\n let pos;\n // The partial path so far\x2C including a trailing slash if any\n let current;\n // The partial path without a trailing slash (except when pointing at a root)\n let base;\n // The partial path scanned in the previous round\x2C with slash\n let previous;\n\n // Skip over roots\n current = base = splitRoot(p);\n pos = current.length;\n\n // On windows\x2C check that the root exists. On unix there is no need.\n if (isWindows) {\n const ctx = { path: base };\n binding.lstat(pathModule.toNamespacedPath(base)\x2C false\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n knownHard[base] = true;\n }\n\n // Walk down the path\x2C swapping out linked path parts for their real\n // values\n // NB: p.length changes.\n while (pos < p.length) {\n // find the next part\n const result = nextPart(p\x2C pos);\n previous = current;\n if (result === -1) {\n const last = StringPrototypeSlice(p\x2C pos);\n current += last;\n base = previous + last;\n pos = p.length;\n } else {\n current += StringPrototypeSlice(p\x2C pos\x2C result + 1);\n base = previous + StringPrototypeSlice(p\x2C pos\x2C result);\n pos = result + 1;\n }\n\n // Continue if not a symlink\x2C break if a pipe/socket\n if (knownHard[base] || cache?.get(base) === base) {\n if (isFileType(binding.statValues\x2C S_IFIFO) ||\n isFileType(binding.statValues\x2C S_IFSOCK)) {\n break;\n }\n continue;\n }\n\n let resolvedLink;\n const maybeCachedResolved = cache?.get(base);\n if (maybeCachedResolved) {\n resolvedLink = maybeCachedResolved;\n } else {\n // Use stats array directly to avoid creating an fs.Stats instance just\n // for our internal use.\n\n const baseLong = pathModule.toNamespacedPath(base);\n const ctx = { path: base };\n const stats = binding.lstat(baseLong\x2C true\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n\n if (!isFileType(stats\x2C S_IFLNK)) {\n knownHard[base] = true;\n cache?.set(base\x2C base);\n continue;\n }\n\n // Read the link if it wasn't read before\n // dev/ino always return 0 on windows\x2C so skip the check.\n let linkTarget = null;\n let id;\n if (!isWindows) {\n const dev = BigIntPrototypeToString(stats[0]\x2C 32);\n const ino = BigIntPrototypeToString(stats[7]\x2C 32);\n id = `${dev}:${ino}`;\n if (seenLinks[id]) {\n linkTarget = seenLinks[id];\n }\n }\n if (linkTarget === null) {\n const ctx = { path: base };\n binding.stat(baseLong\x2C false\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n linkTarget = binding.readlink(baseLong\x2C undefined\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n }\n resolvedLink = pathModule.resolve(previous\x2C linkTarget);\n\n if (cache) cache.set(base\x2C resolvedLink);\n if (!isWindows) seenLinks[id] = linkTarget;\n }\n\n // Resolve the link\x2C then start over\n p = pathModule.resolve(resolvedLink\x2C StringPrototypeSlice(p\x2C pos));\n\n // Skip over roots\n current = base = splitRoot(p);\n pos = current.length;\n\n // On windows\x2C check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n const ctx = { path: base };\n binding.lstat(pathModule.toNamespacedPath(base)\x2C false\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n knownHard[base] = true;\n }\n }\n\n cache?.set(original\x2C p);\n return encodeRealpathResult(p\x2C options);\n}\n\n/**\n * Returns the resolved pathname.\n * @param {string | Buffer | URL} p\n * @param {string | { encoding?: string; }} [options]\n * @returns {string | Buffer}\n */\nrealpathSync.native = (path\x2C options) => {\n options = getOptions(options\x2C {});\n path = getValidatedPath(path);\n const ctx = { path };\n const result = binding.realpath(path\x2C options.encoding\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return result;\n};\n\n/**\n * Asynchronously computes the canonical pathname by\n * resolving `.`\x2C `..` and symbolic links.\n * @param {string | Buffer | URL} p\n * @param {string | { encoding?: string; }} [options]\n * @param {(\n * err?: Error\x2C\n * resolvedPath?: string | Buffer\n * ) => any} callback\n * @returns {void}\n */\nfunction realpath(p\x2C options\x2C callback) {\n callback = typeof options === 'function' ? options : maybeCallback(callback);\n options = getOptions(options\x2C {});\n p = toPathIfFileURL(p);\n\n if (typeof p !== 'string') {\n p += '';\n }\n validatePath(p);\n p = pathModule.resolve(p);\n\n const seenLinks = ObjectCreate(null);\n const knownHard = ObjectCreate(null);\n\n // Current character position in p\n let pos;\n // The partial path so far\x2C including a trailing slash if any\n let current;\n // The partial path without a trailing slash (except when pointing at a root)\n let base;\n // The partial path scanned in the previous round\x2C with slash\n let previous;\n\n current = base = splitRoot(p);\n pos = current.length;\n\n // On windows\x2C check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n fs.lstat(base\x2C (err\x2C stats) => {\n if (err) return callback(err);\n knownHard[base] = true;\n LOOP();\n });\n } else {\n process.nextTick(LOOP);\n }\n\n // Walk down the path\x2C swapping out linked path parts for their real\n // values\n function LOOP() {\n // Stop if scanned past end of path\n if (pos >= p.length) {\n return callback(null\x2C encodeRealpathResult(p\x2C options));\n }\n\n // find the next part\n const result = nextPart(p\x2C pos);\n previous = current;\n if (result === -1) {\n const last = StringPrototypeSlice(p\x2C pos);\n current += last;\n base = previous + last;\n pos = p.length;\n } else {\n current += StringPrototypeSlice(p\x2C pos\x2C result + 1);\n base = previous + StringPrototypeSlice(p\x2C pos\x2C result);\n pos = result + 1;\n }\n\n // Continue if not a symlink\x2C break if a pipe/socket\n if (knownHard[base]) {\n if (isFileType(binding.statValues\x2C S_IFIFO) ||\n isFileType(binding.statValues\x2C S_IFSOCK)) {\n return callback(null\x2C encodeRealpathResult(p\x2C options));\n }\n return process.nextTick(LOOP);\n }\n\n return fs.lstat(base\x2C { bigint: true }\x2C gotStat);\n }\n\n function gotStat(err\x2C stats) {\n if (err) return callback(err);\n\n // If not a symlink\x2C skip to the next path part\n if (!stats.isSymbolicLink()) {\n knownHard[base] = true;\n return process.nextTick(LOOP);\n }\n\n // Stat & read the link if not read before.\n // Call `gotTarget()` as soon as the link target is known.\n // `dev`/`ino` always return 0 on windows\x2C so skip the check.\n let id;\n if (!isWindows) {\n const dev = BigIntPrototypeToString(stats.dev\x2C 32);\n const ino = BigIntPrototypeToString(stats.ino\x2C 32);\n id = `${dev}:${ino}`;\n if (seenLinks[id]) {\n return gotTarget(null\x2C seenLinks[id]);\n }\n }\n fs.stat(base\x2C (err) => {\n if (err) return callback(err);\n\n fs.readlink(base\x2C (err\x2C target) => {\n if (!isWindows) seenLinks[id] = target;\n gotTarget(err\x2C target);\n });\n });\n }\n\n function gotTarget(err\x2C target) {\n if (err) return callback(err);\n\n gotResolvedLink(pathModule.resolve(previous\x2C target));\n }\n\n function gotResolvedLink(resolvedLink) {\n // Resolve the link\x2C then start over\n p = pathModule.resolve(resolvedLink\x2C StringPrototypeSlice(p\x2C pos));\n current = base = splitRoot(p);\n pos = current.length;\n\n // On windows\x2C check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n fs.lstat(base\x2C (err) => {\n if (err) return callback(err);\n knownHard[base] = true;\n LOOP();\n });\n } else {\n process.nextTick(LOOP);\n }\n }\n}\n\n/**\n * Asynchronously computes the canonical pathname by\n * resolving `.`\x2C `..` and symbolic links.\n * @param {string | Buffer | URL} p\n * @param {string | { encoding?: string; }} [options]\n * @param {(\n * err?: Error\x2C\n * resolvedPath?: string | Buffer\n * ) => any} callback\n * @returns {void}\n */\nrealpath.native = (path\x2C options\x2C callback) => {\n callback = makeCallback(callback || options);\n options = getOptions(options\x2C {});\n path = getValidatedPath(path);\n const req = new FSReqCallback();\n req.oncomplete = callback;\n return binding.realpath(path\x2C options.encoding\x2C req);\n};\n\n/**\n * Creates a unique temporary directory.\n * @param {string} prefix\n * @param {string | { encoding?: string; }} [options]\n * @param {(\n * err?: Error\x2C\n * directory?: string\n * ) => any} callback\n * @returns {void}\n */\nfunction mkdtemp(prefix\x2C options\x2C callback) {\n callback = makeCallback(typeof options === 'function' ? options : callback);\n options = getOptions(options\x2C {});\n\n validateString(prefix\x2C 'prefix');\n nullCheck(prefix\x2C 'prefix');\n warnOnNonPortableTemplate(prefix);\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.mkdtemp(`${prefix}XXXXXX`\x2C options.encoding\x2C req);\n}\n\n/**\n * Synchronously creates a unique temporary directory.\n * @param {string} prefix\n * @param {string | { encoding?: string; }} [options]\n * @returns {string}\n */\nfunction mkdtempSync(prefix\x2C options) {\n options = getOptions(options\x2C {});\n\n validateString(prefix\x2C 'prefix');\n nullCheck(prefix\x2C 'prefix');\n warnOnNonPortableTemplate(prefix);\n const path = `${prefix}XXXXXX`;\n const ctx = { path };\n const result = binding.mkdtemp(path\x2C options.encoding\x2C\n undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n return result;\n}\n\n/**\n * Asynchronously copies `src` to `dest`. By\n * default\x2C `dest` is overwritten if it already exists.\n * @param {string | Buffer | URL} src\n * @param {string | Buffer | URL} dest\n * @param {number} [mode]\n * @param {() => any} callback\n * @returns {void}\n */\nfunction copyFile(src\x2C dest\x2C mode\x2C callback) {\n if (typeof mode === 'function') {\n callback = mode;\n mode = 0;\n }\n\n src = getValidatedPath(src\x2C 'src');\n dest = getValidatedPath(dest\x2C 'dest');\n\n src = pathModule._makeLong(src);\n dest = pathModule._makeLong(dest);\n mode = getValidMode(mode\x2C 'copyFile');\n callback = makeCallback(callback);\n\n const req = new FSReqCallback();\n req.oncomplete = callback;\n binding.copyFile(src\x2C dest\x2C mode\x2C req);\n}\n\n/**\n * Synchronously copies `src` to `dest`. By\n * default\x2C `dest` is overwritten if it already exists.\n * @param {string | Buffer | URL} src\n * @param {string | Buffer | URL} dest\n * @param {number} [mode]\n * @returns {void}\n */\nfunction copyFileSync(src\x2C dest\x2C mode) {\n src = getValidatedPath(src\x2C 'src');\n dest = getValidatedPath(dest\x2C 'dest');\n\n const ctx = { path: src\x2C dest }; // non-prefixed\n\n src = pathModule._makeLong(src);\n dest = pathModule._makeLong(dest);\n mode = getValidMode(mode\x2C 'copyFile');\n binding.copyFile(src\x2C dest\x2C mode\x2C undefined\x2C ctx);\n handleErrorFromBinding(ctx);\n}\n\n/**\n * Asynchronously copies `src` to `dest`. `src` can be a file\x2C directory\x2C or\n * symlink. The contents of directories will be copied recursively.\n * @param {string | URL} src\n * @param {string | URL} dest\n * @param {Object} [options]\n * @param {() => any} callback\n * @returns {void}\n */\nfunction cp(src\x2C dest\x2C options\x2C callback) {\n if (typeof options === 'function') {\n callback = options;\n options = undefined;\n }\n callback = makeCallback(callback);\n options = validateCpOptions(options);\n src = pathModule.toNamespacedPath(getValidatedPath(src\x2C 'src'));\n dest = pathModule.toNamespacedPath(getValidatedPath(dest\x2C 'dest'));\n lazyLoadCp();\n cpFn(src\x2C dest\x2C options\x2C callback);\n}\n\n/**\n * Synchronously copies `src` to `dest`. `src` can be a file\x2C directory\x2C or\n * symlink. The contents of directories will be copied recursively.\n * @param {string | URL} src\n * @param {string | URL} dest\n * @param {Object} [options]\n * @returns {void}\n */\nfunction cpSync(src\x2C dest\x2C options) {\n options = validateCpOptions(options);\n src = pathModule.toNamespacedPath(getValidatedPath(src\x2C 'src'));\n dest = pathModule.toNamespacedPath(getValidatedPath(dest\x2C 'dest'));\n lazyLoadCp();\n cpSyncFn(src\x2C dest\x2C options);\n}\n\nfunction lazyLoadStreams() {\n if (!ReadStream) {\n ({ ReadStream\x2C WriteStream } = require('internal/fs/streams'));\n FileReadStream = ReadStream;\n FileWriteStream = WriteStream;\n }\n}\n\n/**\n * Creates a readable stream with a default `highWaterMark`\n * of 64 kb.\n * @param {string | Buffer | URL} path\n * @param {string | {\n * flags?: string;\n * encoding?: string;\n * fd?: number | FileHandle;\n * mode?: number;\n * autoClose?: boolean;\n * emitClose?: boolean;\n * start: number;\n * end?: number;\n * highWaterMark?: number;\n * fs?: Object | null;\n * }} [options]\n * @returns {ReadStream}\n */\nfunction createReadStream(path\x2C options) {\n lazyLoadStreams();\n return new ReadStream(path\x2C options);\n}\n\n/**\n * Creates a write stream.\n * @param {string | Buffer | URL} path\n * @param {string | {\n * flags?: string;\n * encoding?: string;\n * fd?: number | FileHandle;\n * mode?: number;\n * autoClose?: boolean;\n * emitClose?: boolean;\n * start: number;\n * fs?: Object | null;\n * }} [options]\n * @returns {WriteStream}\n */\nfunction createWriteStream(path\x2C options) {\n lazyLoadStreams();\n return new WriteStream(path\x2C options);\n}\n\nmodule.exports = fs = {\n appendFile\x2C\n appendFileSync\x2C\n access\x2C\n accessSync\x2C\n chown\x2C\n chownSync\x2C\n chmod\x2C\n chmodSync\x2C\n close\x2C\n closeSync\x2C\n copyFile\x2C\n copyFileSync\x2C\n cp\x2C\n cpSync\x2C\n createReadStream\x2C\n createWriteStream\x2C\n exists\x2C\n existsSync\x2C\n fchown\x2C\n fchownSync\x2C\n fchmod\x2C\n fchmodSync\x2C\n fdatasync\x2C\n fdatasyncSync\x2C\n fstat\x2C\n fstatSync\x2C\n fsync\x2C\n fsyncSync\x2C\n ftruncate\x2C\n ftruncateSync\x2C\n futimes\x2C\n futimesSync\x2C\n lchown\x2C\n lchownSync\x2C\n lchmod: constants.O_SYMLINK !== undefined ? lchmod : undefined\x2C\n lchmodSync: constants.O_SYMLINK !== undefined ? lchmodSync : undefined\x2C\n link\x2C\n linkSync\x2C\n lstat\x2C\n lstatSync\x2C\n lutimes\x2C\n lutimesSync\x2C\n mkdir\x2C\n mkdirSync\x2C\n mkdtemp\x2C\n mkdtempSync\x2C\n open\x2C\n openSync\x2C\n opendir\x2C\n opendirSync\x2C\n readdir\x2C\n readdirSync\x2C\n read\x2C\n readSync\x2C\n readv\x2C\n readvSync\x2C\n readFile\x2C\n readFileSync\x2C\n readlink\x2C\n readlinkSync\x2C\n realpath\x2C\n realpathSync\x2C\n rename\x2C\n renameSync\x2C\n rm\x2C\n rmSync\x2C\n rmdir\x2C\n rmdirSync\x2C\n stat\x2C\n statSync\x2C\n symlink\x2C\n symlinkSync\x2C\n truncate\x2C\n truncateSync\x2C\n unwatchFile\x2C\n unlink\x2C\n unlinkSync\x2C\n utimes\x2C\n utimesSync\x2C\n watch\x2C\n watchFile\x2C\n writeFile\x2C\n writeFileSync\x2C\n write\x2C\n writeSync\x2C\n writev\x2C\n writevSync\x2C\n Dir\x2C\n Dirent\x2C\n Stats\x2C\n\n get ReadStream() {\n lazyLoadStreams();\n return ReadStream;\n }\x2C\n\n set ReadStream(val) {\n ReadStream = val;\n }\x2C\n\n get WriteStream() {\n lazyLoadStreams();\n return WriteStream;\n }\x2C\n\n set WriteStream(val) {\n WriteStream = val;\n }\x2C\n\n // Legacy names... these have to be separate because of how graceful-fs\n // (and possibly other) modules monkey patch the values.\n get FileReadStream() {\n lazyLoadStreams();\n return FileReadStream;\n }\x2C\n\n set FileReadStream(val) {\n FileReadStream = val;\n }\x2C\n\n get FileWriteStream() {\n lazyLoadStreams();\n return FileWriteStream;\n }\x2C\n\n set FileWriteStream(val) {\n FileWriteStream = val;\n }\x2C\n\n // For tests\n _toUnixTimestamp: toUnixTimestamp\n};\n\nObjectDefineProperties(fs\x2C {\n F_OK: { enumerable: true\x2C value: F_OK || 0 }\x2C\n R_OK: { enumerable: true\x2C value: R_OK || 0 }\x2C\n W_OK: { enumerable: true\x2C value: W_OK || 0 }\x2C\n X_OK: { enumerable: true\x2C value: X_OK || 0 }\x2C\n constants: {\n configurable: false\x2C\n enumerable: true\x2C\n value: constants\n }\x2C\n promises: {\n configurable: true\x2C\n enumerable: true\x2C\n get() {\n if (promises === null)\n promises = require('internal/fs/promises').exports;\n return promises;\n }\n }\n});\n code-source-info,0x3dda0e058306,77,63994,67905,C0O64011C8O64041C12O64021C19O64054C25O64058C31O64080C35O64113C45O64128C51O64128C55O64147C61O64162C67O64162C74O64191C76O64199C78O64198C82O64246C86O64251C92O64253C101O64263C103O64292C105O64317C106O64343C115O64343C120O64383C129O64383C134O64422C137O64469C139O64544C141O64639C143O64715C145O64749C151O64766C157O64796C162O64878C168O64911C176O64919C183O64931C189O64939C197O64945C201O64956C207O64956C223O64939C228O65008C234O65008C238O65041C239O65057C243O65197C247O65193C252O65252C258O65252C264O65274C267O65298C269O65309C274O65338C280O65338C287O65374C289O65385C296O65397C298O65413C302O65435C309O65462C311O65473C317O65509C328O65473C340O65521C342O65539C355O65539C360O65537C364O65583C366O65596C370O65669C372O65682C384O65697C390O65699C402O65709C407O65727C413O65742C417O65750C425O65762C429O65731C442O65795C446O65803C454O65815C458O65784C465O65836C467O65857C469O65882C471O65928C478O65933C484O65935C493O65950C495O65983C502O66165C508O66176C514O66176C520O66218C528O66226C535O66254C541O66262C559O66262C565O66307C571O66307C575O66343C581O66366C585O66348C592O66386C593O66402C597O66418C604O66423C610O66425C619O66450C621O66604C624O66620C627O66630C633O66668C640O66697C649O66668C656O66727C664O66756C673O66727C680O66774C694O66789C700O66804C702O66817C707O66835C709O66857C714O66887C718O66934C726O66942C733O66958C739O66966C757O66966C762O67013C768O67013C772O67050C778O67071C796O67071C803O67126C809O67126C813O67169C819O67195C825O67195C832O67233C836O67250C842O67250C848O67281C854O67297C856O67311C860O67377C866O67392C874O67414C878O67414C885O67392C893O67473C899O67490C905O67522C910O67608C918O67635C923O67663C931O67671C938O67685C944O67693C952O67699C956O67710C962O67710C978O67693C983O67764C989O67764C993O67799C994O67815C998O65182C1004O67836C1011O67841C1017O67843C1026O67863C1030O67870C1035O67903,, code-creation,LazyCompile,10,26338,0x3dda0e05e9a6,123,getOptions node:internal/fs/utils:314:20,0x1ce311deac58,~ script-source,78,node:internal/fs/utils,'use strict';\n\nconst {\n ArrayIsArray\x2C\n BigInt\x2C\n Date\x2C\n DateNow\x2C\n DatePrototypeGetTime\x2C\n ErrorCaptureStackTrace\x2C\n FunctionPrototypeCall\x2C\n Number\x2C\n NumberIsFinite\x2C\n NumberIsInteger\x2C\n MathMin\x2C\n ObjectIs\x2C\n ObjectPrototypeHasOwnProperty\x2C\n ObjectSetPrototypeOf\x2C\n ReflectApply\x2C\n ReflectOwnKeys\x2C\n StringPrototypeEndsWith\x2C\n StringPrototypeIncludes\x2C\n StringPrototypeReplace\x2C\n Symbol\x2C\n TypedArrayPrototypeIncludes\x2C\n} = primordials;\n\nconst { Buffer } = require('buffer');\nconst {\n codes: {\n ERR_FS_EISDIR\x2C\n ERR_FS_INVALID_SYMLINK_TYPE\x2C\n ERR_INVALID_ARG_TYPE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_OUT_OF_RANGE\n }\x2C\n hideStackFrames\x2C\n uvException\n} = require('internal/errors');\nconst {\n isArrayBufferView\x2C\n isUint8Array\x2C\n isDate\x2C\n isBigUint64Array\n} = require('internal/util/types');\nconst { once } = require('internal/util');\nconst { toPathIfFileURL } = require('internal/url');\nconst {\n validateAbortSignal\x2C\n validateBoolean\x2C\n validateFunction\x2C\n validateInt32\x2C\n validateInteger\x2C\n validateObject\x2C\n validateUint32\x2C\n} = require('internal/validators');\nconst pathModule = require('path');\nconst kType = Symbol('type');\nconst kStats = Symbol('stats');\nconst assert = require('internal/assert');\n\nconst {\n fs: {\n F_OK = 0\x2C\n W_OK = 0\x2C\n R_OK = 0\x2C\n X_OK = 0\x2C\n COPYFILE_EXCL\x2C\n COPYFILE_FICLONE\x2C\n COPYFILE_FICLONE_FORCE\x2C\n O_APPEND\x2C\n O_CREAT\x2C\n O_EXCL\x2C\n O_RDONLY\x2C\n O_RDWR\x2C\n O_SYNC\x2C\n O_TRUNC\x2C\n O_WRONLY\x2C\n S_IFBLK\x2C\n S_IFCHR\x2C\n S_IFDIR\x2C\n S_IFIFO\x2C\n S_IFLNK\x2C\n S_IFMT\x2C\n S_IFREG\x2C\n S_IFSOCK\x2C\n UV_FS_SYMLINK_DIR\x2C\n UV_FS_SYMLINK_JUNCTION\x2C\n UV_DIRENT_UNKNOWN\x2C\n UV_DIRENT_FILE\x2C\n UV_DIRENT_DIR\x2C\n UV_DIRENT_LINK\x2C\n UV_DIRENT_FIFO\x2C\n UV_DIRENT_SOCKET\x2C\n UV_DIRENT_CHAR\x2C\n UV_DIRENT_BLOCK\n }\x2C\n os: {\n errno: {\n EISDIR\n }\n }\n} = internalBinding('constants');\n\n// The access modes can be any of F_OK\x2C R_OK\x2C W_OK or X_OK. Some might not be\n// available on specific systems. They can be used in combination as well\n// (F_OK | R_OK | W_OK | X_OK).\nconst kMinimumAccessMode = MathMin(F_OK\x2C W_OK\x2C R_OK\x2C X_OK);\nconst kMaximumAccessMode = F_OK | W_OK | R_OK | X_OK;\n\nconst kDefaultCopyMode = 0;\n// The copy modes can be any of COPYFILE_EXCL\x2C COPYFILE_FICLONE or\n// COPYFILE_FICLONE_FORCE. They can be used in combination as well\n// (COPYFILE_EXCL | COPYFILE_FICLONE | COPYFILE_FICLONE_FORCE).\nconst kMinimumCopyMode = MathMin(\n kDefaultCopyMode\x2C\n COPYFILE_EXCL\x2C\n COPYFILE_FICLONE\x2C\n COPYFILE_FICLONE_FORCE\n);\nconst kMaximumCopyMode = COPYFILE_EXCL |\n COPYFILE_FICLONE |\n COPYFILE_FICLONE_FORCE;\n\n// Most platforms don't allow reads or writes >= 2 GB.\n// See https://github.com/libuv/libuv/pull/1501.\nconst kIoMaxLength = 2 ** 31 - 1;\n\n// Use 64kb in case the file type is not a regular file and thus do not know the\n// actual file size. Increasing the value further results in more frequent over\n// allocation for small files and consumes CPU time and memory that should be\n// used else wise.\n// Use up to 512kb per read otherwise to partition reading big files to prevent\n// blocking other threads in case the available threads are all in use.\nconst kReadFileUnknownBufferLength = 64 * 1024;\nconst kReadFileBufferLength = 512 * 1024;\n\nconst kWriteFileMaxChunkSize = 512 * 1024;\n\nconst kMaxUserId = 2 ** 32 - 1;\n\nconst isWindows = process.platform === 'win32';\n\nlet fs;\nfunction lazyLoadFs() {\n if (!fs) {\n fs = require('fs');\n }\n return fs;\n}\n\nfunction assertEncoding(encoding) {\n if (encoding && !Buffer.isEncoding(encoding)) {\n const reason = 'is invalid encoding';\n throw new ERR_INVALID_ARG_VALUE(encoding\x2C 'encoding'\x2C reason);\n }\n}\n\nclass Dirent {\n constructor(name\x2C type) {\n this.name = name;\n this[kType] = type;\n }\n\n isDirectory() {\n return this[kType] === UV_DIRENT_DIR;\n }\n\n isFile() {\n return this[kType] === UV_DIRENT_FILE;\n }\n\n isBlockDevice() {\n return this[kType] === UV_DIRENT_BLOCK;\n }\n\n isCharacterDevice() {\n return this[kType] === UV_DIRENT_CHAR;\n }\n\n isSymbolicLink() {\n return this[kType] === UV_DIRENT_LINK;\n }\n\n isFIFO() {\n return this[kType] === UV_DIRENT_FIFO;\n }\n\n isSocket() {\n return this[kType] === UV_DIRENT_SOCKET;\n }\n}\n\nclass DirentFromStats extends Dirent {\n constructor(name\x2C stats) {\n super(name\x2C null);\n this[kStats] = stats;\n }\n}\n\nfor (const name of ReflectOwnKeys(Dirent.prototype)) {\n if (name === 'constructor') {\n continue;\n }\n DirentFromStats.prototype[name] = function() {\n return this[kStats][name]();\n };\n}\n\nfunction copyObject(source) {\n const target = {};\n for (const key in source)\n target[key] = source[key];\n return target;\n}\n\nconst bufferSep = Buffer.from(pathModule.sep);\n\nfunction join(path\x2C name) {\n if ((typeof path === 'string' || isUint8Array(path)) &&\n name === undefined) {\n return path;\n }\n\n if (typeof path === 'string' && isUint8Array(name)) {\n const pathBuffer = Buffer.from(pathModule.join(path\x2C pathModule.sep));\n return Buffer.concat([pathBuffer\x2C name]);\n }\n\n if (typeof path === 'string' && typeof name === 'string') {\n return pathModule.join(path\x2C name);\n }\n\n if (isUint8Array(path) && isUint8Array(name)) {\n return Buffer.concat([path\x2C bufferSep\x2C name]);\n }\n\n throw new ERR_INVALID_ARG_TYPE(\n 'path'\x2C ['string'\x2C 'Buffer']\x2C path);\n}\n\nfunction getDirents(path\x2C { 0: names\x2C 1: types }\x2C callback) {\n let i;\n if (typeof callback === 'function') {\n const len = names.length;\n let toFinish = 0;\n callback = once(callback);\n for (i = 0; i < len; i++) {\n const type = types[i];\n if (type === UV_DIRENT_UNKNOWN) {\n const name = names[i];\n const idx = i;\n toFinish++;\n let filepath;\n try {\n filepath = join(path\x2C name);\n } catch (err) {\n callback(err);\n return;\n }\n lazyLoadFs().lstat(filepath\x2C (err\x2C stats) => {\n if (err) {\n callback(err);\n return;\n }\n names[idx] = new DirentFromStats(name\x2C stats);\n if (--toFinish === 0) {\n callback(null\x2C names);\n }\n });\n } else {\n names[i] = new Dirent(names[i]\x2C types[i]);\n }\n }\n if (toFinish === 0) {\n callback(null\x2C names);\n }\n } else {\n const len = names.length;\n for (i = 0; i < len; i++) {\n names[i] = getDirent(path\x2C names[i]\x2C types[i]);\n }\n return names;\n }\n}\n\nfunction getDirent(path\x2C name\x2C type\x2C callback) {\n if (typeof callback === 'function') {\n if (type === UV_DIRENT_UNKNOWN) {\n let filepath;\n try {\n filepath = join(path\x2C name);\n } catch (err) {\n callback(err);\n return;\n }\n lazyLoadFs().lstat(filepath\x2C (err\x2C stats) => {\n if (err) {\n callback(err);\n return;\n }\n callback(null\x2C new DirentFromStats(name\x2C stats));\n });\n } else {\n callback(null\x2C new Dirent(name\x2C type));\n }\n } else if (type === UV_DIRENT_UNKNOWN) {\n const stats = lazyLoadFs().lstatSync(join(path\x2C name));\n return new DirentFromStats(name\x2C stats);\n } else {\n return new Dirent(name\x2C type);\n }\n}\n\nfunction getOptions(options\x2C defaultOptions) {\n if (options === null || options === undefined ||\n typeof options === 'function') {\n return defaultOptions;\n }\n\n if (typeof options === 'string') {\n defaultOptions = { ...defaultOptions };\n defaultOptions.encoding = options;\n options = defaultOptions;\n } else if (typeof options !== 'object') {\n throw new ERR_INVALID_ARG_TYPE('options'\x2C ['string'\x2C 'Object']\x2C options);\n }\n\n if (options.encoding !== 'buffer')\n assertEncoding(options.encoding);\n\n if (options.signal !== undefined) {\n validateAbortSignal(options.signal\x2C 'options.signal');\n }\n return options;\n}\n\n/**\n * @param {InternalFSBinding.FSSyncContext} ctx\n */\nfunction handleErrorFromBinding(ctx) {\n if (ctx.errno !== undefined) { // libuv error numbers\n const err = uvException(ctx);\n ErrorCaptureStackTrace(err\x2C handleErrorFromBinding);\n throw err;\n }\n if (ctx.error !== undefined) { // Errors created in C++ land.\n // TODO(joyeecheung): currently\x2C ctx.error are encoding errors\n // usually caused by memory problems. We need to figure out proper error\n // code(s) for this.\n ErrorCaptureStackTrace(ctx.error\x2C handleErrorFromBinding);\n throw ctx.error;\n }\n}\n\n// Check if the path contains null types if it is a string nor Uint8Array\x2C\n// otherwise return silently.\nconst nullCheck = hideStackFrames((path\x2C propName\x2C throwError = true) => {\n const pathIsString = typeof path === 'string';\n const pathIsUint8Array = isUint8Array(path);\n\n // We can only perform meaningful checks on strings and Uint8Arrays.\n if ((!pathIsString && !pathIsUint8Array) ||\n (pathIsString && !StringPrototypeIncludes(path\x2C '\\u0000')) ||\n (pathIsUint8Array && !TypedArrayPrototypeIncludes(path\x2C 0))) {\n return;\n }\n\n const err = new ERR_INVALID_ARG_VALUE(\n propName\x2C\n path\x2C\n 'must be a string or Uint8Array without null bytes'\n );\n if (throwError) {\n throw err;\n }\n return err;\n});\n\nfunction preprocessSymlinkDestination(path\x2C type\x2C linkPath) {\n if (!isWindows) {\n // No preprocessing is needed on Unix.\n return path;\n }\n path = '' + path;\n if (type === 'junction') {\n // Junctions paths need to be absolute and \\\\?\\-prefixed.\n // A relative target is relative to the link's parent directory.\n path = pathModule.resolve(linkPath\x2C '..'\x2C path);\n return pathModule.toNamespacedPath(path);\n }\n if (pathModule.isAbsolute(path)) {\n // If the path is absolute\x2C use the \\\\?\\-prefix to enable long filenames\n return pathModule.toNamespacedPath(path);\n }\n // Windows symlinks don't tolerate forward slashes.\n return StringPrototypeReplace(path\x2C /\\//g\x2C '\\\\');\n}\n\n// Constructor for file stats.\nfunction StatsBase(dev\x2C mode\x2C nlink\x2C uid\x2C gid\x2C rdev\x2C blksize\x2C\n ino\x2C size\x2C blocks) {\n this.dev = dev;\n this.mode = mode;\n this.nlink = nlink;\n this.uid = uid;\n this.gid = gid;\n this.rdev = rdev;\n this.blksize = blksize;\n this.ino = ino;\n this.size = size;\n this.blocks = blocks;\n}\n\nStatsBase.prototype.isDirectory = function() {\n return this._checkModeProperty(S_IFDIR);\n};\n\nStatsBase.prototype.isFile = function() {\n return this._checkModeProperty(S_IFREG);\n};\n\nStatsBase.prototype.isBlockDevice = function() {\n return this._checkModeProperty(S_IFBLK);\n};\n\nStatsBase.prototype.isCharacterDevice = function() {\n return this._checkModeProperty(S_IFCHR);\n};\n\nStatsBase.prototype.isSymbolicLink = function() {\n return this._checkModeProperty(S_IFLNK);\n};\n\nStatsBase.prototype.isFIFO = function() {\n return this._checkModeProperty(S_IFIFO);\n};\n\nStatsBase.prototype.isSocket = function() {\n return this._checkModeProperty(S_IFSOCK);\n};\n\nconst kNsPerMsBigInt = 10n ** 6n;\nconst kNsPerSecBigInt = 10n ** 9n;\nconst kMsPerSec = 10 ** 3;\nconst kNsPerMs = 10 ** 6;\nfunction msFromTimeSpec(sec\x2C nsec) {\n return sec * kMsPerSec + nsec / kNsPerMs;\n}\n\nfunction nsFromTimeSpecBigInt(sec\x2C nsec) {\n return sec * kNsPerSecBigInt + nsec;\n}\n\n// The Date constructor performs Math.floor() to the timestamp.\n// https://www.ecma-international.org/ecma-262/#sec-timeclip\n// Since there may be a precision loss when the timestamp is\n// converted to a floating point number\x2C we manually round\n// the timestamp here before passing it to Date().\n// Refs: https://github.com/nodejs/node/pull/12607\nfunction dateFromMs(ms) {\n return new Date(Number(ms) + 0.5);\n}\n\nfunction BigIntStats(dev\x2C mode\x2C nlink\x2C uid\x2C gid\x2C rdev\x2C blksize\x2C\n ino\x2C size\x2C blocks\x2C\n atimeNs\x2C mtimeNs\x2C ctimeNs\x2C birthtimeNs) {\n ReflectApply(StatsBase\x2C this\x2C [dev\x2C mode\x2C nlink\x2C uid\x2C gid\x2C rdev\x2C blksize\x2C\n ino\x2C size\x2C blocks]);\n\n this.atimeMs = atimeNs / kNsPerMsBigInt;\n this.mtimeMs = mtimeNs / kNsPerMsBigInt;\n this.ctimeMs = ctimeNs / kNsPerMsBigInt;\n this.birthtimeMs = birthtimeNs / kNsPerMsBigInt;\n this.atimeNs = atimeNs;\n this.mtimeNs = mtimeNs;\n this.ctimeNs = ctimeNs;\n this.birthtimeNs = birthtimeNs;\n this.atime = dateFromMs(this.atimeMs);\n this.mtime = dateFromMs(this.mtimeMs);\n this.ctime = dateFromMs(this.ctimeMs);\n this.birthtime = dateFromMs(this.birthtimeMs);\n}\n\nObjectSetPrototypeOf(BigIntStats.prototype\x2C StatsBase.prototype);\nObjectSetPrototypeOf(BigIntStats\x2C StatsBase);\n\nBigIntStats.prototype._checkModeProperty = function(property) {\n if (isWindows && (property === S_IFIFO || property === S_IFBLK ||\n property === S_IFSOCK)) {\n return false; // Some types are not available on Windows\n }\n return (this.mode & BigInt(S_IFMT)) === BigInt(property);\n};\n\nfunction Stats(dev\x2C mode\x2C nlink\x2C uid\x2C gid\x2C rdev\x2C blksize\x2C\n ino\x2C size\x2C blocks\x2C\n atimeMs\x2C mtimeMs\x2C ctimeMs\x2C birthtimeMs) {\n FunctionPrototypeCall(StatsBase\x2C this\x2C dev\x2C mode\x2C nlink\x2C uid\x2C gid\x2C rdev\x2C\n blksize\x2C ino\x2C size\x2C blocks);\n this.atimeMs = atimeMs;\n this.mtimeMs = mtimeMs;\n this.ctimeMs = ctimeMs;\n this.birthtimeMs = birthtimeMs;\n this.atime = dateFromMs(atimeMs);\n this.mtime = dateFromMs(mtimeMs);\n this.ctime = dateFromMs(ctimeMs);\n this.birthtime = dateFromMs(birthtimeMs);\n}\n\nObjectSetPrototypeOf(Stats.prototype\x2C StatsBase.prototype);\nObjectSetPrototypeOf(Stats\x2C StatsBase);\n\n// HACK: Workaround for https://github.com/standard-things/esm/issues/821.\n// TODO(ronag): Remove this as soon as `esm` publishes a fixed version.\nStats.prototype.isFile = StatsBase.prototype.isFile;\n\nStats.prototype._checkModeProperty = function(property) {\n if (isWindows && (property === S_IFIFO || property === S_IFBLK ||\n property === S_IFSOCK)) {\n return false; // Some types are not available on Windows\n }\n return (this.mode & S_IFMT) === property;\n};\n\n/**\n * @param {Float64Array | BigUint64Array} stats\n * @param {number} offset\n * @returns\n */\nfunction getStatsFromBinding(stats\x2C offset = 0) {\n if (isBigUint64Array(stats)) {\n return new BigIntStats(\n stats[0 + offset]\x2C stats[1 + offset]\x2C stats[2 + offset]\x2C\n stats[3 + offset]\x2C stats[4 + offset]\x2C stats[5 + offset]\x2C\n stats[6 + offset]\x2C stats[7 + offset]\x2C stats[8 + offset]\x2C\n stats[9 + offset]\x2C\n nsFromTimeSpecBigInt(stats[10 + offset]\x2C stats[11 + offset])\x2C\n nsFromTimeSpecBigInt(stats[12 + offset]\x2C stats[13 + offset])\x2C\n nsFromTimeSpecBigInt(stats[14 + offset]\x2C stats[15 + offset])\x2C\n nsFromTimeSpecBigInt(stats[16 + offset]\x2C stats[17 + offset])\n );\n }\n return new Stats(\n stats[0 + offset]\x2C stats[1 + offset]\x2C stats[2 + offset]\x2C\n stats[3 + offset]\x2C stats[4 + offset]\x2C stats[5 + offset]\x2C\n stats[6 + offset]\x2C stats[7 + offset]\x2C stats[8 + offset]\x2C\n stats[9 + offset]\x2C\n msFromTimeSpec(stats[10 + offset]\x2C stats[11 + offset])\x2C\n msFromTimeSpec(stats[12 + offset]\x2C stats[13 + offset])\x2C\n msFromTimeSpec(stats[14 + offset]\x2C stats[15 + offset])\x2C\n msFromTimeSpec(stats[16 + offset]\x2C stats[17 + offset])\n );\n}\n\nfunction stringToFlags(flags\x2C name = 'flags') {\n if (typeof flags === 'number') {\n validateInt32(flags\x2C name);\n return flags;\n }\n\n if (flags == null) {\n return O_RDONLY;\n }\n\n switch (flags) {\n case 'r' : return O_RDONLY;\n case 'rs' : // Fall through.\n case 'sr' : return O_RDONLY | O_SYNC;\n case 'r+' : return O_RDWR;\n case 'rs+' : // Fall through.\n case 'sr+' : return O_RDWR | O_SYNC;\n\n case 'w' : return O_TRUNC | O_CREAT | O_WRONLY;\n case 'wx' : // Fall through.\n case 'xw' : return O_TRUNC | O_CREAT | O_WRONLY | O_EXCL;\n\n case 'w+' : return O_TRUNC | O_CREAT | O_RDWR;\n case 'wx+': // Fall through.\n case 'xw+': return O_TRUNC | O_CREAT | O_RDWR | O_EXCL;\n\n case 'a' : return O_APPEND | O_CREAT | O_WRONLY;\n case 'ax' : // Fall through.\n case 'xa' : return O_APPEND | O_CREAT | O_WRONLY | O_EXCL;\n case 'as' : // Fall through.\n case 'sa' : return O_APPEND | O_CREAT | O_WRONLY | O_SYNC;\n\n case 'a+' : return O_APPEND | O_CREAT | O_RDWR;\n case 'ax+': // Fall through.\n case 'xa+': return O_APPEND | O_CREAT | O_RDWR | O_EXCL;\n case 'as+': // Fall through.\n case 'sa+': return O_APPEND | O_CREAT | O_RDWR | O_SYNC;\n }\n\n throw new ERR_INVALID_ARG_VALUE('flags'\x2C flags);\n}\n\nconst stringToSymlinkType = hideStackFrames((type) => {\n let flags = 0;\n if (typeof type === 'string') {\n switch (type) {\n case 'dir':\n flags |= UV_FS_SYMLINK_DIR;\n break;\n case 'junction':\n flags |= UV_FS_SYMLINK_JUNCTION;\n break;\n case 'file':\n break;\n default:\n throw new ERR_FS_INVALID_SYMLINK_TYPE(type);\n }\n }\n return flags;\n});\n\n// converts Date or number to a fractional UNIX timestamp\nfunction toUnixTimestamp(time\x2C name = 'time') {\n // eslint-disable-next-line eqeqeq\n if (typeof time === 'string' && +time == time) {\n return +time;\n }\n if (NumberIsFinite(time)) {\n if (time < 0) {\n return DateNow() / 1000;\n }\n return time;\n }\n if (isDate(time)) {\n // Convert to 123.456 UNIX timestamp\n return DatePrototypeGetTime(time) / 1000;\n }\n throw new ERR_INVALID_ARG_TYPE(name\x2C ['Date'\x2C 'Time in seconds']\x2C time);\n}\n\nconst validateOffsetLengthRead = hideStackFrames(\n (offset\x2C length\x2C bufferLength) => {\n if (offset < 0) {\n throw new ERR_OUT_OF_RANGE('offset'\x2C '>= 0'\x2C offset);\n }\n if (length < 0) {\n throw new ERR_OUT_OF_RANGE('length'\x2C '>= 0'\x2C length);\n }\n if (offset + length > bufferLength) {\n throw new ERR_OUT_OF_RANGE('length'\x2C\n `<= ${bufferLength - offset}`\x2C length);\n }\n }\n);\n\nconst validateOffsetLengthWrite = hideStackFrames(\n (offset\x2C length\x2C byteLength) => {\n if (offset > byteLength) {\n throw new ERR_OUT_OF_RANGE('offset'\x2C `<= ${byteLength}`\x2C offset);\n }\n\n if (length > byteLength - offset) {\n throw new ERR_OUT_OF_RANGE('length'\x2C `<= ${byteLength - offset}`\x2C length);\n }\n\n if (length < 0) {\n throw new ERR_OUT_OF_RANGE('length'\x2C '>= 0'\x2C length);\n }\n\n validateInt32(length\x2C 'length'\x2C 0);\n }\n);\n\nconst validatePath = hideStackFrames((path\x2C propName = 'path') => {\n if (typeof path !== 'string' && !isUint8Array(path)) {\n throw new ERR_INVALID_ARG_TYPE(propName\x2C ['string'\x2C 'Buffer'\x2C 'URL']\x2C path);\n }\n\n const err = nullCheck(path\x2C propName\x2C false);\n\n if (err !== undefined) {\n throw err;\n }\n});\n\nconst getValidatedPath = hideStackFrames((fileURLOrPath\x2C propName = 'path') => {\n const path = toPathIfFileURL(fileURLOrPath);\n validatePath(path\x2C propName);\n return path;\n});\n\nconst getValidatedFd = hideStackFrames((fd\x2C propName = 'fd') => {\n if (ObjectIs(fd\x2C -0)) {\n return 0;\n }\n\n validateInt32(fd\x2C propName\x2C 0);\n\n return fd;\n});\n\nconst validateBufferArray = hideStackFrames((buffers\x2C propName = 'buffers') => {\n if (!ArrayIsArray(buffers))\n throw new ERR_INVALID_ARG_TYPE(propName\x2C 'ArrayBufferView[]'\x2C buffers);\n\n for (let i = 0; i < buffers.length; i++) {\n if (!isArrayBufferView(buffers[i]))\n throw new ERR_INVALID_ARG_TYPE(propName\x2C 'ArrayBufferView[]'\x2C buffers);\n }\n\n return buffers;\n});\n\nlet nonPortableTemplateWarn = true;\n\nfunction warnOnNonPortableTemplate(template) {\n // Template strings passed to the mkdtemp() family of functions should not\n // end with 'X' because they are handled inconsistently across platforms.\n if (nonPortableTemplateWarn && StringPrototypeEndsWith(template\x2C 'X')) {\n process.emitWarning('mkdtemp() templates ending with X are not portable. ' +\n 'For details see: https://nodejs.org/api/fs.html');\n nonPortableTemplateWarn = false;\n }\n}\n\nconst defaultCpOptions = {\n dereference: false\x2C\n errorOnExist: false\x2C\n filter: undefined\x2C\n force: true\x2C\n preserveTimestamps: false\x2C\n recursive: false\x2C\n};\n\nconst defaultRmOptions = {\n recursive: false\x2C\n force: false\x2C\n retryDelay: 100\x2C\n maxRetries: 0\n};\n\nconst defaultRmdirOptions = {\n retryDelay: 100\x2C\n maxRetries: 0\x2C\n recursive: false\x2C\n};\n\nconst validateCpOptions = hideStackFrames((options) => {\n if (options === undefined)\n return { ...defaultCpOptions };\n validateObject(options\x2C 'options');\n options = { ...defaultCpOptions\x2C ...options };\n validateBoolean(options.dereference\x2C 'options.dereference');\n validateBoolean(options.errorOnExist\x2C 'options.errorOnExist');\n validateBoolean(options.force\x2C 'options.force');\n validateBoolean(options.preserveTimestamps\x2C 'options.preserveTimestamps');\n validateBoolean(options.recursive\x2C 'options.recursive');\n if (options.filter !== undefined) {\n validateFunction(options.filter\x2C 'options.filter');\n }\n return options;\n});\n\nconst validateRmOptions = hideStackFrames((path\x2C options\x2C expectDir\x2C cb) => {\n options = validateRmdirOptions(options\x2C defaultRmOptions);\n validateBoolean(options.force\x2C 'options.force');\n\n lazyLoadFs().stat(path\x2C (err\x2C stats) => {\n if (err) {\n if (options.force && err.code === 'ENOENT') {\n return cb(null\x2C options);\n }\n return cb(err\x2C options);\n }\n\n if (expectDir && !stats.isDirectory()) {\n return cb(false);\n }\n\n if (stats.isDirectory() && !options.recursive) {\n return cb(new ERR_FS_EISDIR({\n code: 'EISDIR'\x2C\n message: 'is a directory'\x2C\n path\x2C\n syscall: 'rm'\x2C\n errno: EISDIR\n }));\n }\n return cb(null\x2C options);\n });\n});\n\nconst validateRmOptionsSync = hideStackFrames((path\x2C options\x2C expectDir) => {\n options = validateRmdirOptions(options\x2C defaultRmOptions);\n validateBoolean(options.force\x2C 'options.force');\n\n if (!options.force || expectDir || !options.recursive) {\n const isDirectory = lazyLoadFs()\n .statSync(path\x2C { throwIfNoEntry: !options.force })?.isDirectory();\n\n if (expectDir && !isDirectory) {\n return false;\n }\n\n if (isDirectory && !options.recursive) {\n throw new ERR_FS_EISDIR({\n code: 'EISDIR'\x2C\n message: 'is a directory'\x2C\n path\x2C\n syscall: 'rm'\x2C\n errno: EISDIR\n });\n }\n }\n\n return options;\n});\n\nlet recursiveRmdirWarned = process.noDeprecation;\nfunction emitRecursiveRmdirWarning() {\n if (!recursiveRmdirWarned) {\n process.emitWarning(\n 'In future versions of Node.js\x2C fs.rmdir(path\x2C { recursive: true }) ' +\n 'will be removed. Use fs.rm(path\x2C { recursive: true }) instead'\x2C\n 'DeprecationWarning'\x2C\n 'DEP0147'\n );\n recursiveRmdirWarned = true;\n }\n}\n\nconst validateRmdirOptions = hideStackFrames(\n (options\x2C defaults = defaultRmdirOptions) => {\n if (options === undefined)\n return defaults;\n validateObject(options\x2C 'options');\n\n options = { ...defaults\x2C ...options };\n\n validateBoolean(options.recursive\x2C 'options.recursive');\n validateInt32(options.retryDelay\x2C 'options.retryDelay'\x2C 0);\n validateUint32(options.maxRetries\x2C 'options.maxRetries');\n\n return options;\n });\n\nconst getValidMode = hideStackFrames((mode\x2C type) => {\n let min = kMinimumAccessMode;\n let max = kMaximumAccessMode;\n let def = F_OK;\n if (type === 'copyFile') {\n min = kMinimumCopyMode;\n max = kMaximumCopyMode;\n def = mode || kDefaultCopyMode;\n } else {\n assert(type === 'access');\n }\n if (mode == null) {\n return def;\n }\n if (NumberIsInteger(mode) && mode >= min && mode <= max) {\n return mode;\n }\n if (typeof mode !== 'number') {\n throw new ERR_INVALID_ARG_TYPE('mode'\x2C 'integer'\x2C mode);\n }\n throw new ERR_OUT_OF_RANGE(\n 'mode'\x2C `an integer >= ${min} && <= ${max}`\x2C mode);\n});\n\nconst validateStringAfterArrayBufferView = hideStackFrames((buffer\x2C name) => {\n if (typeof buffer === 'string') {\n return;\n }\n\n if (\n typeof buffer === 'object' &&\n buffer !== null &&\n typeof buffer.toString === 'function' &&\n ObjectPrototypeHasOwnProperty(buffer\x2C 'toString')\n ) {\n return;\n }\n\n throw new ERR_INVALID_ARG_TYPE(\n name\x2C\n ['string'\x2C 'Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n buffer\n );\n});\n\nconst validatePosition = hideStackFrames((position\x2C name) => {\n if (typeof position === 'number') {\n validateInteger(position\x2C 'position');\n } else if (typeof position === 'bigint') {\n if (!(position >= -(2n ** 63n) && position <= 2n ** 63n - 1n)) {\n throw new ERR_OUT_OF_RANGE('position'\x2C\n `>= ${-(2n ** 63n)} && <= ${2n ** 63n - 1n}`\x2C\n position);\n }\n } else {\n throw new ERR_INVALID_ARG_TYPE('position'\x2C\n ['integer'\x2C 'bigint']\x2C\n position);\n }\n});\n\nmodule.exports = {\n constants: {\n kIoMaxLength\x2C\n kMaxUserId\x2C\n kReadFileBufferLength\x2C\n kReadFileUnknownBufferLength\x2C\n kWriteFileMaxChunkSize\x2C\n }\x2C\n assertEncoding\x2C\n BigIntStats\x2C // for testing\n copyObject\x2C\n Dirent\x2C\n emitRecursiveRmdirWarning\x2C\n getDirent\x2C\n getDirents\x2C\n getOptions\x2C\n getValidatedFd\x2C\n getValidatedPath\x2C\n getValidMode\x2C\n handleErrorFromBinding\x2C\n nullCheck\x2C\n preprocessSymlinkDestination\x2C\n realpathCacheKey: Symbol('realpathCacheKey')\x2C\n getStatsFromBinding\x2C\n stringToFlags\x2C\n stringToSymlinkType\x2C\n Stats\x2C\n toUnixTimestamp\x2C\n validateBufferArray\x2C\n validateCpOptions\x2C\n validateOffsetLengthRead\x2C\n validateOffsetLengthWrite\x2C\n validatePath\x2C\n validatePosition\x2C\n validateRmOptions\x2C\n validateRmOptionsSync\x2C\n validateRmdirOptions\x2C\n validateStringAfterArrayBufferView\x2C\n warnOnNonPortableTemplate\n};\n code-source-info,0x3dda0e05e9a6,78,7218,7841,C0O7248C14O7340C16O7362C17O7370C23O7409C29O7453C31O7477C35O7492C42O7527C48O7566C66O7572C71O7566C72O7659C79O7668C84O7686C87O7709C92O7686C96O7735C102O7763C107O7791C115O7763C120O7824C122O7839,, code-creation,LazyCompile,10,26798,0x3dda0e0608fe,48,assertEncoding node:internal/fs/utils:151:24,0x1ce311dea660,~ code-source-info,0x3dda0e0608fe,78,3527,3704,C0O3542C6O3559C9O3566C14O3566C21O3609C24O3636C40O3642C45O3636C47O3703,, code-creation,LazyCompile,10,26851,0x3dda0e060a16,20,toPathIfFileURL node:internal/url:1496:25,0x23787e19b160,~ script-source,33,node:internal/url,'use strict';\n\nconst {\n Array\x2C\n ArrayPrototypeJoin\x2C\n ArrayPrototypeMap\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypeReduce\x2C\n ArrayPrototypeSlice\x2C\n FunctionPrototypeBind\x2C\n Int8Array\x2C\n Number\x2C\n ObjectCreate\x2C\n ObjectDefineProperties\x2C\n ObjectDefineProperty\x2C\n ObjectGetOwnPropertySymbols\x2C\n ObjectGetPrototypeOf\x2C\n ObjectKeys\x2C\n ReflectApply\x2C\n ReflectGetOwnPropertyDescriptor\x2C\n ReflectOwnKeys\x2C\n String\x2C\n StringPrototypeCharCodeAt\x2C\n StringPrototypeIncludes\x2C\n StringPrototypeReplace\x2C\n StringPrototypeSlice\x2C\n StringPrototypeSplit\x2C\n StringPrototypeStartsWith\x2C\n Symbol\x2C\n SymbolIterator\x2C\n SymbolToStringTag\x2C\n decodeURIComponent\x2C\n} = primordials;\n\nconst { inspect } = require('internal/util/inspect');\nconst {\n encodeStr\x2C\n hexTable\x2C\n isHexTable\n} = require('internal/querystring');\n\nconst {\n getConstructorOf\x2C\n removeColors\x2C\n toUSVString\x2C\n} = require('internal/util');\n\nconst {\n codes: {\n ERR_ARG_NOT_ITERABLE\x2C\n ERR_INVALID_ARG_TYPE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_INVALID_FILE_URL_HOST\x2C\n ERR_INVALID_FILE_URL_PATH\x2C\n ERR_INVALID_THIS\x2C\n ERR_INVALID_TUPLE\x2C\n ERR_INVALID_URL\x2C\n ERR_INVALID_URL_SCHEME\x2C\n ERR_MISSING_ARGS\x2C\n ERR_NO_CRYPTO\x2C\n }\x2C\n} = require('internal/errors');\nconst {\n CHAR_AMPERSAND\x2C\n CHAR_BACKWARD_SLASH\x2C\n CHAR_EQUAL\x2C\n CHAR_FORWARD_SLASH\x2C\n CHAR_LOWERCASE_A\x2C\n CHAR_LOWERCASE_Z\x2C\n CHAR_PERCENT\x2C\n CHAR_PLUS\n} = require('internal/constants');\nconst path = require('path');\n\nconst {\n validateCallback\x2C\n validateObject\x2C\n} = require('internal/validators');\n\nconst querystring = require('querystring');\n\nconst { platform } = process;\nconst isWindows = platform === 'win32';\n\nconst {\n domainToASCII: _domainToASCII\x2C\n domainToUnicode: _domainToUnicode\x2C\n encodeAuth\x2C\n parse\x2C\n setURLConstructor\x2C\n URL_FLAGS_CANNOT_BE_BASE\x2C\n URL_FLAGS_HAS_FRAGMENT\x2C\n URL_FLAGS_HAS_HOST\x2C\n URL_FLAGS_HAS_PASSWORD\x2C\n URL_FLAGS_HAS_PATH\x2C\n URL_FLAGS_HAS_QUERY\x2C\n URL_FLAGS_HAS_USERNAME\x2C\n URL_FLAGS_IS_DEFAULT_SCHEME_PORT\x2C\n URL_FLAGS_SPECIAL\x2C\n kFragment\x2C\n kHost\x2C\n kHostname\x2C\n kPathStart\x2C\n kPort\x2C\n kQuery\x2C\n kSchemeStart\n} = internalBinding('url');\n\nconst {\n storeDataObject\x2C\n revokeDataObject\x2C\n} = internalBinding('blob');\n\nconst context = Symbol('context');\nconst cannotBeBase = Symbol('cannot-be-base');\nconst cannotHaveUsernamePasswordPort =\n Symbol('cannot-have-username-password-port');\nconst special = Symbol('special');\nconst searchParams = Symbol('query');\nconst kFormat = Symbol('format');\n\nlet blob;\nlet cryptoRandom;\n\nfunction lazyBlob() {\n blob ??= require('internal/blob');\n return blob;\n}\n\nfunction lazyCryptoRandom() {\n try {\n cryptoRandom ??= require('internal/crypto/random');\n } catch {\n // If Node.js built without crypto support\x2C we'll fall\n // through here and handle it later.\n }\n return cryptoRandom;\n}\n\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nconst IteratorPrototype = ObjectGetPrototypeOf(\n ObjectGetPrototypeOf([][SymbolIterator]())\n);\n\n// Refs: https://html.spec.whatwg.org/multipage/browsers.html#concept-origin-opaque\nconst kOpaqueOrigin = 'null';\n\n// Refs: https://html.spec.whatwg.org/multipage/browsers.html#ascii-serialisation-of-an-origin\nfunction serializeTupleOrigin(scheme\x2C host\x2C port) {\n return `${scheme}//${host}${port === null ? '' : `:${port}`}`;\n}\n\n// This class provides the internal state of a URL object. An instance of this\n// class is stored in every URL object and is accessed internally by setters\n// and getters. It roughly corresponds to the concept of a URL record in the\n// URL Standard\x2C with a few differences. It is also the object transported to\n// the C++ binding.\n// Refs: https://url.spec.whatwg.org/#concept-url\nclass URLContext {\n constructor() {\n this.flags = 0;\n this.scheme = ':';\n this.username = '';\n this.password = '';\n this.host = null;\n this.port = null;\n this.path = [];\n this.query = null;\n this.fragment = null;\n }\n}\n\nfunction isURLSearchParams(self) {\n return self && self[searchParams] && !self[searchParams][searchParams];\n}\n\nclass URLSearchParams {\n // URL Standard says the default value is ''\x2C but as undefined and '' have\n // the same result\x2C undefined is used to prevent unnecessary parsing.\n // Default parameter is necessary to keep URLSearchParams.length === 0 in\n // accordance with Web IDL spec.\n constructor(init = undefined) {\n if (init === null || init === undefined) {\n this[searchParams] = [];\n } else if (typeof init === 'object' || typeof init === 'function') {\n const method = init[SymbolIterator];\n if (method === this[SymbolIterator]) {\n // While the spec does not have this branch\x2C we can use it as a\n // shortcut to avoid having to go through the costly generic iterator.\n const childParams = init[searchParams];\n this[searchParams] = childParams.slice();\n } else if (method !== null && method !== undefined) {\n if (typeof method !== 'function') {\n throw new ERR_ARG_NOT_ITERABLE('Query pairs');\n }\n\n // Sequence>\n // Note: per spec we have to first exhaust the lists then process them\n const pairs = [];\n for (const pair of init) {\n if ((typeof pair !== 'object' && typeof pair !== 'function') ||\n pair === null ||\n typeof pair[SymbolIterator] !== 'function') {\n throw new ERR_INVALID_TUPLE('Each query pair'\x2C '[name\x2C value]');\n }\n const convertedPair = [];\n for (const element of pair)\n ArrayPrototypePush(convertedPair\x2C toUSVString(element));\n ArrayPrototypePush(pairs\x2C convertedPair);\n }\n\n this[searchParams] = [];\n for (const pair of pairs) {\n if (pair.length !== 2) {\n throw new ERR_INVALID_TUPLE('Each query pair'\x2C '[name\x2C value]');\n }\n ArrayPrototypePush(this[searchParams]\x2C pair[0]\x2C pair[1]);\n }\n } else {\n // Record\n // Need to use reflection APIs for full spec compliance.\n this[searchParams] = [];\n const keys = ReflectOwnKeys(init);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = ReflectGetOwnPropertyDescriptor(init\x2C key);\n if (desc !== undefined && desc.enumerable) {\n const typedKey = toUSVString(key);\n const typedValue = toUSVString(init[key]);\n this[searchParams].push(typedKey\x2C typedValue);\n }\n }\n }\n } else {\n // USVString\n init = toUSVString(init);\n if (init[0] === '?') init = init.slice(1);\n initSearchParams(this\x2C init);\n }\n\n // "associated url object"\n this[context] = null;\n }\n\n [inspect.custom](recurseTimes\x2C ctx) {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n if (typeof recurseTimes === 'number' && recurseTimes < 0)\n return ctx.stylize('[Object]'\x2C 'special');\n\n const separator = '\x2C ';\n const innerOpts = { ...ctx };\n if (recurseTimes !== null) {\n innerOpts.depth = recurseTimes - 1;\n }\n const innerInspect = (v) => inspect(v\x2C innerOpts);\n\n const list = this[searchParams];\n const output = [];\n for (let i = 0; i < list.length; i += 2)\n ArrayPrototypePush(\n output\x2C\n `${innerInspect(list[i])} => ${innerInspect(list[i + 1])}`);\n\n const length = ArrayPrototypeReduce(\n output\x2C\n (prev\x2C cur) => prev + removeColors(cur).length + separator.length\x2C\n -separator.length\n );\n if (length > ctx.breakLength) {\n return `${this.constructor.name} {\\n` +\n ` ${ArrayPrototypeJoin(output\x2C '\x2C\\n ')} }`;\n } else if (output.length) {\n return `${this.constructor.name} { ` +\n `${ArrayPrototypeJoin(output\x2C separator)} }`;\n }\n return `${this.constructor.name} {}`;\n }\n\n append(name\x2C value) {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('name'\x2C 'value');\n }\n\n name = toUSVString(name);\n value = toUSVString(value);\n ArrayPrototypePush(this[searchParams]\x2C name\x2C value);\n update(this[context]\x2C this);\n }\n\n delete(name) {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n if (arguments.length < 1) {\n throw new ERR_MISSING_ARGS('name');\n }\n\n const list = this[searchParams];\n name = toUSVString(name);\n for (let i = 0; i < list.length;) {\n const cur = list[i];\n if (cur === name) {\n list.splice(i\x2C 2);\n } else {\n i += 2;\n }\n }\n update(this[context]\x2C this);\n }\n\n get(name) {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n if (arguments.length < 1) {\n throw new ERR_MISSING_ARGS('name');\n }\n\n const list = this[searchParams];\n name = toUSVString(name);\n for (let i = 0; i < list.length; i += 2) {\n if (list[i] === name) {\n return list[i + 1];\n }\n }\n return null;\n }\n\n getAll(name) {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n if (arguments.length < 1) {\n throw new ERR_MISSING_ARGS('name');\n }\n\n const list = this[searchParams];\n const values = [];\n name = toUSVString(name);\n for (let i = 0; i < list.length; i += 2) {\n if (list[i] === name) {\n values.push(list[i + 1]);\n }\n }\n return values;\n }\n\n has(name) {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n if (arguments.length < 1) {\n throw new ERR_MISSING_ARGS('name');\n }\n\n const list = this[searchParams];\n name = toUSVString(name);\n for (let i = 0; i < list.length; i += 2) {\n if (list[i] === name) {\n return true;\n }\n }\n return false;\n }\n\n set(name\x2C value) {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('name'\x2C 'value');\n }\n\n const list = this[searchParams];\n name = toUSVString(name);\n value = toUSVString(value);\n\n // If there are any name-value pairs whose name is `name`\x2C in `list`\x2C set\n // the value of the first such name-value pair to `value` and remove the\n // others.\n let found = false;\n for (let i = 0; i < list.length;) {\n const cur = list[i];\n if (cur === name) {\n if (!found) {\n list[i + 1] = value;\n found = true;\n i += 2;\n } else {\n list.splice(i\x2C 2);\n }\n } else {\n i += 2;\n }\n }\n\n // Otherwise\x2C append a new name-value pair whose name is `name` and value\n // is `value`\x2C to `list`.\n if (!found) {\n ArrayPrototypePush(list\x2C name\x2C value);\n }\n\n update(this[context]\x2C this);\n }\n\n sort() {\n const a = this[searchParams];\n const len = a.length;\n\n if (len <= 2) {\n // Nothing needs to be done.\n } else if (len < 100) {\n // 100 is found through testing.\n // Simple stable in-place insertion sort\n // Derived from v8/src/js/array.js\n for (let i = 2; i < len; i += 2) {\n const curKey = a[i];\n const curVal = a[i + 1];\n let j;\n for (j = i - 2; j >= 0; j -= 2) {\n if (a[j] > curKey) {\n a[j + 2] = a[j];\n a[j + 3] = a[j + 1];\n } else {\n break;\n }\n }\n a[j + 2] = curKey;\n a[j + 3] = curVal;\n }\n } else {\n // Bottom-up iterative stable merge sort\n const lBuffer = new Array(len);\n const rBuffer = new Array(len);\n for (let step = 2; step < len; step *= 2) {\n for (let start = 0; start < len - 2; start += 2 * step) {\n const mid = start + step;\n let end = mid + step;\n end = end < len ? end : len;\n if (mid > end)\n continue;\n merge(a\x2C start\x2C mid\x2C end\x2C lBuffer\x2C rBuffer);\n }\n }\n }\n\n update(this[context]\x2C this);\n }\n\n // https://heycam.github.io/webidl/#es-iterators\n // Define entries here rather than [Symbol.iterator] as the function name\n // must be set to `entries`.\n entries() {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n return createSearchParamsIterator(this\x2C 'key+value');\n }\n\n forEach(callback\x2C thisArg = undefined) {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n validateCallback(callback);\n\n let list = this[searchParams];\n\n let i = 0;\n while (i < list.length) {\n const key = list[i];\n const value = list[i + 1];\n callback.call(thisArg\x2C value\x2C key\x2C this);\n // In case the URL object's `search` is updated\n list = this[searchParams];\n i += 2;\n }\n }\n\n // https://heycam.github.io/webidl/#es-iterable\n keys() {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n return createSearchParamsIterator(this\x2C 'key');\n }\n\n values() {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n return createSearchParamsIterator(this\x2C 'value');\n }\n\n // https://heycam.github.io/webidl/#es-stringifier\n // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\n toString() {\n if (!isURLSearchParams(this))\n throw new ERR_INVALID_THIS('URLSearchParams');\n\n return serializeParams(this[searchParams]);\n }\n}\n\nObjectDefineProperties(URLSearchParams.prototype\x2C {\n append: { enumerable: true }\x2C\n delete: { enumerable: true }\x2C\n get: { enumerable: true }\x2C\n getAll: { enumerable: true }\x2C\n has: { enumerable: true }\x2C\n set: { enumerable: true }\x2C\n sort: { enumerable: true }\x2C\n entries: { enumerable: true }\x2C\n forEach: { enumerable: true }\x2C\n keys: { enumerable: true }\x2C\n values: { enumerable: true }\x2C\n toString: { enumerable: true }\x2C\n [SymbolToStringTag]: { configurable: true\x2C value: 'URLSearchParams' }\x2C\n\n // https://heycam.github.io/webidl/#es-iterable-entries\n [SymbolIterator]: {\n configurable: true\x2C\n writable: true\x2C\n value: URLSearchParams.prototype.entries\x2C\n }\x2C\n});\n\nfunction onParseComplete(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n const ctx = this[context];\n ctx.flags = flags;\n ctx.scheme = protocol;\n ctx.username = (flags & URL_FLAGS_HAS_USERNAME) !== 0 ? username : '';\n ctx.password = (flags & URL_FLAGS_HAS_PASSWORD) !== 0 ? password : '';\n ctx.port = port;\n ctx.path = (flags & URL_FLAGS_HAS_PATH) !== 0 ? path : [];\n ctx.query = query;\n ctx.fragment = fragment;\n ctx.host = host;\n if (!this[searchParams]) { // Invoked from URL constructor\n this[searchParams] = new URLSearchParams();\n this[searchParams][context] = this;\n }\n initSearchParams(this[searchParams]\x2C query);\n}\n\nfunction onParseError(flags\x2C input) {\n throw new ERR_INVALID_URL(input);\n}\n\nfunction onParseProtocolComplete(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n const ctx = this[context];\n if ((flags & URL_FLAGS_SPECIAL) !== 0) {\n ctx.flags |= URL_FLAGS_SPECIAL;\n } else {\n ctx.flags &= ~URL_FLAGS_SPECIAL;\n }\n ctx.scheme = protocol;\n ctx.port = port;\n}\n\nfunction onParseHostnameComplete(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n const ctx = this[context];\n if ((flags & URL_FLAGS_HAS_HOST) !== 0) {\n ctx.host = host;\n ctx.flags |= URL_FLAGS_HAS_HOST;\n } else {\n ctx.host = null;\n ctx.flags &= ~URL_FLAGS_HAS_HOST;\n }\n}\n\nfunction onParsePortComplete(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n this[context].port = port;\n}\n\nfunction onParseHostComplete(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n ReflectApply(onParseHostnameComplete\x2C this\x2C arguments);\n if (port !== null || ((flags & URL_FLAGS_IS_DEFAULT_SCHEME_PORT) !== 0))\n ReflectApply(onParsePortComplete\x2C this\x2C arguments);\n}\n\nfunction onParsePathComplete(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n const ctx = this[context];\n if ((flags & URL_FLAGS_HAS_PATH) !== 0) {\n ctx.path = path;\n ctx.flags |= URL_FLAGS_HAS_PATH;\n } else {\n ctx.path = [];\n ctx.flags &= ~URL_FLAGS_HAS_PATH;\n }\n\n // The C++ binding may set host to empty string.\n if ((flags & URL_FLAGS_HAS_HOST) !== 0) {\n ctx.host = host;\n ctx.flags |= URL_FLAGS_HAS_HOST;\n }\n}\n\nfunction onParseSearchComplete(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n this[context].query = query;\n}\n\nfunction onParseHashComplete(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n this[context].fragment = fragment;\n}\n\nclass URL {\n constructor(input\x2C base = undefined) {\n // toUSVString is not needed.\n input = `${input}`;\n let base_context;\n if (base !== undefined) {\n base_context = new URL(base)[context];\n }\n this[context] = new URLContext();\n parse(input\x2C -1\x2C base_context\x2C undefined\x2C\n FunctionPrototypeBind(onParseComplete\x2C this)\x2C onParseError);\n }\n\n get [special]() {\n return (this[context].flags & URL_FLAGS_SPECIAL) !== 0;\n }\n\n get [cannotBeBase]() {\n return (this[context].flags & URL_FLAGS_CANNOT_BE_BASE) !== 0;\n }\n\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n get [cannotHaveUsernamePasswordPort]() {\n const { host\x2C scheme } = this[context];\n return ((host == null || host === '') ||\n this[cannotBeBase] ||\n scheme === 'file:');\n }\n\n [inspect.custom](depth\x2C opts) {\n if (this == null ||\n ObjectGetPrototypeOf(this[context]) !== URLContext.prototype) {\n throw new ERR_INVALID_THIS('URL');\n }\n\n if (typeof depth === 'number' && depth < 0)\n return this;\n\n const constructor = getConstructorOf(this) || URL;\n const obj = ObjectCreate({ constructor });\n\n obj.href = this.href;\n obj.origin = this.origin;\n obj.protocol = this.protocol;\n obj.username = this.username;\n obj.password = this.password;\n obj.host = this.host;\n obj.hostname = this.hostname;\n obj.port = this.port;\n obj.pathname = this.pathname;\n obj.search = this.search;\n obj.searchParams = this.searchParams;\n obj.hash = this.hash;\n\n if (opts.showHidden) {\n obj.cannotBeBase = this[cannotBeBase];\n obj.special = this[special];\n obj[context] = this[context];\n }\n\n return `${constructor.name} ${inspect(obj\x2C opts)}`;\n }\n\n [kFormat](options) {\n if (options)\n validateObject(options\x2C 'options');\n\n options = {\n fragment: true\x2C\n unicode: false\x2C\n search: true\x2C\n auth: true\x2C\n ...options\n };\n const ctx = this[context];\n // https://url.spec.whatwg.org/#url-serializing\n let ret = ctx.scheme;\n if (ctx.host !== null) {\n ret += '//';\n const has_username = ctx.username !== '';\n const has_password = ctx.password !== '';\n if (options.auth && (has_username || has_password)) {\n if (has_username)\n ret += ctx.username;\n if (has_password)\n ret += `:${ctx.password}`;\n ret += '@';\n }\n ret += options.unicode ?\n domainToUnicode(ctx.host) : ctx.host;\n if (ctx.port !== null)\n ret += `:${ctx.port}`;\n }\n if (this[cannotBeBase]) {\n ret += ctx.path[0];\n } else {\n if (ctx.host === null && ctx.path.length > 1 && ctx.path[0] === '') {\n ret += '/.';\n }\n if (ctx.path.length) {\n ret += '/' + ArrayPrototypeJoin(ctx.path\x2C '/');\n }\n }\n if (options.search && ctx.query !== null)\n ret += `?${ctx.query}`;\n if (options.fragment && ctx.fragment !== null)\n ret += `#${ctx.fragment}`;\n return ret;\n }\n\n // https://heycam.github.io/webidl/#es-stringifier\n toString() {\n return this[kFormat]({});\n }\n\n get href() {\n return this[kFormat]({});\n }\n\n set href(input) {\n // toUSVString is not needed.\n input = `${input}`;\n parse(input\x2C -1\x2C undefined\x2C undefined\x2C\n FunctionPrototypeBind(onParseComplete\x2C this)\x2C onParseError);\n }\n\n // readonly\n get origin() {\n // Refs: https://url.spec.whatwg.org/#concept-url-origin\n const ctx = this[context];\n switch (ctx.scheme) {\n case 'blob:':\n if (ctx.path.length > 0) {\n try {\n return (new URL(ctx.path[0])).origin;\n } catch {\n // Fall through... do nothing\n }\n }\n return kOpaqueOrigin;\n case 'ftp:':\n case 'http:':\n case 'https:':\n case 'ws:':\n case 'wss:':\n return serializeTupleOrigin(ctx.scheme\x2C ctx.host\x2C ctx.port);\n }\n return kOpaqueOrigin;\n }\n\n get protocol() {\n return this[context].scheme;\n }\n\n set protocol(scheme) {\n // toUSVString is not needed.\n scheme = `${scheme}`;\n if (scheme.length === 0)\n return;\n const ctx = this[context];\n parse(scheme\x2C kSchemeStart\x2C null\x2C ctx\x2C\n FunctionPrototypeBind(onParseProtocolComplete\x2C this));\n }\n\n get username() {\n return this[context].username;\n }\n\n set username(username) {\n // toUSVString is not needed.\n username = `${username}`;\n if (this[cannotHaveUsernamePasswordPort])\n return;\n const ctx = this[context];\n if (username === '') {\n ctx.username = '';\n ctx.flags &= ~URL_FLAGS_HAS_USERNAME;\n return;\n }\n ctx.username = encodeAuth(username);\n ctx.flags |= URL_FLAGS_HAS_USERNAME;\n }\n\n get password() {\n return this[context].password;\n }\n\n set password(password) {\n // toUSVString is not needed.\n password = `${password}`;\n if (this[cannotHaveUsernamePasswordPort])\n return;\n const ctx = this[context];\n if (password === '') {\n ctx.password = '';\n ctx.flags &= ~URL_FLAGS_HAS_PASSWORD;\n return;\n }\n ctx.password = encodeAuth(password);\n ctx.flags |= URL_FLAGS_HAS_PASSWORD;\n }\n\n get host() {\n const ctx = this[context];\n let ret = ctx.host || '';\n if (ctx.port !== null)\n ret += `:${ctx.port}`;\n return ret;\n }\n\n set host(host) {\n const ctx = this[context];\n // toUSVString is not needed.\n host = `${host}`;\n if (this[cannotBeBase]) {\n // Cannot set the host if cannot-be-base is set\n return;\n }\n parse(host\x2C kHost\x2C null\x2C ctx\x2C\n FunctionPrototypeBind(onParseHostComplete\x2C this));\n }\n\n get hostname() {\n return this[context].host || '';\n }\n\n set hostname(host) {\n const ctx = this[context];\n // toUSVString is not needed.\n host = `${host}`;\n if (this[cannotBeBase]) {\n // Cannot set the host if cannot-be-base is set\n return;\n }\n parse(host\x2C kHostname\x2C null\x2C ctx\x2C onParseHostnameComplete.bind(this));\n }\n\n get port() {\n const port = this[context].port;\n return port === null ? '' : String(port);\n }\n\n set port(port) {\n // toUSVString is not needed.\n port = `${port}`;\n if (this[cannotHaveUsernamePasswordPort])\n return;\n const ctx = this[context];\n if (port === '') {\n ctx.port = null;\n return;\n }\n parse(port\x2C kPort\x2C null\x2C ctx\x2C\n FunctionPrototypeBind(onParsePortComplete\x2C this));\n }\n\n get pathname() {\n const ctx = this[context];\n if (this[cannotBeBase])\n return ctx.path[0];\n if (ctx.path.length === 0)\n return '';\n return `/${ArrayPrototypeJoin(ctx.path\x2C '/')}`;\n }\n\n set pathname(path) {\n // toUSVString is not needed.\n path = `${path}`;\n if (this[cannotBeBase])\n return;\n parse(path\x2C kPathStart\x2C null\x2C this[context]\x2C\n onParsePathComplete.bind(this));\n }\n\n get search() {\n const { query } = this[context];\n if (query === null || query === '')\n return '';\n return `?${query}`;\n }\n\n set search(search) {\n const ctx = this[context];\n search = toUSVString(search);\n if (search === '') {\n ctx.query = null;\n ctx.flags &= ~URL_FLAGS_HAS_QUERY;\n } else {\n if (search[0] === '?') search = StringPrototypeSlice(search\x2C 1);\n ctx.query = '';\n ctx.flags |= URL_FLAGS_HAS_QUERY;\n if (search) {\n parse(search\x2C kQuery\x2C null\x2C ctx\x2C\n FunctionPrototypeBind(onParseSearchComplete\x2C this));\n }\n }\n initSearchParams(this[searchParams]\x2C search);\n }\n\n // readonly\n get searchParams() {\n return this[searchParams];\n }\n\n get hash() {\n const { fragment } = this[context];\n if (fragment === null || fragment === '')\n return '';\n return `#${fragment}`;\n }\n\n set hash(hash) {\n const ctx = this[context];\n // toUSVString is not needed.\n hash = `${hash}`;\n if (!hash) {\n ctx.fragment = null;\n ctx.flags &= ~URL_FLAGS_HAS_FRAGMENT;\n return;\n }\n if (hash[0] === '#') hash = StringPrototypeSlice(hash\x2C 1);\n ctx.fragment = '';\n ctx.flags |= URL_FLAGS_HAS_FRAGMENT;\n parse(hash\x2C kFragment\x2C null\x2C ctx\x2C\n FunctionPrototypeBind(onParseHashComplete\x2C this));\n }\n\n toJSON() {\n return this[kFormat]({});\n }\n\n static createObjectURL(obj) {\n const cryptoRandom = lazyCryptoRandom();\n if (cryptoRandom === undefined)\n throw new ERR_NO_CRYPTO();\n\n // Yes\x2C lazy loading is annoying but because of circular\n // references between the url\x2C internal/blob\x2C and buffer\n // modules\x2C lazy loading here makes sure that things work.\n const blob = lazyBlob();\n if (!blob.isBlob(obj))\n throw new ERR_INVALID_ARG_TYPE('obj'\x2C 'Blob'\x2C obj);\n\n const id = cryptoRandom.randomUUID();\n\n storeDataObject(id\x2C obj[blob.kHandle]\x2C obj.size\x2C obj.type);\n\n return `blob:nodedata:${id}`;\n }\n\n static revokeObjectURL(url) {\n url = `${url}`;\n try {\n const parsed = new URL(url);\n const split = StringPrototypeSplit(parsed.pathname\x2C ':');\n if (split.length === 2)\n revokeDataObject(split[1]);\n } catch {\n // If there's an error\x2C it's ignored.\n }\n }\n}\n\nObjectDefineProperties(URL.prototype\x2C {\n [kFormat]: { configurable: false\x2C writable: false }\x2C\n [SymbolToStringTag]: { configurable: true\x2C value: 'URL' }\x2C\n toString: { enumerable: true }\x2C\n href: { enumerable: true }\x2C\n origin: { enumerable: true }\x2C\n protocol: { enumerable: true }\x2C\n username: { enumerable: true }\x2C\n password: { enumerable: true }\x2C\n host: { enumerable: true }\x2C\n hostname: { enumerable: true }\x2C\n port: { enumerable: true }\x2C\n pathname: { enumerable: true }\x2C\n search: { enumerable: true }\x2C\n searchParams: { enumerable: true }\x2C\n hash: { enumerable: true }\x2C\n toJSON: { enumerable: true }\x2C\n});\n\nfunction update(url\x2C params) {\n if (!url)\n return;\n\n const ctx = url[context];\n const serializedParams = params.toString();\n if (serializedParams) {\n ctx.query = serializedParams;\n ctx.flags |= URL_FLAGS_HAS_QUERY;\n } else {\n ctx.query = null;\n ctx.flags &= ~URL_FLAGS_HAS_QUERY;\n }\n}\n\nfunction initSearchParams(url\x2C init) {\n if (!init) {\n url[searchParams] = [];\n return;\n }\n url[searchParams] = parseParams(init);\n}\n\n// application/x-www-form-urlencoded parser\n// Ref: https://url.spec.whatwg.org/#concept-urlencoded-parser\nfunction parseParams(qs) {\n const out = [];\n let pairStart = 0;\n let lastPos = 0;\n let seenSep = false;\n let buf = '';\n let encoded = false;\n let encodeCheck = 0;\n let i;\n for (i = 0; i < qs.length; ++i) {\n const code = StringPrototypeCharCodeAt(qs\x2C i);\n\n // Try matching key/value pair separator\n if (code === CHAR_AMPERSAND) {\n if (pairStart === i) {\n // We saw an empty substring between pair separators\n lastPos = pairStart = i + 1;\n continue;\n }\n\n if (lastPos < i)\n buf += qs.slice(lastPos\x2C i);\n if (encoded)\n buf = querystring.unescape(buf);\n out.push(buf);\n\n // If `buf` is the key\x2C add an empty value.\n if (!seenSep)\n out.push('');\n\n seenSep = false;\n buf = '';\n encoded = false;\n encodeCheck = 0;\n lastPos = pairStart = i + 1;\n continue;\n }\n\n // Try matching key/value separator (e.g. '=') if we haven't already\n if (!seenSep && code === CHAR_EQUAL) {\n // Key/value separator match!\n if (lastPos < i)\n buf += qs.slice(lastPos\x2C i);\n if (encoded)\n buf = querystring.unescape(buf);\n out.push(buf);\n\n seenSep = true;\n buf = '';\n encoded = false;\n encodeCheck = 0;\n lastPos = i + 1;\n continue;\n }\n\n // Handle + and percent decoding.\n if (code === CHAR_PLUS) {\n if (lastPos < i)\n buf += StringPrototypeSlice(qs\x2C lastPos\x2C i);\n buf += ' ';\n lastPos = i + 1;\n } else if (!encoded) {\n // Try to match an (valid) encoded byte (once) to minimize unnecessary\n // calls to string decoding functions\n if (code === CHAR_PERCENT) {\n encodeCheck = 1;\n } else if (encodeCheck > 0) {\n if (isHexTable[code] === 1) {\n if (++encodeCheck === 3) {\n encoded = true;\n }\n } else {\n encodeCheck = 0;\n }\n }\n }\n }\n\n // Deal with any leftover key or value data\n\n // There is a trailing &. No more processing is needed.\n if (pairStart === i)\n return out;\n\n if (lastPos < i)\n buf += StringPrototypeSlice(qs\x2C lastPos\x2C i);\n if (encoded)\n buf = querystring.unescape(buf);\n ArrayPrototypePush(out\x2C buf);\n\n // If `buf` is the key\x2C add an empty value.\n if (!seenSep)\n ArrayPrototypePush(out\x2C '');\n\n return out;\n}\n\n// Adapted from querystring's implementation.\n// Ref: https://url.spec.whatwg.org/#concept-urlencoded-byte-serializer\nconst noEscape = new Int8Array([\n/*\n 0\x2C 1\x2C 2\x2C 3\x2C 4\x2C 5\x2C 6\x2C 7\x2C 8\x2C 9\x2C A\x2C B\x2C C\x2C D\x2C E\x2C F\n*/\n 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C // 0x00 - 0x0F\n 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C // 0x10 - 0x1F\n 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 1\x2C 0\x2C 0\x2C 1\x2C 1\x2C 0\x2C // 0x20 - 0x2F\n 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C // 0x30 - 0x3F\n 0\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C // 0x40 - 0x4F\n 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 0\x2C 0\x2C 0\x2C 1\x2C // 0x50 - 0x5F\n 0\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C // 0x60 - 0x6F\n 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 1\x2C 0\x2C 0\x2C 0\x2C 0\x2C 0\x2C // 0x70 - 0x7F\n]);\n\n// Special version of hexTable that uses `+` for U+0020 SPACE.\nconst paramHexTable = hexTable.slice();\nparamHexTable[0x20] = '+';\n\n// application/x-www-form-urlencoded serializer\n// Ref: https://url.spec.whatwg.org/#concept-urlencoded-serializer\nfunction serializeParams(array) {\n const len = array.length;\n if (len === 0)\n return '';\n\n const firstEncodedParam = encodeStr(array[0]\x2C noEscape\x2C paramHexTable);\n const firstEncodedValue = encodeStr(array[1]\x2C noEscape\x2C paramHexTable);\n let output = `${firstEncodedParam}=${firstEncodedValue}`;\n\n for (let i = 2; i < len; i += 2) {\n const encodedParam = encodeStr(array[i]\x2C noEscape\x2C paramHexTable);\n const encodedValue = encodeStr(array[i + 1]\x2C noEscape\x2C paramHexTable);\n output += `&${encodedParam}=${encodedValue}`;\n }\n\n return output;\n}\n\n// Mainly to mitigate func-name-matching ESLint rule\nfunction defineIDLClass(proto\x2C classStr\x2C obj) {\n // https://heycam.github.io/webidl/#dfn-class-string\n ObjectDefineProperty(proto\x2C SymbolToStringTag\x2C {\n writable: false\x2C\n enumerable: false\x2C\n configurable: true\x2C\n value: classStr\n });\n\n // https://heycam.github.io/webidl/#es-operations\n for (const key of ObjectKeys(obj)) {\n ObjectDefineProperty(proto\x2C key\x2C {\n writable: true\x2C\n enumerable: true\x2C\n configurable: true\x2C\n value: obj[key]\n });\n }\n for (const key of ObjectGetOwnPropertySymbols(obj)) {\n ObjectDefineProperty(proto\x2C key\x2C {\n writable: true\x2C\n enumerable: false\x2C\n configurable: true\x2C\n value: obj[key]\n });\n }\n}\n\n// for merge sort\nfunction merge(out\x2C start\x2C mid\x2C end\x2C lBuffer\x2C rBuffer) {\n const sizeLeft = mid - start;\n const sizeRight = end - mid;\n let l\x2C r\x2C o;\n\n for (l = 0; l < sizeLeft; l++)\n lBuffer[l] = out[start + l];\n for (r = 0; r < sizeRight; r++)\n rBuffer[r] = out[mid + r];\n\n l = 0;\n r = 0;\n o = start;\n while (l < sizeLeft && r < sizeRight) {\n if (lBuffer[l] <= rBuffer[r]) {\n out[o++] = lBuffer[l++];\n out[o++] = lBuffer[l++];\n } else {\n out[o++] = rBuffer[r++];\n out[o++] = rBuffer[r++];\n }\n }\n while (l < sizeLeft)\n out[o++] = lBuffer[l++];\n while (r < sizeRight)\n out[o++] = rBuffer[r++];\n}\n\n// https://heycam.github.io/webidl/#dfn-default-iterator-object\nfunction createSearchParamsIterator(target\x2C kind) {\n const iterator = ObjectCreate(URLSearchParamsIteratorPrototype);\n iterator[context] = {\n target\x2C\n kind\x2C\n index: 0\n };\n return iterator;\n}\n\n// https://heycam.github.io/webidl/#dfn-iterator-prototype-object\nconst URLSearchParamsIteratorPrototype = ObjectCreate(IteratorPrototype);\n\ndefineIDLClass(URLSearchParamsIteratorPrototype\x2C 'URLSearchParams Iterator'\x2C {\n next() {\n if (!this ||\n ObjectGetPrototypeOf(this) !== URLSearchParamsIteratorPrototype) {\n throw new ERR_INVALID_THIS('URLSearchParamsIterator');\n }\n\n const {\n target\x2C\n kind\x2C\n index\n } = this[context];\n const values = target[searchParams];\n const len = values.length;\n if (index >= len) {\n return {\n value: undefined\x2C\n done: true\n };\n }\n\n const name = values[index];\n const value = values[index + 1];\n this[context].index = index + 2;\n\n let result;\n if (kind === 'key') {\n result = name;\n } else if (kind === 'value') {\n result = value;\n } else {\n result = [name\x2C value];\n }\n\n return {\n value: result\x2C\n done: false\n };\n }\x2C\n [inspect.custom](recurseTimes\x2C ctx) {\n if (this == null || this[context] == null || this[context].target == null)\n throw new ERR_INVALID_THIS('URLSearchParamsIterator');\n\n if (typeof recurseTimes === 'number' && recurseTimes < 0)\n return ctx.stylize('[Object]'\x2C 'special');\n\n const innerOpts = { ...ctx };\n if (recurseTimes !== null) {\n innerOpts.depth = recurseTimes - 1;\n }\n const {\n target\x2C\n kind\x2C\n index\n } = this[context];\n const output = ArrayPrototypeReduce(\n ArrayPrototypeSlice(target[searchParams]\x2C index)\x2C\n (prev\x2C cur\x2C i) => {\n const key = i % 2 === 0;\n if (kind === 'key' && key) {\n ArrayPrototypePush(prev\x2C cur);\n } else if (kind === 'value' && !key) {\n ArrayPrototypePush(prev\x2C cur);\n } else if (kind === 'key+value' && !key) {\n ArrayPrototypePush(prev\x2C [target[searchParams][index + i - 1]\x2C cur]);\n }\n return prev;\n }\x2C\n []\n );\n const breakLn = inspect(output\x2C innerOpts).includes('\\n');\n const outputStrs = ArrayPrototypeMap(output\x2C (p) => inspect(p\x2C innerOpts));\n let outputStr;\n if (breakLn) {\n outputStr = `\\n ${ArrayPrototypeJoin(outputStrs\x2C '\x2C\\n ')}`;\n } else {\n outputStr = ` ${ArrayPrototypeJoin(outputStrs\x2C '\x2C ')}`;\n }\n return `${this[SymbolToStringTag]} {${outputStr} }`;\n }\n});\n\nfunction domainToASCII(domain) {\n if (arguments.length < 1)\n throw new ERR_MISSING_ARGS('domain');\n\n // toUSVString is not needed.\n return _domainToASCII(`${domain}`);\n}\n\nfunction domainToUnicode(domain) {\n if (arguments.length < 1)\n throw new ERR_MISSING_ARGS('domain');\n\n // toUSVString is not needed.\n return _domainToUnicode(`${domain}`);\n}\n\n// Utility function that converts a URL object into an ordinary\n// options object as expected by the http.request and https.request\n// APIs.\nfunction urlToHttpOptions(url) {\n const options = {\n protocol: url.protocol\x2C\n hostname: typeof url.hostname === 'string' &&\n StringPrototypeStartsWith(url.hostname\x2C '[') ?\n StringPrototypeSlice(url.hostname\x2C 1\x2C -1) :\n url.hostname\x2C\n hash: url.hash\x2C\n search: url.search\x2C\n pathname: url.pathname\x2C\n path: `${url.pathname || ''}${url.search || ''}`\x2C\n href: url.href\n };\n if (url.port !== '') {\n options.port = Number(url.port);\n }\n if (url.username || url.password) {\n options.auth = `${decodeURIComponent(url.username)}:${decodeURIComponent(url.password)}`;\n }\n return options;\n}\n\nconst forwardSlashRegEx = /\\//g;\n\nfunction getPathFromURLWin32(url) {\n const hostname = url.hostname;\n let pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === '%') {\n const third = pathname.codePointAt(n + 2) | 0x20;\n if ((pathname[n + 1] === '2' && third === 102) || // 2f 2F /\n (pathname[n + 1] === '5' && third === 99)) { // 5c 5C \\\n throw new ERR_INVALID_FILE_URL_PATH(\n 'must not include encoded \\\\ or / characters'\n );\n }\n }\n }\n pathname = pathname.replace(forwardSlashRegEx\x2C '\\\\');\n pathname = decodeURIComponent(pathname);\n if (hostname !== '') {\n // If hostname is set\x2C then we have a UNC path\n // Pass the hostname through domainToUnicode just in case\n // it is an IDN using punycode encoding. We do not need to worry\n // about percent encoding because the URL parser will have\n // already taken care of that for us. Note that this only\n // causes IDNs with an appropriate `xn--` prefix to be decoded.\n return `\\\\\\\\${domainToUnicode(hostname)}${pathname}`;\n }\n // Otherwise\x2C it's a local path that requires a drive letter\n const letter = pathname.codePointAt(1) | 0x20;\n const sep = pathname[2];\n if (letter < CHAR_LOWERCASE_A || letter > CHAR_LOWERCASE_Z || // a..z A..Z\n (sep !== ':')) {\n throw new ERR_INVALID_FILE_URL_PATH('must be absolute');\n }\n return pathname.slice(1);\n}\n\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n throw new ERR_INVALID_FILE_URL_HOST(platform);\n }\n const pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === '%') {\n const third = pathname.codePointAt(n + 2) | 0x20;\n if (pathname[n + 1] === '2' && third === 102) {\n throw new ERR_INVALID_FILE_URL_PATH(\n 'must not include encoded / characters'\n );\n }\n }\n }\n return decodeURIComponent(pathname);\n}\n\nfunction fileURLToPath(path) {\n if (typeof path === 'string')\n path = new URL(path);\n else if (!isURLInstance(path))\n throw new ERR_INVALID_ARG_TYPE('path'\x2C ['string'\x2C 'URL']\x2C path);\n if (path.protocol !== 'file:')\n throw new ERR_INVALID_URL_SCHEME('file');\n return isWindows ? getPathFromURLWin32(path) : getPathFromURLPosix(path);\n}\n\n// The following characters are percent-encoded when converting from file path\n// to URL:\n// - %: The percent character is the only character not encoded by the\n// `pathname` setter.\n// - \\: Backslash is encoded on non-windows platforms since it's a valid\n// character but the `pathname` setters replaces it by a forward slash.\n// - LF: The newline character is stripped out by the `pathname` setter.\n// (See whatwg/url#419)\n// - CR: The carriage return character is also stripped out by the `pathname`\n// setter.\n// - TAB: The tab character is also stripped out by the `pathname` setter.\nconst percentRegEx = /%/g;\nconst backslashRegEx = /\\\\/g;\nconst newlineRegEx = /\\n/g;\nconst carriageReturnRegEx = /\\r/g;\nconst tabRegEx = /\\t/g;\n\nfunction encodePathChars(filepath) {\n if (StringPrototypeIncludes(filepath\x2C '%'))\n filepath = StringPrototypeReplace(filepath\x2C percentRegEx\x2C '%25');\n // In posix\x2C backslash is a valid character in paths:\n if (!isWindows && StringPrototypeIncludes(filepath\x2C '\\\\'))\n filepath = StringPrototypeReplace(filepath\x2C backslashRegEx\x2C '%5C');\n if (StringPrototypeIncludes(filepath\x2C '\\n'))\n filepath = StringPrototypeReplace(filepath\x2C newlineRegEx\x2C '%0A');\n if (StringPrototypeIncludes(filepath\x2C '\\r'))\n filepath = StringPrototypeReplace(filepath\x2C carriageReturnRegEx\x2C '%0D');\n if (StringPrototypeIncludes(filepath\x2C '\\t'))\n filepath = StringPrototypeReplace(filepath\x2C tabRegEx\x2C '%09');\n return filepath;\n}\n\nfunction pathToFileURL(filepath) {\n const outURL = new URL('file://');\n if (isWindows && StringPrototypeStartsWith(filepath\x2C '\\\\\\\\')) {\n // UNC path format: \\\\server\\share\\resource\n const paths = StringPrototypeSplit(filepath\x2C '\\\\');\n if (paths.length <= 3) {\n throw new ERR_INVALID_ARG_VALUE(\n 'filepath'\x2C\n filepath\x2C\n 'Missing UNC resource path'\n );\n }\n const hostname = paths[2];\n if (hostname.length === 0) {\n throw new ERR_INVALID_ARG_VALUE(\n 'filepath'\x2C\n filepath\x2C\n 'Empty UNC servername'\n );\n }\n outURL.hostname = domainToASCII(hostname);\n outURL.pathname = encodePathChars(\n ArrayPrototypeJoin(ArrayPrototypeSlice(paths\x2C 3)\x2C '/'));\n } else {\n let resolved = path.resolve(filepath);\n // path.resolve strips trailing slashes so we must add them back\n const filePathLast = StringPrototypeCharCodeAt(filepath\x2C\n filepath.length - 1);\n if ((filePathLast === CHAR_FORWARD_SLASH ||\n (isWindows && filePathLast === CHAR_BACKWARD_SLASH)) &&\n resolved[resolved.length - 1] !== path.sep)\n resolved += '/';\n outURL.pathname = encodePathChars(resolved);\n }\n return outURL;\n}\n\nfunction isURLInstance(fileURLOrPath) {\n return fileURLOrPath != null && fileURLOrPath.href && fileURLOrPath.origin;\n}\n\nfunction toPathIfFileURL(fileURLOrPath) {\n if (!isURLInstance(fileURLOrPath))\n return fileURLOrPath;\n return fileURLToPath(fileURLOrPath);\n}\n\nfunction constructUrl(flags\x2C protocol\x2C username\x2C password\x2C\n host\x2C port\x2C path\x2C query\x2C fragment) {\n const ctx = new URLContext();\n ctx.flags = flags;\n ctx.scheme = protocol;\n ctx.username = (flags & URL_FLAGS_HAS_USERNAME) !== 0 ? username : '';\n ctx.password = (flags & URL_FLAGS_HAS_PASSWORD) !== 0 ? password : '';\n ctx.port = port;\n ctx.path = (flags & URL_FLAGS_HAS_PATH) !== 0 ? path : [];\n ctx.query = query;\n ctx.fragment = fragment;\n ctx.host = host;\n\n const url = ObjectCreate(URL.prototype);\n url[context] = ctx;\n const params = new URLSearchParams();\n url[searchParams] = params;\n params[context] = url;\n initSearchParams(params\x2C query);\n return url;\n}\nsetURLConstructor(constructUrl);\n\nmodule.exports = {\n toUSVString\x2C\n fileURLToPath\x2C\n pathToFileURL\x2C\n toPathIfFileURL\x2C\n isURLInstance\x2C\n URL\x2C\n URLSearchParams\x2C\n domainToASCII\x2C\n domainToUnicode\x2C\n urlToHttpOptions\x2C\n formatSymbol: kFormat\x2C\n searchParamsSymbol: searchParams\x2C\n encodeStr\n};\n code-source-info,0x3dda0e060a16,33,41461,41582,C0O41481C3O41486C9O41520C11O41541C12O41544C15O41551C19O41580,, code-creation,LazyCompile,10,27592,0x3dda0e063b46,17,isURLInstance node:internal/url:1492:23,0x23787e19b110,~ code-source-info,0x3dda0e063b46,33,41338,41435,C0O41358C3O41379C6O41404C12O41426C16O41433,, LoadIC,0x3dda0e063b4c,27601,1493,49,X,X,0x268a435c2aa1,href,, code-creation,LazyCompile,10,27619,0x3dda0e063ca6,81, node:internal/fs/utils:668:38,0x1ce311deb680,~ code-source-info,0x3dda0e063ca6,78,18141,18411,C14O18174C22O18207C25O18207C31O18233C36O18264C49O18239C54O18233C55O18329C68O18329C74O18366C76O18395C78O18395C80O18410,, code-creation,LazyCompile,10,27643,0x3dda0e063eb6,110, node:internal/fs/utils:357:35,0x1ce311deacf8,~ code-source-info,0x3dda0e063eb6,78,8569,9158,C16O8633C21O8686C26O8686C31O8780C37O8803C41O8831C45O8848C51O8848C60O8899C64O8920C69O8920C76O8965C77O8972C78O8992C94O8992C100O9106C104O9128C106O9128C107O9145C109O9156,, code-creation,LazyCompile,10,27664,0x3dda0e06402e,16,isUint8Array node:internal/util/types:13:22,0x44edd6d6d90,~ script-source,15,node:internal/util/types,'use strict';\n\nconst {\n ArrayBufferIsView\x2C\n ObjectDefineProperties\x2C\n TypedArrayPrototypeGetSymbolToStringTag\x2C\n} = primordials;\n\nfunction isTypedArray(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) !== undefined;\n}\n\nfunction isUint8Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Uint8Array';\n}\n\nfunction isUint8ClampedArray(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Uint8ClampedArray';\n}\n\nfunction isUint16Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Uint16Array';\n}\n\nfunction isUint32Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Uint32Array';\n}\n\nfunction isInt8Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Int8Array';\n}\n\nfunction isInt16Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Int16Array';\n}\n\nfunction isInt32Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Int32Array';\n}\n\nfunction isFloat32Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Float32Array';\n}\n\nfunction isFloat64Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Float64Array';\n}\n\nfunction isBigInt64Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'BigInt64Array';\n}\n\nfunction isBigUint64Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'BigUint64Array';\n}\n\nmodule.exports = {\n ...internalBinding('types')\x2C\n isArrayBufferView: ArrayBufferIsView\x2C\n isTypedArray\x2C\n isUint8Array\x2C\n isUint8ClampedArray\x2C\n isUint16Array\x2C\n isUint32Array\x2C\n isInt8Array\x2C\n isInt16Array\x2C\n isInt32Array\x2C\n isFloat32Array\x2C\n isFloat64Array\x2C\n isBigInt64Array\x2C\n isBigUint64Array\n};\n\nlet isCryptoKey;\nlet isKeyObject;\n\nObjectDefineProperties(module.exports\x2C {\n isKeyObject: {\n configurable: false\x2C\n enumerable: true\x2C\n value(obj) {\n if (!process.versions.openssl) {\n return false;\n }\n\n if (!isKeyObject) {\n ({ isKeyObject } = require('internal/crypto/keys'));\n }\n\n return isKeyObject(obj);\n }\n }\x2C\n isCryptoKey: {\n configurable: false\x2C\n enumerable: true\x2C\n value(obj) {\n if (!process.versions.openssl) {\n return false;\n }\n\n if (!isCryptoKey) {\n ({ isCryptoKey } = require('internal/crypto/keys'));\n }\n\n return isCryptoKey(obj);\n }\n }\n});\n code-source-info,0x3dda0e06402e,15,257,342,C0O269C5O276C12O323C15O340,, code-creation,LazyCompile,10,27735,0x3dda0e0644a6,61,splitRoot node:fs:2362:33,0x1ce311de27c0,~ code-source-info,0x3dda0e0644a6,77,62796,62988,C0O62821C2O62832C6O62826C11O62853C16O62857C24O62895C26O62891C31O62923C44O62930C49O62962C50O62842C55O62808C58O62973C60O62984,, LoadIC,0x3dda0e0644a8,27745,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0644a8,27750,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583a3,27753,2438,17,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e0583f9,27756,2451,18,X,X,0x268a435c2aa1,length,, code-creation,LazyCompile,10,27765,0x3dda0e0645de,20,nextPart node:fs:2395:31,0x1ce311de2860,~ code-source-info,0x3dda0e0645de,77,63703,63761,C0O63716C14O63723C19O63757,, StoreIC,0x3dda0e058516,27777,2484,27,X,X,0x000000000000,path,, code-creation,LazyCompile,10,27799,0x3dda0e0647de,63,handleErrorFromBinding node:internal/fs/utils:340:32,0x1ce311deaca8,~ code-source-info,0x3dda0e0647de,78,7930,8428,C0O7948C6O8011C11O8011C16O8033C24O8033C29O8090C31O8090C32O8115C38O8343C43O8370C51O8343C56O8416C60O8406C62O8427,, code-creation,LazyCompile,10,27821,0x3dda0e06492e,34,isFileType node:fs:205:20,0x1ce311de0528,~ code-source-info,0x3dda0e06492e,77,5285,5526,C0O5419C2O5424C6O5431C10O5465C15O5472C20O5488C22O5503C24O5501C30O5511C33O5524,, LoadIC,0x3dda0e0583f9,27831,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,27839,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,27846,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,27851,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,27856,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,27861,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,27866,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,27871,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,27876,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,27880,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,27885,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,27889,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,27894,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,27900,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,27904,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e058434,27908,2459,15,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,27913,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,27920,2451,18,X,X,0x268a435c2aa1,length,, code-creation,LazyCompile,10,27939,0x3dda0e064d2e,72,encodeRealpathResult node:fs:2371:30,0x1ce311de2810,~ code-source-info,0x3dda0e064d2e,77,63022,63280,C0O63044C4O63069C10O63089C17O63098C22O63114C24O63128C25O63148C30O63155C35O63155C41O63183C48O63192C53O63212C55O63228C56O63251C61O63268C66O63251C71O63278,, LoadIC,0x3dda0e063b4c,27952,1493,49,X,X,0x268a435c2aa1,href,, code-creation,LazyCompile,10,27982,0x3dda0e064ede,109,shouldUseESMLoader node:internal/modules/run_main:26:28,0x3dda0e055e78,~ code-source-info,0x3dda0e064ede,114,739,1299,C0O773C8O773C13O816C15O836C16O848C17O891C25O891C30O948C32O980C37O996C38O1008C39O1056C45O1072C51O1072C58O1119C59O1131C60O1134C66O1151C72O1151C79O1198C80O1211C81O1226C86O1226C91O1256C93O1274C98O1279C105O1284C108O1297,, code-creation,LazyCompile,10,28014,0x3dda0e0650fe,129,readPackageScope node:internal/modules/cjs/loader:321:26,0x337ca0b20ef0,~ code-source-info,0x3dda0e0650fe,99,8919,9437,C0O8962C7O8996C10O8962C16O9008C18O9035C25O9090C28O9052C34O9100C47O9112C54O9168C61O9207C66O9211C70O9172C77O9236C78O9249C79O9268C84O9292C86O9290C90O9268C95O9302C97O9313C104O9334C110O9353C116O9370C117O9397C119O9397C124O9026C127O9422C128O9435,, code-creation,LazyCompile,10,28055,0x3dda0e06545e,234,readPackage node:internal/modules/cjs/loader:290:21,0x337ca0b20ea0,~ code-source-info,0x3dda0e06545e,99,8102,8892,C0O8137C5O8142C13O8142C20O8200C25O8217C30O8217C36O8234C38O8262C40O8278C41O8297C46O8315C51O8315C57O8353C63O8366C72O8392C77O8402C79O8432C84O8449C91O8449C97O8475C98O8488C102O8521C107O8521C112O8559C117O8580C125O8605C133O8633C141O8664C149O8692C160O8708C165O8725C170O8725C176O8754C178O8770C190O8791C195O8798C199O8814C207O8843C213O8854C220O8865C224O8861C227O8824C231O8878C233O8878,, LoadIC,0x337ca0b07e34,28071,1101,16,1,P,0x268a435c1349,length,, code-creation,LazyCompile,10,28107,0x3dda0e065766,199,read node:internal/modules/package_json_reader:16:14,0x337ca0b29380,~ code-source-info,0x3dda0e065766,100,292,954,C0O307C5O317C10O317C17O338C22O351C27O351C32O365C33O412C40O440C43O440C48O412C53O384C59O395C66O489C73O491C79O499C86O544C92O544C97O525C102O575C106O607C112O643C115O654C127O704C132O738C142O652C148O774C154O821C159O821C164O852C169O861C174O861C180O907C185O913C190O913C196O938C198O952,, StoreIC,0x3dda0e0657af,28129,24,20,X,X,0x000000000000,string,, StoreIC,0x3dda0e0657b5,28134,24,28,X,X,0x000000000000,containsKeys,, StoreIC,0x3dda0e0657af,28156,24,20,X,X,0x000000000000,string,, StoreIC,0x3dda0e0657b5,28160,24,28,X,X,0x000000000000,containsKeys,, StoreIC,0x3dda0e0654d7,28193,306,20,X,X,0x000000000000,name,, StoreIC,0x3dda0e0654df,28197,307,20,X,X,0x000000000000,main,, StoreIC,0x3dda0e0654e7,28200,308,23,X,X,0x000000000000,exports,, StoreIC,0x3dda0e0654ef,28203,309,23,X,X,0x000000000000,imports,, StoreIC,0x3dda0e0654f7,28209,310,20,X,X,0x000000000000,type,, StoreIC,0x3dda0e065166,28213,331,13,X,X,0x000000000000,data,, StoreIC,0x3dda0e06516c,28216,332,13,X,X,0x000000000000,path,, code-creation,LazyCompile,10,28293,0x3dda0e065f76,619,Module._load node:internal/modules/cjs/loader:757:24,0x337ca0b21a50,~ code-source-info,0x3dda0e065f76,99,23208,26126,C0O23242C2O23271C6O23289C14O23349C23O23289C28O23579C42O23590C47O23622C54O23642C58O23675C60O23732C63O23739C70O23745C74O23763C76O23805C88O23805C93O23875C99O23893C102O23900C106O23943C107O23972C111O23980C112O23995C119O24023C121O24081C124O24088C138O24088C144O24133C152O24137C159O24228C167O24228C173O24283C178O24283C184O24318C189O24329C198O24361C205O24367C210O24361C211O24434C215O24442C216O24471C219O24478C226O24484C230O24498C232O24536C244O24536C249O24602C255O24644C260O24658C265O24658C271O24683C273O24727C279O24743C282O24750C286O24793C287O24800C288O24825C294O24872C298O24880C299O24906C304O24906C310O24945C315O24952C324O24987C328O24995C329O25081C344O25097C350O25130C354O25148C359O25167C363O25181C365O25191C369O25205C372O25212C379O25229C383O25241C387O25273C394O25321C398O25352C403O25377C409O25377C414O25397C426O25403C427O25430C432O25449C436O25463C444O25470C446O25487C450O25523C458O25551C460O25604C467O25610C475O25630C481O25634C487O25684C493O25684C499O25735C501O25745C506O25767C522O25767C529O25861C537O25888C541O25903C547O25888C555O25930C559O25958C565O25930C573O25988C575O25967C580O26034C586O26062C594O26071C598O26034C614O26116C618O26124,, code-creation,LazyCompile,10,28392,0x3dda0e0666de,812,Module._resolveFilename node:internal/modules/cjs/loader:848:35,0x337ca0b21ad8,~ code-source-info,0x3dda0e0666de,99,26163,29160,C0O26202C10O26206C19O26259C23O26272C29O26272C36O26309C38O26324C39O26336C41O26346C51O26405C57O26430C63O26409C69O26465C79O26465C88O26519C96O26519C105O26576C111O26589C119O26589C128O26645C136O26645C142O26697C144O26739C151O26788C164O26788C170O26819C173O26853C175O26868C181O26874C185O26858C190O26920C198O26925C202O26940C206O26966C212O26966C217O26957C221O27020C225O27027C231O27027C238O27093C240O27112C244O27098C249O27139C257O27185C262O27144C269O27205C277O27242C282O27205C287O27121C292O27080C295O26883C300O26840C305O27301C311O27330C315O27345C321O27345C330O27402C340O27459C348O27408C353O27402C356O27488C360O27503C366O27503C373O27548C380O27558C389O27576C390O27587C397O27591C402O27620C406O27644C412O27620C420O27675C428O27679C441O27724C447O27766C453O27797C457O27818C463O27797C471O27863C478O27766C485O27895C491O27921C500O27731C505O27927C519O27960C523O27966C531O27971C536O28011C542O28017C546O28011C547O28058C549O28058C550O28155C554O28155C559O28205C563O28205C569O28237C571O28278C573O28286C578O28313C586O28320C592O28333C599O28339C607O28339C612O28295C616O28379C620O28386C628O28407C632O28427C634O28447C635O28533C639O28540C657O28540C663O28584C665O28598C667O28614C668O28638C671O28662C676O28674C680O28732C686O28772C695O28791C701O28732C706O28693C712O28713C718O28713C724O28644C727O28816C733O28839C745O28870C752O28877C757O28888C759O28906C766O28947C774O28947C779O28931C783O29058C791O29058C797O29080C799O29089C803O29113C805O29130C809O29148C811O29148,, code-creation,LazyCompile,10,28423,0x3dda0e066c9e,28,canBeRequiredByUsers node:internal/bootstrap/loaders:240:30,0x24d59d70f658,~ code-source-info,0x3dda0e066c9e,9,7353,7449,C0O7376C5O7389C10O7393C15O7393C21O7406C23O7424C27O7445,, code-creation,LazyCompile,10,28463,0x3dda0e066f56,327,Module._resolveLookupPaths node:internal/modules/cjs/loader:667:38,0x337ca0b21920,~ code-source-info,0x3dda0e066f56,99,19964,21141,C0O19986C5O20003C10O20003C17O20040C25O20040C30O20084C31O20096C32O20139C39O20143C47O20177C52O20203C59O20210C66O20223C72O20223C80O20257C87O20274C93O20274C101O20308C108O20327C114O20340C120O20340C128O20374C133O20405C138O20422C145O20432C152O20439C161O20457C166O20493C171O20465C177O20519C191O20519C196O20583C202O20590C212O20609C213O20656C217O20679C223O20693C229O20864C234O20876C248O20876C253O20931C255O20948C256O20956C264O21023C272O20956C277O21049C286O21050C289O21055C294O21070C299O21055C311O21084C319O21084C324O21122C326O21139,, code-creation,LazyCompile,10,28491,0x3dda0e06721e,104,logger node:internal/util/debuglog:96:18,0x23787e1bad68,~ code-source-info,0x3dda0e06721e,40,2899,3124,C0O2899C3O2931C30O2955C35O2962C38O2970C39O2985C45O3002C49O2992C53O3007C54O3022C60O3039C66O3048C70O3029C75O3053C76O3069C80O3076C87O3089C92O3085C98O3076C103O3114,, StoreIC,0x3dda0e054725,28505,271,22,X,X,0x000000000000,_iterator,, code-creation,LazyCompile,10,28516,0x3dda0e067376,3, node:internal/per_context/primordials:276:21,0x24d59d709950,~ code-source-info,0x3dda0e067376,6,7920,7949,C0O7931C2O7943,, LoadIC,0x3dda0e054859,28525,274,24,1,P,0x38ac3d9b2a81,_iterator,, code-creation,LazyCompile,10,28546,0x3dda0e06744e,155,debug node:internal/util/debuglog:76:15,0x23787e1bacc8,~ code-source-info,0x3dda0e06744e,40,2357,2781,C0O2357C3O2376C6O2376C9O2484C16O2505C22O2492C30O2490C36O2524C42O2560C47O2563C50O2560C54O2588C81O2612C86O2619C89O2627C90O2642C96O2659C100O2649C104O2664C105O2679C111O2696C117O2705C121O2686C126O2710C127O2726C131O2733C138O2746C143O2742C149O2733C154O2771,, code-creation,LazyCompile,10,28563,0x3dda0e06761e,41,init node:internal/util/debuglog:72:16,0x23787e1bac78,~ code-source-info,0x3dda0e06761e,40,2259,2342,C0O2268C10O2274C14O2272C16O2311C26O2321C33O2319C40O2341,, code-creation,LazyCompile,10,28575,0x3dda0e06770e,2,testEnabled node:internal/util/debuglog:32:19,0x337ca0b12120,~ code-source-info,0x3dda0e06770e,40,973,984,C0O979C1O984,, code-creation,LazyCompile,10,28602,0x3dda0e0678a6,116,debuglogImpl node:internal/util/debuglog:49:22,0x23787e1baab0,~ code-source-info,0x3dda0e0678a6,40,1451,1995,C0O1451C9O1470C18O1484C23O1511C34O1544C39O1552C43O1544C45O1563C55O1563C59O1595C71O1606C75O1611C83O1934C97O1952C99O1950C103O1970C112O1987C115O1993,, code-creation,LazyCompile,10,28618,0x3dda0e067a5e,10, node:internal/modules/cjs/loader:272:66,0x337ca0b21720,~ code-source-info,0x3dda0e067a5e,99,7709,7734,C0O7721C2O7727C9O7733,, code-creation,LazyCompile,10,28628,0x3dda0e067b0e,2,noop node:internal/util/debuglog:47:14,0x23787e1baa60,~ code-source-info,0x3dda0e067b0e,40,1419,1427,C1O1426,, code-creation,LazyCompile,10,28647,0x3dda0e067c4e,76,trySelfParentPath node:internal/modules/cjs/loader:427:27,0x337ca0b210d0,~ code-source-info,0x3dda0e067c4e,99,12270,12533,C0O12283C4O12296C5O12309C6O12324C12O12354C16O12363C17O12384C24O12387C29O12410C36O12413C44O12455C47O12470C52O12470C59O12478C62O12483C66O12476C69O12487C72O12508C73O12521C75O12532,, code-creation,LazyCompile,10,28685,0x3dda0e067e8e,235,trySelf node:internal/modules/cjs/loader:441:17,0x337ca0b21120,~ code-source-info,0x3dda0e067e8e,99,12551,13384,C0O12577C4O12594C5O12607C6O12648C9O12648C17O12625C22O12636C27O12686C31O12702C37O12725C38O12738C39O12756C47O12775C48O12788C49O12796C51O12829C55O12821C60O12841C65O12867C70O12913C82O12871C89O12929C94O12947C97O12981C102O12986C107O12947C112O12945C118O13010C119O13023C123O13041C128O13070C133O13099C138O13121C142O13099C149O13163C152O13163C159O13190C168O13070C183O13048C188O13236C200O13257C203O13263C210O13268C215O13302C222O13346C226O13308C231O13302C232O13370C234O13370,, LoadIC,0x3dda0e057a83,28700,1158,17,X,X,0x268a435c2aa1,length,, code-creation,LazyCompile,10,28719,0x3dda0e068126,62,loadNativeModule node:internal/modules/cjs/helpers:44:26,0x337ca0b1aac0,~ code-source-info,0x3dda0e068126,98,1151,1431,C0O1187C5O1200C10O1204C15O1204C21O1221C26O1228C35O1258C43O1258C48O1384C53O1384C57O1414C59O1425C61O1430,, code-creation,LazyCompile,10,28741,0x3dda0e0682a6,94,Module node:internal/modules/cjs/loader:172:16,0x337ca0b20db0,~ code-source-info,0x3dda0e0682a6,99,5284,5521,C14O5306C16O5314C20O5322C22O5334C25O5339C30O5339C35O5332C39O5354C40O5367C44O5375C49O5393C54O5393C60O5414C71O5414C76O5453C77O5467C81O5477C82O5489C86O5500C88O5514C93O5520,, StoreIC,0x3dda0e0682b6,28753,173,11,X,X,0x000000000000,id,, code-creation,LazyCompile,10,28782,0x3dda0e0684de,162,dirname node:path:1275:10,0x23787e1a8668,~ code-source-info,0x3dda0e0684de,35,38742,39411,C0O38755C8O38755C13O38798C19O38805C24O38818C26O38829C27O38850C34O38850C42O38889C44O38885C48O38923C51O38950C53O38978C57O38985C61O38992C63O38992C68O39011C73O39015C81O39054C83O39050C88O39084C92O39115C97O39134C101O39221C103O39000C108O38960C111O39262C113O39270C118O39284C128O39311C129O39316C135O39335C140O39348C142O39360C143O39365C156O39372C161O39407,, LoadIC,0x3dda0e0684eb,28797,1277,14,X,X,0x268a435c1b21,length,, LoadIC,0x3dda0e068513,28801,1282,23,X,X,0x268a435c1b21,length,, StoreIC,0x3dda0e0682c9,28805,174,13,X,X,0x000000000000,path,, StoreIC,0x3dda0e0682ce,28810,175,16,X,X,0x000000000000,exports,, code-creation,LazyCompile,10,28825,0x3dda0e0686b6,45,updateChildren node:internal/modules/cjs/loader:165:24,0x337ca0b20d60,~ code-source-info,0x3dda0e0686b6,99,5049,5222,C0O5092C7O5098C15O5112C19O5130C23O5138C26O5138C33O5184C38O5184C44O5221,, StoreIC,0x3dda0e0682f3,28833,178,17,X,X,0x000000000000,filename,, StoreIC,0x3dda0e0682f8,28837,179,15,X,X,0x000000000000,loaded,, StoreIC,0x3dda0e0682fe,28841,180,17,X,X,0x000000000000,children,, StoreIC,0x3dda0e0660e3,28845,812,15,X,X,0x000000000000,id,, code-creation,LazyCompile,10,28876,0x3dda0e0688ae,246,Module.load node:internal/modules/cjs/loader:969:33,0x337ca0b21b68,~ code-source-info,0x3dda0e0688ae,99,30265,31078,C0O30280C8O30326C16O30280C21O30334C26O30347C32O30334C36O30358C38O30372C42O30386C45O30406C52O30423C55O30428C60O30428C66O30406C71O30397C75O30469C78O30469C83O30546C91O30550C101O30603C106O30614C112O30628C124O30634C129O30628C130O30674C133O30681C140O30692C144O30703C150O30723C151O30735C155O30764C160O30773C165O30875C170O30910C175O30921C187O30961C192O30968C197O30968C204O30982C206O30980C211O31014C216O31023C221O31023C228O31048C233O31057C238O31057C245O31077,, StoreIC,0x3dda0e0688d4,28889,973,17,X,X,0x000000000000,filename,, LoadIC,0x3dda0e0684eb,28893,1277,14,X,X,0x268a435c1b21,length,, LoadIC,0x3dda0e068513,28897,1282,23,X,X,0x268a435c1b21,length,, code-creation,LazyCompile,10,28930,0x3dda0e068c66,183,Module._nodeModulePaths node:internal/modules/cjs/loader:629:37,0x337ca0b21890,~ code-source-info,0x3dda0e068c66,99,18791,19922,C0O18846C5O18858C10O18858C17O19037C19O19046C24O19061C28O19086C29O19301C32O19327C36O19334C40O19343C42O19358C47O19368C48O19368C53O19400C58O19400C64O19442C66O19455C68O19451C73O19485C75O19495C77O19491C82O19512C89O19563C100O19563C108O19599C112O19512C117O19638C120O19656C124O19676C126O19682C131O19700C138O19711C144O19715C149O19737C156O19769C159O19376C164O19309C167O19856C175O19856C180O19905C182O19918,, LoadIC,0x337ca0b07e34,28946,1101,16,P,P,0x268a435c2bc1,length,, LoadIC,0x3dda0e068c86,28957,641,23,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e068c90,28960,641,54,X,X,0x268a435c2aa1,length,, code-creation,Function,11,28982,0x7fe6cc045240,1444,Module._nodeModulePaths node:internal/modules/cjs/loader:629:37,0x337ca0b21890,^ code-source-info,0x7fe6cc045240,99,18791,19922,,, code-creation,Function,11,28990,0x7fe6cc045860,44,toNamespacedPath node:path:1266:19,0x23787e1a8618,^ code-source-info,0x7fe6cc045860,35,38609,38669,,, code-creation,Function,11,28998,0x7fe6cc045900,168,nextPart node:fs:2395:31,0x1ce311de2860,^ code-source-info,0x7fe6cc045900,77,63703,63761,,, code-creation,Function,11,29006,0x7fe6cc045a20,316,isFileType node:fs:205:20,0x1ce311de0528,^ code-source-info,0x7fe6cc045a20,77,5285,5526,,, code-creation,Function,11,29019,0x7fe6cc045bc0,1300,dirname node:path:1275:10,0x23787e1a8668,^ code-source-info,0x7fe6cc045bc0,35,38742,39411,,, KeyedLoadIC,0x3dda0e068cf0,29030,652,20,0,1,0x38ac3d9835f1,0,, StoreIC,0x3dda0e0688f5,29036,974,14,X,X,0x000000000000,paths,, code-creation,LazyCompile,10,29063,0x3dda0e06926e,98,findLongestRegisteredExtension node:internal/modules/cjs/loader:413:40,0x337ca0b21080,~ code-source-info,0x3dda0e06926e,99,11813,12242,C0O11841C5O11846C10O11846C16O11872C18O11896C20O11922C22O11990C36O11943C44O11990C49O12004C51O12023C55O12032C56O12042C61O12049C63O12096C68O12115C74O12154C77O12165C84O12176C89O12196C91O12220C92O11927C95O12227C97O12240,, code-creation,LazyCompile,10,29115,0x3dda0e06944e,353,basename node:path:1306:11,0x23787e1a86b8,~ code-source-info,0x3dda0e06944e,35,39512,41904,C0O39530C4O39559C12O39559C17O39591C25O39591C30O39638C32O39655C35O39682C37O39693C41O39722C47O39729C52O39740C57O39755C61O39747C66O39771C68O39779C73O39797C75O39807C76O39831C80O39838C84O39872C87O39900C91O39907C95O39914C96O39914C101O39948C106O39948C112O39992C114O40005C116O40001C121O40175C125O40208C127O40218C131O40235C135O40281C137O40302C142O40468C144O40502C146O40523C150O40550C151O40561C156O40632C158O40645C161O40645C166O40641C171O40701C178O40714C183O40850C190O41013C193O41040C198O39922C203O39882C206O41115C208O41125C213O41142C220O41177C222O41185C227O41212C232O41226C246O41233C251O41272C252O41301C256O41308C260O41315C261O41315C266O41334C271O41338C279O41377C281O41373C286O41541C290O41572C292O41582C296O41597C300O41627C302O41635C307O41755C309O41785C311O41793C315O41323C320O41283C323O41817C325O41825C330O41839C332O41849C333O41854C347O41861C352O41900,, LoadIC,0x3dda0e06954a,29135,1360,23,X,X,0x268a435c1b21,length,, code-creation,LazyCompile,10,29192,0x3dda0e06990e,485,Module._extensions..js node:internal/modules/cjs/loader:1110:37,0x337ca0b21d08,~ code-source-info,0x3dda0e06990e,99,34668,36368,C0O34767C5O34781C10O34781C16O34800C18O34811C25O34821C34O34854C39O34866C40O34880C46O34908C51O34921C60O34921C67O34959C76O34963C83O35023C86O35023C91O35112C96O35119C103O35125C113O35132C118O35169C123O35187C128O35187C134O35225C139O35231C147O35273C152O35278C157O35290C167O35278C174O35335C179O35335C184O35376C203O35376C209O35547C212O35558C219O35564C224O35592C229O35630C235O35648C244O35648C254O35643C257O35709C261O35755C268O35789C271O35814C279O35821C283O35863C293O35821C300O35789C314O35755C321O35891C325O35948C335O35948C345O35917C352O35926C359O36011C365O36023C367O36058C376O36058C384O36104C387O36098C391O36136C403O36153C416O36162C429O36189C438O36220C443O36189C459O36243C464O36243C469O36308C471O36308C472O36338C477O36338C484O36367,, code-creation,LazyCompile,10,29250,0x3dda0e069d6e,376,readFileSync node:fs:450:22,0x1ce311de09e0,~ code-source-info,0x3dda0e069d6e,77,11355,12732,C0O11375C5O11396C10O11385C17O11440C22O11440C27O11494C35O11512C38O11515C43O11538C56O11515C62O11569C65O11569C71O11611C76O11629C79O11611C88O11645C95O11666C97O11675C99O11721C101O11766C102O11775C107O11788C112O11817C124O11826C130O11874C132O11888C133O11897C138O11921C143O11977C159O11933C165O11991C167O11998C174O12038C175O12032C182O12045C187O11910C192O12169C197O12185C207O12185C213O12210C232O12222C238O12272C239O12286C244O12303C249O12338C256O12338C263O12303C268O12374C270O12381C277O12415C278O12415C283O12069C286O12430C290O12449C295O12452C300O12452C305O12470C306O12479C311O12541C316O12557C321O12557C330O12588C332O12596C337O12626C344O12626C351O12660C357O12686C362O12703C367O12686C373O12716C375O12730,, StoreIC,0x3dda0e05e9c5,29270,322,29,X,X,0x000000000000,encoding,, code-creation,LazyCompile,10,29287,0x3dda0e06a08e,30,isEncoding node:buffer:529:40,0x44edd6e5138,~ code-source-info,0x3dda0e06a08e,18,14774,14906,C0O14789C6O14837C12O14844C20O14862C23O14862C28O14890C29O14904,, LoadIC,0x3dda0e06a094,29296,530,51,X,X,0x268a435c1349,length,, code-creation,LazyCompile,10,29307,0x3dda0e06a196,30,normalizeEncoding node:internal/util:160:27,0x24d59d729f70,~ code-source-info,0x3dda0e06a196,12,4206,4311,C0O4216C7O4239C14O4257C19O4270C21O4284C22O4287C25O4294C29O4309,, code-creation,LazyCompile,10,29318,0x3dda0e06a27e,9,isUint32 node:internal/validators:39:18,0x44edd6d9d48,~ code-source-info,0x3dda0e06a27e,17,777,822,C0O789C2O813C5O802C8O820,, code-creation,LazyCompile,10,29340,0x3dda0e06a3d6,113,openSync node:fs:576:18,0x1ce311de0bc8,~ code-source-info,0x3dda0e06a3d6,77,14426,14805,C0O14450C5O14457C11O14503C16O14503C21O14527C37O14534C44O14585C51O14587C58O14612C63O14620C70O14625C73O14636C78O14636C95O14620C101O14758C106O14758C110O14789C112O14803,, code-creation,LazyCompile,10,29356,0x3dda0e06a556,37, node:internal/fs/utils:680:42,0x1ce311deb6d0,~ code-source-info,0x3dda0e06a556,78,18456,18591,C14O18511C19O18511C24O18545C29O18545C34O18577C36O18589,, LoadIC,0x3dda0e063b4c,29364,1493,49,X,X,0x268a435c1b21,href,, code-creation,LazyCompile,10,29401,0x3dda0e06a92e,515,stringToFlags node:internal/fs/utils:555:23,0x1ce311deb4f0,~ code-source-info,0x3dda0e06a92e,78,15047,16281,C14O15075C20O15112C25O15112C30O15144C32O15157C33O15165C38O15190C42O15206C43O15214C202O15246C206O15262C207O15312C214O15330C216O15328C219O15337C220O15354C224O15368C225O15420C232O15436C234O15434C237O15443C238O15460C245O15477C247O15475C253O15487C255O15485C258O15496C259O15546C266O15563C268O15561C274O15573C276O15571C282O15584C284O15582C287O15591C288O15609C295O15626C297O15624C303O15636C305O15634C308O15643C309O15693C316O15710C318O15708C324O15720C326O15718C332O15729C334O15727C337O15736C338O15753C345O15771C347O15769C353O15781C355O15779C358O15790C359O15840C366O15858C368O15856C374O15868C376O15866C382O15879C384O15877C387O15886C388O15936C395O15954C397O15952C403O15964C405O15962C411O15975C413O15973C416O15982C417O16000C424O16018C426O16016C432O16028C434O16026C437O16035C438O16085C445O16103C447O16101C453O16113C455O16111C461O16122C463O16120C466O16129C467O16179C474O16197C476O16195C482O16207C484O16205C490O16216C492O16214C495O16223C496O16231C509O16237C514O16231,, code-creation,LazyCompile,10,29434,0x3dda0e06ad1e,97,parseFileMode node:internal/validators:58:23,0x44edd6d9d98,~ code-source-info,0x3dda0e06ad1e,17,1468,1764,C0O1491C11O1508C17O1545C24O1570C27O1550C34O1596C41O1641C52O1602C57O1596C58O1662C66O1670C73O1703C89O1703C94O1749C96O1762,, code-creation,LazyCompile,10,29461,0x3dda0e06aeee,206, node:internal/validators:83:3,0x44edd6d9e58,~ code-source-info,0x3dda0e06aeee,17,2236,2817,C36O2377C39O2382C45O2406C51O2447C67O2453C72O2447C73O2516C78O2521C84O2555C100O2561C105O2555C106O2624C116O2663C129O2676C142O2630C147O2624C148O2701C150O2711C157O2726C162O2741C172O2780C185O2793C198O2747C203O2741C205O2816,, code-creation,LazyCompile,10,29476,0x3dda0e06b0b6,9,isInt32 node:internal/validators:35:17,0x44edd6d9990,~ code-source-info,0x3dda0e06b0b6,17,715,758,C0O727C2O751C5O740C8O756,, StoreIC,0x3dda0e06a409,29485,581,17,X,X,0x000000000000,path,, code-creation,LazyCompile,10,29509,0x3dda0e06b1be,66,tryStatSync node:fs:404:21,0x1ce311de08f0,~ code-source-info,0x3dda0e06b1be,77,10330,10540,C0O10361C2O10381C7O10389C22O10389C28O10433C36O10457C38O10473C43O10476C48O10476C53O10495C58O10501C62O10495C63O10525C65O10538,, KeyedLoadIC,0x3dda0e064930,29522,208,19,0,1,0x38ac3d983009,1,, code-creation,LazyCompile,10,29546,0x3dda0e06b336,96,tryCreateBuffer node:fs:414:25,0x1ce311de0940,~ code-source-info,0x3dda0e06b336,77,10566,10853,C0O10603C2O10615C7O10635C9O10646C11O10644C16O10668C23O10674C28O10668C29O10717C34O10733C39O10733C45O10756C57O10762C58O10789C65O10803C67O10813C72O10816C77O10816C93O10837C95O10851,, code-creation,LazyCompile,10,29560,0x3dda0e06b48e,17,allocUnsafe node:buffer:372:42,0x44edd6e4cb0,~ code-source-info,0x3dda0e06b48e,18,10871,10926,C0O10882C5O10882C9O10902C12O10909C16O10924,, code-creation,LazyCompile,10,29575,0x3dda0e06b596,54, node:buffer:348:36,0x44edd6e4bf8,~ code-source-info,0x3dda0e06b596,18,10169,10324,C0O10183C8O10183C13O10215C14O10226C21O10242C23O10239C28O10261C33O10293C46O10267C51O10261C53O10323,, code-creation,LazyCompile,10,29587,0x3dda0e06b6be,30,validateNumber node:internal/validators:122:24,0x44edd6d9f98,~ code-source-info,0x3dda0e06b6be,17,3532,3641,C0O3550C6O3585C22O3591C27O3585C29O3640,, code-creation,LazyCompile,10,29607,0x3dda0e06b7d6,119,allocate node:buffer:397:18,0x44edd6e4e00,~ code-source-info,0x3dda0e06b7d6,18,11573,11888,C0O11584C1O11593C6O11605C11O11612C16O11629C17O11636C20O11655C24O11664C27O11645C32O11678C34O11690C39O11701C41O11699C44O11687C49O11720C52O11720C55O11748C62O11763C67O11774C75O11748C81O11797C88O11811C94O11808C100O11821C103O11821C106O11838C108O11847C109O11854C114O11861C118O11886,, code-creation,LazyCompile,10,29630,0x3dda0e06b996,86,tryReadSync node:fs:429:21,0x1ce311de0990,~ code-source-info,0x3dda0e06b996,77,10875,11110,C0O10924C2O10936C7O10959C12O10974C29O10974C35O11010C47O11016C48O11043C55O11057C57O11067C62O11070C67O11070C83O11091C85O11108,, code-creation,LazyCompile,10,29666,0x3dda0e06bb7e,239,readSync node:fs:684:18,0x1ce311de0c98,~ code-source-info,0x3dda0e06bb7e,77,17128,18059,C0O17128C2O17171C7O17176C13O17199C18O17199C22O17240C29O17247C34O17318C40O17340C52O17352C58O17368C64O17380C70O17410C75O17436C80O17463C93O17463C98O17508C105O17524C106O17535C111O17548C112O17557C113O17576C119O17587C124O17600C140O17606C145O17600C146O17728C151O17776C162O17728C167O17792C172O17818C176O17836C184O17836C189O17891C191O17912C196O17920C221O17920C227O18012C232O18012C236O18043C238O18057,, code-creation,LazyCompile,10,29693,0x3dda0e06bdce,52, node:internal/fs/utils:686:40,0x1ce311deb720,~ code-source-info,0x3dda0e06bdce,78,18634,18755,C14O18663C22O18667C29O18691C30O18700C31O18708C44O18708C49O18743C51O18753,, code-creation,LazyCompile,10,29711,0x3dda0e06bf3e,51, node:internal/validators:190:40,0x44edd6da1c0,~ code-source-info,0x3dda0e06bf3e,17,5662,5892,C14O5695C19O5700C25O5733C30O5764C43O5739C48O5733C50O5891,, code-creation,LazyCompile,10,29734,0x3dda0e06c096,151, node:internal/validators:72:3,0x44edd6d9e08,~ code-source-info,0x3dda0e06c096,17,1809,2190,C12O1829C25O1859C32O1892C38O1929C54O1935C59O1929C60O1988C65O1993C71O2023C87O2029C92O2023C93O2082C95O2092C102O2107C107O2120C117O2159C130O2172C143O2126C148O2120C150O2189,, LoadIC,0x3dda0e06bbef,29746,708,14,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e06bc15,29750,713,51,X,X,0x38ac3d987e81,byteLength,, code-creation,LazyCompile,10,29766,0x3dda0e06c29e,103, node:internal/fs/utils:636:3,0x1ce311deb5e0,~ code-source-info,0x3dda0e06c29e,78,17258,17637,C0O17298C1O17309C6O17322C22O17328C27O17322C28O17386C29O17397C34O17410C50O17416C55O17410C56O17474C58O17485C64O17494C69O17518C82O17607C95O17524C100O17518C102O17636,, code-creation,LazyCompile,10,29791,0x3dda0e06c5a6,151, node:internal/fs/utils:886:42,0x1ce311deba40,~ code-source-info,0x3dda0e06c5a6,78,23965,24523,C0O23989C6O24029C14O24029C21O24077C27O24117C32O24140C35O24135C37O24132C47O24166C53O24173C56O24160C61O24188C77O24271C80O24266C98O24291C104O24298C117O24194C122O24188C125O24371C143O24377C148O24371C150O24522,, code-creation,LazyCompile,10,29814,0x3dda0e06c75e,47,closeSync node:fs:526:19,0x1ce311de0af0,~ code-source-info,0x3dda0e06c75e,77,13295,13417,C0O13304C5O13309C11O13344C13O13350C18O13358C31O13358C36O13387C41O13387C46O13416,, LoadIC,0x3dda0e069ed3,29826,497,41,X,X,0x38ac3d987e81,toString,, code-creation,LazyCompile,10,29851,0x3dda0e06c896,162,toString node:buffer:782:46,0x44edd6e6b38,~ code-source-info,0x3dda0e06c896,18,23264,23826,C0O23264C2O23305C8O23312C13O23337C20O23355C25O23337C31O23363C32O23388C37O23399C38O23409C43O23419C48O23437C50O23447C55O23459C57O23469C58O23481C65O23496C71O23525C76O23536C83O23558C90O23571C92O23579C97O23593C99O23603C100O23607C104O23651C109O23651C115O23673C116O23689C119O23689C124O23717C126O23744C133O23750C138O23744C139O23800C156O23800C161O23824,, LoadIC,0x3dda0e06c8b6,29863,787,20,X,X,0x38ac3d987e81,length,, code-creation,LazyCompile,10,29904,0x3dda0e06cb56,499,getEncodingOps node:buffer:678:24,0x44edd6e6990,~ code-source-info,0x3dda0e06cb56,18,19931,21732,C0O19946C10O19981C62O20009C64O20022C69O20034C74O20053C78O20058C79O20065C81O20078C86O20090C91O20109C95O20114C96O20121C101O20132C107O20176C109O20189C114O20201C119O20220C123O20225C124O20232C126O20245C131O20257C136O20276C140O20281C141O20288C143O20313C145O20326C150O20339C155O20358C159O20363C160O20370C162O20383C167O20396C172O20415C176O20421C177O20428C179O20441C184O20454C189O20473C193O20478C194O20485C199O20496C205O20540C207O20553C212O20566C217O20585C221O20590C222O20597C224O20610C229O20623C234O20642C238O20648C239O20655C241O20668C246O20681C251O20700C255O20705C256O20712C258O20737C260O20750C267O20777C270O20777C277O20814C282O20837C287O20856C291O20864C292O20871C294O20896C296O20909C303O20937C306O20937C313O20974C318O20998C323O21017C327O21025C328O21032C330O21057C332O21070C339O21095C344O21117C349O21136C353O21143C354O21150C356O21163C361O21177C366O21196C370O21203C371O21210C376O21221C382O21265C384O21278C391O21303C396O21325C401O21344C405O21351C406O21358C408O21371C413O21385C418O21404C422O21411C423O21418C425O21443C427O21456C434O21469C437O21469C444O21506C449O21525C454O21544C458O21548C459O21555C461O21580C463O21593C470O21622C473O21622C480O21659C485O21684C490O21703C494O21713C495O21720C498O21731,, LoadIC,0x3dda0e06cb60,29922,680,20,X,X,0x268a435c1349,length,, code-creation,LazyCompile,10,29932,0x3dda0e06cf3e,12,slice node:buffer:593:12,0x44edd6e5358,~ code-source-info,0x3dda0e06cf3e,18,16602,16648,C0O16627C5O16627C11O16648,, LoadIC,0x3dda0e06cf3e,29942,593,37,X,X,0x38ac3d987e81,utf8Slice,, StoreIC,0x3dda0e065166,29970,331,13,X,X,0x000000000000,data,, StoreIC,0x3dda0e06516c,29974,332,13,X,X,0x000000000000,path,, code-creation,LazyCompile,10,30027,0x3dda0e06d1fe,499,Module._compile node:internal/modules/cjs/loader:1055:37,0x337ca0b21c78,~ code-source-info,0x3dda0e06d1fe,99,32760,34601,C0O32788C2O32805C4O32818C11O32828C20O32846C25O32858C30O32887C35O32906C40O32915C45O32915C51O32951C56O32958C61O32967C66O32967C72O33011C86O33011C91O33083C103O33083C109O33144C111O33152C119O33156C128O33199C135O33220C141O33314C144O33326C151O33330C159O33361C162O33383C170O33408C177O33412C185O33383C193O33374C203O33605C210O33612C215O33625C221O33625C226O33612C231O33605C237O33689C242O33702C248O33769C256O33790C262O33821C264O33817C269O33843C273O33858C279O33872C285O33891C290O33919C295O33969C300O33974C305O33974C311O34011C316O34011C322O34055C324O34086C329O34115C330O34141C333O34149C339O34166C344O34173C349O34185C357O34183C363O34202C367O34230C388O34239C396O34375C401O34414C410O34452C419O34461C428O34470C437O34478C446O34488C459O34384C465O34505C469O34531C475O34541C481O34558C486O34565C490O34575C496O34585C498O34599,, code-creation,LazyCompile,10,30071,0x3dda0e06d76e,229,maybeCacheSourceMap node:internal/source_map/source_map_cache:74:29,0x337ca0b17970,~ code-source-info,0x3dda0e06d76e,96,2239,3273,C0O2308C3O2308C7O2334C10O2348C15O2352C23O2372C25O2392C26O2399C30O2412C35O2423C44O2421C54O2564C64O2574C69O2564C73O2586C74O2593C75O2614C80O2640C85O2614C91O2717C93O2747C96O2775C101O2782C106O2747C112O2817C117O2837C122O2844C127O2866C131O2897C136O2915C141O2919C148O2948C155O2979C165O3009C171O3023C175O2915C183O3149C188O3167C193O3171C201O3204C211O3234C217O3248C221O3167C228O3272,, code-creation,LazyCompile,10,30090,0x3dda0e06d9de,31,getSourceMapsEnabled node:internal/source_map/source_map_cache:43:30,0x337ca0b178d0,~ code-source-info,0x3dda0e06d9de,96,1418,1563,C0O1425C6O1468C11O1489C17O1489C22O1468C26O1536C30O1561,, code-creation,LazyCompile,10,30112,0x3dda0e06db56,100,setSourceMapsEnabled node:internal/source_map/source_map_cache:50:30,0x337ca0b17920,~ code-source-info,0x3dda0e06db56,96,1594,2209,C0O1604C8O1604C13O1709C19O1709C24O1648C29O1674C34O1738C38O1767C42O1822C48O1822C53O1796C58O1878C64O1936C70O2095C76O2095C81O2068C86O2127C90O2183C92O2201C99O2208,, code-creation,LazyCompile,10,30126,0x3dda0e06dcce,30,validateBoolean node:internal/validators:138:25,0x44edd6da058,~ code-source-info,0x3dda0e06dcce,17,4042,4153,C0O4060C6O4096C22O4102C27O4096C29O4152,, LoadIC,0x3dda0e06d77d,30135,76,21,X,X,0x38ac3d981791,NODE_V8_COVERAGE,, code-creation,LazyCompile,10,30170,0x3dda0e06e0c6,165,wrapSafe node:internal/modules/cjs/loader:1017:18,0x337ca0b21300,~ code-source-info,0x3dda0e06e0c6,99,31692,32552,C0O31692C9O31735C17O31770C22O31777C27O31777C33O31796C40O31806C45O31823C52O31840C56O31929C64O31806C70O32084C74O32101C81O32111C86O32127C98O32242C102O32258C113O32111C118O32427C130O32450C135O32462C142O32473C147O32502C157O32502C162O32536C164O32536,, StoreIC,0x3dda0e06e128,30187,1038,7,X,X,0x000000000000,filename,, StoreIC,0x3dda0e06e130,30192,1039,7,X,X,0x000000000000,importModuleDynamically,, code-creation,LazyCompile,10,30267,0x3dda0e06e8ce,472,compileFunction node:vm:308:25,0x1ce311dfcee0,~ script-source,85,node:vm,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n ArrayPrototypeForEach\x2C\n ArrayPrototypeUnshift\x2C\n Symbol\x2C\n PromiseReject\x2C\n ReflectApply\x2C\n} = primordials;\n\nconst {\n ContextifyScript\x2C\n MicrotaskQueue\x2C\n makeContext\x2C\n isContext: _isContext\x2C\n constants\x2C\n compileFunction: _compileFunction\x2C\n measureMemory: _measureMemory\x2C\n} = internalBinding('contextify');\nconst {\n ERR_CONTEXT_NOT_INITIALIZED\x2C\n ERR_INVALID_ARG_TYPE\x2C\n} = require('internal/errors').codes;\nconst {\n isArrayBufferView\x2C\n} = require('internal/util/types');\nconst {\n validateArray\x2C\n validateBoolean\x2C\n validateBuffer\x2C\n validateFunction\x2C\n validateInt32\x2C\n validateObject\x2C\n validateOneOf\x2C\n validateString\x2C\n validateUint32\x2C\n} = require('internal/validators');\nconst {\n kVmBreakFirstLineSymbol\x2C\n emitExperimentalWarning\x2C\n} = require('internal/util');\nconst kParsingContext = Symbol('script parsing context');\n\nclass Script extends ContextifyScript {\n constructor(code\x2C options = {}) {\n code = `${code}`;\n if (typeof options === 'string') {\n options = { filename: options };\n } else {\n validateObject(options\x2C 'options');\n }\n\n const {\n filename = 'evalmachine.'\x2C\n lineOffset = 0\x2C\n columnOffset = 0\x2C\n cachedData\x2C\n produceCachedData = false\x2C\n importModuleDynamically\x2C\n [kParsingContext]: parsingContext\x2C\n } = options;\n\n validateString(filename\x2C 'options.filename');\n validateInt32(lineOffset\x2C 'options.lineOffset');\n validateInt32(columnOffset\x2C 'options.columnOffset');\n if (cachedData !== undefined && !isArrayBufferView(cachedData)) {\n throw new ERR_INVALID_ARG_TYPE(\n 'options.cachedData'\x2C\n ['Buffer'\x2C 'TypedArray'\x2C 'DataView']\x2C\n cachedData\n );\n }\n validateBoolean(produceCachedData\x2C 'options.produceCachedData');\n\n // Calling `ReThrow()` on a native TryCatch does not generate a new\n // abort-on-uncaught-exception check. A dummy try/catch in JS land\n // protects against that.\n try { // eslint-disable-line no-useless-catch\n super(code\x2C\n filename\x2C\n lineOffset\x2C\n columnOffset\x2C\n cachedData\x2C\n produceCachedData\x2C\n parsingContext);\n } catch (e) {\n throw e; /* node-do-not-add-exception-line */\n }\n\n if (importModuleDynamically !== undefined) {\n validateFunction(importModuleDynamically\x2C\n 'options.importModuleDynamically');\n const { importModuleDynamicallyWrap } =\n require('internal/vm/module');\n const { callbackMap } = internalBinding('module_wrap');\n callbackMap.set(this\x2C {\n importModuleDynamically:\n importModuleDynamicallyWrap(importModuleDynamically)\x2C\n });\n }\n }\n\n runInThisContext(options) {\n const { breakOnSigint\x2C args } = getRunInContextArgs(options);\n if (breakOnSigint && process.listenerCount('SIGINT') > 0) {\n return sigintHandlersWrap(super.runInThisContext\x2C this\x2C args);\n }\n return ReflectApply(super.runInThisContext\x2C this\x2C args);\n }\n\n runInContext(contextifiedObject\x2C options) {\n validateContext(contextifiedObject);\n const { breakOnSigint\x2C args } = getRunInContextArgs(options);\n ArrayPrototypeUnshift(args\x2C contextifiedObject);\n if (breakOnSigint && process.listenerCount('SIGINT') > 0) {\n return sigintHandlersWrap(super.runInContext\x2C this\x2C args);\n }\n return ReflectApply(super.runInContext\x2C this\x2C args);\n }\n\n runInNewContext(contextObject\x2C options) {\n const context = createContext(contextObject\x2C getContextOptions(options));\n return this.runInContext(context\x2C options);\n }\n}\n\nfunction validateContext(contextifiedObject) {\n if (!isContext(contextifiedObject)) {\n throw new ERR_INVALID_ARG_TYPE('contextifiedObject'\x2C 'vm.Context'\x2C\n contextifiedObject);\n }\n}\n\nfunction getRunInContextArgs(options = {}) {\n validateObject(options\x2C 'options');\n\n let timeout = options.timeout;\n if (timeout === undefined) {\n timeout = -1;\n } else {\n validateUint32(timeout\x2C 'options.timeout'\x2C true);\n }\n\n const {\n displayErrors = true\x2C\n breakOnSigint = false\x2C\n [kVmBreakFirstLineSymbol]: breakFirstLine = false\x2C\n } = options;\n\n validateBoolean(displayErrors\x2C 'options.displayErrors');\n validateBoolean(breakOnSigint\x2C 'options.breakOnSigint');\n\n return {\n breakOnSigint\x2C\n args: [timeout\x2C displayErrors\x2C breakOnSigint\x2C breakFirstLine]\n };\n}\n\nfunction getContextOptions(options) {\n if (!options)\n return {};\n const contextOptions = {\n name: options.contextName\x2C\n origin: options.contextOrigin\x2C\n codeGeneration: undefined\x2C\n microtaskMode: options.microtaskMode\x2C\n };\n if (contextOptions.name !== undefined)\n validateString(contextOptions.name\x2C 'options.contextName');\n if (contextOptions.origin !== undefined)\n validateString(contextOptions.origin\x2C 'options.contextOrigin');\n if (options.contextCodeGeneration !== undefined) {\n validateObject(options.contextCodeGeneration\x2C\n 'options.contextCodeGeneration');\n const { strings\x2C wasm } = options.contextCodeGeneration;\n if (strings !== undefined)\n validateBoolean(strings\x2C 'options.contextCodeGeneration.strings');\n if (wasm !== undefined)\n validateBoolean(wasm\x2C 'options.contextCodeGeneration.wasm');\n contextOptions.codeGeneration = { strings\x2C wasm };\n }\n if (options.microtaskMode !== undefined)\n validateString(options.microtaskMode\x2C 'options.microtaskMode');\n return contextOptions;\n}\n\nfunction isContext(object) {\n validateObject(object\x2C 'object'\x2C { allowArray: true });\n\n return _isContext(object);\n}\n\nlet defaultContextNameIndex = 1;\nfunction createContext(contextObject = {}\x2C options = {}) {\n if (isContext(contextObject)) {\n return contextObject;\n }\n\n validateObject(options\x2C 'options');\n\n const {\n name = `VM Context ${defaultContextNameIndex++}`\x2C\n origin\x2C\n codeGeneration\x2C\n microtaskMode\n } = options;\n\n validateString(name\x2C 'options.name');\n if (origin !== undefined)\n validateString(origin\x2C 'options.origin');\n if (codeGeneration !== undefined)\n validateObject(codeGeneration\x2C 'options.codeGeneration');\n\n let strings = true;\n let wasm = true;\n if (codeGeneration !== undefined) {\n ({ strings = true\x2C wasm = true } = codeGeneration);\n validateBoolean(strings\x2C 'options.codeGeneration.strings');\n validateBoolean(wasm\x2C 'options.codeGeneration.wasm');\n }\n\n let microtaskQueue = null;\n if (microtaskMode !== undefined) {\n validateOneOf(microtaskMode\x2C 'options.microtaskMode'\x2C\n ['afterEvaluate'\x2C undefined]);\n\n if (microtaskMode === 'afterEvaluate')\n microtaskQueue = new MicrotaskQueue();\n }\n\n makeContext(contextObject\x2C name\x2C origin\x2C strings\x2C wasm\x2C microtaskQueue);\n return contextObject;\n}\n\nfunction createScript(code\x2C options) {\n return new Script(code\x2C options);\n}\n\n// Remove all SIGINT listeners and re-attach them after the wrapped function\n// has executed\x2C so that caught SIGINT are handled by the listeners again.\nfunction sigintHandlersWrap(fn\x2C thisArg\x2C argsArray) {\n const sigintListeners = process.rawListeners('SIGINT');\n\n process.removeAllListeners('SIGINT');\n\n try {\n return ReflectApply(fn\x2C thisArg\x2C argsArray);\n } finally {\n // Add using the public methods so that the `newListener` handler of\n // process can re-attach the listeners.\n ArrayPrototypeForEach(sigintListeners\x2C (listener) => {\n process.addListener('SIGINT'\x2C listener);\n });\n }\n}\n\nfunction runInContext(code\x2C contextifiedObject\x2C options) {\n validateContext(contextifiedObject);\n if (typeof options === 'string') {\n options = {\n filename: options\x2C\n [kParsingContext]: contextifiedObject\n };\n } else {\n options = { ...options\x2C [kParsingContext]: contextifiedObject };\n }\n return createScript(code\x2C options)\n .runInContext(contextifiedObject\x2C options);\n}\n\nfunction runInNewContext(code\x2C contextObject\x2C options) {\n if (typeof options === 'string') {\n options = { filename: options };\n }\n contextObject = createContext(contextObject\x2C getContextOptions(options));\n options = { ...options\x2C [kParsingContext]: contextObject };\n return createScript(code\x2C options).runInNewContext(contextObject\x2C options);\n}\n\nfunction runInThisContext(code\x2C options) {\n if (typeof options === 'string') {\n options = { filename: options };\n }\n return createScript(code\x2C options).runInThisContext(options);\n}\n\nfunction compileFunction(code\x2C params\x2C options = {}) {\n validateString(code\x2C 'code');\n if (params !== undefined) {\n validateArray(params\x2C 'params');\n ArrayPrototypeForEach(params\x2C\n (param\x2C i) => validateString(param\x2C `params[${i}]`));\n }\n\n const {\n filename = ''\x2C\n columnOffset = 0\x2C\n lineOffset = 0\x2C\n cachedData = undefined\x2C\n produceCachedData = false\x2C\n parsingContext = undefined\x2C\n contextExtensions = []\x2C\n importModuleDynamically\x2C\n } = options;\n\n validateString(filename\x2C 'options.filename');\n validateUint32(columnOffset\x2C 'options.columnOffset');\n validateUint32(lineOffset\x2C 'options.lineOffset');\n if (cachedData !== undefined)\n validateBuffer(cachedData\x2C 'options.cachedData');\n validateBoolean(produceCachedData\x2C 'options.produceCachedData');\n if (parsingContext !== undefined) {\n if (\n typeof parsingContext !== 'object' ||\n parsingContext === null ||\n !isContext(parsingContext)\n ) {\n throw new ERR_INVALID_ARG_TYPE(\n 'options.parsingContext'\x2C\n 'Context'\x2C\n parsingContext\n );\n }\n }\n validateArray(contextExtensions\x2C 'options.contextExtensions');\n ArrayPrototypeForEach(contextExtensions\x2C (extension\x2C i) => {\n const name = `options.contextExtensions[${i}]`;\n validateObject(extension\x2C name\x2C { nullable: true });\n });\n\n const result = _compileFunction(\n code\x2C\n filename\x2C\n lineOffset\x2C\n columnOffset\x2C\n cachedData\x2C\n produceCachedData\x2C\n parsingContext\x2C\n contextExtensions\x2C\n params\n );\n\n if (produceCachedData) {\n result.function.cachedDataProduced = result.cachedDataProduced;\n }\n\n if (result.cachedData) {\n result.function.cachedData = result.cachedData;\n }\n\n if (importModuleDynamically !== undefined) {\n validateFunction(importModuleDynamically\x2C\n 'options.importModuleDynamically');\n const { importModuleDynamicallyWrap } =\n require('internal/vm/module');\n const { callbackMap } = internalBinding('module_wrap');\n const wrapped = importModuleDynamicallyWrap(importModuleDynamically);\n const func = result.function;\n callbackMap.set(result.cacheKey\x2C {\n importModuleDynamically: (s\x2C _k\x2C i) => wrapped(s\x2C func\x2C i)\x2C\n });\n }\n\n return result.function;\n}\n\nconst measureMemoryModes = {\n summary: constants.measureMemory.mode.SUMMARY\x2C\n detailed: constants.measureMemory.mode.DETAILED\x2C\n};\n\nconst measureMemoryExecutions = {\n default: constants.measureMemory.execution.DEFAULT\x2C\n eager: constants.measureMemory.execution.EAGER\x2C\n};\n\nfunction measureMemory(options = {}) {\n emitExperimentalWarning('vm.measureMemory');\n validateObject(options\x2C 'options');\n const { mode = 'summary'\x2C execution = 'default' } = options;\n validateOneOf(mode\x2C 'options.mode'\x2C ['summary'\x2C 'detailed']);\n validateOneOf(execution\x2C 'options.execution'\x2C ['default'\x2C 'eager']);\n const result = _measureMemory(measureMemoryModes[mode]\x2C\n measureMemoryExecutions[execution]);\n if (result === undefined) {\n return PromiseReject(new ERR_CONTEXT_NOT_INITIALIZED());\n }\n return result;\n}\n\nmodule.exports = {\n Script\x2C\n createContext\x2C\n createScript\x2C\n runInContext\x2C\n runInNewContext\x2C\n runInThisContext\x2C\n isContext\x2C\n compileFunction\x2C\n measureMemory\x2C\n};\n\n// The vm module is patched to include vm.Module\x2C vm.SourceTextModule\n// and vm.SyntheticModule in the pre-execution phase when\n// --experimental-vm-modules is on.\n code-source-info,0x3dda0e06e8ce,85,9562,11817,C10O9562C16O9595C25O9595C30O9627C34O9659C43O9659C48O9696C53O9718C59O9696C64O9825C76O9844C84O9866C92O9886C100O9914C108O9945C116O9977C125O10005C130O10048C139O10048C144O10096C153O10096C158O10152C167O10152C172O10204C176O10238C185O10238C190O10290C199O10290C204O10357C208O10397C221O10486C227O10526C244O10532C249O10526C250O10655C259O10655C264O10720C269O10742C275O10720C280O10914C312O10914C318O11091C322O11127C327O11164C331O11155C335O11202C341O11227C346O11256C350O11247C354O11275C358O11303C368O11324C379O11324C384O11473C393O11473C398O11435C403O11532C412O11532C417O11516C422O11584C426O11584C428O11662C432O11655C434O11688C439O11699C451O11742C459O11688C467O11806C471O11815,, code-creation,LazyCompile,10,30519,0x3dda0e06fa96,95, node:internal/validators:167:39,0x44edd6da0f8,~ code-source-info,0x3dda0e06fa96,17,4966,5244,C16O5002C21O5007C27O5034C43O5040C48O5034C49O5104C56O5111C61O5145C66O5168C71O5185C87O5191C92O5185C94O5243,, code-creation,LazyCompile,10,30534,0x3dda0e06fbf6,27, node:vm:313:27,0x3dda0e06e5a0,~ code-source-info,0x3dda0e06fbf6,85,9752,9803,C0O9766C10O9798C21O9766C26O9803,, code-creation,LazyCompile,10,30556,0x3dda0e06fd86,149, node:internal/validators:100:40,0x44edd6d9ea8,~ code-source-info,0x3dda0e06fd86,17,2861,3371,C0O2892C3O2897C9O2920C15O2959C31O2965C36O2959C37O3024C42O3029C48O3061C64O3067C69O3061C70O3138C80O3190C90O3229C109O3196C114O3190C115O3266C120O3288C125O3301C141O3307C146O3301C148O3370,, code-creation,Eval,10,30598,0x3dda0e070146,5, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-static-lexer.js:1:1,0x3dda0e06ffe8,~ script-source,115,/home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-static-lexer.js,"use strict";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { "default": mod };\n};\nObject.defineProperty(exports\x2C "__esModule"\x2C { value: true });\nconst lexer_1 = __importDefault(require("@masochist/lexer"));\nconst benchmark_lexer_1 = __importDefault(require("./benchmark-lexer"));\n(0\x2C benchmark_lexer_1.default)((source) => [...(0\x2C lexer_1.default)(source)]).catch((error) => {\n console.log(error);\n});\n code-source-info,0x3dda0e070146,115,0,476,C0O0C4O476,, code-creation,Function,10,30618,0x3dda0e07033e,107, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-static-lexer.js:1:1,0x3dda0e0700c0,~ code-source-info,0x3dda0e07033e,115,0,476,C0O0C8O36C12O50C23O153C27O160C35O175C43O160C48O232C51O248C56O232C60O232C62O304C65O320C70O304C75O373C85O381C90O428C100O434C106O475,, code-creation,LazyCompile,10,30655,0x3dda0e07069e,19,importModuleDynamicallyWrap node:internal/vm/module:435:37,0x3dda0e050518,~ code-source-info,0x3dda0e07069e,113,11705,12148,C0O11705C13O11774C18O12146,, StoreIC,0x3dda0e06ea95,30670,381,32,X,X,0x000000000000,importModuleDynamically,, LoadIC,0x3dda0e0684eb,30678,1277,14,0,1,0x268a435c1b21,length,, code-creation,LazyCompile,10,30709,0x3dda0e070a0e,159,makeRequireFunction node:internal/modules/cjs/helpers:58:29,0x337ca0b1ab10,~ code-source-info,0x3dda0e070a0e,98,1708,3678,C0O1708C22O1744C25O1748C29O1744C31O1768C33O1779C53O1811C58O1815C69O1831C73O1811C75O1858C81O1858C83O1885C89O1894C95O1922C104O3082C109O3313C111O3329C115O3469C117O3483C121O3495C126O3518C130O3508C134O3583C137O3611C141O3602C145O3627C148O3650C152O3641C156O3661C158O3676,, StoreIC,0x3dda0e070a7d,30725,111,19,X,X,0x000000000000,resolve,, StoreIC,0x3dda0e070a83,30731,118,17,X,X,0x000000000000,paths,, StoreIC,0x3dda0e070a90,30735,120,16,X,X,0x000000000000,main,, StoreIC,0x3dda0e070a9b,30738,123,22,X,X,0x000000000000,extensions,, StoreIC,0x3dda0e070aa6,30742,125,17,X,X,0x000000000000,cache,, LoadGlobalIC,0x3dda0e070355,30749,5,1,X,X,0x38ac3d9811a9,Object,, code-creation,LazyCompile,10,30763,0x3dda0e070d8e,14,require node:internal/modules/cjs/helpers:101:31,0x3dda0e0708e0,~ code-source-info,0x3dda0e070d8e,98,3108,3154,C0O3123C3O3134C8O3134C13O3148,, code-creation,LazyCompile,10,30785,0x3dda0e070f0e,127,Module.require node:internal/modules/cjs/loader:997:36,0x337ca0b21bf0,~ code-source-info,0x3dda0e070f0e,99,31204,31495,C0O31213C8O31213C13O31241C15O31248C20O31262C36O31268C41O31262C42O31377C51O31389C60O31405C63O31419C76O31419C93O31474C102O31486C126O31494,, StoreIC,0x3dda0e065166,30821,331,13,X,X,0x000000000000,data,, StoreIC,0x3dda0e06516c,30825,332,13,X,X,0x000000000000,path,, LoadIC,0x3dda0e057a83,30829,1158,17,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e05771d,30837,508,31,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e05772d,30840,509,48,X,X,0x268a435c1349,length,, code-creation,RegExp,3,30866,0x7fe6cc046140,1524,(?:^|\\/)\\.?\\.$ code-creation,LazyCompile,10,30916,0x3dda0e07144e,198,resolveExports node:internal/modules/cjs/loader:472:24,0x337ca0b21170,~ code-source-info,0x3dda0e07144e,99,13568,14253,C0O13706C7O13736C10O13706C20O13674C27O13683C38O13762C42O13777C43O13784C44O13803C49O13808C54O13808C61O13845C64O13845C69O13869C74O13876C87O13913C92O13942C97O13973C102O13995C106O13973C116O14019C124O14051C130O13942C144O13920C149O14091C161O14116C164O14122C171O14127C176O14163C183O14207C187O14169C192O14163C193O14233C195O14233C197O14252,, StoreIC,0x3dda0e0657af,30983,24,20,X,X,0x000000000000,string,, StoreIC,0x3dda0e0657b5,30989,24,28,X,X,0x000000000000,containsKeys,, StoreIC,0x3dda0e0654d7,31003,306,20,X,X,0x000000000000,name,, StoreIC,0x3dda0e0654df,31007,307,20,X,X,0x000000000000,main,, StoreIC,0x3dda0e0654e7,31009,308,23,X,X,0x000000000000,exports,, StoreIC,0x3dda0e0654ef,31012,309,23,X,X,0x000000000000,imports,, StoreIC,0x3dda0e0654f7,31014,310,20,X,X,0x000000000000,type,, code-creation,LazyCompile,10,31047,0x3dda0e07166e,44,tryExtensions node:internal/modules/cjs/loader:400:23,0x337ca0b21030,~ code-source-info,0x3dda0e07166e,99,11501,11685,C0O11536C2O11548C6O11541C11O11584C16O11600C19O11594C23O11584C29O11619C31O11641C33O11657C34O11557C39O11523C42O11670C43O11683,, code-creation,LazyCompile,10,31068,0x3dda0e07179e,50,tryFile node:internal/modules/cjs/loader:384:17,0x337ca0b20f90,~ code-source-info,0x3dda0e07179e,99,11077,11271,C0O11114C3O11114C8O11135C9O11142C14O11149C15O11156C16O11159C24O11184C26O11198C31O11210C36O11210C41O11231C42O11238C45O11245C49O11269,, code-creation,LazyCompile,10,31117,0x3dda0e071a7e,329,tryPackage node:internal/modules/cjs/loader:338:20,0x337ca0b20f40,~ code-source-info,0x3dda0e071a7e,99,9458,10716,C0O9516C3O9516C10O9540C18O9551C20O9567C25O9588C28O9593C36O9593C49O9574C54O9638C55O9663C60O9668C65O9668C72O9710C75O9710C94O9743C106O9802C109O9807C117O9807C130O9788C136O9852C137O9863C142O9880C147O9903C150O9908C158O9908C171O9889C177O9958C179O10046C189O10088C202O10102C208O10046C214O10190C216O10199C220O10227C222O10238C225O10243C233O10243C239O10236C243O10287C245O10303C249O10380C251O10380C252O10427C257O10432C265O10432C272O10476C275O10484C285O10533C298O10550C311O10559C321O10484C326O10700C328O10714,, LoadIC,0x337ca0b07e34,31141,1101,16,P,P,0x268a435c18e1,length,, LoadIC,0x3dda0e063b4c,31161,1493,49,X,X,0x268a435c2aa1,href,, LoadIC,0x3dda0e0644a8,31172,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0644a8,31175,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583a3,31178,2438,17,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e0583f9,31185,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31189,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31193,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31197,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31200,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31203,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,31209,2484,27,X,X,0x000000000000,path,, KeyedLoadIC,0x3dda0e064930,31218,208,19,1,P,0x38ac3d982f79,1,, LoadIC,0x3dda0e0583f9,31223,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,31228,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,31234,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,31239,2484,27,X,X,0x000000000000,path,, StoreIC,0x3dda0e0585dc,31248,2507,29,X,X,0x000000000000,path,, LoadIC,0x3dda0e0644a8,31268,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0644a8,31272,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e05868f,31275,2524,19,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e0583f9,31278,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31282,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31285,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31288,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31292,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31295,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31298,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,31303,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,31308,2451,18,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,31313,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,31320,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e058434,31323,2459,15,X,X,0x268a435c2aa1,length,, StoreIC,0x3dda0e058516,31328,2484,27,X,X,0x000000000000,path,, LoadIC,0x3dda0e0583f9,31332,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e068c6b,31342,631,17,0,1,0x38ac3d985961,resolve,, LoadIC,0x3dda0e068c86,31351,641,23,0,1,0x268a435c2aa1,length,, LoadIC,0x3dda0e06954a,31359,1360,23,X,X,0x268a435c1b21,length,, LoadIC,0x3dda0e06a094,31366,530,51,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e063b4c,31370,1493,49,X,X,0x268a435c1b21,href,, StoreIC,0x3dda0e06a409,31375,581,17,X,X,0x000000000000,path,, LoadIC,0x3dda0e06bbef,31389,708,14,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e06bc15,31393,713,51,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e069ed3,31402,497,41,X,X,0x38ac3d987e81,toString,, LoadIC,0x3dda0e06c8b6,31406,787,20,X,X,0x38ac3d987e81,length,, LoadIC,0x3dda0e06cb60,31409,680,20,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e06cf3e,31412,593,37,X,X,0x38ac3d987e81,utf8Slice,, StoreIC,0x3dda0e0657af,31431,24,20,X,X,0x000000000000,string,, StoreIC,0x3dda0e0657b5,31434,24,28,X,X,0x000000000000,containsKeys,, StoreIC,0x3dda0e0657af,31449,24,20,X,X,0x000000000000,string,, StoreIC,0x3dda0e0657b5,31453,24,28,X,X,0x000000000000,containsKeys,, StoreIC,0x3dda0e0654d7,31461,306,20,X,X,0x000000000000,name,, StoreIC,0x3dda0e0654df,31464,307,20,X,X,0x000000000000,main,, StoreIC,0x3dda0e0654e7,31466,308,23,X,X,0x000000000000,exports,, StoreIC,0x3dda0e0654ef,31469,309,23,X,X,0x000000000000,imports,, StoreIC,0x3dda0e0654f7,31472,310,20,X,X,0x000000000000,type,, StoreIC,0x3dda0e065166,31475,331,13,X,X,0x000000000000,data,, StoreIC,0x3dda0e06516c,31478,332,13,X,X,0x000000000000,path,, LoadIC,0x3dda0e06d77d,31481,76,21,X,X,0x38ac3d981791,NODE_V8_COVERAGE,, StoreIC,0x3dda0e06e128,31486,1038,7,X,X,0x000000000000,filename,, StoreIC,0x3dda0e06e130,31489,1039,7,X,X,0x000000000000,importModuleDynamically,, code-creation,Eval,10,31538,0x3dda0e072236,5, /home/wincent/code/masochist/next/packages/lexer/lib/index.js:1:1,0x3dda0e0720b8,~ script-source,116,/home/wincent/code/masochist/next/packages/lexer/lib/index.js,"use strict";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { "default": mod };\n};\nObject.defineProperty(exports\x2C "__esModule"\x2C { value: true });\nexports.Token = exports.default = void 0;\nvar lex_1 = require("./lex");\nObject.defineProperty(exports\x2C "default"\x2C { enumerable: true\x2C get: function () { return __importDefault(lex_1).default; } });\nvar Token_1 = require("./Token");\nObject.defineProperty(exports\x2C "Token"\x2C { enumerable: true\x2C get: function () { return __importDefault(Token_1).default; } });\n code-source-info,0x3dda0e072236,116,0,574,C0O0C4O574,, code-creation,Function,10,31561,0x3dda0e0725a6,144, /home/wincent/code/masochist/next/packages/lexer/lib/index.js:1:1,0x3dda0e0721b0,~ code-source-info,0x3dda0e0725a6,116,0,574,C0O0C5O36C9O50C19O36C21O153C25O160C33O175C41O160C46O216C48O248C54O230C58O270C61O270C65O270C67O288C71O295C79O310C84O355C95O295C100O428C103O428C107O428C109O448C113O455C121O470C126O513C137O455C143O573,, StoreIC,0x3dda0e06ea95,31580,381,32,X,X,0x000000000000,importModuleDynamically,, StoreIC,0x3dda0e070a7d,31588,111,19,X,X,0x000000000000,resolve,, LoadGlobalIC,0x3dda0e0725bb,31593,5,1,X,X,0x38ac3d9811a9,Object,, StoreIC,0x3dda0e0725d6,31598,6,33,X,X,0x000000000000,default,, StoreIC,0x3dda0e0725dc,31602,6,15,X,X,0x000000000000,Token,, LoadIC,0x3dda0e066f8a,31610,675,16,X,X,0x268a435c1349,length,, StoreIC,0x3dda0e065166,31631,331,13,X,X,0x000000000000,data,, StoreIC,0x3dda0e06516c,31635,332,13,X,X,0x000000000000,path,, LoadIC,0x3dda0e057a83,31637,1158,17,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e05771d,31642,508,31,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e05772d,31645,509,48,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e057cab,31649,152,19,0,1,0x38ac3d985961,toNamespacedPath,, LoadIC,0x3dda0e057cc2,31652,154,30,0,1,0x38ac3d983711,get,, LoadIC,0x3dda0e057ced,31659,160,15,0,1,0x38ac3d983711,set,, code-creation,RegExp,3,31687,0x7fe6cc0467a0,1896,^((?:@[^/\\\\%]+\\/)?[^./\\\\%][^/\\\\%]*)(\\/.*)?$ LoadIC,0x3dda0e063b4c,31713,1493,49,X,X,0x268a435c2aa1,href,, LoadIC,0x3dda0e0644a8,31726,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0644a8,31730,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583a3,31732,2438,17,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e0583f9,31735,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31740,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31744,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31747,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31751,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31754,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31758,2451,18,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583f9,31763,2451,18,X,X,0x268a435c2aa1,length,, code-creation,Function,11,31817,0x7fe6cc046f80,7672,realpathSync node:fs:2408:22,0x1ce311de28b0,^ code-source-info,0x7fe6cc046f80,77,63994,67905,,, code-creation,Function,11,31827,0x7fe6cc048de0,268,validateString node:internal/validators:117:24,0x44edd6d9ef8,^ code-source-info,0x7fe6cc048de0,17,3398,3507,,, code-creation,Function,11,31837,0x7fe6cc048f60,756,stat node:internal/modules/cjs/loader:151:14,0x337ca0b20d10,^ code-source-info,0x7fe6cc048f60,99,4627,5024,,, code-creation,Function,11,31844,0x7fe6cc0492c0,212, node:vm:313:27,0x3dda0e06e5a0,^ code-source-info,0x7fe6cc0492c0,85,9752,9803,,, code-creation,Function,11,31852,0x7fe6cc049400,544,internalBinding node:internal/bootstrap/loaders:164:45,0x24d59d70f378,^ code-source-info,0x7fe6cc049400,9,5115,5353,,, LoadIC,0x3dda0e0583f9,31860,2451,18,0,1,0x268a435c2aa1,length,, KeyedLoadIC,0x3dda0e05847a,31867,2467,18,0,1,0x38ac3d9836c9,/home/wincent/code/masochist/next/packages/lexer/lib/lex.js,, LoadIC,0x3dda0e058486,31872,2467,33,0,1,0x38ac3d983711,get,, LoadIC,0x3dda0e058502,31875,2483,35,0,1,0x38ac3d985961,toNamespacedPath,, StoreIC,0x3dda0e058516,31880,2484,27,0,1,0x38ac3d9b1eb1,path,, LoadIC,0x3dda0e058523,31884,2485,29,0,1,0x38ac3d983321,lstat,, KeyedStoreIC,0x3dda0e058557,31893,2489,25,0,1,0x38ac3d9836c9,/home/wincent/code/masochist/next/packages/lexer/lib/lex.js,, LoadIC,0x3dda0e058562,31898,2490,14,0,1,0x38ac3d983711,set,, LoadIC,0x3dda0e06954a,31918,1360,23,X,X,0x268a435c1b21,length,, LoadIC,0x3dda0e06a094,31925,530,51,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e063b4c,31930,1493,49,X,X,0x268a435c1b21,href,, StoreIC,0x3dda0e06a409,31938,581,17,X,X,0x000000000000,path,, code-creation,LazyCompile,10,31965,0x3dda0e07344e,71,createUnsafeBuffer node:internal/buffer:1059:28,0x44edd6f1c30,~ code-source-info,0x3dda0e07344e,19,30321,30430,C0O30332C8O30344C15O30361C22O30368C39O30408C48O30420C70O30429,, LoadIC,0x3dda0e06bbef,31981,708,14,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e06bc15,31986,713,51,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e069ed3,32000,497,41,X,X,0x38ac3d987e81,toString,, LoadIC,0x3dda0e06c8b6,32004,787,20,X,X,0x38ac3d987e81,length,, LoadIC,0x3dda0e06cb60,32007,680,20,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e06cf3e,32011,593,37,X,X,0x38ac3d987e81,utf8Slice,, StoreIC,0x3dda0e065166,32037,331,13,0,1,0x38ac3d9b2a39,data,, StoreIC,0x3dda0e06516c,32041,332,13,0,1,0x38ac3d9b2a39,path,, LoadIC,0x3dda0e06d77d,32045,76,21,X,X,0x38ac3d981791,NODE_V8_COVERAGE,, StoreIC,0x3dda0e06e128,32050,1038,7,X,X,0x000000000000,filename,, StoreIC,0x3dda0e06e130,32053,1039,7,X,X,0x000000000000,importModuleDynamically,, code-creation,Eval,10,32227,0x3dda0e0738be,5, /home/wincent/code/masochist/next/packages/lexer/lib/lex.js:1:1,0x3dda0e073760,~ script-source,117,/home/wincent/code/masochist/next/packages/lexer/lib/lex.js,"use strict";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { "default": mod };\n};\nObject.defineProperty(exports\x2C "__esModule"\x2C { value: true });\nconst Token_1 = __importDefault(require("./Token"));\nfunction* lex(input) {\n const REJECT = 100;\n const START = 0;\n let state = START;\n let tokenStart = 0;\n let i = tokenStart;\n const length = input.length;\n loop: while (i <= length) {\n const ch = input.charCodeAt(i);\n switch (state) {\n case START:\n if (ch === 0x09 || ch === 0x20) {\n state = 1;\n }\n else if (ch === 0x0a || ch === 0x2c || ch === 0xfeff) {\n state = 2;\n }\n else if (ch === 0x0d) {\n state = 3;\n }\n else if (ch === 0x21) {\n yield new Token_1.default('BANG'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x22) {\n state = 5;\n }\n else if (ch === 0x23) {\n state = 6;\n }\n else if (ch === 0x24) {\n yield new Token_1.default('DOLLAR'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x26) {\n yield new Token_1.default('AMPERSAND'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x28) {\n yield new Token_1.default('OPENING_PAREN'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x29) {\n yield new Token_1.default('CLOSING_PAREN'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x2d) {\n state = 11;\n }\n else if (ch === 0x2e) {\n state = 12;\n }\n else if (ch === 0x30) {\n state = 13;\n }\n else if (ch >= 0x31 && ch <= 0x39) {\n state = 14;\n }\n else if (ch === 0x3a) {\n yield new Token_1.default('COLON'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x3d) {\n yield new Token_1.default('EQUALS'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x40) {\n yield new Token_1.default('AT'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x65 || ch >= 0x67 && ch <= 0x6e || ch >= 0x70 && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x5b) {\n yield new Token_1.default('OPENING_BRACKET'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x5d) {\n yield new Token_1.default('CLOSING_BRACKET'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x66) {\n state = 21;\n }\n else if (ch === 0x6f) {\n state = 22;\n }\n else if (ch === 0x7b) {\n yield new Token_1.default('OPENING_BRACE'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x7c) {\n yield new Token_1.default('BAR'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else if (ch === 0x7d) {\n yield new Token_1.default('CLOSING_BRACE'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else {\n state = REJECT;\n }\n break;\n case 1:\n if (ch === 0x09 || ch === 0x20) {\n state = 1;\n }\n else {\n // IGNORED token.\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 2:\n // IGNORED token.\n tokenStart = i;\n state = START;\n continue loop;\n case 3:\n if (ch === 0x0a) {\n state = 2;\n }\n else {\n // IGNORED token.\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 5:\n if (ch === 0x09 || ch >= 0x20 && ch <= 0x21 || ch >= 0x23 && ch <= 0x5b || ch >= 0x5d && ch <= 0xffff) {\n state = 26;\n }\n else if (ch === 0x22) {\n state = 27;\n }\n else if (ch === 0x5c) {\n state = 28;\n }\n else {\n state = REJECT;\n }\n break;\n case 6:\n if (ch === 0x09 || ch >= 0x20 && ch <= 0xffff) {\n state = 6;\n }\n else {\n // IGNORED token.\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 11:\n if (ch === 0x30) {\n state = 13;\n }\n else if (ch >= 0x31 && ch <= 0x39) {\n state = 14;\n }\n else {\n state = REJECT;\n }\n break;\n case 12:\n if (ch === 0x2e) {\n state = 29;\n }\n else {\n state = REJECT;\n }\n break;\n case 13:\n if (ch === 0x2e) {\n state = 30;\n }\n else if (ch === 0x45 || ch === 0x65) {\n state = 31;\n }\n else {\n yield new Token_1.default('NUMBER'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 14:\n if (ch >= 0x30 && ch <= 0x39) {\n state = 14;\n }\n else if (ch === 0x2e) {\n state = 30;\n }\n else if (ch === 0x45 || ch === 0x65) {\n state = 31;\n }\n else {\n yield new Token_1.default('NUMBER'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 18:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x7a) {\n state = 18;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 21:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x71 || ch >= 0x73 && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x72) {\n state = 32;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 22:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x6d || ch >= 0x6f && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x6e) {\n state = 33;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 26:\n if (ch === 0x09 || ch >= 0x20 && ch <= 0x21 || ch >= 0x23 && ch <= 0x5b || ch >= 0x5d && ch <= 0xffff) {\n state = 26;\n }\n else if (ch === 0x5c) {\n state = 28;\n }\n else if (ch === 0x22) {\n yield new Token_1.default('STRING_VALUE'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else {\n state = REJECT;\n }\n break;\n case 27:\n if (ch === 0x22) {\n state = 35;\n }\n else {\n yield new Token_1.default('STRING_VALUE'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 28:\n if (ch === 0x22 || ch === 0x2f || ch === 0x62 || ch === 0x66 || ch === 0x6e || ch === 0x72 || ch === 0x74) {\n state = 26;\n }\n else if (ch === 0x5c) {\n state = 36;\n }\n else if (ch === 0x75) {\n state = 37;\n }\n else {\n state = REJECT;\n }\n break;\n case 29:\n if (ch === 0x2e) {\n yield new Token_1.default('ELLIPSIS'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else {\n state = REJECT;\n }\n break;\n case 30:\n if (ch >= 0x30 && ch <= 0x39) {\n state = 39;\n }\n else {\n state = REJECT;\n }\n break;\n case 31:\n if (ch === 0x2b || ch === 0x2d) {\n state = 40;\n }\n else if (ch >= 0x30 && ch <= 0x39) {\n state = 41;\n }\n else {\n state = REJECT;\n }\n break;\n case 32:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x62 && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x61) {\n state = 42;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 33:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x7a) {\n state = 18;\n }\n else {\n yield new Token_1.default('ON'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 35:\n if (ch >= 0x09 && ch <= 0x0a || ch === 0x0d || ch >= 0x20 && ch <= 0x21 || ch >= 0x23 && ch <= 0x5b || ch >= 0x5d && ch <= 0xffff) {\n state = 35;\n }\n else if (ch === 0x22) {\n state = 43;\n }\n else if (ch === 0x5c) {\n state = 44;\n }\n else {\n state = REJECT;\n }\n break;\n case 36:\n if (ch === 0x2f || ch === 0x62 || ch === 0x66 || ch === 0x6e || ch === 0x72 || ch === 0x74) {\n state = 26;\n }\n else if (ch === 0x5c) {\n state = 36;\n }\n else if (ch === 0x75) {\n state = 37;\n }\n else {\n state = REJECT;\n }\n break;\n case 37:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n state = 45;\n }\n else {\n state = REJECT;\n }\n break;\n case 39:\n if (ch === 0x45 || ch === 0x65) {\n state = 31;\n }\n else if (ch >= 0x30 && ch <= 0x39) {\n state = 39;\n }\n else {\n yield new Token_1.default('NUMBER'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 40:\n if (ch >= 0x30 && ch <= 0x39) {\n state = 41;\n }\n else {\n state = REJECT;\n }\n break;\n case 41:\n if (ch >= 0x30 && ch <= 0x39) {\n state = 41;\n }\n else {\n yield new Token_1.default('NUMBER'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 42:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x66 || ch >= 0x68 && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x67) {\n state = 46;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 43:\n if (ch >= 0x09 && ch <= 0x0a || ch === 0x0d || ch >= 0x20 && ch <= 0x21 || ch >= 0x23 && ch <= 0x5b || ch >= 0x5d && ch <= 0xffff) {\n state = 35;\n }\n else if (ch === 0x5c) {\n state = 44;\n }\n else if (ch === 0x22) {\n state = 47;\n }\n else {\n state = REJECT;\n }\n break;\n case 44:\n if (ch >= 0x09 && ch <= 0x0a || ch === 0x0d || ch >= 0x20 && ch <= 0x21 || ch >= 0x23 && ch <= 0x5b || ch >= 0x5d && ch <= 0xffff) {\n state = 35;\n }\n else if (ch === 0x5c) {\n state = 44;\n }\n else if (ch === 0x22) {\n state = 48;\n }\n else {\n state = REJECT;\n }\n break;\n case 45:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n state = 49;\n }\n else {\n state = REJECT;\n }\n break;\n case 46:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x6c || ch >= 0x6e && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x6d) {\n state = 50;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 47:\n if (ch >= 0x09 && ch <= 0x0a || ch === 0x0d || ch >= 0x20 && ch <= 0x21 || ch >= 0x23 && ch <= 0x5b || ch >= 0x5d && ch <= 0xffff) {\n state = 35;\n }\n else if (ch === 0x5c) {\n state = 44;\n }\n else if (ch === 0x22) {\n yield new Token_1.default('BLOCK_STRING_VALUE'\x2C tokenStart\x2C i + 1\x2C input);\n tokenStart = i + 1;\n state = START;\n }\n else {\n state = REJECT;\n }\n break;\n case 48:\n if (ch >= 0x09 && ch <= 0x0a || ch === 0x0d || ch >= 0x20 && ch <= 0x21 || ch >= 0x23 && ch <= 0x5b || ch >= 0x5d && ch <= 0xffff) {\n state = 35;\n }\n else if (ch === 0x5c) {\n state = 44;\n }\n else if (ch === 0x22) {\n state = 52;\n }\n else {\n state = REJECT;\n }\n break;\n case 49:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n state = 53;\n }\n else {\n state = REJECT;\n }\n break;\n case 50:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x64 || ch >= 0x66 && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x65) {\n state = 54;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 52:\n if (ch === 0x0a || ch === 0x0d || ch >= 0x20 && ch <= 0x5b || ch >= 0x5d && ch <= 0xffff) {\n state = 35;\n }\n else if (ch === 0x5c) {\n state = 44;\n }\n else {\n state = REJECT;\n }\n break;\n case 53:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n state = 26;\n }\n else {\n state = REJECT;\n }\n break;\n case 54:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x6d || ch >= 0x6f && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x6e) {\n state = 55;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 55:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x73 || ch >= 0x75 && ch <= 0x7a) {\n state = 18;\n }\n else if (ch === 0x74) {\n state = 56;\n }\n else {\n yield new Token_1.default('NAME'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case 56:\n if (ch >= 0x30 && ch <= 0x39 || ch >= 0x41 && ch <= 0x5a || ch === 0x5f || ch >= 0x61 && ch <= 0x7a) {\n state = 18;\n }\n else {\n yield new Token_1.default('FRAGMENT'\x2C tokenStart\x2C i\x2C input);\n tokenStart = i;\n state = START;\n continue loop;\n }\n break;\n case REJECT:\n throw new Error('Failed to recognize token');\n default:\n throw new Error('Unexpected state');\n }\n i++;\n }\n}\nexports.default = lex;\n code-source-info,0x3dda0e0738be,117,0,21775,C0O0C4O21775,, code-creation,Function,10,32571,0x3dda0e073a4e,75, /home/wincent/code/masochist/next/packages/lexer/lib/lex.js:1:1,0x3dda0e073838,~ code-source-info,0x3dda0e073a4e,117,0,21775,C0O0C13O36C17O50C28O153C32O160C40O175C48O160C53O232C56O248C61O232C65O232C67O21752C69O21768C74O21774,, KeyedLoadIC,0x337ca0b01b9d,32588,165,25,0,1,0x38ac3d9836c9,module_wrap,, StoreIC,0x3dda0e06ea95,32594,381,32,X,X,0x000000000000,importModuleDynamically,, StoreIC,0x3dda0e070a7d,32600,111,19,X,X,0x000000000000,resolve,, LoadGlobalIC,0x3dda0e073a6a,32606,5,1,X,X,0x38ac3d9811a9,Object,, LoadIC,0x3dda0e066f8a,32617,675,16,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e057a83,32639,1158,17,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e05771d,32645,508,31,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e05772d,32648,509,48,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e063b4c,32667,1493,49,X,X,0x268a435c2aa1,href,, LoadIC,0x3dda0e058343,32673,2415,18,0,1,0x38ac3d985961,resolve,, KeyedLoadIC,0x3dda0e058354,32681,2417,24,0,1,0x38ac3d9b1e69,symbol("realpathCacheKey" hash d4c8d4b),, LoadIC,0x3dda0e0644a8,32686,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0644a8,32689,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0583a3,32692,2438,17,0,1,0x268a435c1349,length,, KeyedLoadIC,0x3dda0e05847a,32698,2467,18,1,N,0x38ac3d9836c9,/home,, LoadIC,0x3dda0e0584a7,32703,2468,30,0,1,0x38ac3d983321,statValues,, KeyedStoreIC,0x3dda0e058557,32722,2489,25,1,N,0x38ac3d9836c9,/home/wincent/code/masochist/next/packages/lexer/lib/Token.js,, LoadIC,0x3dda0e06954a,32742,1360,23,X,X,0x268a435c1b21,length,, LoadIC,0x3dda0e06a094,32750,530,51,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e063b4c,32754,1493,49,X,X,0x268a435c1b21,href,, StoreIC,0x3dda0e06a409,32761,581,17,X,X,0x000000000000,path,, LoadIC,0x3dda0e06bbef,32774,708,14,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e06bc15,32778,713,51,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e069ed3,32786,497,41,X,X,0x38ac3d987e81,toString,, LoadIC,0x3dda0e06c8b6,32790,787,20,X,X,0x38ac3d987e81,length,, LoadIC,0x3dda0e06cb60,32793,680,20,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e06cf3e,32797,593,37,X,X,0x38ac3d987e81,utf8Slice,, LoadIC,0x3dda0e06d77d,32817,76,21,X,X,0x38ac3d981791,NODE_V8_COVERAGE,, StoreIC,0x3dda0e06e128,32823,1038,7,X,X,0x000000000000,filename,, StoreIC,0x3dda0e06e130,32826,1039,7,X,X,0x000000000000,importModuleDynamically,, code-creation,Eval,10,32886,0x3dda0e075366,5, /home/wincent/code/masochist/next/packages/lexer/lib/Token.js:1:1,0x3dda0e0751e8,~ script-source,118,/home/wincent/code/masochist/next/packages/lexer/lib/Token.js,"use strict";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver\x2C state\x2C value\x2C kind\x2C f) {\n if (kind === "m") throw new TypeError("Private method is not writable");\n if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");\n if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");\n return (kind === "a" ? f.call(receiver\x2C value) : f ? f.value = value : state.set(receiver\x2C value))\x2C value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver\x2C state\x2C kind\x2C f) {\n if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");\n if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");\n return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Token_source;\nObject.defineProperty(exports\x2C "__esModule"\x2C { value: true });\nclass Token {\n constructor(name\x2C start\x2C end\x2C source) {\n _Token_source.set(this\x2C void 0);\n // No validation\x2C for speed; we trust the generated lexer to be flawless.\n this.name = name;\n this.start = start;\n this.end = end;\n __classPrivateFieldSet(this\x2C _Token_source\x2C source\x2C "f");\n }\n get contents() {\n const value = __classPrivateFieldGet(this\x2C _Token_source\x2C "f").slice(this.start\x2C this.end);\n Object.defineProperty(this\x2C 'contents'\x2C { value });\n return value;\n }\n}\nexports.default = Token;\n_Token_source = new WeakMap();\n code-source-info,0x3dda0e075366,118,0,1773,C0O0C4O1773,, code-creation,Function,10,32925,0x3dda0e07573e,108, /home/wincent/code/masochist/next/packages/lexer/lib/Token.js:1:1,0x3dda0e0752e0,~ code-source-info,0x3dda0e07573e,118,0,1773,C0O0C5O43C9O57C19O43C21O630C25O644C35O630C37O1112C41O1119C49O1134C57O1119C89O1717C91O1733C95O1742C99O1758C104O1756C107O1772,, StoreIC,0x3dda0e06ea95,32946,381,32,X,X,0x000000000000,importModuleDynamically,, StoreIC,0x3dda0e070a7d,32954,111,19,X,X,0x000000000000,resolve,, LoadGlobalIC,0x3dda0e075763,32960,14,1,X,X,0x38ac3d9811a9,Object,, LoadGlobalIC,0x3dda0e07579d,32967,31,1,X,X,0x38ac3d9811a9,WeakMap,, StoreIC,0x3dda0e068945,32971,982,15,X,X,0x000000000000,loaded,, code-creation,LazyCompile,10,32989,0x3dda0e075aae,28,__importDefault /home/wincent/code/masochist/next/packages/lexer/lib/lex.js:2:66,0x3dda0e073940,~ code-source-info,0x3dda0e075aae,117,79,151,C0O91C4O110C14O124C21O143C27O149,, LoadGlobalIC,0x3dda0e0725e9,33000,8,1,X,X,0x38ac3d9811a9,Object,, StoreIC,0x3dda0e0725fe,33006,8,68,X,X,0x000000000000,get,, LoadGlobalIC,0x3dda0e072613,33018,10,1,X,X,0x38ac3d9811a9,Object,, StoreIC,0x3dda0e072628,33023,10,66,X,X,0x000000000000,get,, code-creation,LazyCompile,10,33038,0x3dda0e075c0e,28,__importDefault /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-static-lexer.js:2:66,0x3dda0e070178,~ code-source-info,0x3dda0e075c0e,115,79,151,C0O91C4O110C14O124C21O143C27O149,, LoadIC,0x3dda0e066f8a,33053,675,16,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e057a83,33076,1158,17,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e05771d,33081,508,31,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e05772d,33084,509,48,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e063b4c,33105,1493,49,X,X,0x268a435c2aa1,href,, LoadIC,0x3dda0e0644a8,33116,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e0644a8,33119,2363,29,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e06954a,33147,1360,23,X,X,0x268a435c1b21,length,, code-creation,Function,11,33176,0x7fe6cc049680,2584,basename node:path:1306:11,0x23787e1a86b8,^ code-source-info,0x7fe6cc049680,35,39512,41904,,, code-creation,Function,11,33184,0x7fe6cc04a100,40,noop node:internal/util/debuglog:47:14,0x23787e1baa60,^ code-source-info,0x7fe6cc04a100,40,1419,1427,,, code-creation,Function,11,33190,0x7fe6cc04a1a0,72,isInt32 node:internal/validators:35:17,0x44edd6d9990,^ code-source-info,0x7fe6cc04a1a0,17,715,758,,, code-creation,Function,11,33202,0x7fe6cc04a260,1144,readPackageScope node:internal/modules/cjs/loader:321:26,0x337ca0b20ef0,^ code-source-info,0x7fe6cc04a260,99,8919,9437,,, code-creation,Function,11,33208,0x7fe6cc04a740,72,isUint32 node:internal/validators:39:18,0x44edd6d9d48,^ code-source-info,0x7fe6cc04a740,17,777,822,,, code-creation,Function,11,33214,0x7fe6cc04a800,160,isUint8Array node:internal/util/types:13:22,0x44edd6d6d90,^ code-source-info,0x7fe6cc04a800,15,257,342,,, code-creation,Function,11,33220,0x7fe6cc04a900,248,canBeRequiredByUsers node:internal/bootstrap/loaders:240:30,0x24d59d70f658,^ code-source-info,0x7fe6cc04a900,9,7353,7449,,, code-creation,Function,11,33229,0x7fe6cc04aa60,552,splitRoot node:fs:2362:33,0x1ce311de27c0,^ code-source-info,0x7fe6cc04aa60,77,62796,62988,,, LoadIC,0x3dda0e06a094,33242,530,51,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e063b4c,33248,1493,49,X,X,0x268a435c1b21,href,, StoreIC,0x3dda0e06a409,33254,581,17,X,X,0x000000000000,path,, LoadIC,0x3dda0e06bbef,33269,708,14,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e06bc15,33273,713,51,X,X,0x38ac3d987e81,byteLength,, LoadIC,0x3dda0e069ed3,33282,497,41,X,X,0x38ac3d987e81,toString,, LoadIC,0x3dda0e06c8b6,33285,787,20,X,X,0x38ac3d987e81,length,, LoadIC,0x3dda0e06cb60,33288,680,20,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e06cf3e,33292,593,37,X,X,0x38ac3d987e81,utf8Slice,, LoadIC,0x3dda0e06d77d,33313,76,21,X,X,0x38ac3d981791,NODE_V8_COVERAGE,, StoreIC,0x3dda0e06e128,33319,1038,7,X,X,0x000000000000,filename,, StoreIC,0x3dda0e06e130,33322,1039,7,X,X,0x000000000000,importModuleDynamically,, code-creation,Eval,10,33388,0x3dda0e0768e6,5, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:1:1,0x3dda0e076728,~ script-source,119,/home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js,"use strict";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { "default": mod };\n};\nObject.defineProperty(exports\x2C "__esModule"\x2C { value: true });\nconst fs_1 = __importDefault(require("fs"));\nconst path_1 = __importDefault(require("path"));\nconst perf_hooks_1 = require("perf_hooks");\nconst util_1 = require("util");\nconst readFile = (0\x2C util_1.promisify)(fs_1.default.readFile);\nasync function read(file) {\n return readFile(path_1.default.join(__dirname\x2C '../../../support'\x2C file)\x2C 'utf8');\n}\nfunction mb(bytes) {\n return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;\n}\nfunction tableize(data) {\n const table = {};\n Object.entries(data).forEach(([label\x2C usage]) => {\n const subtable = {};\n Object.entries(usage).forEach(([category\x2C bytes]) => {\n subtable[category] = mb(bytes);\n });\n table[label] = subtable;\n });\n return table;\n}\nasync function run(lex) {\n const source = await read('source.graphql');\n console.log(`Read ${source.length} bytes`); // Assuming ASCII.\n const memory = {\n start: process.memoryUsage()\x2C\n };\n const obs = new perf_hooks_1.PerformanceObserver((items) => {\n console.log(items.getEntries()[0].duration);\n perf_hooks_1.performance.clearMarks();\n });\n obs.observe({ entryTypes: ['measure'] });\n lex(source);\n memory['warmup'] = process.memoryUsage();\n perf_hooks_1.performance.mark('A');\n for (let i = 0; i < 100; i++) {\n lex(source);\n }\n perf_hooks_1.performance.mark('B');\n perf_hooks_1.performance.measure('A to B'\x2C 'A'\x2C 'B');\n memory['finish'] = process.memoryUsage();\n console.table(tableize(memory));\n}\nexports.default = run;\n code-source-info,0x3dda0e0768e6,119,0,1756,C0O0C4O1756,, code-creation,Function,10,33430,0x3dda0e076ba6,154, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:1:1,0x3dda0e076860,~ code-source-info,0x3dda0e076ba6,119,0,1756,C0O0C41O36C45O50C56O153C60O160C68O175C76O160C81O229C84O245C89O229C94O276C97O292C102O276C106O276C108O331C111O331C115O331C117O369C120O369C125O414C130O430C135O438C140O424C144O403C146O1733C148O1749C153O1755,, StoreIC,0x3dda0e06ea95,33449,381,32,X,X,0x000000000000,importModuleDynamically,, StoreIC,0x3dda0e070a7d,33456,111,19,X,X,0x000000000000,resolve,, LoadGlobalIC,0x3dda0e076bde,33462,5,1,X,X,0x38ac3d9811a9,Object,, LoadIC,0x3dda0e066ca3,33470,241,30,0,1,0x38ac3d98a701,map,, LoadIC,0x3dda0e066ca8,33474,241,34,0,1,0x38ac3d983711,get,, LoadIC,0x3dda0e066cb5,33477,242,23,0,1,0x38ac3d986f99,canBeRequiredByUsers,, code-creation,LazyCompile,10,33493,0x3dda0e077036,10, node:internal/modules/cjs/helpers:29:66,0x337ca0b1ace0,~ code-source-info,0x3dda0e077036,98,810,835,C0O822C2O828C9O834,, code-creation,LazyCompile,10,33522,0x3dda0e0771ae,129,compileForPublicLoader node:internal/bootstrap/loaders:246:25,0x24d59d70f6d0,~ code-source-info,0x3dda0e0771ae,9,7543,8215,C0O7562C6O7706C16O7749C33O7712C38O7706C39O7786C44O7786C48O7828C54O8017C61O8048C69O8017C75O8072C80O8090C90O8106C93O8122C98O8106C102O8088C106O8147C111O8147C115O8172C120O8172C124O8203C128O8211,, StoreIC,0x3dda0e077214,33541,257,23,X,X,0x000000000000,exportKeys,, code-creation,LazyCompile,10,33570,0x3dda0e077436,151,getESMFacade node:internal/bootstrap/loaders:264:15,0x24d59d70f748,~ code-source-info,0x3dda0e077436,9,8231,8860,C0O8231C8O8249C14O8269C18O8276C19O8304C29O8304C34O8289C39O8352C42O8365C51O8396C53O8396C55O8426C62O8451C67O8426C72O8468C82O8468C87O8516C89O8568C102O8530C107O8528C111O8774C116O8781C121O8781C125O8805C130O8812C140O8812C146O8849C150O8856,, StoreIC,0x3dda0e0774a1,33597,271,17,X,X,0x000000000000,module,, code-creation,LazyCompile,10,33620,0x3dda0e077d6e,40, node:internal/bootstrap/loaders:273:15,0x3dda0e077330,~ code-source-info,0x3dda0e077d6e,9,8595,8700,C0O8608C5O8621C10O8621C14O8649C24O8670C27O8683C32O8649C39O8699,, code-creation,LazyCompile,10,33644,0x3dda0e077ec6,89,syncExports node:internal/bootstrap/loaders:287:14,0x24d59d70f7b8,~ code-source-info,0x3dda0e077ec6,9,9167,9500,C0O9195C5O9220C11O9249C13O9262C17O9254C22O9304C24O9309C28O9322C30O9337C35O9352C37O9375C42O9382C51O9434C54O9446C59O9472C67O9434C73O9382C79O9271C84O9236C88O9499,, code-creation,LazyCompile,10,33667,0x3dda0e07802e,35,getOwn node:internal/bootstrap/loaders:180:16,0x24d59d70f450,~ code-source-info,0x3dda0e07802e,9,5498,5652,C0O5534C5O5541C14O5595C26O5595C34O5650,, LoadIC,0x3dda0e077ed3,33682,290,33,0,1,0x38ac3d983441,length,, KeyedLoadIC,0x3dda0e077ede,33686,291,33,0,1,0x38ac3d983441,10,, LoadIC,0x3dda0e077eeb,33690,293,14,0,1,0x38ac3d986f99,module,, LoadIC,0x3dda0e077ef0,33695,293,21,0,1,0x38ac3d9b35c1,setExport,, LoadIC,0x3dda0e077efc,33698,294,43,0,1,0x38ac3d986f99,exports,, LoadIC,0x3dda0e077f01,33701,294,69,0,1,0x38ac3d986f99,exports,, code-creation,LazyCompile,10,33725,0x3dda0e0782be,11,get ReadStream node:fs:2984:17,0x1ce311de2e50,~ code-source-info,0x3dda0e0782be,77,78936,78990,C0O78945C3O78945C6O78968C10O78986,, code-creation,LazyCompile,10,33742,0x3dda0e0783ee,71,lazyLoadStreams node:fs:2841:25,0x1ce311de2d18,~ code-source-info,0x3dda0e0783ee,77,76541,76708,C0O76548C6O76571C12O76602C17O76574C30O76586C43O76639C50O76654C56O76672C63O76688C70O76707,, code-creation,Eval,10,33953,0x3dda0e078c8e,5, node:internal/fs/streams:1:1,0x3dda0e078908,~ script-source,120,node:internal/fs/streams,'use strict';\n\nconst {\n Array\x2C\n FunctionPrototypeBind\x2C\n MathMin\x2C\n ObjectDefineProperty\x2C\n ObjectSetPrototypeOf\x2C\n PromisePrototypeThen\x2C\n ReflectApply\x2C\n Symbol\x2C\n} = primordials;\n\nconst {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_OUT_OF_RANGE\x2C\n ERR_METHOD_NOT_IMPLEMENTED\x2C\n} = require('internal/errors').codes;\nconst { deprecate } = require('internal/util');\nconst {\n validateFunction\x2C\n validateInteger\x2C\n} = require('internal/validators');\nconst { errorOrDestroy } = require('internal/streams/destroy');\nconst fs = require('fs');\nconst { kRef\x2C kUnref\x2C FileHandle } = require('internal/fs/promises');\nconst { Buffer } = require('buffer');\nconst {\n copyObject\x2C\n getOptions\x2C\n getValidatedFd\x2C\n validatePath\x2C\n} = require('internal/fs/utils');\nconst { Readable\x2C Writable\x2C finished } = require('stream');\nconst { toPathIfFileURL } = require('internal/url');\nconst kIoDone = Symbol('kIoDone');\nconst kIsPerformingIO = Symbol('kIsPerformingIO');\n\nconst kFs = Symbol('kFs');\nconst kHandle = Symbol('kHandle');\n\nfunction _construct(callback) {\n const stream = this;\n if (typeof stream.fd === 'number') {\n callback();\n return;\n }\n\n if (stream.open !== openWriteFs && stream.open !== openReadFs) {\n // Backwards compat for monkey patching open().\n const orgEmit = stream.emit;\n stream.emit = function(...args) {\n if (args[0] === 'open') {\n this.emit = orgEmit;\n callback();\n ReflectApply(orgEmit\x2C this\x2C args);\n } else if (args[0] === 'error') {\n this.emit = orgEmit;\n callback(args[1]);\n } else {\n ReflectApply(orgEmit\x2C this\x2C args);\n }\n };\n stream.open();\n } else {\n stream[kFs].open(stream.path\x2C stream.flags\x2C stream.mode\x2C (er\x2C fd) => {\n if (er) {\n callback(er);\n } else {\n stream.fd = fd;\n callback();\n stream.emit('open'\x2C stream.fd);\n stream.emit('ready');\n }\n });\n }\n}\n\n// This generates an fs operations structure for a FileHandle\nconst FileHandleOperations = (handle) => {\n return {\n open: (path\x2C flags\x2C mode\x2C cb) => {\n throw new ERR_METHOD_NOT_IMPLEMENTED('open()');\n }\x2C\n close: (fd\x2C cb) => {\n handle[kUnref]();\n PromisePrototypeThen(handle.close()\x2C\n () => cb()\x2C cb);\n }\x2C\n read: (fd\x2C buf\x2C offset\x2C length\x2C pos\x2C cb) => {\n PromisePrototypeThen(handle.read(buf\x2C offset\x2C length\x2C pos)\x2C\n (r) => cb(null\x2C r.bytesRead\x2C r.buffer)\x2C\n (err) => cb(err\x2C 0\x2C buf));\n }\x2C\n write: (fd\x2C buf\x2C offset\x2C length\x2C pos\x2C cb) => {\n PromisePrototypeThen(handle.write(buf\x2C offset\x2C length\x2C pos)\x2C\n (r) => cb(null\x2C r.bytesWritten\x2C r.buffer)\x2C\n (err) => cb(err\x2C 0\x2C buf));\n }\x2C\n writev: (fd\x2C buffers\x2C pos\x2C cb) => {\n PromisePrototypeThen(handle.writev(buffers\x2C pos)\x2C\n (r) => cb(null\x2C r.bytesWritten\x2C r.buffers)\x2C\n (err) => cb(err\x2C 0\x2C buffers));\n }\n };\n};\n\nfunction close(stream\x2C err\x2C cb) {\n if (!stream.fd) {\n // TODO(ronag)\n // stream.closed = true;\n cb(err);\n } else {\n stream[kFs].close(stream.fd\x2C (er) => {\n stream.closed = true;\n cb(er || err);\n });\n stream.fd = null;\n }\n}\n\nfunction importFd(stream\x2C options) {\n if (typeof options.fd === 'number') {\n // When fd is a raw descriptor\x2C we must keep our fingers crossed\n // that the descriptor won't get closed\x2C or worse\x2C replaced with\n // another one\n // https://github.com/nodejs/node/issues/35862\n stream[kFs] = options.fs || fs;\n return options.fd;\n } else if (typeof options.fd === 'object' &&\n options.fd instanceof FileHandle) {\n // When fd is a FileHandle we can listen for 'close' events\n if (options.fs) {\n // FileHandle is not supported with custom fs operations\n throw new ERR_METHOD_NOT_IMPLEMENTED('FileHandle with fs');\n }\n stream[kHandle] = options.fd;\n stream[kFs] = FileHandleOperations(stream[kHandle]);\n stream[kHandle][kRef]();\n options.fd.on('close'\x2C FunctionPrototypeBind(stream.close\x2C stream));\n return options.fd.fd;\n }\n\n throw ERR_INVALID_ARG_TYPE('options.fd'\x2C\n ['number'\x2C 'FileHandle']\x2C options.fd);\n}\n\nfunction ReadStream(path\x2C options) {\n if (!(this instanceof ReadStream))\n return new ReadStream(path\x2C options);\n\n // A little bit bigger buffer and water marks by default\n options = copyObject(getOptions(options\x2C {}));\n if (options.highWaterMark === undefined)\n options.highWaterMark = 64 * 1024;\n\n if (options.autoDestroy === undefined) {\n options.autoDestroy = false;\n }\n\n if (options.fd == null) {\n this.fd = null;\n this[kFs] = options.fs || fs;\n validateFunction(this[kFs].open\x2C 'options.fs.open');\n\n // Path will be ignored when fd is specified\x2C so it can be falsy\n this.path = toPathIfFileURL(path);\n this.flags = options.flags === undefined ? 'r' : options.flags;\n this.mode = options.mode === undefined ? 0o666 : options.mode;\n\n validatePath(this.path);\n } else {\n this.fd = getValidatedFd(importFd(this\x2C options));\n }\n\n options.autoDestroy = options.autoClose === undefined ?\n true : options.autoClose;\n\n validateFunction(this[kFs].read\x2C 'options.fs.read');\n\n if (options.autoDestroy) {\n validateFunction(this[kFs].close\x2C 'options.fs.close');\n }\n\n this.start = options.start;\n this.end = options.end;\n this.pos = undefined;\n this.bytesRead = 0;\n this.closed = false;\n this[kIsPerformingIO] = false;\n\n if (this.start !== undefined) {\n validateInteger(this.start\x2C 'start'\x2C 0);\n\n this.pos = this.start;\n }\n\n\n if (this.end === undefined) {\n this.end = Infinity;\n } else if (this.end !== Infinity) {\n validateInteger(this.end\x2C 'end'\x2C 0);\n\n if (this.start !== undefined && this.start > this.end) {\n throw new ERR_OUT_OF_RANGE(\n 'start'\x2C\n `<= "end" (here: ${this.end})`\x2C\n this.start\n );\n }\n }\n\n ReflectApply(Readable\x2C this\x2C [options]);\n}\nObjectSetPrototypeOf(ReadStream.prototype\x2C Readable.prototype);\nObjectSetPrototypeOf(ReadStream\x2C Readable);\n\nObjectDefineProperty(ReadStream.prototype\x2C 'autoClose'\x2C {\n get() {\n return this._readableState.autoDestroy;\n }\x2C\n set(val) {\n this._readableState.autoDestroy = val;\n }\n});\n\nconst openReadFs = deprecate(function() {\n // Noop.\n}\x2C 'ReadStream.prototype.open() is deprecated'\x2C 'DEP0135');\nReadStream.prototype.open = openReadFs;\n\nReadStream.prototype._construct = _construct;\n\nReadStream.prototype._read = function(n) {\n n = this.pos !== undefined ?\n MathMin(this.end - this.pos + 1\x2C n) :\n MathMin(this.end - this.bytesRead + 1\x2C n);\n\n if (n <= 0) {\n this.push(null);\n return;\n }\n\n const buf = Buffer.allocUnsafeSlow(n);\n\n this[kIsPerformingIO] = true;\n this[kFs]\n .read(this.fd\x2C buf\x2C 0\x2C n\x2C this.pos\x2C (er\x2C bytesRead\x2C buf) => {\n this[kIsPerformingIO] = false;\n\n // Tell ._destroy() that it's safe to close the fd now.\n if (this.destroyed) {\n this.emit(kIoDone\x2C er);\n return;\n }\n\n if (er) {\n errorOrDestroy(this\x2C er);\n } else if (bytesRead > 0) {\n if (this.pos !== undefined) {\n this.pos += bytesRead;\n }\n\n this.bytesRead += bytesRead;\n\n if (bytesRead !== buf.length) {\n // Slow path. Shrink to fit.\n // Copy instead of slice so that we don't retain\n // large backing buffer for small reads.\n const dst = Buffer.allocUnsafeSlow(bytesRead);\n buf.copy(dst\x2C 0\x2C 0\x2C bytesRead);\n buf = dst;\n }\n\n this.push(buf);\n } else {\n this.push(null);\n }\n });\n};\n\nReadStream.prototype._destroy = function(err\x2C cb) {\n // Usually for async IO it is safe to close a file descriptor\n // even when there are pending operations. However\x2C due to platform\n // differences file IO is implemented using synchronous operations\n // running in a thread pool. Therefore\x2C file descriptors are not safe\n // to close while used in a pending read or write operation. Wait for\n // any pending IO (kIsPerformingIO) to complete (kIoDone).\n if (this[kIsPerformingIO]) {\n this.once(kIoDone\x2C (er) => close(this\x2C err || er\x2C cb));\n } else {\n close(this\x2C err\x2C cb);\n }\n};\n\nReadStream.prototype.close = function(cb) {\n if (typeof cb === 'function') finished(this\x2C cb);\n this.destroy();\n};\n\nObjectDefineProperty(ReadStream.prototype\x2C 'pending'\x2C {\n get() { return this.fd === null; }\x2C\n configurable: true\n});\n\nfunction WriteStream(path\x2C options) {\n if (!(this instanceof WriteStream))\n return new WriteStream(path\x2C options);\n\n options = copyObject(getOptions(options\x2C {}));\n\n // Only buffers are supported.\n options.decodeStrings = true;\n\n if (options.fd == null) {\n this.fd = null;\n this[kFs] = options.fs || fs;\n validateFunction(this[kFs].open\x2C 'options.fs.open');\n\n // Path will be ignored when fd is specified\x2C so it can be falsy\n this.path = toPathIfFileURL(path);\n this.flags = options.flags === undefined ? 'w' : options.flags;\n this.mode = options.mode === undefined ? 0o666 : options.mode;\n\n validatePath(this.path);\n } else {\n this.fd = getValidatedFd(importFd(this\x2C options));\n }\n\n options.autoDestroy = options.autoClose === undefined ?\n true : options.autoClose;\n\n if (!this[kFs].write && !this[kFs].writev) {\n throw new ERR_INVALID_ARG_TYPE('options.fs.write'\x2C 'function'\x2C\n this[kFs].write);\n }\n\n if (this[kFs].write) {\n validateFunction(this[kFs].write\x2C 'options.fs.write');\n }\n\n if (this[kFs].writev) {\n validateFunction(this[kFs].writev\x2C 'options.fs.writev');\n }\n\n if (options.autoDestroy) {\n validateFunction(this[kFs].close\x2C 'options.fs.close');\n }\n\n // It's enough to override either\x2C in which case only one will be used.\n if (!this[kFs].write) {\n this._write = null;\n }\n if (!this[kFs].writev) {\n this._writev = null;\n }\n\n this.start = options.start;\n this.pos = undefined;\n this.bytesWritten = 0;\n this.closed = false;\n this[kIsPerformingIO] = false;\n\n\n if (this.start !== undefined) {\n validateInteger(this.start\x2C 'start'\x2C 0);\n\n this.pos = this.start;\n }\n\n ReflectApply(Writable\x2C this\x2C [options]);\n\n if (options.encoding)\n this.setDefaultEncoding(options.encoding);\n}\nObjectSetPrototypeOf(WriteStream.prototype\x2C Writable.prototype);\nObjectSetPrototypeOf(WriteStream\x2C Writable);\n\nObjectDefineProperty(WriteStream.prototype\x2C 'autoClose'\x2C {\n get() {\n return this._writableState.autoDestroy;\n }\x2C\n set(val) {\n this._writableState.autoDestroy = val;\n }\n});\n\nconst openWriteFs = deprecate(function() {\n // Noop.\n}\x2C 'WriteStream.prototype.open() is deprecated'\x2C 'DEP0135');\nWriteStream.prototype.open = openWriteFs;\n\nWriteStream.prototype._construct = _construct;\n\nWriteStream.prototype._write = function(data\x2C encoding\x2C cb) {\n this[kIsPerformingIO] = true;\n this[kFs].write(this.fd\x2C data\x2C 0\x2C data.length\x2C this.pos\x2C (er\x2C bytes) => {\n this[kIsPerformingIO] = false;\n if (this.destroyed) {\n // Tell ._destroy() that it's safe to close the fd now.\n cb(er);\n return this.emit(kIoDone\x2C er);\n }\n\n if (er) {\n return cb(er);\n }\n\n this.bytesWritten += bytes;\n cb();\n });\n\n if (this.pos !== undefined)\n this.pos += data.length;\n};\n\nWriteStream.prototype._writev = function(data\x2C cb) {\n const len = data.length;\n const chunks = new Array(len);\n let size = 0;\n\n for (let i = 0; i < len; i++) {\n const chunk = data[i].chunk;\n\n chunks[i] = chunk;\n size += chunk.length;\n }\n\n this[kIsPerformingIO] = true;\n this[kFs].writev(this.fd\x2C chunks\x2C this.pos\x2C (er\x2C bytes) => {\n this[kIsPerformingIO] = false;\n if (this.destroyed) {\n // Tell ._destroy() that it's safe to close the fd now.\n cb(er);\n return this.emit(kIoDone\x2C er);\n }\n\n if (er) {\n return cb(er);\n }\n\n this.bytesWritten += bytes;\n cb();\n });\n\n if (this.pos !== undefined)\n this.pos += size;\n};\n\nWriteStream.prototype._destroy = function(err\x2C cb) {\n // Usually for async IO it is safe to close a file descriptor\n // even when there are pending operations. However\x2C due to platform\n // differences file IO is implemented using synchronous operations\n // running in a thread pool. Therefore\x2C file descriptors are not safe\n // to close while used in a pending read or write operation. Wait for\n // any pending IO (kIsPerformingIO) to complete (kIoDone).\n if (this[kIsPerformingIO]) {\n this.once(kIoDone\x2C (er) => close(this\x2C err || er\x2C cb));\n } else {\n close(this\x2C err\x2C cb);\n }\n};\n\nWriteStream.prototype.close = function(cb) {\n if (cb) {\n if (this.closed) {\n process.nextTick(cb);\n return;\n }\n this.on('close'\x2C cb);\n }\n\n // If we are not autoClosing\x2C we should call\n // destroy on 'finish'.\n if (!this.autoClose) {\n this.on('finish'\x2C this.destroy);\n }\n\n // We use end() instead of destroy() because of\n // https://github.com/nodejs/node/issues/2006\n this.end();\n};\n\n// There is no shutdown() for files.\nWriteStream.prototype.destroySoon = WriteStream.prototype.end;\n\nObjectDefineProperty(WriteStream.prototype\x2C 'pending'\x2C {\n get() { return this.fd === null; }\x2C\n configurable: true\n});\n\nmodule.exports = {\n ReadStream\x2C\n WriteStream\n};\n code-source-info,0x3dda0e078c8e,120,0,13266,C0O0C4O13266,, code-creation,Function,10,34205,0x3dda0e079936,866, node:internal/fs/streams:1:1,0x3dda0e078c08,~ code-source-info,0x3dda0e079936,120,0,13266,C0O0C131O25C137O34C143O59C149O70C154O94C159O118C165O142C171O158C176O270C179O270C184O296C189O194C195O218C201O238C207O326C210O326C215O312C220O403C223O403C228O362C234O382C240O462C243O462C248O443C254O510C257O510C261O510C263O562C266O562C271O533C277O539C283O547C289O614C292O614C297O603C303O707C306O707C311O643C317O657C323O671C329O689C335O778C338O778C343O745C349O755C355O765C361O825C364O825C369O805C375O866C378O866C382O866C384O909C387O909C391O909C393O949C396O949C400O949C402O980C405O980C409O980C411O1996C415O1996C417O6007C420O6039C428O6059C433O6007C438O6071C444O6071C449O6116C452O6148C465O6176C473O6235C481O6116C486O6317C497O6317C502O6317C504O6411C507O6422C514O6437C518O6452C521O6463C528O6484C532O6499C535O6510C544O6526C548O7662C551O7673C560O7692C564O8258C567O8269C576O8285C580O8376C583O8408C596O8434C604O8376C609O10302C612O10335C620O10355C625O10302C630O10367C636O10367C641O10413C644O10446C657O10474C665O10533C673O10413C678O10616C689O10616C694O10616C696O10711C699O10723C706O10738C710O10754C713O10766C720O10787C724O10802C727O10814C736O10831C740O11307C743O11319C752O11337C756O11982C759O11994C768O12013C772O12579C775O12591C784O12607C788O13031C791O13043C799O13079C804O13089C808O13065C812O13095C815O13128C828O13154C836O13095C841O13216C848O13237C854O13251C860O13231C865O13265,, LoadIC,0x3dda0e079ada,34282,215,33,X,X,0x38ac3d981551,prototype,, StoreIC,0x3dda0e079b0b,34294,219,3,X,X,0x000000000000,get,, StoreIC,0x3dda0e079b13,34297,222,3,X,X,0x000000000000,set,, LoadIC,0x3dda0e054b57,34304,129,10,X,X,0x38ac3d9b3849,prototype,, StoreIC,0x3dda0e054b67,34308,133,26,X,X,0x000000000000,prototype,, StoreIC,0x3dda0e079b8e,34316,302,3,X,X,0x000000000000,get,, LoadIC,0x3dda0e079b9a,34320,376,34,X,X,0x38ac3d981551,prototype,, StoreIC,0x3dda0e079bcb,34326,380,3,X,X,0x000000000000,get,, StoreIC,0x3dda0e079bd3,34329,383,3,X,X,0x000000000000,set,, LoadIC,0x3dda0e054b57,34334,129,10,X,X,0x38ac3d9b3a89,prototype,, StoreIC,0x3dda0e054b67,34338,133,26,X,X,0x000000000000,prototype,, StoreIC,0x3dda0e079c76,34343,488,3,X,X,0x000000000000,get,, StoreIC,0x3dda0e079c86,34348,493,3,X,X,0x000000000000,ReadStream,, StoreIC,0x3dda0e079c8c,34352,494,3,X,X,0x000000000000,WriteStream,, code-creation,LazyCompile,10,34368,0x3dda0e07c6b6,11,get WriteStream node:fs:2993:18,0x1ce311de2f30,~ code-source-info,0x3dda0e07c6b6,77,79062,79117,C0O79071C3O79071C6O79094C10O79113,, code-creation,LazyCompile,10,34381,0x3dda0e07c7c6,11,get FileReadStream node:fs:3004:21,0x1ce311de3010,~ code-source-info,0x3dda0e07c7c6,77,79327,79385,C0O79336C3O79336C6O79359C10O79381,, code-creation,LazyCompile,10,34391,0x3dda0e07c8d6,11,get FileWriteStream node:fs:3013:22,0x1ce311de3100,~ code-source-info,0x3dda0e07c8d6,77,79469,79528,C0O79478C3O79478C6O79501C10O79524,, code-creation,LazyCompile,10,34406,0x3dda0e07c9ce,35,get node:fs:3039:8,0x1ce311de31f0,~ code-source-info,0x3dda0e07c9ce,77,80024,80146,C0O80035C6O80066C12O80077C17O80108C24O80075C30O80124C34O80140,, LoadIC,0x3dda0e077ec6,34418,288,24,0,1,0x38ac3d986f99,exportKeys,, LoadIC,0x3dda0e077ecb,34421,289,14,0,1,0x38ac3d986f99,module,, code-creation,LazyCompile,10,34451,0x3dda0e07cb0e,28,__importDefault /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:2:66,0x3dda0e076a58,~ code-source-info,0x3dda0e07cb0e,119,79,151,C0O91C4O110C14O124C21O143C27O149,, StoreIC,0x3dda0e07cb23,34462,3,57,X,X,0x000000000000,default,, StoreIC,0x3dda0e07cb23,34494,3,57,X,X,0x000000000000,default,, StoreIC,0x3dda0e045ec1,34544,367,12,X,X,0x000000000000,value,, code-creation,LazyCompile,10,34606,0x3dda0e07d64e,349,run /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:28:19,0x3dda0e076a08,~ code-source-info,0x3dda0e07d64e,119,974,1732,C10O974C18O1001C24O1007C36O1001C62O1035C66O1043C74O1062C89O1043C94O1117C99O1134C103O1142C108O1142C119O1180C124O1197C136O1180C142O1346C152O1346C157O1388C161O1424C165O1432C170O1432C174O1422C178O1451C183O1464C188O1476C196O1476C201O1504C203O1509C205O1509C210O1531C214O1517C219O1491C222O1554C227O1567C232O1579C240O1579C245O1594C250O1607C255O1619C269O1619C274O1671C278O1679C283O1679C287O1669C291O1698C295O1706C303O1712C308O1706C324O1731,, code-creation,LazyCompile,10,34633,0x3dda0e07d9e6,92,read /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:11:20,0x3dda0e076918,~ code-source-info,0x3dda0e07d9e6,119,468,565,C6O468C14O481C21O497C24O504C29O512C43O512C52O488C67O563,, code-creation,LazyCompile,10,34663,0x3dda0e07db86,118,join node:path:1166:7,0x23787e1a8578,~ code-source-info,0x3dda0e07db86,35,35667,36077,C0O35667C3O35692C9O35699C14O35712C16O35723C17O35732C19O35757C21O35769C25O35762C30O35802C32O35806C36O35817C44O35817C49O35860C55O35867C60O35882C64O35918C71O35955C76O35969C87O35779C92O35744C95O35994C99O36026C101O36037C102O36042C107O36055C112O36055C117O36073,, LoadIC,0x3dda0e07dbb7,34679,1173,15,X,X,0x268a435c2bc1,length,, LoadIC,0x3dda0e07dbb7,34683,1173,15,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e07dbb7,34686,1173,15,X,X,0x268a435c1349,length,, code-creation,LazyCompile,10,34710,0x3dda0e07dd76,159,normalize node:path:1127:12,0x23787e1a84d8,~ code-source-info,0x3dda0e07dd76,35,34767,35371,C0O34780C8O34780C13O34824C19O34831C24O34844C26O34855C27O34886C34O34886C42O34925C44O34921C48O34981C53O35018C57O35025C61O34981C69O35034C71O35030C75O35085C80O35115C91O35092C98O35169C104O35176C109O35191C113O35215C115O35226C116O35233C126O35271C127O35282C131O35311C141O35329C150O35353C158O35367,, LoadIC,0x3dda0e07dd83,34720,1130,14,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e07ddab,34724,1136,44,X,X,0x268a435c2aa1,length,, LoadIC,0x3dda0e07ddd8,34736,1141,14,X,X,0x268a435c2aa1,length,, code-creation,LazyCompile,10,34760,0x3dda0e07dfbe,38,fn node:internal/util:345:14,0x3dda0e045c28,~ code-source-info,0x3dda0e07dfbe,12,9554,10062,C0O9554C18O9570C32O9577C37O10058,, code-creation,LazyCompile,10,34783,0x3dda0e07e17e,68, node:internal/util:346:24,0x3dda0e07df10,~ code-source-info,0x3dda0e07e17e,12,9589,10056,C0O9589C13O9618C24O9637C32O9618C37O10015C58O10044C61O10015C67O10055,, code-creation,LazyCompile,10,34824,0x3dda0e07e44e,264,readFile node:fs:373:18,0x1ce311de0888,~ code-source-info,0x3dda0e07e44e,77,9436,10308,C0O9436C9O9466C16O9491C21O9477C27O9515C34O9536C39O9525C46O9579C53O9617C63O9579C69O9630C73O9649C79O9649C83O9647C87O9705C93O9744C97O9734C101O9770C107O9786C112O9794C122O9794C128O9915C129O9922C130O9930C135O9955C140O9934C147O9978C148O9985C149O10009C156O10031C164O10009C170O10056C180O10063C184O10061C186O10102C193O10102C199O10125C201O10137C205O10150C209O10165C213O10188C220O10196C229O10201C232O10212C240O10212C257O10196C263O10307,, code-creation,LazyCompile,10,34841,0x3dda0e07e6d6,12,maybeCallback node:fs:176:23,0x1ce311de0438,~ code-source-info,0x3dda0e07e6d6,77,4543,4589,C0O4552C5O4552C9O4577C11O4587,, code-creation,LazyCompile,10,34853,0x3dda0e07e7be,21, node:internal/validators:221:42,0x44edd6da2f0,~ code-source-info,0x3dda0e07e7be,17,6796,6897,C0O6814C6O6854C13O6860C18O6854C20O6896,, LoadIC,0x3dda0e06a094,34863,530,51,X,X,0x268a435c1349,length,, code-creation,LazyCompile,10,34881,0x3dda0e07e8fe,54,ReadFileContext node:internal/fs/read_file_context:72:14,0x1ce311df2720,~ script-source,81,node:internal/fs/read_file_context,'use strict';\n\nconst {\n ArrayPrototypePush\x2C\n MathMin\x2C\n ReflectApply\x2C\n} = primordials;\n\nconst {\n constants: {\n kReadFileBufferLength\x2C\n kReadFileUnknownBufferLength\x2C\n }\n} = require('internal/fs/utils');\n\nconst { Buffer } = require('buffer');\n\nconst { FSReqCallback\x2C close\x2C read } = internalBinding('fs');\n\nconst {\n AbortError\x2C\n aggregateTwoErrors\x2C\n} = require('internal/errors');\n\nfunction readFileAfterRead(err\x2C bytesRead) {\n const context = this.context;\n\n if (err)\n return context.close(err);\n\n context.pos += bytesRead;\n\n if (context.pos === context.size || bytesRead === 0) {\n context.close();\n } else {\n if (context.size === 0) {\n // Unknown size\x2C just read until we don't get bytes.\n const buffer = bytesRead === kReadFileUnknownBufferLength ?\n context.buffer : context.buffer.slice(0\x2C bytesRead);\n ArrayPrototypePush(context.buffers\x2C buffer);\n }\n context.read();\n }\n}\n\nfunction readFileAfterClose(err) {\n const context = this.context;\n const callback = context.callback;\n let buffer = null;\n\n if (context.err || err)\n return callback(aggregateTwoErrors(err\x2C context.err));\n\n try {\n if (context.size === 0)\n buffer = Buffer.concat(context.buffers\x2C context.pos);\n else if (context.pos < context.size)\n buffer = context.buffer.slice(0\x2C context.pos);\n else\n buffer = context.buffer;\n\n if (context.encoding)\n buffer = buffer.toString(context.encoding);\n } catch (err) {\n return callback(err);\n }\n\n callback(null\x2C buffer);\n}\n\nclass ReadFileContext {\n constructor(callback\x2C encoding) {\n this.fd = undefined;\n this.isUserFd = undefined;\n this.size = 0;\n this.callback = callback;\n this.buffers = null;\n this.buffer = null;\n this.pos = 0;\n this.encoding = encoding;\n this.err = null;\n this.signal = undefined;\n }\n\n read() {\n let buffer;\n let offset;\n let length;\n\n if (this.signal?.aborted) {\n return this.close(new AbortError());\n }\n if (this.size === 0) {\n buffer = Buffer.allocUnsafeSlow(kReadFileUnknownBufferLength);\n offset = 0;\n length = kReadFileUnknownBufferLength;\n this.buffer = buffer;\n } else {\n buffer = this.buffer;\n offset = this.pos;\n length = MathMin(kReadFileBufferLength\x2C this.size - this.pos);\n }\n\n const req = new FSReqCallback();\n req.oncomplete = readFileAfterRead;\n req.context = this;\n\n read(this.fd\x2C buffer\x2C offset\x2C length\x2C -1\x2C req);\n }\n\n close(err) {\n if (this.isUserFd) {\n process.nextTick(function tick(context) {\n ReflectApply(readFileAfterClose\x2C { context }\x2C [null]);\n }\x2C this);\n return;\n }\n\n const req = new FSReqCallback();\n req.oncomplete = readFileAfterClose;\n req.context = this;\n this.err = err;\n\n close(this.fd\x2C req);\n }\n}\n\nmodule.exports = ReadFileContext;\n code-source-info,0x3dda0e07e8fe,81,1565,1843,C0O1592C1O1600C5O1617C6O1631C10O1648C11O1658C15O1667C17O1681C21O1697C22O1710C26O1722C27O1734C31O1746C32O1755C36O1764C38O1778C42O1794C43O1803C47O1815C48O1827C53O1842,, StoreIC,0x3dda0e07e8ff,34944,73,13,X,X,0x000000000000,fd,, StoreIC,0x3dda0e07e904,34948,74,19,X,X,0x000000000000,isUserFd,, StoreIC,0x3dda0e07e909,34952,75,15,X,X,0x000000000000,size,, StoreIC,0x3dda0e07e90f,34956,76,19,X,X,0x000000000000,callback,, StoreIC,0x3dda0e07e914,34959,77,18,X,X,0x000000000000,buffers,, StoreIC,0x3dda0e07e919,34961,78,17,X,X,0x000000000000,buffer,, StoreIC,0x3dda0e07e91e,34965,79,14,X,X,0x000000000000,pos,, StoreIC,0x3dda0e07e924,34970,80,19,X,X,0x000000000000,encoding,, StoreIC,0x3dda0e07e929,34973,81,14,X,X,0x000000000000,err,, StoreIC,0x3dda0e07e92e,34976,82,17,X,X,0x000000000000,signal,, StoreIC,0x3dda0e07e4a1,34981,377,20,X,X,0x000000000000,isUserFd,, code-creation,LazyCompile,10,34996,0x3dda0e07ee9e,35,checkAborted node:fs:351:22,0x1ce311de0838,~ code-source-info,0x3dda0e07ee9e,77,8970,9086,C0O8993C7O9003C16O9020C18O9033C21O9029C27O9020C31O9052C32O9064C33O9071C34O9084,, LoadIC,0x3dda0e063b4c,35006,1493,49,0,1,0x268a435c2aa1,href,, StoreIC,0x3dda0e07e517,35015,396,15,X,X,0x000000000000,context,, StoreIC,0x3dda0e07e51f,35021,397,18,X,X,0x000000000000,oncomplete,, code-creation,LazyCompile,10,35162,0x3dda0e07f08e,75,readFileAfterOpen node:fs:310:27,0x1ce311de0798,~ code-source-info,0x3dda0e07f08e,77,8190,8444,C0O8225C5O8237C9O8260C14O8260C19O8279C20O8286C21O8294C23O8305C27O8326C32O8326C38O8349C40O8364C44O8387C46O8399C50O8412C55O8420C68O8420C74O8443,, StoreIC,0x3dda0e07f0a5,35176,318,14,X,X,0x000000000000,fd,, StoreIC,0x3dda0e07f0b6,35183,321,18,X,X,0x000000000000,oncomplete,, StoreIC,0x3dda0e07f0bc,35188,322,15,X,X,0x000000000000,context,, code-creation,LazyCompile,10,35251,0x3dda0e07f2d6,162,readFileAfterStat node:fs:326:27,0x1ce311de07e8,~ code-source-info,0x3dda0e07f2d6,77,8472,8947,C0O8510C5O8522C9O8550C14O8550C19O8561C20O8578C25O8611C28O8593C40O8627C47O8591C54O8639C56O8650C58O8648C63O8670C70O8676C77O8728C82O8728C87O8739C91O8757C92O8766C97O8781C99O8797C105O8822C107O8839C110O8846C115O8846C120O8837C137O8912C145O8912C150O8923C151O8938C156O8938C161O8946,, StoreIC,0x3dda0e07f305,35265,332,29,X,X,0x000000000000,size,, code-creation,LazyCompile,10,35281,0x3dda0e07f4a6,19,allocUnsafeSlow node:buffer:382:50,0x44edd6e4d20,~ code-source-info,0x3dda0e07f4a6,18,11191,11256,C0O11202C5O11202C9O11222C14O11229C18O11254,, StoreIC,0x3dda0e07f34e,35293,343,22,X,X,0x000000000000,buffer,, code-creation,LazyCompile,10,35320,0x3dda0e07f61e,185,read node:internal/fs/read_file_context:85:7,0x1ce311df2770,~ code-source-info,0x3dda0e07f61e,81,1851,2472,C0O1864C2O1880C4O1896C6O1918C13O1924C22O1955C29O1965C32O1961C38O1955C43O1979C44O1999C50O2004C55O2019C60O2035C67O2051C70O2035C76O2088C78O2106C83O2151C85O2163C91O2206C96O2234C101O2245C108O2262C111O2290C116O2302C120O2295C124O2254C130O2331C135O2331C141O2356C143O2371C147O2396C149O2408C153O2421C158O2431C178O2421C184O2471,, StoreIC,0x3dda0e07f6b3,35343,106,17,X,X,0x000000000000,context,, code-creation,LazyCompile,10,35392,0x3dda0e07f85e,136,readFileAfterRead node:internal/fs/read_file_context:25:27,0x1ce311df24b0,~ code-source-info,0x3dda0e07f85e,81,418,929,C0O460C5O472C9O500C14O500C19O511C20O515C27O530C30O527C34O556C39O572C43O560C49O590C54O611C59O611C65O647C71O652C76O741C78O755C80O751C85O802C91O819C96O826C103O826C110O853C115O880C120O853C125O916C130O916C135O928,, StoreIC,0x3dda0e07f87c,35404,31,15,X,X,0x000000000000,pos,, code-creation,LazyCompile,10,35426,0x3dda0e07fa9e,73,close node:internal/fs/read_file_context:111:8,0x1ce311df27c0,~ code-source-info,0x3dda0e07fa9e,81,2481,2813,C0O2502C6O2520C9O2528C19O2528C25O2647C26O2654C27O2678C32O2678C38O2703C40O2718C44O2744C46O2756C50O2768C52O2777C56O2789C61O2800C66O2789C72O2812,, StoreIC,0x3dda0e07fad2,35438,122,14,X,X,0x000000000000,err,, code-creation,LazyCompile,10,35491,0x3dda0e07fcd6,183,readFileAfterClose node:internal/fs/read_file_context:46:28,0x1ce311df26d0,~ code-source-info,0x3dda0e07fcd6,81,958,1526,C0O989C5O1025C10O1050C12O1071C20O1078C22O1087C24O1103C27O1135C32O1103C38O1094C42O1141C46O1167C52O1172C57O1185C62O1201C67O1216C72O1233C77O1201C86O1260C91O1274C95O1264C100O1303C105O1310C112O1327C117O1310C126O1365C131O1390C137O1422C142O1439C147O1422C156O1413C166O1472C169O1479C173O1493C174O1501C176O1501C182O1525,, LoadIC,0x3dda0e07fd5f,35509,63,23,X,X,0x38ac3d987e81,toString,, LoadIC,0x3dda0e06c8b6,35513,787,20,X,X,0x38ac3d987e81,length,, LoadIC,0x3dda0e06cb60,35517,680,20,X,X,0x268a435c1349,length,, LoadIC,0x3dda0e06cf3e,35521,593,37,X,X,0x38ac3d987e81,utf8Slice,, code-creation,LazyCompile,10,35548,0x3dda0e07fece,113, node:internal/util:347:32,0x3dda0e07e0c0,~ code-source-info,0x3dda0e07fece,12,9643,10006,C0O9643C8O9673C12O9694C15O9701C19O9713C20O9732C28O9774C35O9781C40O9810C42O9837C44O9842C48O9844C51O9858C55O9842C60O9883C64O9887C69O9900C75O9913C78O9905C82O9867C87O9824C90O9928C93O9928C99O9969C103O9983C107O9969C112O10005,, LoadGlobalIC,0x3dda0e07d68c,35562,30,5,X,X,0x38ac3d9811a9,console,, LoadIC,0x3dda0e07d698,35566,30,32,X,X,0x268a435c18e1,length,, new,MemoryChunk,0xe1ea49c0000,262144 code-creation,LazyCompile,10,35614,0xe1ea49c11ce,38,log node:internal/console/constructor:359:6,0x23787e18c090,~ script-source,30,node:internal/console/constructor,'use strict';\n\n// The Console constructor is not actually used to construct the global\n// console. It's exported for backwards compatibility.\n\nconst {\n ArrayFrom\x2C\n ArrayIsArray\x2C\n ArrayPrototypeForEach\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypeUnshift\x2C\n Boolean\x2C\n ErrorCaptureStackTrace\x2C\n FunctionPrototypeBind\x2C\n MathFloor\x2C\n Number\x2C\n NumberPrototypeToFixed\x2C\n ObjectCreate\x2C\n ObjectDefineProperties\x2C\n ObjectDefineProperty\x2C\n ObjectKeys\x2C\n ObjectPrototypeHasOwnProperty\x2C\n ObjectValues\x2C\n ReflectApply\x2C\n ReflectConstruct\x2C\n ReflectOwnKeys\x2C\n SafeArrayIterator\x2C\n SafeMap\x2C\n SafeWeakMap\x2C\n StringPrototypeIncludes\x2C\n StringPrototypePadStart\x2C\n StringPrototypeRepeat\x2C\n StringPrototypeReplace\x2C\n StringPrototypeSlice\x2C\n StringPrototypeSplit\x2C\n Symbol\x2C\n SymbolHasInstance\x2C\n SymbolToStringTag\x2C\n} = primordials;\n\nconst { trace } = internalBinding('trace_events');\nconst {\n isStackOverflowError\x2C\n codes: {\n ERR_CONSOLE_WRITABLE_STREAM\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_INCOMPATIBLE_OPTION_PAIR\x2C\n }\x2C\n} = require('internal/errors');\nconst {\n validateArray\x2C\n validateInteger\x2C\n validateObject\x2C\n} = require('internal/validators');\nconst { previewEntries } = internalBinding('util');\nconst { Buffer: { isBuffer } } = require('buffer');\nconst {\n inspect\x2C\n formatWithOptions\n} = require('internal/util/inspect');\nconst {\n isTypedArray\x2C isSet\x2C isMap\x2C isSetIterator\x2C isMapIterator\x2C\n} = require('internal/util/types');\nconst {\n CHAR_LOWERCASE_B: kTraceBegin\x2C\n CHAR_LOWERCASE_E: kTraceEnd\x2C\n CHAR_LOWERCASE_N: kTraceInstant\x2C\n CHAR_UPPERCASE_C: kTraceCount\x2C\n} = require('internal/constants');\nconst kCounts = Symbol('counts');\n\nconst kTraceConsoleCategory = 'node\x2Cnode.console';\n\nconst kSecond = 1000;\nconst kMinute = 60 * kSecond;\nconst kHour = 60 * kMinute;\nconst kMaxGroupIndentation = 1000;\n\n// Lazy loaded for startup performance.\nlet cliTable;\n\n// Track amount of indentation required via `console.group()`.\nconst kGroupIndent = Symbol('kGroupIndent');\nconst kGroupIndentationWidth = Symbol('kGroupIndentWidth');\nconst kFormatForStderr = Symbol('kFormatForStderr');\nconst kFormatForStdout = Symbol('kFormatForStdout');\nconst kGetInspectOptions = Symbol('kGetInspectOptions');\nconst kColorMode = Symbol('kColorMode');\nconst kIsConsole = Symbol('kIsConsole');\nconst kWriteToConsole = Symbol('kWriteToConsole');\nconst kBindProperties = Symbol('kBindProperties');\nconst kBindStreamsEager = Symbol('kBindStreamsEager');\nconst kBindStreamsLazy = Symbol('kBindStreamsLazy');\nconst kUseStdout = Symbol('kUseStdout');\nconst kUseStderr = Symbol('kUseStderr');\n\nconst optionsMap = new SafeWeakMap();\n\nfunction Console(options /* or: stdout\x2C stderr\x2C ignoreErrors = true */) {\n // We have to test new.target here to see if this function is called\n // with new\x2C because we need to define a custom instanceof to accommodate\n // the global console.\n if (!new.target) {\n return ReflectConstruct(Console\x2C arguments);\n }\n\n if (!options || typeof options.write === 'function') {\n options = {\n stdout: options\x2C\n stderr: arguments[1]\x2C\n ignoreErrors: arguments[2]\n };\n }\n\n const {\n stdout\x2C\n stderr = stdout\x2C\n ignoreErrors = true\x2C\n colorMode = 'auto'\x2C\n inspectOptions\x2C\n groupIndentation\x2C\n } = options;\n\n if (!stdout || typeof stdout.write !== 'function') {\n throw new ERR_CONSOLE_WRITABLE_STREAM('stdout');\n }\n if (!stderr || typeof stderr.write !== 'function') {\n throw new ERR_CONSOLE_WRITABLE_STREAM('stderr');\n }\n\n if (typeof colorMode !== 'boolean' && colorMode !== 'auto')\n throw new ERR_INVALID_ARG_VALUE('colorMode'\x2C colorMode);\n\n if (groupIndentation !== undefined) {\n validateInteger(groupIndentation\x2C 'groupIndentation'\x2C\n 0\x2C kMaxGroupIndentation);\n }\n\n if (inspectOptions !== undefined) {\n validateObject(inspectOptions\x2C 'options.inspectOptions');\n\n if (inspectOptions.colors !== undefined &&\n options.colorMode !== undefined) {\n throw new ERR_INCOMPATIBLE_OPTION_PAIR(\n 'options.inspectOptions.color'\x2C 'colorMode');\n }\n optionsMap.set(this\x2C inspectOptions);\n }\n\n // Bind the prototype functions to this Console instance\n ArrayPrototypeForEach(ObjectKeys(Console.prototype)\x2C (key) => {\n // We have to bind the methods grabbed from the instance instead of from\n // the prototype so that users extending the Console can override them\n // from the prototype chain of the subclass.\n this[key] = FunctionPrototypeBind(this[key]\x2C this);\n ObjectDefineProperty(this[key]\x2C 'name'\x2C {\n value: key\n });\n });\n\n this[kBindStreamsEager](stdout\x2C stderr);\n this[kBindProperties](ignoreErrors\x2C colorMode\x2C groupIndentation);\n}\n\nconst consolePropAttributes = {\n writable: true\x2C\n enumerable: false\x2C\n configurable: true\n};\n\n// Fixup global.console instanceof global.console.Console\nObjectDefineProperty(Console\x2C SymbolHasInstance\x2C {\n value(instance) {\n return instance[kIsConsole];\n }\n});\n\nconst kColorInspectOptions = { colors: true };\nconst kNoColorInspectOptions = {};\n\nObjectDefineProperties(Console.prototype\x2C {\n [kBindStreamsEager]: {\n ...consolePropAttributes\x2C\n // Eager version for the Console constructor\n value: function(stdout\x2C stderr) {\n ObjectDefineProperties(this\x2C {\n '_stdout': { ...consolePropAttributes\x2C value: stdout }\x2C\n '_stderr': { ...consolePropAttributes\x2C value: stderr }\n });\n }\n }\x2C\n [kBindStreamsLazy]: {\n ...consolePropAttributes\x2C\n // Lazily load the stdout and stderr from an object so we don't\n // create the stdio streams when they are not even accessed\n value: function(object) {\n let stdout;\n let stderr;\n ObjectDefineProperties(this\x2C {\n '_stdout': {\n enumerable: false\x2C\n configurable: true\x2C\n get() {\n if (!stdout) stdout = object.stdout;\n return stdout;\n }\x2C\n set(value) { stdout = value; }\n }\x2C\n '_stderr': {\n enumerable: false\x2C\n configurable: true\x2C\n get() {\n if (!stderr) { stderr = object.stderr; }\n return stderr;\n }\x2C\n set(value) { stderr = value; }\n }\n });\n }\n }\x2C\n [kBindProperties]: {\n ...consolePropAttributes\x2C\n value: function(ignoreErrors\x2C colorMode\x2C groupIndentation = 2) {\n ObjectDefineProperties(this\x2C {\n '_stdoutErrorHandler': {\n ...consolePropAttributes\x2C\n value: createWriteErrorHandler(this\x2C kUseStdout)\n }\x2C\n '_stderrErrorHandler': {\n ...consolePropAttributes\x2C\n value: createWriteErrorHandler(this\x2C kUseStderr)\n }\x2C\n '_ignoreErrors': {\n ...consolePropAttributes\x2C\n value: Boolean(ignoreErrors)\n }\x2C\n '_times': { ...consolePropAttributes\x2C value: new SafeMap() }\x2C\n // Corresponds to https://console.spec.whatwg.org/#count-map\n [kCounts]: { ...consolePropAttributes\x2C value: new SafeMap() }\x2C\n [kColorMode]: { ...consolePropAttributes\x2C value: colorMode }\x2C\n [kIsConsole]: { ...consolePropAttributes\x2C value: true }\x2C\n [kGroupIndent]: { ...consolePropAttributes\x2C value: '' }\x2C\n [kGroupIndentationWidth]: {\n ...consolePropAttributes\x2C\n value: groupIndentation\n }\x2C\n [SymbolToStringTag]: {\n writable: false\x2C\n enumerable: false\x2C\n configurable: true\x2C\n value: 'console'\n }\n });\n }\n }\x2C\n [kWriteToConsole]: {\n ...consolePropAttributes\x2C\n value: function(streamSymbol\x2C string) {\n const ignoreErrors = this._ignoreErrors;\n const groupIndent = this[kGroupIndent];\n\n const useStdout = streamSymbol === kUseStdout;\n const stream = useStdout ? this._stdout : this._stderr;\n const errorHandler = useStdout ?\n this._stdoutErrorHandler : this._stderrErrorHandler;\n\n if (groupIndent.length !== 0) {\n if (StringPrototypeIncludes(string\x2C '\\n')) {\n string = StringPrototypeReplace(string\x2C /\\n/g\x2C `\\n${groupIndent}`);\n }\n string = groupIndent + string;\n }\n string += '\\n';\n\n if (ignoreErrors === false) return stream.write(string);\n\n // There may be an error occurring synchronously (e.g. for files or TTYs\n // on POSIX systems) or asynchronously (e.g. pipes on POSIX systems)\x2C so\n // handle both situations.\n try {\n // Add and later remove a noop error handler to catch synchronous\n // errors.\n if (stream.listenerCount('error') === 0)\n stream.once('error'\x2C noop);\n\n stream.write(string\x2C errorHandler);\n } catch (e) {\n // Console is a debugging utility\x2C so it swallowing errors is not\n // desirable even in edge cases such as low stack space.\n if (isStackOverflowError(e))\n throw e;\n // Sorry\x2C there's no proper way to pass along the error here.\n } finally {\n stream.removeListener('error'\x2C noop);\n }\n }\n }\x2C\n [kGetInspectOptions]: {\n ...consolePropAttributes\x2C\n value: function(stream) {\n let color = this[kColorMode];\n if (color === 'auto') {\n color = stream.isTTY && (\n typeof stream.getColorDepth === 'function' ?\n stream.getColorDepth() > 2 : true);\n }\n\n const options = optionsMap.get(this);\n if (options) {\n if (options.colors === undefined) {\n options.colors = color;\n }\n return options;\n }\n\n return color ? kColorInspectOptions : kNoColorInspectOptions;\n }\n }\x2C\n [kFormatForStdout]: {\n ...consolePropAttributes\x2C\n value: function(args) {\n const opts = this[kGetInspectOptions](this._stdout);\n ArrayPrototypeUnshift(args\x2C opts);\n return ReflectApply(formatWithOptions\x2C null\x2C args);\n }\n }\x2C\n [kFormatForStderr]: {\n ...consolePropAttributes\x2C\n value: function(args) {\n const opts = this[kGetInspectOptions](this._stderr);\n ArrayPrototypeUnshift(args\x2C opts);\n return ReflectApply(formatWithOptions\x2C null\x2C args);\n }\n }\x2C\n});\n\n// Make a function that can serve as the callback passed to `stream.write()`.\nfunction createWriteErrorHandler(instance\x2C streamSymbol) {\n return (err) => {\n // This conditional evaluates to true if and only if there was an error\n // that was not already emitted (which happens when the _write callback\n // is invoked asynchronously).\n const stream = streamSymbol === kUseStdout ?\n instance._stdout : instance._stderr;\n if (err !== null && !stream._writableState.errorEmitted) {\n // If there was an error\x2C it will be emitted on `stream` as\n // an `error` event. Adding a `once` listener will keep that error\n // from becoming an uncaught exception\x2C but since the handler is\n // removed after the event\x2C non-console.* writes won't be affected.\n // we are only adding noop if there is no one else listening for 'error'\n if (stream.listenerCount('error') === 0) {\n stream.once('error'\x2C noop);\n }\n }\n };\n}\n\nconst consoleMethods = {\n log(...args) {\n this[kWriteToConsole](kUseStdout\x2C this[kFormatForStdout](args));\n }\x2C\n\n\n warn(...args) {\n this[kWriteToConsole](kUseStderr\x2C this[kFormatForStderr](args));\n }\x2C\n\n\n dir(object\x2C options) {\n this[kWriteToConsole](kUseStdout\x2C inspect(object\x2C {\n customInspect: false\x2C\n ...this[kGetInspectOptions](this._stdout)\x2C\n ...options\n }));\n }\x2C\n\n time(label = 'default') {\n // Coerces everything other than Symbol to a string\n label = `${label}`;\n if (this._times.has(label)) {\n process.emitWarning(`Label '${label}' already exists for console.time()`);\n return;\n }\n trace(kTraceBegin\x2C kTraceConsoleCategory\x2C `time::${label}`\x2C 0);\n this._times.set(label\x2C process.hrtime());\n }\x2C\n\n timeEnd(label = 'default') {\n // Coerces everything other than Symbol to a string\n label = `${label}`;\n const found = timeLogImpl(this\x2C 'timeEnd'\x2C label);\n trace(kTraceEnd\x2C kTraceConsoleCategory\x2C `time::${label}`\x2C 0);\n if (found) {\n this._times.delete(label);\n }\n }\x2C\n\n timeLog(label = 'default'\x2C ...data) {\n // Coerces everything other than Symbol to a string\n label = `${label}`;\n timeLogImpl(this\x2C 'timeLog'\x2C label\x2C data);\n trace(kTraceInstant\x2C kTraceConsoleCategory\x2C `time::${label}`\x2C 0);\n }\x2C\n\n trace: function trace(...args) {\n const err = {\n name: 'Trace'\x2C\n message: this[kFormatForStderr](args)\n };\n ErrorCaptureStackTrace(err\x2C trace);\n this.error(err.stack);\n }\x2C\n\n assert(expression\x2C ...args) {\n if (!expression) {\n args[0] = `Assertion failed${args.length === 0 ? '' : `: ${args[0]}`}`;\n // The arguments will be formatted in warn() again\n ReflectApply(this.warn\x2C this\x2C args);\n }\n }\x2C\n\n // Defined by: https://console.spec.whatwg.org/#clear\n clear() {\n // It only makes sense to clear if _stdout is a TTY.\n // Otherwise\x2C do nothing.\n if (this._stdout.isTTY && process.env.TERM !== 'dumb') {\n // The require is here intentionally to avoid readline being\n // required too early when console is first loaded.\n const {\n cursorTo\x2C\n clearScreenDown\x2C\n } = require('internal/readline/callbacks');\n cursorTo(this._stdout\x2C 0\x2C 0);\n clearScreenDown(this._stdout);\n }\n }\x2C\n\n // Defined by: https://console.spec.whatwg.org/#count\n count(label = 'default') {\n // Ensures that label is a string\x2C and only things that can be\n // coerced to strings. e.g. Symbol is not allowed\n label = `${label}`;\n const counts = this[kCounts];\n let count = counts.get(label);\n if (count === undefined)\n count = 1;\n else\n count++;\n counts.set(label\x2C count);\n trace(kTraceCount\x2C kTraceConsoleCategory\x2C `count::${label}`\x2C 0\x2C count);\n this.log(`${label}: ${count}`);\n }\x2C\n\n // Defined by: https://console.spec.whatwg.org/#countreset\n countReset(label = 'default') {\n const counts = this[kCounts];\n if (!counts.has(label)) {\n process.emitWarning(`Count for '${label}' does not exist`);\n return;\n }\n trace(kTraceCount\x2C kTraceConsoleCategory\x2C `count::${label}`\x2C 0\x2C 0);\n counts.delete(`${label}`);\n }\x2C\n\n group(...data) {\n if (data.length > 0) {\n ReflectApply(this.log\x2C this\x2C data);\n }\n this[kGroupIndent] +=\n StringPrototypeRepeat(' '\x2C this[kGroupIndentationWidth]);\n }\x2C\n\n groupEnd() {\n this[kGroupIndent] = StringPrototypeSlice(\n this[kGroupIndent]\x2C\n 0\x2C\n this[kGroupIndent].length - this[kGroupIndentationWidth]\n );\n }\x2C\n\n // https://console.spec.whatwg.org/#table\n table(tabularData\x2C properties) {\n if (properties !== undefined)\n validateArray(properties\x2C 'properties');\n\n if (tabularData === null || typeof tabularData !== 'object')\n return this.log(tabularData);\n\n if (cliTable === undefined) cliTable = require('internal/cli_table');\n const final = (k\x2C v) => this.log(cliTable(k\x2C v));\n\n const _inspect = (v) => {\n const depth = v !== null &&\n typeof v === 'object' &&\n !isArray(v) &&\n ObjectKeys(v).length > 2 ? -1 : 0;\n const opt = {\n depth\x2C\n maxArrayLength: 3\x2C\n breakLength: Infinity\x2C\n ...this[kGetInspectOptions](this._stdout)\n };\n return inspect(v\x2C opt);\n };\n const getIndexArray = (length) => ArrayFrom(\n { length }\x2C (_\x2C i) => _inspect(i));\n\n const mapIter = isMapIterator(tabularData);\n let isKeyValue = false;\n let i = 0;\n if (mapIter) {\n const res = previewEntries(tabularData\x2C true);\n tabularData = res[0];\n isKeyValue = res[1];\n }\n\n if (isKeyValue || isMap(tabularData)) {\n const keys = [];\n const values = [];\n let length = 0;\n if (mapIter) {\n for (; i < tabularData.length / 2; ++i) {\n ArrayPrototypePush(keys\x2C _inspect(tabularData[i * 2]));\n ArrayPrototypePush(values\x2C _inspect(tabularData[i * 2 + 1]));\n length++;\n }\n } else {\n for (const { 0: k\x2C 1: v } of tabularData) {\n ArrayPrototypePush(keys\x2C _inspect(k));\n ArrayPrototypePush(values\x2C _inspect(v));\n length++;\n }\n }\n return final([\n iterKey\x2C keyKey\x2C valuesKey\x2C\n ]\x2C [\n getIndexArray(length)\x2C\n keys\x2C\n values\x2C\n ]);\n }\n\n const setIter = isSetIterator(tabularData);\n if (setIter)\n tabularData = previewEntries(tabularData);\n\n const setlike = setIter || mapIter || isSet(tabularData);\n if (setlike) {\n const values = [];\n let length = 0;\n for (const v of tabularData) {\n ArrayPrototypePush(values\x2C _inspect(v));\n length++;\n }\n return final([iterKey\x2C valuesKey]\x2C [getIndexArray(length)\x2C values]);\n }\n\n const map = ObjectCreate(null);\n let hasPrimitives = false;\n const valuesKeyArray = [];\n const indexKeyArray = ObjectKeys(tabularData);\n\n for (; i < indexKeyArray.length; i++) {\n const item = tabularData[indexKeyArray[i]];\n const primitive = item === null ||\n (typeof item !== 'function' && typeof item !== 'object');\n if (properties === undefined && primitive) {\n hasPrimitives = true;\n valuesKeyArray[i] = _inspect(item);\n } else {\n const keys = properties || ObjectKeys(item);\n for (const key of keys) {\n if (map[key] === undefined)\n map[key] = [];\n if ((primitive && properties) ||\n !ObjectPrototypeHasOwnProperty(item\x2C key))\n map[key][i] = '';\n else\n map[key][i] = _inspect(item[key]);\n }\n }\n }\n\n const keys = ObjectKeys(map);\n const values = ObjectValues(map);\n if (hasPrimitives) {\n ArrayPrototypePush(keys\x2C valuesKey);\n ArrayPrototypePush(values\x2C valuesKeyArray);\n }\n ArrayPrototypeUnshift(keys\x2C indexKey);\n ArrayPrototypeUnshift(values\x2C indexKeyArray);\n\n return final(keys\x2C values);\n }\x2C\n};\n\n// Returns true if label was found\nfunction timeLogImpl(self\x2C name\x2C label\x2C data) {\n const time = self._times.get(label);\n if (time === undefined) {\n process.emitWarning(`No such label '${label}' for console.${name}()`);\n return false;\n }\n const duration = process.hrtime(time);\n const ms = duration[0] * 1000 + duration[1] / 1e6;\n\n const formatted = formatTime(ms);\n\n if (data === undefined) {\n self.log('%s: %s'\x2C label\x2C formatted);\n } else {\n self.log('%s: %s'\x2C label\x2C formatted\x2C ...new SafeArrayIterator(data));\n }\n return true;\n}\n\nfunction pad(value) {\n return StringPrototypePadStart(`${value}`\x2C 2\x2C '0');\n}\n\nfunction formatTime(ms) {\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (ms >= kSecond) {\n if (ms >= kMinute) {\n if (ms >= kHour) {\n hours = MathFloor(ms / kHour);\n ms = ms % kHour;\n }\n minutes = MathFloor(ms / kMinute);\n ms = ms % kMinute;\n }\n seconds = ms / kSecond;\n }\n\n if (hours !== 0 || minutes !== 0) {\n ({ 0: seconds\x2C 1: ms } = StringPrototypeSplit(\n NumberPrototypeToFixed(seconds\x2C 3)\x2C\n '.'\n ));\n const res = hours !== 0 ? `${hours}:${pad(minutes)}` : minutes;\n return `${res}:${pad(seconds)}.${ms} (${hours !== 0 ? 'h:m' : ''}m:ss.mmm)`;\n }\n\n if (seconds !== 0) {\n return `${NumberPrototypeToFixed(seconds\x2C 3)}s`;\n }\n\n return `${Number(NumberPrototypeToFixed(ms\x2C 3))}ms`;\n}\n\nconst keyKey = 'Key';\nconst valuesKey = 'Values';\nconst indexKey = '(index)';\nconst iterKey = '(iteration index)';\n\nconst isArray = (v) => ArrayIsArray(v) || isTypedArray(v) || isBuffer(v);\n\nfunction noop() {}\n\nfor (const method of ReflectOwnKeys(consoleMethods))\n Console.prototype[method] = consoleMethods[method];\n\nConsole.prototype.debug = Console.prototype.log;\nConsole.prototype.info = Console.prototype.log;\nConsole.prototype.dirxml = Console.prototype.log;\nConsole.prototype.error = Console.prototype.warn;\nConsole.prototype.groupCollapsed = Console.prototype.group;\n\nmodule.exports = {\n Console\x2C\n kBindStreamsLazy\x2C\n kBindProperties\x2C\n formatTime // exported for tests\n};\n code-source-info,0xe1ea49c11ce,30,11007,11091,C0O11007C3O11023C5O11028C7O11027C13O11045C18O11062C20O11061C24O11079C30O11044C37O11090,, code-creation,LazyCompile,10,35958,0xe1ea49c285e,50,value node:internal/console/constructor:321:20,0x23787e18be38,~ code-source-info,0xe1ea49c285e,30,9574,9746,C0O9602C2O9607C4O9606C8O9632C13O9626C19O9648C24O9648C29O9689C36O9709C44O9696C49O9740,, code-creation,LazyCompile,10,35975,0xe1ea49c2976,27,get node:internal/console/constructor:203:14,0x23787e18bb08,~ code-source-info,0xe1ea49c2976,30,5761,5853,C0O5778C6O5791C9O5807C16O5798C22O5827C26O5841,, code-creation,LazyCompile,10,36001,0xe1ea49c2b2e,97,getStdout node:internal/bootstrap/switches/is_main_thread:121:19,0x3edb62acb450,~ script-source,88,node:internal/bootstrap/switches/is_main_thread,'use strict';\n\nconst { ObjectDefineProperty } = primordials;\nconst rawMethods = internalBinding('process_methods');\n\n// TODO(joyeecheung): deprecate and remove these underscore methods\nprocess._debugProcess = rawMethods._debugProcess;\nprocess._debugEnd = rawMethods._debugEnd;\n\n// See the discussion in https://github.com/nodejs/node/issues/19009 and\n// https://github.com/nodejs/node/pull/34010 for why these are no-ops.\n// Five word summary: they were broken beyond repair.\nprocess._startProfilerIdleNotifier = () => {};\nprocess._stopProfilerIdleNotifier = () => {};\n\nfunction defineStream(name\x2C getter) {\n ObjectDefineProperty(process\x2C name\x2C {\n configurable: true\x2C\n enumerable: true\x2C\n get: getter\n });\n}\n\ndefineStream('stdout'\x2C getStdout);\ndefineStream('stdin'\x2C getStdin);\ndefineStream('stderr'\x2C getStderr);\n\n// Worker threads don't receive signals.\nconst {\n startListeningIfSignal\x2C\n stopListeningIfSignal\n} = require('internal/process/signal');\nprocess.on('newListener'\x2C startListeningIfSignal);\nprocess.on('removeListener'\x2C stopListeningIfSignal);\n\n// ---- keep the attachment of the wrappers above so that it's easier to ----\n// ---- compare the setups side-by-side -----\n\nconst { guessHandleType } = internalBinding('util');\n\nfunction createWritableStdioStream(fd) {\n let stream;\n // Note stream._type is used for test-module-load-list.js\n switch (guessHandleType(fd)) {\n case 'TTY':\n const tty = require('tty');\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n break;\n\n case 'FILE':\n const SyncWriteStream = require('internal/fs/sync_write_stream');\n stream = new SyncWriteStream(fd\x2C { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n const net = require('net');\n\n // If fd is already being used for the IPC channel\x2C libuv will return\n // an error when trying to use it again. In that case\x2C create the socket\n // using the existing handle instead of the fd.\n if (process.channel && process.channel.fd === fd) {\n const { kChannelHandle } = require('internal/child_process');\n stream = new net.Socket({\n handle: process[kChannelHandle]\x2C\n readable: false\x2C\n writable: true\n });\n } else {\n stream = new net.Socket({\n fd\x2C\n readable: false\x2C\n writable: true\n });\n }\n\n stream._type = 'pipe';\n break;\n\n default:\n // Provide a dummy black-hole output for e.g. non-console\n // Windows applications.\n const { Writable } = require('stream');\n stream = new Writable({\n write(buf\x2C enc\x2C cb) {\n cb();\n }\n });\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\nfunction dummyDestroy(err\x2C cb) {\n cb(err);\n this._undestroy();\n\n // We need to emit 'close' anyway so that the closing\n // of the stream is observable. We just make sure we\n // are not going to do it twice.\n // The 'close' event is needed so that finished and\n // pipeline work correctly.\n if (!this._writableState.emitClose) {\n process.nextTick(() => {\n this.emit('close');\n });\n }\n}\n\nlet stdin;\nlet stdout;\nlet stderr;\n\nfunction getStdout() {\n if (stdout) return stdout;\n stdout = createWritableStdioStream(1);\n stdout.destroySoon = stdout.destroy;\n // Override _destroy so that the fd is never actually closed.\n stdout._destroy = dummyDestroy;\n if (stdout.isTTY) {\n process.on('SIGWINCH'\x2C () => stdout._refreshSize());\n }\n return stdout;\n}\n\nfunction getStderr() {\n if (stderr) return stderr;\n stderr = createWritableStdioStream(2);\n stderr.destroySoon = stderr.destroy;\n // Override _destroy so that the fd is never actually closed.\n stderr._destroy = dummyDestroy;\n if (stderr.isTTY) {\n process.on('SIGWINCH'\x2C () => stderr._refreshSize());\n }\n return stderr;\n}\n\nfunction getStdin() {\n if (stdin) return stdin;\n const fd = 0;\n\n switch (guessHandleType(fd)) {\n case 'TTY':\n const tty = require('tty');\n stdin = new tty.ReadStream(fd\x2C {\n highWaterMark: 0\x2C\n readable: true\x2C\n writable: false\n });\n break;\n\n case 'FILE':\n const fs = require('fs');\n stdin = new fs.ReadStream(null\x2C { fd: fd\x2C autoClose: false });\n break;\n\n case 'PIPE':\n case 'TCP':\n const net = require('net');\n\n // It could be that process has been started with an IPC channel\n // sitting on fd=0\x2C in such case the pipe for this fd is already\n // present and creating a new one will lead to the assertion failure\n // in libuv.\n if (process.channel && process.channel.fd === fd) {\n stdin = new net.Socket({\n handle: process.channel\x2C\n readable: true\x2C\n writable: false\x2C\n manualStart: true\n });\n } else {\n stdin = new net.Socket({\n fd: fd\x2C\n readable: true\x2C\n writable: false\x2C\n manualStart: true\n });\n }\n // Make sure the stdin can't be `.end()`-ed\n stdin._writableState.ended = true;\n break;\n\n default:\n // Provide a dummy contentless input for e.g. non-console\n // Windows applications.\n const { Readable } = require('stream');\n stdin = new Readable({ read() {} });\n stdin.push(null);\n }\n\n // For supporting legacy API we put the FD here.\n stdin.fd = fd;\n\n // `stdin` starts out life in a paused state\x2C but node doesn't\n // know yet. Explicitly to readStop() it to put it in the\n // not-reading state.\n if (stdin._handle && stdin._handle.readStop) {\n stdin._handle.reading = false;\n stdin._readableState.reading = false;\n stdin._handle.readStop();\n }\n\n // If the user calls stdin.pause()\x2C then we need to stop reading\n // once the stream implementation does so (one nextTick later)\x2C\n // so that the process can close down.\n stdin.on('pause'\x2C () => {\n process.nextTick(onpause);\n });\n\n function onpause() {\n if (!stdin._handle)\n return;\n if (stdin._handle.reading && !stdin.readableFlowing) {\n stdin._readableState.reading = false;\n stdin._handle.reading = false;\n stdin._handle.readStop();\n }\n }\n\n return stdin;\n}\n\n// Used by internal tests.\nrawMethods.resetStdioForTesting = function() {\n stdin = undefined;\n stdout = undefined;\n stderr = undefined;\n};\n code-source-info,0xe1ea49c2b2e,88,3307,3620,C0O3314C6O3326C10O3340C11O3343C17O3352C24O3350C30O3384C37O3405C40O3412C44O3403C48O3487C55O3503C59O3521C64O3532C70O3545C73O3553C86O3553C92O3604C96O3618,, code-creation,LazyCompile,10,36154,0xe1ea49c37ae,305,createWritableStdioStream node:internal/bootstrap/switches/is_main_thread:41:35,0x3edb62acb3b0,~ code-source-info,0xe1ea49c37ae,88,1312,2845,C0O1325C4O1403C7O1403C20O1395C53O1460C59O1460C64O1482C66O1499C73O1491C79O1522C81O1535C85O1550C87O1605C93O1605C98O1653C100O1682C110O1662C116O1715C118O1728C122O1742C124O1801C130O1801C135O2033C138O2045C147O2064C152O2072C159O2075C164O2120C170O2120C175O2101C180O2163C184O2180C199O2214C208O2172C216O2319C220O2336C232O2355C238O2328C244O2438C246O2451C250O2467C252O2610C258O2610C263O2597C268O2635C275O2667C285O2644C291O2783C293O2793C297O2802C298O2818C302O2829C304O2843,, code-creation,Eval,10,36265,0xe1ea49c3ede,5, node:tty:1:1,0xe1ea49c3cd8,~ script-source,121,node:tty,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n Array\x2C\n NumberIsInteger\x2C\n ObjectSetPrototypeOf\x2C\n} = primordials;\n\nconst net = require('net');\nconst { TTY\x2C isTTY } = internalBinding('tty_wrap');\nconst errors = require('internal/errors');\nconst { ERR_INVALID_FD\x2C ERR_TTY_INIT_FAILED } = errors.codes;\nconst {\n getColorDepth\x2C\n hasColors\n} = require('internal/tty');\n\n// Lazy loaded for startup performance.\nlet readline;\n\nfunction isatty(fd) {\n return NumberIsInteger(fd) && fd >= 0 && fd <= 2147483647 &&\n isTTY(fd);\n}\n\nfunction ReadStream(fd\x2C options) {\n if (!(this instanceof ReadStream))\n return new ReadStream(fd\x2C options);\n if (fd >> 0 !== fd || fd < 0)\n throw new ERR_INVALID_FD(fd);\n\n const ctx = {};\n const tty = new TTY(fd\x2C true\x2C ctx);\n if (ctx.code !== undefined) {\n throw new ERR_TTY_INIT_FAILED(ctx);\n }\n\n net.Socket.call(this\x2C {\n highWaterMark: 0\x2C\n readable: true\x2C\n writable: false\x2C\n handle: tty\x2C\n ...options\n });\n\n this.isRaw = false;\n this.isTTY = true;\n}\n\nObjectSetPrototypeOf(ReadStream.prototype\x2C net.Socket.prototype);\nObjectSetPrototypeOf(ReadStream\x2C net.Socket);\n\nReadStream.prototype.setRawMode = function(flag) {\n flag = !!flag;\n const err = this._handle.setRawMode(flag);\n if (err) {\n this.emit('error'\x2C errors.errnoException(err\x2C 'setRawMode'));\n return this;\n }\n this.isRaw = flag;\n return this;\n};\n\nfunction WriteStream(fd) {\n if (!(this instanceof WriteStream))\n return new WriteStream(fd);\n if (fd >> 0 !== fd || fd < 0)\n throw new ERR_INVALID_FD(fd);\n\n const ctx = {};\n const tty = new TTY(fd\x2C false\x2C ctx);\n if (ctx.code !== undefined) {\n throw new ERR_TTY_INIT_FAILED(ctx);\n }\n\n net.Socket.call(this\x2C {\n handle: tty\x2C\n readable: false\x2C\n writable: true\n });\n\n // Prevents interleaved or dropped stdout/stderr output for terminals.\n // As noted in the following reference\x2C local TTYs tend to be quite fast and\n // this behavior has become expected due historical functionality on OS X\x2C\n // even though it was originally intended to change in v1.0.2 (Libuv 1.2.1).\n // Ref: https://github.com/nodejs/node/pull/1771#issuecomment-119351671\n this._handle.setBlocking(true);\n\n const winSize = new Array(2);\n const err = this._handle.getWindowSize(winSize);\n if (!err) {\n this.columns = winSize[0];\n this.rows = winSize[1];\n }\n}\n\nObjectSetPrototypeOf(WriteStream.prototype\x2C net.Socket.prototype);\nObjectSetPrototypeOf(WriteStream\x2C net.Socket);\n\nWriteStream.prototype.isTTY = true;\n\nWriteStream.prototype.getColorDepth = getColorDepth;\n\nWriteStream.prototype.hasColors = hasColors;\n\nWriteStream.prototype._refreshSize = function() {\n const oldCols = this.columns;\n const oldRows = this.rows;\n const winSize = new Array(2);\n const err = this._handle.getWindowSize(winSize);\n if (err) {\n this.emit('error'\x2C errors.errnoException(err\x2C 'getWindowSize'));\n return;\n }\n const { 0: newCols\x2C 1: newRows } = winSize;\n if (oldCols !== newCols || oldRows !== newRows) {\n this.columns = newCols;\n this.rows = newRows;\n this.emit('resize');\n }\n};\n\n// Backwards-compat\nWriteStream.prototype.cursorTo = function(x\x2C y\x2C callback) {\n if (readline === undefined) readline = require('readline');\n return readline.cursorTo(this\x2C x\x2C y\x2C callback);\n};\nWriteStream.prototype.moveCursor = function(dx\x2C dy\x2C callback) {\n if (readline === undefined) readline = require('readline');\n return readline.moveCursor(this\x2C dx\x2C dy\x2C callback);\n};\nWriteStream.prototype.clearLine = function(dir\x2C callback) {\n if (readline === undefined) readline = require('readline');\n return readline.clearLine(this\x2C dir\x2C callback);\n};\nWriteStream.prototype.clearScreenDown = function(callback) {\n if (readline === undefined) readline = require('readline');\n return readline.clearScreenDown(this\x2C callback);\n};\nWriteStream.prototype.getWindowSize = function() {\n return [this.columns\x2C this.rows];\n};\n\nmodule.exports = { isatty\x2C ReadStream\x2C WriteStream };\n code-source-info,0xe1ea49c3ede,121,0,5065,C0O0C4O5065,, code-creation,Function,10,36370,0xe1ea49c45b6,426, node:tty:1:1,0xe1ea49c3e58,~ code-source-info,0xe1ea49c45b6,121,0,5065,C0O0C53O1159C59O1168C65O1187C70O1239C76O1239C80O1239C82O1278C85O1278C90O1263C96O1268C102O1322C108O1322C112O1322C114O1398C117O1405C122O1358C128O1374C134O1453C140O1453C145O1422C150O1439C155O1523C156O1523C158O2128C161O2160C169O2175C174O2182C179O2128C184O2194C190O2231C195O2194C200O2241C203O2252C212O2273C216O3462C219O3495C227O3510C232O3517C237O3462C242O3529C248O3567C253O3529C258O3577C261O3589C267O3605C271O3614C274O3626C281O3650C285O3668C288O3680C295O3700C299O3714C302O3726C311O3749C315O4210C318O4222C327O4241C331O4385C334O4397C343O4418C347O4568C350O4580C359O4600C363O4743C366O4755C375O4781C379O4920C382O4932C391O4956C395O5011C402O5030C408O5038C414O5050C420O5026C425O5064,, code-creation,Eval,10,36987,0xe1ea49c69f6,5, node:net:1:1,0xe1ea49c6218,~ script-source,122,node:net,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n ArrayIsArray\x2C\n ArrayPrototypeIndexOf\x2C\n Boolean\x2C\n Error\x2C\n Number\x2C\n NumberIsNaN\x2C\n NumberParseInt\x2C\n ObjectDefineProperty\x2C\n ObjectSetPrototypeOf\x2C\n Symbol\x2C\n} = primordials;\n\nconst EventEmitter = require('events');\nconst stream = require('stream');\nlet debug = require('internal/util/debuglog').debuglog('net'\x2C (fn) => {\n debug = fn;\n});\nconst {\n isIP\x2C\n isIPv4\x2C\n isIPv6\x2C\n normalizedArgsSymbol\x2C\n makeSyncWrite\n} = require('internal/net');\nconst assert = require('internal/assert');\nconst {\n UV_EADDRINUSE\x2C\n UV_EINVAL\x2C\n UV_ENOTCONN\n} = internalBinding('uv');\n\nconst { Buffer } = require('buffer');\nconst { guessHandleType } = internalBinding('util');\nconst { ShutdownWrap } = internalBinding('stream_wrap');\nconst {\n TCP\x2C\n TCPConnectWrap\x2C\n constants: TCPConstants\n} = internalBinding('tcp_wrap');\nconst {\n Pipe\x2C\n PipeConnectWrap\x2C\n constants: PipeConstants\n} = internalBinding('pipe_wrap');\nconst {\n newAsyncId\x2C\n defaultTriggerAsyncIdScope\x2C\n symbols: { async_id_symbol\x2C owner_symbol }\n} = require('internal/async_hooks');\nconst {\n writevGeneric\x2C\n writeGeneric\x2C\n onStreamRead\x2C\n kAfterAsyncWrite\x2C\n kHandle\x2C\n kUpdateTimer\x2C\n setStreamTimeout\x2C\n kBuffer\x2C\n kBufferCb\x2C\n kBufferGen\n} = require('internal/stream_base_commons');\nconst {\n codes: {\n ERR_INVALID_ADDRESS_FAMILY\x2C\n ERR_INVALID_ARG_TYPE\x2C\n ERR_INVALID_ARG_VALUE\x2C\n ERR_INVALID_FD_TYPE\x2C\n ERR_INVALID_IP_ADDRESS\x2C\n ERR_SERVER_ALREADY_LISTEN\x2C\n ERR_SERVER_NOT_RUNNING\x2C\n ERR_SOCKET_CLOSED\x2C\n ERR_MISSING_ARGS\x2C\n }\x2C\n errnoException\x2C\n exceptionWithHostPort\x2C\n uvExceptionWithHostPort\n} = require('internal/errors');\nconst { isUint8Array } = require('internal/util/types');\nconst {\n validateAbortSignal\x2C\n validateFunction\x2C\n validateInt32\x2C\n validateNumber\x2C\n validatePort\x2C\n validateString\n} = require('internal/validators');\nconst kLastWriteQueueSize = Symbol('lastWriteQueueSize');\nconst {\n DTRACE_NET_SERVER_CONNECTION\x2C\n DTRACE_NET_STREAM_END\n} = require('internal/dtrace');\n\n// Lazy loaded to improve startup performance.\nlet cluster;\nlet dns;\nlet BlockList;\nlet SocketAddress;\n\nconst { clearTimeout } = require('timers');\nconst { kTimeout } = require('internal/timers');\n\nconst DEFAULT_IPV4_ADDR = '0.0.0.0';\nconst DEFAULT_IPV6_ADDR = '::';\n\nconst isWindows = process.platform === 'win32';\n\nconst noop = () => {};\n\nfunction getFlags(ipv6Only) {\n return ipv6Only === true ? TCPConstants.UV_TCP_IPV6ONLY : 0;\n}\n\nfunction createHandle(fd\x2C is_server) {\n validateInt32(fd\x2C 'fd'\x2C 0);\n const type = guessHandleType(fd);\n if (type === 'PIPE') {\n return new Pipe(\n is_server ? PipeConstants.SERVER : PipeConstants.SOCKET\n );\n }\n\n if (type === 'TCP') {\n return new TCP(\n is_server ? TCPConstants.SERVER : TCPConstants.SOCKET\n );\n }\n\n throw new ERR_INVALID_FD_TYPE(type);\n}\n\n\nfunction getNewAsyncId(handle) {\n return (!handle || typeof handle.getAsyncId !== 'function') ?\n newAsyncId() : handle.getAsyncId();\n}\n\n\nfunction isPipeName(s) {\n return typeof s === 'string' && toNumber(s) === false;\n}\n\n/**\n * Creates a new TCP or IPC server\n * @param {{\n * allowHalfOpen?: boolean;\n * pauseOnConnect?: boolean;\n * }} [options]\n * @param {Function} [connectionListener]\n * @returns {Server}\n */\n\nfunction createServer(options\x2C connectionListener) {\n return new Server(options\x2C connectionListener);\n}\n\n\n// Target API:\n//\n// let s = net.connect({port: 80\x2C host: 'google.com'}\x2C function() {\n// ...\n// });\n//\n// There are various forms:\n//\n// connect(options\x2C [cb])\n// connect(port\x2C [host]\x2C [cb])\n// connect(path\x2C [cb]);\n//\nfunction connect(...args) {\n const normalized = normalizeArgs(args);\n const options = normalized[0];\n debug('createConnection'\x2C normalized);\n const socket = new Socket(options);\n\n if (options.timeout) {\n socket.setTimeout(options.timeout);\n }\n\n return socket.connect(normalized);\n}\n\n\n// Returns an array [options\x2C cb]\x2C where options is an object\x2C\n// cb is either a function or null.\n// Used to normalize arguments of Socket.prototype.connect() and\n// Server.prototype.listen(). Possible combinations of parameters:\n// (options[...][\x2C cb])\n// (path[...][\x2C cb])\n// ([port][\x2C host][...][\x2C cb])\n// For Socket.prototype.connect()\x2C the [...] part is ignored\n// For Server.prototype.listen()\x2C the [...] part is [\x2C backlog]\n// but will not be handled here (handled in listen())\nfunction normalizeArgs(args) {\n let arr;\n\n if (args.length === 0) {\n arr = [{}\x2C null];\n arr[normalizedArgsSymbol] = true;\n return arr;\n }\n\n const arg0 = args[0];\n let options = {};\n if (typeof arg0 === 'object' && arg0 !== null) {\n // (options[...][\x2C cb])\n options = arg0;\n } else if (isPipeName(arg0)) {\n // (path[...][\x2C cb])\n options.path = arg0;\n } else {\n // ([port][\x2C host][...][\x2C cb])\n options.port = arg0;\n if (args.length > 1 && typeof args[1] === 'string') {\n options.host = args[1];\n }\n }\n\n const cb = args[args.length - 1];\n if (typeof cb !== 'function')\n arr = [options\x2C null];\n else\n arr = [options\x2C cb];\n\n arr[normalizedArgsSymbol] = true;\n return arr;\n}\n\n\n// Called when creating new Socket\x2C or when re-using a closed Socket\nfunction initSocketHandle(self) {\n self._undestroy();\n self._sockname = null;\n\n // Handle creation may be deferred to bind() or connect() time.\n if (self._handle) {\n self._handle[owner_symbol] = self;\n self._handle.onread = onStreamRead;\n self[async_id_symbol] = getNewAsyncId(self._handle);\n\n let userBuf = self[kBuffer];\n if (userBuf) {\n const bufGen = self[kBufferGen];\n if (bufGen !== null) {\n userBuf = bufGen();\n if (!isUint8Array(userBuf))\n return;\n self[kBuffer] = userBuf;\n }\n self._handle.useUserBuffer(userBuf);\n }\n }\n}\n\n\nconst kBytesRead = Symbol('kBytesRead');\nconst kBytesWritten = Symbol('kBytesWritten');\nconst kSetNoDelay = Symbol('kSetNoDelay');\n\nfunction Socket(options) {\n if (!(this instanceof Socket)) return new Socket(options);\n if (options?.objectMode) {\n throw new ERR_INVALID_ARG_VALUE(\n 'options.objectMode'\x2C\n options.objectMode\x2C\n 'is not supported'\n );\n } else if (options?.readableObjectMode || options?.writableObjectMode) {\n throw new ERR_INVALID_ARG_VALUE(\n `options.${\n options.readableObjectMode ? 'readableObjectMode' : 'writableObjectMode'\n }`\x2C\n options.readableObjectMode || options.writableObjectMode\x2C\n 'is not supported'\n );\n }\n\n this.connecting = false;\n // Problem with this is that users can supply their own handle\x2C that may not\n // have _handle.getAsyncId(). In this case an[async_id_symbol] should\n // probably be supplied by async_hooks.\n this[async_id_symbol] = -1;\n this._hadError = false;\n this[kHandle] = null;\n this._parent = null;\n this._host = null;\n this[kSetNoDelay] = false;\n this[kLastWriteQueueSize] = 0;\n this[kTimeout] = null;\n this[kBuffer] = null;\n this[kBufferCb] = null;\n this[kBufferGen] = null;\n\n if (typeof options === 'number')\n options = { fd: options }; // Legacy interface.\n else\n options = { ...options };\n\n // Default to *not* allowing half open sockets.\n options.allowHalfOpen = Boolean(options.allowHalfOpen);\n // For backwards compat do not emit close on destroy.\n options.emitClose = false;\n options.autoDestroy = true;\n // Handle strings directly.\n options.decodeStrings = false;\n stream.Duplex.call(this\x2C options);\n\n if (options.handle) {\n this._handle = options.handle; // private\n this[async_id_symbol] = getNewAsyncId(this._handle);\n } else if (options.fd !== undefined) {\n const { fd } = options;\n let err;\n\n // createHandle will throw ERR_INVALID_FD_TYPE if `fd` is not\n // a valid `PIPE` or `TCP` descriptor\n this._handle = createHandle(fd\x2C false);\n\n err = this._handle.open(fd);\n\n // While difficult to fabricate\x2C in some architectures\n // `open` may return an error code for valid file descriptors\n // which cannot be opened. This is difficult to test as most\n // un-openable fds will throw on `createHandle`\n if (err)\n throw errnoException(err\x2C 'open');\n\n this[async_id_symbol] = this._handle.getAsyncId();\n\n if ((fd === 1 || fd === 2) &&\n (this._handle instanceof Pipe) && isWindows) {\n // Make stdout and stderr blocking on Windows\n err = this._handle.setBlocking(true);\n if (err)\n throw errnoException(err\x2C 'setBlocking');\n\n this._writev = null;\n this._write = makeSyncWrite(fd);\n // makeSyncWrite adjusts this value like the original handle would\x2C so\n // we need to let it do that by turning it into a writable\x2C own\n // property.\n ObjectDefineProperty(this._handle\x2C 'bytesWritten'\x2C {\n value: 0\x2C writable: true\n });\n }\n }\n\n const onread = options.onread;\n if (onread !== null && typeof onread === 'object' &&\n (isUint8Array(onread.buffer) || typeof onread.buffer === 'function') &&\n typeof onread.callback === 'function') {\n if (typeof onread.buffer === 'function') {\n this[kBuffer] = true;\n this[kBufferGen] = onread.buffer;\n } else {\n this[kBuffer] = onread.buffer;\n }\n this[kBufferCb] = onread.callback;\n }\n\n // Shut down the socket when we're finished with it.\n this.on('end'\x2C onReadableStreamEnd);\n\n initSocketHandle(this);\n\n this._pendingData = null;\n this._pendingEncoding = '';\n\n // If we have a handle\x2C then start the flow of data into the\n // buffer. if not\x2C then this will happen when we connect\n if (this._handle && options.readable !== false) {\n if (options.pauseOnCreate) {\n // Stop the handle from reading and pause the stream\n this._handle.reading = false;\n this._handle.readStop();\n this.readableFlowing = false;\n } else if (!options.manualStart) {\n this.read(0);\n }\n }\n\n // Reserve properties\n this.server = null;\n this._server = null;\n\n // Used after `.destroy()`\n this[kBytesRead] = 0;\n this[kBytesWritten] = 0;\n}\nObjectSetPrototypeOf(Socket.prototype\x2C stream.Duplex.prototype);\nObjectSetPrototypeOf(Socket\x2C stream.Duplex);\n\n// Refresh existing timeouts.\nSocket.prototype._unrefTimer = function _unrefTimer() {\n for (let s = this; s !== null; s = s._parent) {\n if (s[kTimeout])\n s[kTimeout].refresh();\n }\n};\n\n\n// The user has called .end()\x2C and all the bytes have been\n// sent out to the other side.\nSocket.prototype._final = function(cb) {\n // If still connecting - defer handling `_final` until 'connect' will happen\n if (this.pending) {\n debug('_final: not yet connected');\n return this.once('connect'\x2C () => this._final(cb));\n }\n\n if (!this._handle)\n return cb();\n\n debug('_final: not ended\x2C call shutdown()');\n\n const req = new ShutdownWrap();\n req.oncomplete = afterShutdown;\n req.handle = this._handle;\n req.callback = cb;\n const err = this._handle.shutdown(req);\n\n if (err === 1 || err === UV_ENOTCONN) // synchronous finish\n return cb();\n else if (err !== 0)\n return cb(errnoException(err\x2C 'shutdown'));\n};\n\nfunction afterShutdown() {\n const self = this.handle[owner_symbol];\n\n debug('afterShutdown destroyed=%j'\x2C self.destroyed\x2C\n self._readableState);\n\n this.callback();\n}\n\n// Provide a better error message when we call end() as a result\n// of the other side sending a FIN. The standard 'write after end'\n// is overly vague\x2C and makes it seem like the user's code is to blame.\nfunction writeAfterFIN(chunk\x2C encoding\x2C cb) {\n if (!this.writableEnded) {\n return stream.Duplex.prototype.write.call(this\x2C chunk\x2C encoding\x2C cb);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n const er = new Error('This socket has been ended by the other party');\n er.code = 'EPIPE';\n if (typeof cb === 'function') {\n defaultTriggerAsyncIdScope(this[async_id_symbol]\x2C process.nextTick\x2C cb\x2C er);\n }\n this.destroy(er);\n\n return false;\n}\n\nSocket.prototype.setTimeout = setStreamTimeout;\n\n\nSocket.prototype._onTimeout = function() {\n const handle = this._handle;\n const lastWriteQueueSize = this[kLastWriteQueueSize];\n if (lastWriteQueueSize > 0 && handle) {\n // `lastWriteQueueSize !== writeQueueSize` means there is\n // an active write in progress\x2C so we suppress the timeout.\n const { writeQueueSize } = handle;\n if (lastWriteQueueSize !== writeQueueSize) {\n this[kLastWriteQueueSize] = writeQueueSize;\n this._unrefTimer();\n return;\n }\n }\n debug('_onTimeout');\n this.emit('timeout');\n};\n\n\nSocket.prototype.setNoDelay = function(enable) {\n if (!this._handle) {\n this.once('connect'\x2C\n enable ? this.setNoDelay : () => this.setNoDelay(enable));\n return this;\n }\n\n // Backwards compatibility: assume true when `enable` is omitted\n const newValue = enable === undefined ? true : !!enable;\n if (this._handle.setNoDelay && newValue !== this[kSetNoDelay]) {\n this[kSetNoDelay] = newValue;\n this._handle.setNoDelay(newValue);\n }\n\n return this;\n};\n\n\nSocket.prototype.setKeepAlive = function(setting\x2C msecs) {\n if (!this._handle) {\n this.once('connect'\x2C () => this.setKeepAlive(setting\x2C msecs));\n return this;\n }\n\n if (this._handle.setKeepAlive)\n this._handle.setKeepAlive(setting\x2C ~~(msecs / 1000));\n\n return this;\n};\n\n\nSocket.prototype.address = function() {\n return this._getsockname();\n};\n\n\nObjectDefineProperty(Socket.prototype\x2C '_connecting'\x2C {\n get: function() {\n return this.connecting;\n }\n});\n\nObjectDefineProperty(Socket.prototype\x2C 'pending'\x2C {\n get() {\n return !this._handle || this.connecting;\n }\x2C\n configurable: true\n});\n\n\nObjectDefineProperty(Socket.prototype\x2C 'readyState'\x2C {\n get: function() {\n if (this.connecting) {\n return 'opening';\n } else if (this.readable && this.writable) {\n return 'open';\n } else if (this.readable && !this.writable) {\n return 'readOnly';\n } else if (!this.readable && this.writable) {\n return 'writeOnly';\n }\n return 'closed';\n }\n});\n\n\nObjectDefineProperty(Socket.prototype\x2C 'bufferSize'\x2C {\n get: function() {\n if (this._handle) {\n return this.writableLength;\n }\n }\n});\n\nObjectDefineProperty(Socket.prototype\x2C kUpdateTimer\x2C {\n get: function() {\n return this._unrefTimer;\n }\n});\n\n\nfunction tryReadStart(socket) {\n // Not already reading\x2C start the flow\n debug('Socket._handle.readStart');\n socket._handle.reading = true;\n const err = socket._handle.readStart();\n if (err)\n socket.destroy(errnoException(err\x2C 'read'));\n}\n\n// Just call handle.readStart until we have enough in the buffer\nSocket.prototype._read = function(n) {\n debug('_read');\n\n if (this.connecting || !this._handle) {\n debug('_read wait for connection');\n this.once('connect'\x2C () => this._read(n));\n } else if (!this._handle.reading) {\n tryReadStart(this);\n }\n};\n\n\nSocket.prototype.end = function(data\x2C encoding\x2C callback) {\n stream.Duplex.prototype.end.call(this\x2C\n data\x2C encoding\x2C callback);\n DTRACE_NET_STREAM_END(this);\n return this;\n};\n\n\nSocket.prototype.pause = function() {\n if (this[kBuffer] && !this.connecting && this._handle &&\n this._handle.reading) {\n this._handle.reading = false;\n if (!this.destroyed) {\n const err = this._handle.readStop();\n if (err)\n this.destroy(errnoException(err\x2C 'read'));\n }\n }\n return stream.Duplex.prototype.pause.call(this);\n};\n\n\nSocket.prototype.resume = function() {\n if (this[kBuffer] && !this.connecting && this._handle &&\n !this._handle.reading) {\n tryReadStart(this);\n }\n return stream.Duplex.prototype.resume.call(this);\n};\n\n\nSocket.prototype.read = function(n) {\n if (this[kBuffer] && !this.connecting && this._handle &&\n !this._handle.reading) {\n tryReadStart(this);\n }\n return stream.Duplex.prototype.read.call(this\x2C n);\n};\n\n\n// Called when the 'end' event is emitted.\nfunction onReadableStreamEnd() {\n if (!this.allowHalfOpen) {\n this.write = writeAfterFIN;\n }\n}\n\n\nSocket.prototype.destroySoon = function() {\n if (this.writable)\n this.end();\n\n if (this.writableFinished)\n this.destroy();\n else\n this.once('finish'\x2C this.destroy);\n};\n\n\nSocket.prototype._destroy = function(exception\x2C cb) {\n debug('destroy');\n\n this.connecting = false;\n\n for (let s = this; s !== null; s = s._parent) {\n clearTimeout(s[kTimeout]);\n }\n\n debug('close');\n if (this._handle) {\n if (this !== process.stderr)\n debug('close handle');\n const isException = exception ? true : false;\n // `bytesRead` and `kBytesWritten` should be accessible after `.destroy()`\n this[kBytesRead] = this._handle.bytesRead;\n this[kBytesWritten] = this._handle.bytesWritten;\n\n this._handle.close(() => {\n debug('emit close');\n this.emit('close'\x2C isException);\n });\n this._handle.onread = noop;\n this._handle = null;\n this._sockname = null;\n cb(exception);\n } else {\n cb(exception);\n process.nextTick(emitCloseNT\x2C this);\n }\n\n if (this._server) {\n debug('has server');\n this._server._connections--;\n if (this._server._emitCloseIfDrained) {\n this._server._emitCloseIfDrained();\n }\n }\n};\n\nSocket.prototype._getpeername = function() {\n if (!this._handle || !this._handle.getpeername) {\n return this._peername || {};\n } else if (!this._peername) {\n this._peername = {};\n // FIXME(bnoordhuis) Throw when the return value is not 0?\n this._handle.getpeername(this._peername);\n }\n return this._peername;\n};\n\nfunction protoGetter(name\x2C callback) {\n ObjectDefineProperty(Socket.prototype\x2C name\x2C {\n configurable: false\x2C\n enumerable: true\x2C\n get: callback\n });\n}\n\nprotoGetter('bytesRead'\x2C function bytesRead() {\n return this._handle ? this._handle.bytesRead : this[kBytesRead];\n});\n\nprotoGetter('remoteAddress'\x2C function remoteAddress() {\n return this._getpeername().address;\n});\n\nprotoGetter('remoteFamily'\x2C function remoteFamily() {\n return this._getpeername().family;\n});\n\nprotoGetter('remotePort'\x2C function remotePort() {\n return this._getpeername().port;\n});\n\n\nSocket.prototype._getsockname = function() {\n if (!this._handle || !this._handle.getsockname) {\n return {};\n } else if (!this._sockname) {\n this._sockname = {};\n // FIXME(bnoordhuis) Throw when the return value is not 0?\n this._handle.getsockname(this._sockname);\n }\n return this._sockname;\n};\n\n\nprotoGetter('localAddress'\x2C function localAddress() {\n return this._getsockname().address;\n});\n\n\nprotoGetter('localPort'\x2C function localPort() {\n return this._getsockname().port;\n});\n\n\nSocket.prototype[kAfterAsyncWrite] = function() {\n this[kLastWriteQueueSize] = 0;\n};\n\nSocket.prototype._writeGeneric = function(writev\x2C data\x2C encoding\x2C cb) {\n // If we are still connecting\x2C then buffer this for later.\n // The Writable logic will buffer up any more writes while\n // waiting for this one to be done.\n if (this.connecting) {\n this._pendingData = data;\n this._pendingEncoding = encoding;\n this.once('connect'\x2C function connect() {\n this._writeGeneric(writev\x2C data\x2C encoding\x2C cb);\n });\n return;\n }\n this._pendingData = null;\n this._pendingEncoding = '';\n\n if (!this._handle) {\n cb(new ERR_SOCKET_CLOSED());\n return false;\n }\n\n this._unrefTimer();\n\n let req;\n if (writev)\n req = writevGeneric(this\x2C data\x2C cb);\n else\n req = writeGeneric(this\x2C data\x2C encoding\x2C cb);\n if (req.async)\n this[kLastWriteQueueSize] = req.bytes;\n};\n\n\nSocket.prototype._writev = function(chunks\x2C cb) {\n this._writeGeneric(true\x2C chunks\x2C ''\x2C cb);\n};\n\n\nSocket.prototype._write = function(data\x2C encoding\x2C cb) {\n this._writeGeneric(false\x2C data\x2C encoding\x2C cb);\n};\n\n\n// Legacy alias. Having this is probably being overly cautious\x2C but it doesn't\n// really hurt anyone either. This can probably be removed safely if desired.\nprotoGetter('_bytesDispatched'\x2C function _bytesDispatched() {\n return this._handle ? this._handle.bytesWritten : this[kBytesWritten];\n});\n\nprotoGetter('bytesWritten'\x2C function bytesWritten() {\n let bytes = this._bytesDispatched;\n const data = this._pendingData;\n const encoding = this._pendingEncoding;\n const writableBuffer = this.writableBuffer;\n\n if (!writableBuffer)\n return undefined;\n\n for (const el of writableBuffer) {\n bytes += el.chunk instanceof Buffer ?\n el.chunk.length :\n Buffer.byteLength(el.chunk\x2C el.encoding);\n }\n\n if (ArrayIsArray(data)) {\n // Was a writev\x2C iterate over chunks to get total length\n for (let i = 0; i < data.length; i++) {\n const chunk = data[i];\n\n if (data.allBuffers || chunk instanceof Buffer)\n bytes += chunk.length;\n else\n bytes += Buffer.byteLength(chunk.chunk\x2C chunk.encoding);\n }\n } else if (data) {\n // Writes are either a string or a Buffer.\n if (typeof data !== 'string')\n bytes += data.length;\n else\n bytes += Buffer.byteLength(data\x2C encoding);\n }\n\n return bytes;\n});\n\n\nfunction checkBindError(err\x2C port\x2C handle) {\n // EADDRINUSE may not be reported until we call listen() or connect().\n // To complicate matters\x2C a failed bind() followed by listen() or connect()\n // will implicitly bind to a random port. Ergo\x2C check that the socket is\n // bound to the expected port before calling listen() or connect().\n //\n // FIXME(bnoordhuis) Doesn't work for pipe handles\x2C they don't have a\n // getsockname() method. Non-issue for now\x2C the cluster module doesn't\n // really support pipes anyway.\n if (err === 0 && port > 0 && handle.getsockname) {\n const out = {};\n err = handle.getsockname(out);\n if (err === 0 && port !== out.port) {\n debug(`checkBindError\x2C bound to ${out.port} instead of ${port}`);\n err = UV_EADDRINUSE;\n }\n }\n return err;\n}\n\n\nfunction internalConnect(\n self\x2C address\x2C port\x2C addressType\x2C localAddress\x2C localPort\x2C flags) {\n // TODO return promise from Socket.prototype.connect which\n // wraps _connectReq.\n\n assert(self.connecting);\n\n let err;\n\n if (localAddress || localPort) {\n if (addressType === 4) {\n localAddress = localAddress || DEFAULT_IPV4_ADDR;\n err = self._handle.bind(localAddress\x2C localPort);\n } else { // addressType === 6\n localAddress = localAddress || DEFAULT_IPV6_ADDR;\n err = self._handle.bind6(localAddress\x2C localPort\x2C flags);\n }\n debug('binding to localAddress: %s and localPort: %d (addressType: %d)'\x2C\n localAddress\x2C localPort\x2C addressType);\n\n err = checkBindError(err\x2C localPort\x2C self._handle);\n if (err) {\n const ex = exceptionWithHostPort(err\x2C 'bind'\x2C localAddress\x2C localPort);\n self.destroy(ex);\n return;\n }\n }\n\n if (addressType === 6 || addressType === 4) {\n const req = new TCPConnectWrap();\n req.oncomplete = afterConnect;\n req.address = address;\n req.port = port;\n req.localAddress = localAddress;\n req.localPort = localPort;\n\n if (addressType === 4)\n err = self._handle.connect(req\x2C address\x2C port);\n else\n err = self._handle.connect6(req\x2C address\x2C port);\n } else {\n const req = new PipeConnectWrap();\n req.address = address;\n req.oncomplete = afterConnect;\n\n err = self._handle.connect(req\x2C address\x2C afterConnect);\n }\n\n if (err) {\n const sockname = self._getsockname();\n let details;\n\n if (sockname) {\n details = sockname.address + ':' + sockname.port;\n }\n\n const ex = exceptionWithHostPort(err\x2C 'connect'\x2C address\x2C port\x2C details);\n self.destroy(ex);\n }\n}\n\n\nSocket.prototype.connect = function(...args) {\n let normalized;\n // If passed an array\x2C it's treated as an array of arguments that have\n // already been normalized (so we don't normalize more than once). This has\n // been solved before in https://github.com/nodejs/node/pull/12342\x2C but was\n // reverted as it had unintended side effects.\n if (ArrayIsArray(args[0]) && args[0][normalizedArgsSymbol]) {\n normalized = args[0];\n } else {\n normalized = normalizeArgs(args);\n }\n const options = normalized[0];\n const cb = normalized[1];\n\n // options.port === null will be checked later.\n if (options.port === undefined && options.path == null)\n throw new ERR_MISSING_ARGS(['options'\x2C 'port'\x2C 'path']);\n\n if (this.write !== Socket.prototype.write)\n this.write = Socket.prototype.write;\n\n if (this.destroyed) {\n this._handle = null;\n this._peername = null;\n this._sockname = null;\n }\n\n const { path } = options;\n const pipe = !!path;\n debug('pipe'\x2C pipe\x2C path);\n\n if (!this._handle) {\n this._handle = pipe ?\n new Pipe(PipeConstants.SOCKET) :\n new TCP(TCPConstants.SOCKET);\n initSocketHandle(this);\n }\n\n if (cb !== null) {\n this.once('connect'\x2C cb);\n }\n\n this._unrefTimer();\n\n this.connecting = true;\n\n if (pipe) {\n validateString(path\x2C 'options.path');\n defaultTriggerAsyncIdScope(\n this[async_id_symbol]\x2C internalConnect\x2C this\x2C path\n );\n } else {\n lookupAndConnect(this\x2C options);\n }\n return this;\n};\n\n\nfunction lookupAndConnect(self\x2C options) {\n const { localAddress\x2C localPort } = options;\n const host = options.host || 'localhost';\n let { port } = options;\n\n if (localAddress && !isIP(localAddress)) {\n throw new ERR_INVALID_IP_ADDRESS(localAddress);\n }\n\n if (localPort) {\n validateNumber(localPort\x2C 'options.localPort');\n }\n\n if (typeof port !== 'undefined') {\n if (typeof port !== 'number' && typeof port !== 'string') {\n throw new ERR_INVALID_ARG_TYPE('options.port'\x2C\n ['number'\x2C 'string']\x2C port);\n }\n validatePort(port);\n }\n port |= 0;\n\n // If host is an IP\x2C skip performing a lookup\n const addressType = isIP(host);\n if (addressType) {\n defaultTriggerAsyncIdScope(self[async_id_symbol]\x2C process.nextTick\x2C () => {\n if (self.connecting)\n defaultTriggerAsyncIdScope(\n self[async_id_symbol]\x2C\n internalConnect\x2C\n self\x2C host\x2C port\x2C addressType\x2C localAddress\x2C localPort\n );\n });\n return;\n }\n\n if (options.lookup !== undefined)\n validateFunction(options.lookup\x2C 'options.lookup');\n\n if (dns === undefined) dns = require('dns');\n const dnsopts = {\n family: options.family\x2C\n hints: options.hints || 0\n };\n\n if (!isWindows &&\n dnsopts.family !== 4 &&\n dnsopts.family !== 6 &&\n dnsopts.hints === 0) {\n dnsopts.hints = dns.ADDRCONFIG;\n }\n\n debug('connect: find host'\x2C host);\n debug('connect: dns options'\x2C dnsopts);\n self._host = host;\n const lookup = options.lookup || dns.lookup;\n defaultTriggerAsyncIdScope(self[async_id_symbol]\x2C function() {\n lookup(host\x2C dnsopts\x2C function emitLookup(err\x2C ip\x2C addressType) {\n self.emit('lookup'\x2C err\x2C ip\x2C addressType\x2C host);\n\n // It's possible we were destroyed while looking this up.\n // XXX it would be great if we could cancel the promise returned by\n // the look up.\n if (!self.connecting) return;\n\n if (err) {\n // net.createConnection() creates a net.Socket object and immediately\n // calls net.Socket.connect() on it (that's us). There are no event\n // listeners registered yet so defer the error event to the next tick.\n process.nextTick(connectErrorNT\x2C self\x2C err);\n } else if (!isIP(ip)) {\n err = new ERR_INVALID_IP_ADDRESS(ip);\n process.nextTick(connectErrorNT\x2C self\x2C err);\n } else if (addressType !== 4 && addressType !== 6) {\n err = new ERR_INVALID_ADDRESS_FAMILY(addressType\x2C\n options.host\x2C\n options.port);\n process.nextTick(connectErrorNT\x2C self\x2C err);\n } else {\n self._unrefTimer();\n defaultTriggerAsyncIdScope(\n self[async_id_symbol]\x2C\n internalConnect\x2C\n self\x2C ip\x2C port\x2C addressType\x2C localAddress\x2C localPort\n );\n }\n });\n });\n}\n\n\nfunction connectErrorNT(self\x2C err) {\n self.destroy(err);\n}\n\n\nSocket.prototype.ref = function() {\n if (!this._handle) {\n this.once('connect'\x2C this.ref);\n return this;\n }\n\n if (typeof this._handle.ref === 'function') {\n this._handle.ref();\n }\n\n return this;\n};\n\n\nSocket.prototype.unref = function() {\n if (!this._handle) {\n this.once('connect'\x2C this.unref);\n return this;\n }\n\n if (typeof this._handle.unref === 'function') {\n this._handle.unref();\n }\n\n return this;\n};\n\n\nfunction afterConnect(status\x2C handle\x2C req\x2C readable\x2C writable) {\n let self = handle[owner_symbol];\n\n if (self.constructor.name === 'ReusedHandle') {\n self = self.handle;\n }\n\n // Callback may come after call to destroy\n if (self.destroyed) {\n return;\n }\n\n debug('afterConnect');\n\n assert(self.connecting);\n self.connecting = false;\n self._sockname = null;\n\n if (status === 0) {\n if (self.readable && !readable) {\n self.push(null);\n self.read();\n }\n if (self.writable && !writable) {\n self.end();\n }\n self._unrefTimer();\n\n self.emit('connect');\n self.emit('ready');\n\n // Start the first read\x2C or get an immediate EOF.\n // this doesn't actually consume any bytes\x2C because len=0.\n if (readable && !self.isPaused())\n self.read(0);\n\n } else {\n self.connecting = false;\n let details;\n if (req.localAddress && req.localPort) {\n details = req.localAddress + ':' + req.localPort;\n }\n const ex = exceptionWithHostPort(status\x2C\n 'connect'\x2C\n req.address\x2C\n req.port\x2C\n details);\n if (details) {\n ex.localAddress = req.localAddress;\n ex.localPort = req.localPort;\n }\n self.destroy(ex);\n }\n}\n\nfunction addAbortSignalOption(self\x2C options) {\n if (options?.signal === undefined) {\n return;\n }\n validateAbortSignal(options.signal\x2C 'options.signal');\n const { signal } = options;\n const onAborted = () => {\n self.close();\n };\n if (signal.aborted) {\n process.nextTick(onAborted);\n } else {\n signal.addEventListener('abort'\x2C onAborted);\n self.once('close'\x2C () => signal.removeEventListener('abort'\x2C onAborted));\n }\n}\n\nfunction Server(options\x2C connectionListener) {\n if (!(this instanceof Server))\n return new Server(options\x2C connectionListener);\n\n EventEmitter.call(this);\n\n if (typeof options === 'function') {\n connectionListener = options;\n options = {};\n this.on('connection'\x2C connectionListener);\n } else if (options == null || typeof options === 'object') {\n options = { ...options };\n\n if (typeof connectionListener === 'function') {\n this.on('connection'\x2C connectionListener);\n }\n } else {\n throw new ERR_INVALID_ARG_TYPE('options'\x2C 'Object'\x2C options);\n }\n\n this._connections = 0;\n\n this[async_id_symbol] = -1;\n this._handle = null;\n this._usingWorkers = false;\n this._workers = [];\n this._unref = false;\n\n this.allowHalfOpen = options.allowHalfOpen || false;\n this.pauseOnConnect = !!options.pauseOnConnect;\n}\nObjectSetPrototypeOf(Server.prototype\x2C EventEmitter.prototype);\nObjectSetPrototypeOf(Server\x2C EventEmitter);\n\n\nfunction toNumber(x) { return (x = Number(x)) >= 0 ? x : false; }\n\n// Returns handle if it can be created\x2C or error code if it can't\nfunction createServerHandle(address\x2C port\x2C addressType\x2C fd\x2C flags) {\n let err = 0;\n // Assign handle in listen\x2C and clean up if bind or listen fails\n let handle;\n\n let isTCP = false;\n if (typeof fd === 'number' && fd >= 0) {\n try {\n handle = createHandle(fd\x2C true);\n } catch (e) {\n // Not a fd we can listen on. This will trigger an error.\n debug('listen invalid fd=%d:'\x2C fd\x2C e.message);\n return UV_EINVAL;\n }\n\n err = handle.open(fd);\n if (err)\n return err;\n\n assert(!address && !port);\n } else if (port === -1 && addressType === -1) {\n handle = new Pipe(PipeConstants.SERVER);\n if (isWindows) {\n const instances = NumberParseInt(process.env.NODE_PENDING_PIPE_INSTANCES);\n if (!NumberIsNaN(instances)) {\n handle.setPendingInstances(instances);\n }\n }\n } else {\n handle = new TCP(TCPConstants.SERVER);\n isTCP = true;\n }\n\n if (address || port || isTCP) {\n debug('bind to'\x2C address || 'any');\n if (!address) {\n // Try binding to ipv6 first\n err = handle.bind6(DEFAULT_IPV6_ADDR\x2C port\x2C flags);\n if (err) {\n handle.close();\n // Fallback to ipv4\n return createServerHandle(DEFAULT_IPV4_ADDR\x2C port);\n }\n } else if (addressType === 6) {\n err = handle.bind6(address\x2C port\x2C flags);\n } else {\n err = handle.bind(address\x2C port);\n }\n }\n\n if (err) {\n handle.close();\n return err;\n }\n\n return handle;\n}\n\nfunction setupListenHandle(address\x2C port\x2C addressType\x2C backlog\x2C fd\x2C flags) {\n debug('setupListenHandle'\x2C address\x2C port\x2C addressType\x2C backlog\x2C fd);\n\n // If there is not yet a handle\x2C we need to create one and bind.\n // In the case of a server sent via IPC\x2C we don't need to do this.\n if (this._handle) {\n debug('setupListenHandle: have a handle already');\n } else {\n debug('setupListenHandle: create a handle');\n\n let rval = null;\n\n // Try to bind to the unspecified IPv6 address\x2C see if IPv6 is available\n if (!address && typeof fd !== 'number') {\n rval = createServerHandle(DEFAULT_IPV6_ADDR\x2C port\x2C 6\x2C fd\x2C flags);\n\n if (typeof rval === 'number') {\n rval = null;\n address = DEFAULT_IPV4_ADDR;\n addressType = 4;\n } else {\n address = DEFAULT_IPV6_ADDR;\n addressType = 6;\n }\n }\n\n if (rval === null)\n rval = createServerHandle(address\x2C port\x2C addressType\x2C fd\x2C flags);\n\n if (typeof rval === 'number') {\n const error = uvExceptionWithHostPort(rval\x2C 'listen'\x2C address\x2C port);\n process.nextTick(emitErrorNT\x2C this\x2C error);\n return;\n }\n this._handle = rval;\n }\n\n this[async_id_symbol] = getNewAsyncId(this._handle);\n this._handle.onconnection = onconnection;\n this._handle[owner_symbol] = this;\n\n // Use a backlog of 512 entries. We pass 511 to the listen() call because\n // the kernel does: backlogsize = roundup_pow_of_two(backlogsize + 1);\n // which will thus give us a backlog of 512 entries.\n const err = this._handle.listen(backlog || 511);\n\n if (err) {\n const ex = uvExceptionWithHostPort(err\x2C 'listen'\x2C address\x2C port);\n this._handle.close();\n this._handle = null;\n defaultTriggerAsyncIdScope(this[async_id_symbol]\x2C\n process.nextTick\x2C\n emitErrorNT\x2C\n this\x2C\n ex);\n return;\n }\n\n // Generate connection key\x2C this should be unique to the connection\n this._connectionKey = addressType + ':' + address + ':' + port;\n\n // Unref the handle if the server was unref'ed prior to listening\n if (this._unref)\n this.unref();\n\n defaultTriggerAsyncIdScope(this[async_id_symbol]\x2C\n process.nextTick\x2C\n emitListeningNT\x2C\n this);\n}\n\nServer.prototype._listen2 = setupListenHandle; // legacy alias\n\nfunction emitErrorNT(self\x2C err) {\n self.emit('error'\x2C err);\n}\n\n\nfunction emitListeningNT(self) {\n // Ensure handle hasn't closed\n if (self._handle)\n self.emit('listening');\n}\n\n\nfunction listenInCluster(server\x2C address\x2C port\x2C addressType\x2C\n backlog\x2C fd\x2C exclusive\x2C flags) {\n exclusive = !!exclusive;\n\n if (cluster === undefined) cluster = require('cluster');\n\n if (cluster.isPrimary || exclusive) {\n // Will create a new handle\n // _listen2 sets up the listened handle\x2C it is still named like this\n // to avoid breaking code that wraps this method\n server._listen2(address\x2C port\x2C addressType\x2C backlog\x2C fd\x2C flags);\n return;\n }\n\n const serverQuery = {\n address: address\x2C\n port: port\x2C\n addressType: addressType\x2C\n fd: fd\x2C\n flags\x2C\n };\n\n // Get the primary's server handle\x2C and listen on it\n cluster._getServer(server\x2C serverQuery\x2C listenOnPrimaryHandle);\n\n function listenOnPrimaryHandle(err\x2C handle) {\n err = checkBindError(err\x2C port\x2C handle);\n\n if (err) {\n const ex = exceptionWithHostPort(err\x2C 'bind'\x2C address\x2C port);\n return server.emit('error'\x2C ex);\n }\n\n // Reuse primary's server handle\n server._handle = handle;\n // _listen2 sets up the listened handle\x2C it is still named like this\n // to avoid breaking code that wraps this method\n server._listen2(address\x2C port\x2C addressType\x2C backlog\x2C fd\x2C flags);\n }\n}\n\n\nServer.prototype.listen = function(...args) {\n const normalized = normalizeArgs(args);\n let options = normalized[0];\n const cb = normalized[1];\n\n if (this._handle) {\n throw new ERR_SERVER_ALREADY_LISTEN();\n }\n\n if (cb !== null) {\n this.once('listening'\x2C cb);\n }\n const backlogFromArgs =\n // (handle\x2C backlog) or (path\x2C backlog) or (port\x2C backlog)\n toNumber(args.length > 1 && args[1]) ||\n toNumber(args.length > 2 && args[2]); // (port\x2C host\x2C backlog)\n\n options = options._handle || options.handle || options;\n const flags = getFlags(options.ipv6Only);\n // (handle[\x2C backlog][\x2C cb]) where handle is an object with a handle\n if (options instanceof TCP) {\n this._handle = options;\n this[async_id_symbol] = this._handle.getAsyncId();\n listenInCluster(this\x2C null\x2C -1\x2C -1\x2C backlogFromArgs);\n return this;\n }\n addAbortSignalOption(this\x2C options);\n // (handle[\x2C backlog][\x2C cb]) where handle is an object with a fd\n if (typeof options.fd === 'number' && options.fd >= 0) {\n listenInCluster(this\x2C null\x2C null\x2C null\x2C backlogFromArgs\x2C options.fd);\n return this;\n }\n\n // ([port][\x2C host][\x2C backlog][\x2C cb]) where port is omitted\x2C\n // that is\x2C listen()\x2C listen(null)\x2C listen(cb)\x2C or listen(null\x2C cb)\n // or (options[\x2C cb]) where options.port is explicitly set as undefined or\n // null\x2C bind to an arbitrary unused port\n if (args.length === 0 || typeof args[0] === 'function' ||\n (typeof options.port === 'undefined' && 'port' in options) ||\n options.port === null) {\n options.port = 0;\n }\n // ([port][\x2C host][\x2C backlog][\x2C cb]) where port is specified\n // or (options[\x2C cb]) where options.port is specified\n // or if options.port is normalized as 0 before\n let backlog;\n if (typeof options.port === 'number' || typeof options.port === 'string') {\n validatePort(options.port\x2C 'options.port');\n backlog = options.backlog || backlogFromArgs;\n // start TCP server listening on host:port\n if (options.host) {\n lookupAndListen(this\x2C options.port | 0\x2C options.host\x2C backlog\x2C\n options.exclusive\x2C flags);\n } else { // Undefined host\x2C listens on unspecified address\n // Default addressType 4 will be used to search for primary server\n listenInCluster(this\x2C null\x2C options.port | 0\x2C 4\x2C\n backlog\x2C undefined\x2C options.exclusive);\n }\n return this;\n }\n\n // (path[\x2C backlog][\x2C cb]) or (options[\x2C cb])\n // where path or options.path is a UNIX domain socket or Windows pipe\n if (options.path && isPipeName(options.path)) {\n const pipeName = this._pipeName = options.path;\n backlog = options.backlog || backlogFromArgs;\n listenInCluster(this\x2C pipeName\x2C -1\x2C -1\x2C\n backlog\x2C undefined\x2C options.exclusive);\n\n if (!this._handle) {\n // Failed and an error shall be emitted in the next tick.\n // Therefore\x2C we directly return.\n return this;\n }\n\n let mode = 0;\n if (options.readableAll === true)\n mode |= PipeConstants.UV_READABLE;\n if (options.writableAll === true)\n mode |= PipeConstants.UV_WRITABLE;\n if (mode !== 0) {\n const err = this._handle.fchmod(mode);\n if (err) {\n this._handle.close();\n this._handle = null;\n throw errnoException(err\x2C 'uv_pipe_chmod');\n }\n }\n return this;\n }\n\n if (!(('port' in options) || ('path' in options))) {\n throw new ERR_INVALID_ARG_VALUE('options'\x2C options\x2C\n 'must have the property "port" or "path"');\n }\n\n throw new ERR_INVALID_ARG_VALUE('options'\x2C options);\n};\n\nfunction lookupAndListen(self\x2C port\x2C address\x2C backlog\x2C exclusive\x2C flags) {\n if (dns === undefined) dns = require('dns');\n dns.lookup(address\x2C function doListen(err\x2C ip\x2C addressType) {\n if (err) {\n self.emit('error'\x2C err);\n } else {\n addressType = ip ? addressType : 4;\n listenInCluster(self\x2C ip\x2C port\x2C addressType\x2C\n backlog\x2C undefined\x2C exclusive\x2C flags);\n }\n });\n}\n\nObjectDefineProperty(Server.prototype\x2C 'listening'\x2C {\n get: function() {\n return !!this._handle;\n }\x2C\n configurable: true\x2C\n enumerable: true\n});\n\nServer.prototype.address = function() {\n if (this._handle && this._handle.getsockname) {\n const out = {};\n const err = this._handle.getsockname(out);\n if (err) {\n throw errnoException(err\x2C 'address');\n }\n return out;\n } else if (this._pipeName) {\n return this._pipeName;\n }\n return null;\n};\n\nfunction onconnection(err\x2C clientHandle) {\n const handle = this;\n const self = handle[owner_symbol];\n\n debug('onconnection');\n\n if (err) {\n self.emit('error'\x2C errnoException(err\x2C 'accept'));\n return;\n }\n\n if (self.maxConnections && self._connections >= self.maxConnections) {\n clientHandle.close();\n return;\n }\n\n const socket = new Socket({\n handle: clientHandle\x2C\n allowHalfOpen: self.allowHalfOpen\x2C\n pauseOnCreate: self.pauseOnConnect\x2C\n readable: true\x2C\n writable: true\n });\n\n self._connections++;\n socket.server = self;\n socket._server = self;\n\n DTRACE_NET_SERVER_CONNECTION(socket);\n self.emit('connection'\x2C socket);\n}\n\n/**\n * Gets the number of concurrent connections on the server\n * @param {Function} cb\n * @returns {Server}\n */\n\nServer.prototype.getConnections = function(cb) {\n const self = this;\n\n function end(err\x2C connections) {\n defaultTriggerAsyncIdScope(self[async_id_symbol]\x2C\n process.nextTick\x2C\n cb\x2C\n err\x2C\n connections);\n }\n\n if (!this._usingWorkers) {\n end(null\x2C this._connections);\n return this;\n }\n\n // Poll workers\n let left = this._workers.length;\n let total = this._connections;\n\n function oncount(err\x2C count) {\n if (err) {\n left = -1;\n return end(err);\n }\n\n total += count;\n if (--left === 0) return end(null\x2C total);\n }\n\n for (let n = 0; n < this._workers.length; n++) {\n this._workers[n].getConnections(oncount);\n }\n\n return this;\n};\n\n\nServer.prototype.close = function(cb) {\n if (typeof cb === 'function') {\n if (!this._handle) {\n this.once('close'\x2C function close() {\n cb(new ERR_SERVER_NOT_RUNNING());\n });\n } else {\n this.once('close'\x2C cb);\n }\n }\n\n if (this._handle) {\n this._handle.close();\n this._handle = null;\n }\n\n if (this._usingWorkers) {\n let left = this._workers.length;\n const onWorkerClose = () => {\n if (--left !== 0) return;\n\n this._connections = 0;\n this._emitCloseIfDrained();\n };\n\n // Increment connections to be sure that\x2C even if all sockets will be closed\n // during polling of workers\x2C `close` event will be emitted only once.\n this._connections++;\n\n // Poll workers\n for (let n = 0; n < this._workers.length; n++)\n this._workers[n].close(onWorkerClose);\n } else {\n this._emitCloseIfDrained();\n }\n\n return this;\n};\n\nServer.prototype._emitCloseIfDrained = function() {\n debug('SERVER _emitCloseIfDrained');\n\n if (this._handle || this._connections) {\n debug('SERVER handle? %j connections? %d'\x2C\n !!this._handle\x2C this._connections);\n return;\n }\n\n defaultTriggerAsyncIdScope(this[async_id_symbol]\x2C\n process.nextTick\x2C\n emitCloseNT\x2C\n this);\n};\n\n\nfunction emitCloseNT(self) {\n debug('SERVER: emit close');\n self.emit('close');\n}\n\n\nServer.prototype[EventEmitter.captureRejectionSymbol] = function(\n err\x2C event\x2C sock) {\n\n switch (event) {\n case 'connection':\n sock.destroy(err);\n break;\n default:\n this.emit('error'\x2C err);\n }\n};\n\n\n// Legacy alias on the C++ wrapper object. This is not public API\x2C so we may\n// want to runtime-deprecate it at some point. There's no hurry\x2C though.\nObjectDefineProperty(TCP.prototype\x2C 'owner'\x2C {\n get() { return this[owner_symbol]; }\x2C\n set(v) { return this[owner_symbol] = v; }\n});\n\nObjectDefineProperty(Socket.prototype\x2C '_handle'\x2C {\n get() { return this[kHandle]; }\x2C\n set(v) { return this[kHandle] = v; }\n});\n\nServer.prototype._setupWorker = function(socketList) {\n this._usingWorkers = true;\n this._workers.push(socketList);\n socketList.once('exit'\x2C (socketList) => {\n const index = ArrayPrototypeIndexOf(this._workers\x2C socketList);\n this._workers.splice(index\x2C 1);\n });\n};\n\nServer.prototype.ref = function() {\n this._unref = false;\n\n if (this._handle)\n this._handle.ref();\n\n return this;\n};\n\nServer.prototype.unref = function() {\n this._unref = true;\n\n if (this._handle)\n this._handle.unref();\n\n return this;\n};\n\nlet _setSimultaneousAccepts;\nlet warnSimultaneousAccepts = true;\n\nif (isWindows) {\n let simultaneousAccepts;\n\n _setSimultaneousAccepts = function(handle) {\n if (warnSimultaneousAccepts) {\n process.emitWarning(\n 'net._setSimultaneousAccepts() is deprecated and will be removed.'\x2C\n 'DeprecationWarning'\x2C 'DEP0121');\n warnSimultaneousAccepts = false;\n }\n if (handle === undefined) {\n return;\n }\n\n if (simultaneousAccepts === undefined) {\n simultaneousAccepts = (process.env.NODE_MANY_ACCEPTS &&\n process.env.NODE_MANY_ACCEPTS !== '0');\n }\n\n if (handle._simultaneousAccepts !== simultaneousAccepts) {\n handle.setSimultaneousAccepts(!!simultaneousAccepts);\n handle._simultaneousAccepts = simultaneousAccepts;\n }\n };\n} else {\n _setSimultaneousAccepts = function() {\n if (warnSimultaneousAccepts) {\n process.emitWarning(\n 'net._setSimultaneousAccepts() is deprecated and will be removed.'\x2C\n 'DeprecationWarning'\x2C 'DEP0121');\n warnSimultaneousAccepts = false;\n }\n };\n}\n\nmodule.exports = {\n _createServerHandle: createServerHandle\x2C\n _normalizeArgs: normalizeArgs\x2C\n _setSimultaneousAccepts\x2C\n get BlockList() {\n BlockList ??= require('internal/blocklist').BlockList;\n return BlockList;\n }\x2C\n get SocketAddress() {\n SocketAddress ??= require('internal/socketaddress').SocketAddress;\n return SocketAddress;\n }\x2C\n connect\x2C\n createConnection: connect\x2C\n createServer\x2C\n isIP: isIP\x2C\n isIPv4: isIPv4\x2C\n isIPv6: isIPv6\x2C\n Server\x2C\n Socket\x2C\n Stream: Socket\x2C // Legacy naming\n};\n code-source-info,0xe1ea49c69f6,122,0,47747,C0O0C4O47747,, code-creation,Function,10,37826,0xe1ea49c98c6,2513, node:net:1:1,0xe1ea49c6970,~ code-source-info,0xe1ea49c98c6,122,0,47747,C0O0C411O1159C417O1175C423O1200C429O1211C435O1220C441O1230C447O1245C453O1263C459O1287C464O1311C469O1358C475O1358C479O1358C481O1392C487O1392C491O1392C493O1423C499O1423C504O1456C518O1457C524O1423C526O1581C532O1581C537O1511C543O1519C548O1529C553O1539C559O1563C565O1621C571O1621C575O1621C577O1705C580O1705C585O1659C591O1676C597O1689C603O1748C609O1748C614O1737C620O1795C623O1795C628O1775C634O1845C637O1845C642O1828C648O1940C651O1940C656O1887C662O1894C668O1923C674O2035C677O2035C682O1979C688O1987C694O2017C700O2166C706O2166C711O2075C717O2089C728O2130C734O2147C740O2364C746O2364C751O2209C757O2226C763O2242C769O2258C774O2278C780O2289C785O2305C790O2325C796O2336C802O2349C808O2744C814O2744C819O2744C824O2428C830O2460C836O2486C842O2513C848O2538C854O2566C860O2597C866O2625C872O2648C878O2673C884O2691C890O2716C896O2797C902O2797C907O2780C913O2952C919O2952C924O2839C930O2862C936O2882C942O2899C948O2917C954O2933C960O3012C963O3012C967O3012C969O3110C975O3110C980O3052C986O3084C992O3190C993O3190C995O3203C996O3203C998O3212C999O3212C1001O3227C1002O3227C1004O3268C1010O3268C1015O3251C1021O3308C1027O3308C1032O3295C1038O3363C1040O3363C1042O3400C1044O3400C1046O3425C1049O3433C1056O3442C1059O3425C1061O3469C1065O3469C1067O6921C1070O6921C1074O6921C1076O6965C1079O6965C1083O6965C1085O7010C1088O7010C1092O7010C1094O11101C1097O11129C1105O11147C1110O11154C1115O11101C1120O11166C1126O11202C1131O11166C1136O11242C1139O11249C1148O11271C1152O11497C1155O11504C1164O11521C1168O13067C1171O13074C1178O13095C1182O13117C1185O13124C1194O13145C1198O13655C1201O13662C1210O13683C1214O14138C1217O14145C1226O14168C1230O14421C1233O14428C1242O14446C1246O14496C1252O14524C1266O14559C1274O14496C1279O14609C1285O14637C1299O14663C1307O14609C1312O14748C1318O14776C1332O14810C1340O14748C1345O15132C1351O15160C1365O15194C1373O15132C1378O15280C1384O15308C1389O15319C1395O15342C1406O15280C1411O15707C1414O15714C1423O15730C1427O15965C1430O15972C1439O15986C1443O16179C1446O16186C1455O16202C1459O16542C1462O16549C1471O16566C1475O16756C1478O16763C1487O16778C1491O17115C1494O17122C1503O17144C1507O17297C1510O17304C1519O17323C1523O18282C1526O18289C1535O18312C1539O18773C1547O18773C1552O18893C1560O18893C1565O18992C1573O18992C1578O19088C1586O19088C1596O19179C1599O19186C1608O19209C1616O19491C1624O19491C1634O19589C1642O19589C1652O19678C1655O19685C1660O19695C1664O19713C1672O19765C1675O19772C1684O19796C1692O20563C1695O20570C1704O20588C1712O20662C1715O20669C1724O20686C1732O20930C1740O20930C1750O21070C1758O21070C1768O24542C1771O24549C1780O24567C1788O28968C1791O28975C1800O28989C1808O29182C1811O29189C1820O29205C1828O32017C1831O32045C1843O32069C1852O32017C1862O32081C1868O32081C1878O36067C1881O36074C1892O36093C1900O37541C1903O37548C1916O37565C1924O41522C1930O41550C1951O41583C1963O41522C1973O41674C1976O41681C1989O41699C1997O42769C2000O42776C2013O42801C2021O43560C2024O43567C2037O43583C2045O44455C2048O44462C2061O44492C2069O44970C2072O44977C2084O45000C2097O45024C2105O45342C2111O45367C2132O45391C2144O45431C2156O45342C2166O45478C2172O45506C2189O45532C2201O45567C2213O45478C2223O45609C2226O45616C2239O45639C2247O45885C2250O45892C2263O45906C2271O46009C2274O46016C2287O46032C2295O46140C2297O46195C2298O46195C2300O46202C2311O46225C2312O46225C2314O46249C2323O46957C2328O47229C2338O47271C2348O47309C2358O47326C2368O47585C2378O47614C2388O47625C2398O47647C2408O47663C2418O47681C2428O47691C2438O47701C2448O47719C2503O47244C2512O47746,, StoreIC,0x337ca0b18cf1,37961,105,5,X,X,0x000000000000,get,, code-creation,Eval,10,38038,0xe1ea49cf096,5, node:internal/net:1:1,0xe1ea49ceed0,~ script-source,123,node:internal/net,'use strict';\n\nconst {\n RegExp\x2C\n RegExpPrototypeTest\x2C\n Symbol\x2C\n} = primordials;\n\nconst Buffer = require('buffer').Buffer;\nconst { writeBuffer } = internalBinding('fs');\nconst errors = require('internal/errors');\n\n// IPv4 Segment\nconst v4Seg = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nconst v4Str = `(${v4Seg}[.]){3}${v4Seg}`;\nconst IPv4Reg = new RegExp(`^${v4Str}$`);\n\n// IPv6 Segment\nconst v6Seg = '(?:[0-9a-fA-F]{1\x2C4})';\nconst IPv6Reg = new RegExp('^(' +\n `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` +\n `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` +\n `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1\x2C2}|:)|` +\n `(?:${v6Seg}:){4}(?:(:${v6Seg}){0\x2C1}:${v4Str}|(:${v6Seg}){1\x2C3}|:)|` +\n `(?:${v6Seg}:){3}(?:(:${v6Seg}){0\x2C2}:${v4Str}|(:${v6Seg}){1\x2C4}|:)|` +\n `(?:${v6Seg}:){2}(?:(:${v6Seg}){0\x2C3}:${v4Str}|(:${v6Seg}){1\x2C5}|:)|` +\n `(?:${v6Seg}:){1}(?:(:${v6Seg}){0\x2C4}:${v4Str}|(:${v6Seg}){1\x2C6}|:)|` +\n `(?::((?::${v6Seg}){0\x2C5}:${v4Str}|(?::${v6Seg}){1\x2C7}|:))` +\n')(%[0-9a-zA-Z-.:]{1\x2C})?$');\n\nfunction isIPv4(s) {\n return RegExpPrototypeTest(IPv4Reg\x2C s);\n}\n\nfunction isIPv6(s) {\n return RegExpPrototypeTest(IPv6Reg\x2C s);\n}\n\nfunction isIP(s) {\n if (isIPv4(s)) return 4;\n if (isIPv6(s)) return 6;\n return 0;\n}\n\nfunction makeSyncWrite(fd) {\n return function(chunk\x2C enc\x2C cb) {\n if (enc !== 'buffer')\n chunk = Buffer.from(chunk\x2C enc);\n\n this._handle.bytesWritten += chunk.length;\n\n const ctx = {};\n writeBuffer(fd\x2C chunk\x2C 0\x2C chunk.length\x2C null\x2C undefined\x2C ctx);\n if (ctx.errno !== undefined) {\n const ex = errors.uvException(ctx);\n ex.errno = ctx.errno;\n return cb(ex);\n }\n cb();\n };\n}\n\nmodule.exports = {\n isIP\x2C\n isIPv4\x2C\n isIPv6\x2C\n makeSyncWrite\x2C\n normalizedArgsSymbol: Symbol('normalizedArgs')\n};\n code-source-info,0xe1ea49cf096,123,0,1749,C0O0C4O1749,, code-creation,Function,10,38082,0xe1ea49cf486,617, node:internal/net:1:1,0xe1ea49cf010,~ code-source-info,0xe1ea49cf486,123,0,1749,C0O0C45O25C50O35C56O58C61O99C64O99C69O116C73O99C75O149C78O149C83O133C89O187C92O187C96O187C98O246C101O316C106O320C119O335C124O360C129O375C142O360C147O360C149O417C152O457C160O483C173O499C183O473C192O521C205O537C218O547C228O511C237O569C250O586C263O597C273O559C282O625C295O643C308O658C321O669C331O615C340O697C353O715C366O730C379O741C389O687C398O769C411O787C424O802C437O813C447O759C456O841C469O859C482O874C495O885C505O831C514O919C527O934C540O947C550O903C556O965C562O457C567O457C569O1633C576O1654C582O1662C588O1672C594O1682C601O1721C611O1648C616O1748,, KeyedLoadIC,0x337ca0b01b9d,38118,165,25,1,N,0x38ac3d9836c9,fs,, StoreIC,0xe1ea49cf6c6,38159,64,3,X,X,0x000000000000,isIP,, StoreIC,0xe1ea49cf6cc,38164,65,3,X,X,0x000000000000,isIPv4,, StoreIC,0xe1ea49cf6d2,38167,66,3,X,X,0x000000000000,isIPv6,, StoreIC,0xe1ea49cf6d8,38170,67,3,X,X,0x000000000000,makeSyncWrite,, StoreIC,0xe1ea49cf6e3,38174,68,25,X,X,0x000000000000,normalizedArgsSymbol,, KeyedStoreIC,0x337ca0b01bb4,38220,167,32,0,1,0x38ac3d9836c9,tcp_wrap,, KeyedStoreIC,0x337ca0b01bb4,38242,167,32,1,N,0x38ac3d9836c9,pipe_wrap,, code-creation,Eval,10,38284,0xe1ea49d2956,5, node:internal/dtrace:1:1,0xe1ea49d2810,~ script-source,124,node:internal/dtrace,'use strict';\n\nconst config = internalBinding('config');\n\nconst {\n DTRACE_HTTP_CLIENT_REQUEST = () => {}\x2C\n DTRACE_HTTP_CLIENT_RESPONSE = () => {}\x2C\n DTRACE_HTTP_SERVER_REQUEST = () => {}\x2C\n DTRACE_HTTP_SERVER_RESPONSE = () => {}\x2C\n DTRACE_NET_SERVER_CONNECTION = () => {}\x2C\n DTRACE_NET_STREAM_END = () => {}\n} = (config.hasDtrace ? internalBinding('dtrace') : {});\n\nmodule.exports = {\n DTRACE_HTTP_CLIENT_REQUEST\x2C\n DTRACE_HTTP_CLIENT_RESPONSE\x2C\n DTRACE_HTTP_SERVER_REQUEST\x2C\n DTRACE_HTTP_SERVER_RESPONSE\x2C\n DTRACE_NET_SERVER_CONNECTION\x2C\n DTRACE_NET_STREAM_END\n};\n code-source-info,0xe1ea49d2956,124,0,568,C0O0C4O568,, code-creation,Function,10,38305,0xe1ea49d2e2e,140, node:internal/dtrace:1:1,0xe1ea49d28d0,~ code-source-info,0xe1ea49d2e2e,124,0,568,C0O30C3O30C8O322C17O334C25O68C36O109C47O151C58O192C69O234C80O277C91O368C98O389C104O419C110O450C116O480C122O511C128O543C134O383C139O567,, StoreIC,0xe1ea49d2e90,38343,15,3,X,X,0x000000000000,DTRACE_HTTP_CLIENT_REQUEST,, StoreIC,0xe1ea49d2e96,38348,16,3,X,X,0x000000000000,DTRACE_HTTP_CLIENT_RESPONSE,, StoreIC,0xe1ea49d2e9c,38352,17,3,X,X,0x000000000000,DTRACE_HTTP_SERVER_REQUEST,, StoreIC,0xe1ea49d2ea2,38355,18,3,X,X,0x000000000000,DTRACE_HTTP_SERVER_RESPONSE,, StoreIC,0xe1ea49d2ea8,38357,19,3,X,X,0x000000000000,DTRACE_NET_SERVER_CONNECTION,, StoreIC,0xe1ea49d2eae,38360,20,3,X,X,0x000000000000,DTRACE_NET_STREAM_END,, LoadIC,0xe1ea49c9d0f,38414,413,29,X,X,0x38ac3d981551,prototype,, StoreIC,0xe1ea49c9dbc,38427,542,8,X,X,0x000000000000,get,, StoreIC,0xe1ea49c9ddd,38432,548,3,X,X,0x000000000000,get,, StoreIC,0xe1ea49c9dfe,38437,556,8,X,X,0x000000000000,get,, StoreIC,0xe1ea49c9e1f,38440,572,8,X,X,0x000000000000,get,, StoreIC,0xe1ea49c9e3d,38445,580,8,X,X,0x000000000000,get,, code-creation,LazyCompile,10,38464,0xe1ea49d7016,34,protoGetter node:net:718:21,0xe1ea49c6e38,~ code-source-info,0xe1ea49d7016,122,18631,18771,C0O18652C8O18680C13O18691C20O18755C27O18652C33O18770,, StoreIC,0xe1ea49d702a,38475,722,10,X,X,0x000000000000,get,, StoreIC,0xe1ea49d702a,38481,722,10,X,X,0x000000000000,get,, StoreIC,0xe1ea49d702a,38484,722,10,X,X,0x000000000000,get,, StoreIC,0xe1ea49d702a,38488,722,10,X,X,0x000000000000,get,, StoreIC,0xe1ea49d702a,38491,722,10,X,X,0x000000000000,get,, StoreIC,0xe1ea49d702a,38495,722,10,X,X,0x000000000000,get,, StoreIC,0xe1ea49d702a,38499,722,10,X,X,0x000000000000,get,, StoreIC,0xe1ea49d702a,38502,722,10,X,X,0x000000000000,get,, LoadIC,0xe1ea49c9fed,38507,1222,29,X,X,0x38ac3d981551,prototype,, StoreIC,0xe1ea49ca069,38514,1527,8,X,X,0x000000000000,get,, StoreIC,0xe1ea49ca11e,38521,1701,3,X,X,0x000000000000,get,, StoreIC,0xe1ea49ca12a,38525,1702,3,X,X,0x000000000000,set,, StoreIC,0xe1ea49ca157,38530,1706,3,X,X,0x000000000000,get,, StoreIC,0xe1ea49ca163,38534,1707,3,X,X,0x000000000000,set,, StoreIC,0xe1ea49ca1e8,38544,1776,24,X,X,0x000000000000,_createServerHandle,, StoreIC,0xe1ea49ca1f2,38549,1777,19,X,X,0x000000000000,_normalizeArgs,, StoreIC,0xe1ea49ca1fc,38554,1778,3,X,X,0x000000000000,_setSimultaneousAccepts,, StoreIC,0xe1ea49ca206,38558,1787,3,X,X,0x000000000000,connect,, StoreIC,0xe1ea49ca210,38562,1788,21,X,X,0x000000000000,createConnection,, StoreIC,0xe1ea49ca21a,38566,1789,3,X,X,0x000000000000,createServer,, StoreIC,0xe1ea49ca224,38570,1790,9,X,X,0x000000000000,isIP,, StoreIC,0xe1ea49ca22e,38574,1791,11,X,X,0x000000000000,isIPv4,, StoreIC,0xe1ea49ca238,38578,1792,11,X,X,0x000000000000,isIPv6,, StoreIC,0xe1ea49ca242,38583,1793,3,X,X,0x000000000000,Server,, StoreIC,0xe1ea49ca24c,38587,1794,3,X,X,0x000000000000,Socket,, StoreIC,0xe1ea49ca256,38591,1795,11,X,X,0x000000000000,Stream,, code-creation,Eval,10,38699,0xe1ea49d81ee,5, node:internal/tty:1:1,0xe1ea49d7f98,~ script-source,125,node:internal/tty,// MIT License\n\n// Copyright (c) Sindre Sorhus (sindresorhus.com)\n\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a copy\n// of this software and associated documentation files (the "Software")\x2C to deal\n// in the Software without restriction\x2C including without limitation the rights\n// to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C distribute\x2C sublicense\x2C and/or sell\n// copies of the Software\x2C and to permit persons to whom the Software is\n// furnished to do so\x2C subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS OR\n// IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY\x2C\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C DAMAGES OR OTHER\n// LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR OTHERWISE\x2C ARISING FROM\x2C\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n'use strict';\n\nconst {\n ArrayPrototypeSome\x2C\n RegExpPrototypeTest\x2C\n StringPrototypeSplit\x2C\n StringPrototypeToLowerCase\x2C\n} = primordials;\n\nconst { validateInteger } = require('internal/validators');\n\nlet OSRelease;\n\nconst COLORS_2 = 1;\nconst COLORS_16 = 4;\nconst COLORS_256 = 8;\nconst COLORS_16m = 24;\n\n// Some entries were taken from `dircolors`\n// (https://linux.die.net/man/1/dircolors). The corresponding terminals might\n// support more than 16 colors\x2C but this was not tested for.\n//\n// Copyright (C) 1996-2016 Free Software Foundation\x2C Inc. Copying and\n// distribution of this file\x2C with or without modification\x2C are permitted\n// provided the copyright notice and this notice are preserved.\nconst TERM_ENVS = {\n 'eterm': COLORS_16\x2C\n 'cons25': COLORS_16\x2C\n 'console': COLORS_16\x2C\n 'cygwin': COLORS_16\x2C\n 'dtterm': COLORS_16\x2C\n 'gnome': COLORS_16\x2C\n 'hurd': COLORS_16\x2C\n 'jfbterm': COLORS_16\x2C\n 'konsole': COLORS_16\x2C\n 'kterm': COLORS_16\x2C\n 'mlterm': COLORS_16\x2C\n 'mosh': COLORS_16m\x2C\n 'putty': COLORS_16\x2C\n 'st': COLORS_16\x2C\n // https://github.com/da-x/rxvt-unicode/tree/v9.22-with-24bit-color\n 'rxvt-unicode-24bit': COLORS_16m\x2C\n // https://gist.github.com/XVilka/8346728#gistcomment-2823421\n 'terminator': COLORS_16m\n};\n\nconst TERM_ENVS_REG_EXP = [\n /ansi/\x2C\n /color/\x2C\n /linux/\x2C\n /^con[0-9]*x[0-9]/\x2C\n /^rxvt/\x2C\n /^screen/\x2C\n /^xterm/\x2C\n /^vt100/\x2C\n];\n\nlet warned = false;\nfunction warnOnDeactivatedColors(env) {\n if (warned)\n return;\n let name = '';\n if (env.NODE_DISABLE_COLORS !== undefined)\n name = 'NODE_DISABLE_COLORS';\n if (env.NO_COLOR !== undefined) {\n if (name !== '') {\n name += "' and '";\n }\n name += 'NO_COLOR';\n }\n\n if (name !== '') {\n process.emitWarning(\n `The '${name}' env is ignored due to the 'FORCE_COLOR' env being set.`\x2C\n 'Warning'\n );\n warned = true;\n }\n}\n\n// The `getColorDepth` API got inspired by multiple sources such as\n// https://github.com/chalk/supports-color\x2C\n// https://github.com/isaacs/color-support.\nfunction getColorDepth(env = process.env) {\n // Use level 0-3 to support the same levels as `chalk` does. This is done for\n // consistency throughout the ecosystem.\n if (env.FORCE_COLOR !== undefined) {\n switch (env.FORCE_COLOR) {\n case '':\n case '1':\n case 'true':\n warnOnDeactivatedColors(env);\n return COLORS_16;\n case '2':\n warnOnDeactivatedColors(env);\n return COLORS_256;\n case '3':\n warnOnDeactivatedColors(env);\n return COLORS_16m;\n default:\n return COLORS_2;\n }\n }\n\n if (env.NODE_DISABLE_COLORS !== undefined ||\n // See https://no-color.org/\n env.NO_COLOR !== undefined ||\n // The "dumb" special terminal\x2C as defined by terminfo\x2C doesn't support\n // ANSI color control codes.\n // See https://invisible-island.net/ncurses/terminfo.ti.html#toc-_Specials\n env.TERM === 'dumb') {\n return COLORS_2;\n }\n\n if (process.platform === 'win32') {\n // Lazy load for startup performance.\n if (OSRelease === undefined) {\n const { release } = require('os');\n OSRelease = StringPrototypeSplit(release()\x2C '.');\n }\n // Windows 10 build 10586 is the first Windows release that supports 256\n // colors. Windows 10 build 14931 is the first release that supports\n // 16m/TrueColor.\n if (+OSRelease[0] >= 10) {\n const build = +OSRelease[2];\n if (build >= 14931)\n return COLORS_16m;\n if (build >= 10586)\n return COLORS_256;\n }\n\n return COLORS_16;\n }\n\n if (env.TMUX) {\n return COLORS_256;\n }\n\n if (env.CI) {\n if ([\n 'APPVEYOR'\x2C\n 'BUILDKITE'\x2C\n 'CIRCLECI'\x2C\n 'DRONE'\x2C\n 'GITHUB_ACTIONS'\x2C\n 'GITLAB_CI'\x2C\n 'TRAVIS'\x2C\n ].some((sign) => sign in env) || env.CI_NAME === 'codeship') {\n return COLORS_256;\n }\n return COLORS_2;\n }\n\n if ('TEAMCITY_VERSION' in env) {\n return RegExpPrototypeTest(/^(9\\.(0*[1-9]\\d*)\\.|\\d{2\x2C}\\.)/\x2C env.TEAMCITY_VERSION) ?\n COLORS_16 : COLORS_2;\n }\n\n switch (env.TERM_PROGRAM) {\n case 'iTerm.app':\n if (!env.TERM_PROGRAM_VERSION ||\n RegExpPrototypeTest(/^[0-2]\\./\x2C env.TERM_PROGRAM_VERSION)\n ) {\n return COLORS_256;\n }\n return COLORS_16m;\n case 'HyperTerm':\n case 'MacTerm':\n return COLORS_16m;\n case 'Apple_Terminal':\n return COLORS_256;\n }\n\n if (env.COLORTERM === 'truecolor' || env.COLORTERM === '24bit') {\n return COLORS_16m;\n }\n\n if (env.TERM) {\n if (RegExpPrototypeTest(/^xterm-256/\x2C env.TERM)) {\n return COLORS_256;\n }\n\n const termEnv = StringPrototypeToLowerCase(env.TERM);\n\n if (TERM_ENVS[termEnv]) {\n return TERM_ENVS[termEnv];\n }\n if (ArrayPrototypeSome(TERM_ENVS_REG_EXP\x2C\n (term) => RegExpPrototypeTest(term\x2C termEnv))) {\n return COLORS_16;\n }\n }\n // Move 16 color COLORTERM below 16m and 256\n if (env.COLORTERM) {\n return COLORS_16;\n }\n return COLORS_2;\n}\n\nfunction hasColors(count\x2C env) {\n if (env === undefined &&\n (count === undefined || (typeof count === 'object' && count !== null))) {\n env = count;\n count = 16;\n } else {\n validateInteger(count\x2C 'count'\x2C 2);\n }\n\n return count <= 2 ** getColorDepth(env);\n}\n\nmodule.exports = {\n getColorDepth\x2C\n hasColors\n};\n code-source-info,0xe1ea49d81ee,125,0,6446,C0O0C4O6446,, code-creation,Function,10,38826,0xe1ea49d864e,358, node:internal/tty:1:1,0xe1ea49d8168,~ code-source-info,0xe1ea49d864e,125,0,6446,C0O0C69O1186C75O1208C81O1231C87O1255C93O1329C99O1329C104O1309C110O1366C111O1366C113O1395C115O1395C117O1416C119O1416C121O1438C123O1438C125O1460C127O1460C129O1877C136O1890C142O1913C148O1937C154O1960C160O1983C166O2005C172O2026C178O2050C184O2074C190O2096C196O2119C202O2140C208O2163C214O2182C220O2287C226O2379C232O1877C234O2420C328O2420C330O2541C331O2541C333O6395C340O6416C346O6433C352O6410C357O6445,, StoreIC,0xe1ea49d86d6,38879,49,12,X,X,0x000000000000,eterm,, StoreIC,0xe1ea49d86dc,38885,50,13,X,X,0x000000000000,cons25,, StoreIC,0xe1ea49d86e2,38888,51,14,X,X,0x000000000000,console,, StoreIC,0xe1ea49d86e8,38891,52,13,X,X,0x000000000000,cygwin,, StoreIC,0xe1ea49d86ee,38894,53,13,X,X,0x000000000000,dtterm,, StoreIC,0xe1ea49d86f4,38897,54,12,X,X,0x000000000000,gnome,, StoreIC,0xe1ea49d86fa,38900,55,11,X,X,0x000000000000,hurd,, StoreIC,0xe1ea49d8700,38902,56,14,X,X,0x000000000000,jfbterm,, StoreIC,0xe1ea49d8706,38905,57,14,X,X,0x000000000000,konsole,, StoreIC,0xe1ea49d870c,38907,58,12,X,X,0x000000000000,kterm,, StoreIC,0xe1ea49d8712,38911,59,13,X,X,0x000000000000,mlterm,, StoreIC,0xe1ea49d8718,38913,60,11,X,X,0x000000000000,mosh,, StoreIC,0xe1ea49d871e,38917,61,12,X,X,0x000000000000,putty,, StoreIC,0xe1ea49d8724,38919,62,9,X,X,0x000000000000,st,, StoreIC,0xe1ea49d872a,38922,64,25,X,X,0x000000000000,rxvt-unicode-24bit,, StoreIC,0xe1ea49d8730,38925,66,17,X,X,0x000000000000,terminator,, StoreIC,0xe1ea49d87a2,38936,235,3,X,X,0x000000000000,getColorDepth,, StoreIC,0xe1ea49d87a8,38939,236,3,X,X,0x000000000000,hasColors,, LoadIC,0xe1ea49c4657,38948,71,33,X,X,0x38ac3d981551,prototype,, LoadIC,0xe1ea49c4691,38956,118,34,X,X,0x38ac3d981551,prototype,, StoreIC,0xe1ea49c4748,38966,165,20,X,X,0x000000000000,isatty,, StoreIC,0xe1ea49c474e,38970,165,28,X,X,0x000000000000,ReadStream,, StoreIC,0xe1ea49c4754,38972,165,40,X,X,0x000000000000,WriteStream,, code-creation,LazyCompile,10,39009,0xe1ea49da21e,194,WriteStream node:tty:85:21,0xe1ea49c3fb0,~ code-source-info,0xe1ea49da21e,121,2514,3460,C0O2523C2O2534C7O2563C12O2570C17O2590C18O2593C20O2600C26O2605C32O2618C37O2627C44O2633C49O2627C50O2672C52O2690C67O2690C73O2725C79O2751C86O2757C91O2751C92O2794C97O2798C102O2805C114O2830C118O2805C124O3271C129O3279C136O3279C141O3317C151O3317C157O3350C162O3358C167O3358C173O3384C175O3400C176O3422C179O3413C183O3431C185O3450C188O3441C193O3459,, code-creation,LazyCompile,10,39104,0xe1ea49da896,793,Socket node:net:283:16,0xe1ea49c6ca8,~ code-source-info,0xe1ea49da896,122,7049,11100,C0O7063C2O7074C7O7094C12O7101C17O7121C18O7124C25O7135C34O7155C42O7230C52O7161C57O7155C58O7283C65O7294C81O7325C90O7353C98O7420C115O7509C121O7539C131O7359C136O7353C137O7598C138O7614C142O7818C144O7823C149O7840C153O7848C154O7863C158O7874C160O7879C164O7888C168O7898C169O7911C173O7921C174O7932C178O7942C180O7947C184O7960C188O7971C190O7976C194O7997C198O8004C200O8009C204O8019C208O8029C210O8034C214O8043C218O8053C220O8058C224O8069C228O8079C230O8084C234O8096C238O8107C244O8144C251O8160C262O8203C268O8282C270O8306C273O8322C278O8306C282O8304C286O8396C287O8414C291O8425C292O8445C296O8485C297O8507C301O8518C306O8525C311O8532C316O8532C322O8568C328O8605C332O8595C336O8628C338O8633C344O8671C349O8652C353O8650C359O8702C365O8734C370O8758C372O8876C377O8891C382O8889C386O8932C391O8940C396O8940C402O9197C404O9212C412O9218C417O9212C418O9252C420O9257C423O9281C428O9289C433O9289C437O9274C441O9308C443O9316C450O9328C455O9352C462O9371C464O9360C471O9380C475O9462C480O9470C487O9470C493O9495C495O9512C503O9518C508O9512C509O9561C510O9574C514O9588C516O9602C519O9602C523O9600C527O9793C532O9819C545O9793C550O9925C555O9935C565O9995C568O10015C573O9995C579O10040C587O10086C595O10135C603O10166C605O10171C609O10180C613O10194C615O10199C618O10220C622O10211C628O10247C630O10252C633O10270C637O10261C641O10288C643O10293C646O10313C650O10304C654O10390C665O10390C671O10425C674O10425C678O10452C679O10470C683O10480C685O10502C689O10643C695O10662C701O10671C706O10700C712O10787C718O10803C722O10823C727O10831C732O10831C736O10849C737O10870C743O10903C749O10929C756O10929C761O10975C762O10987C766O10997C767O11010C771O11050C773O11055C777O11067C781O11074C783O11079C787O11094C792O11099,, code-creation,LazyCompile,10,39147,0xe1ea49daea6,109,Duplex node:internal/streams/duplex:52:16,0x6a244a4a3c0,~ script-source,48,node:internal/streams/duplex,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance\x2C this class\n// prototypically inherits from Readable\x2C and then parasitically from\n// Writable.\n\n'use strict';\n\nconst {\n ObjectDefineProperties\x2C\n ObjectGetOwnPropertyDescriptor\x2C\n ObjectKeys\x2C\n ObjectSetPrototypeOf\x2C\n} = primordials;\n\nmodule.exports = Duplex;\n\nconst Readable = require('internal/streams/readable');\nconst Writable = require('internal/streams/writable');\n\nObjectSetPrototypeOf(Duplex.prototype\x2C Readable.prototype);\nObjectSetPrototypeOf(Duplex\x2C Readable);\n\n{\n // Allow the keys array to be GC'ed.\n for (const method of ObjectKeys(Writable.prototype)) {\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n\n Readable.call(this\x2C options);\n Writable.call(this\x2C options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false)\n this.readable = false;\n\n if (options.writable === false)\n this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n }\n }\n}\n\nObjectDefineProperties(Duplex.prototype\x2C {\n writable:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writable')\x2C\n writableHighWaterMark:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writableHighWaterMark')\x2C\n writableObjectMode:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writableObjectMode')\x2C\n writableBuffer:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writableBuffer')\x2C\n writableLength:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writableLength')\x2C\n writableFinished:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writableFinished')\x2C\n writableCorked:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writableCorked')\x2C\n writableEnded:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writableEnded')\x2C\n writableNeedDrain:\n ObjectGetOwnPropertyDescriptor(Writable.prototype\x2C 'writableNeedDrain')\x2C\n\n destroyed: {\n get() {\n if (this._readableState === undefined ||\n this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n }\x2C\n set(value) {\n // Backward compatibility\x2C the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n }\n }\n});\n\nlet duplexify;\n\nDuplex.from = function(body) {\n if (!duplexify) {\n duplexify = require('internal/streams/duplexify');\n }\n return duplexify(body\x2C 'body');\n};\n code-source-info,0xe1ea49daea6,48,1951,2360,C0O1965C2O1976C7O2000C12O2007C17O2027C18O2031C23O2040C28O2040C34O2063C39O2072C44O2072C50O2095C51O2114C55O2125C59O2156C65O2165C70O2182C71O2196C75O2222C81O2231C86O2248C87O2262C91O2288C97O2302C102O2321C103O2340C108O2359,, code-creation,LazyCompile,10,39287,0xe1ea49db52e,220,Readable node:internal/streams/readable:181:18,0x6a244a55208,~ script-source,49,node:internal/streams/readable,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n ArrayPrototypeIndexOf\x2C\n NumberIsInteger\x2C\n NumberIsNaN\x2C\n NumberParseInt\x2C\n ObjectDefineProperties\x2C\n ObjectKeys\x2C\n ObjectSetPrototypeOf\x2C\n Promise\x2C\n SafeSet\x2C\n SymbolAsyncIterator\x2C\n Symbol\n} = primordials;\n\nmodule.exports = Readable;\nReadable.ReadableState = ReadableState;\n\nconst EE = require('events');\nconst { Stream\x2C prependListener } = require('internal/streams/legacy');\nconst { Buffer } = require('buffer');\n\nconst {\n addAbortSignalNoValidate\x2C\n} = require('internal/streams/add-abort-signal');\n\nlet debug = require('internal/util/debuglog').debuglog('stream'\x2C (fn) => {\n debug = fn;\n});\nconst BufferList = require('internal/streams/buffer_list');\nconst destroyImpl = require('internal/streams/destroy');\nconst {\n getHighWaterMark\x2C\n getDefaultHighWaterMark\n} = require('internal/streams/state');\n\nconst {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_STREAM_PUSH_AFTER_EOF\x2C\n ERR_METHOD_NOT_IMPLEMENTED\x2C\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n} = require('internal/errors').codes;\nconst { validateObject } = require('internal/validators');\n\nconst kPaused = Symbol('kPaused');\n\nconst { StringDecoder } = require('string_decoder');\nconst from = require('internal/streams/from');\n\nObjectSetPrototypeOf(Readable.prototype\x2C Stream.prototype);\nObjectSetPrototypeOf(Readable\x2C Stream);\nconst nop = () => {};\n\nconst { errorOrDestroy } = destroyImpl;\n\nfunction ReadableState(options\x2C stream\x2C isDuplex) {\n // Duplex streams are both readable and writable\x2C but share\n // the same options object.\n // However\x2C some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean')\n isDuplex = stream instanceof Stream.Duplex;\n\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n this.objectMode = !!(options && options.objectMode);\n\n if (isDuplex)\n this.objectMode = this.objectMode ||\n !!(options && options.readableObjectMode);\n\n // The point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value\x2C means "don't call _read preemptively ever"\n this.highWaterMark = options ?\n getHighWaterMark(this\x2C options\x2C 'readableHighWaterMark'\x2C isDuplex) :\n getDefaultHighWaterMark(false);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift().\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = [];\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in\x2C therefore we start as\n // constructed.\n this.constructed = true;\n\n // A flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately\x2C or on a later tick. We set this to true at first\x2C because\n // any actions that shouldn't happen until "later" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // Whenever we return null\x2C then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this[kPaused] = null;\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n this.autoDestroy = !options || options.autoDestroy !== false;\n\n // Has it been destroyed.\n this.destroyed = false;\n\n // Indicates whether the stream has errored. When true no further\n // _read calls\x2C 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null;\n\n // Indicates whether the stream has finished destroying.\n this.closed = false;\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false;\n\n // Crypto is kind of old and crusty. Historically\x2C its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8'\x2C though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8';\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null;\n this.multiAwaitDrain = false;\n\n // If true\x2C a maybeReadMore has been scheduled.\n this.readingMore = false;\n\n this.dataEmitted = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\n\nfunction Readable(options) {\n if (!(this instanceof Readable))\n return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor\x2C at least with V8 6.5.\n const isDuplex = this instanceof Stream.Duplex;\n\n this._readableState = new ReadableState(options\x2C this\x2C isDuplex);\n\n if (options) {\n if (typeof options.read === 'function')\n this._read = options.read;\n\n if (typeof options.destroy === 'function')\n this._destroy = options.destroy;\n\n if (typeof options.construct === 'function')\n this._construct = options.construct;\n if (options.signal && !isDuplex)\n addAbortSignalNoValidate(options.signal\x2C this);\n }\n\n Stream.call(this\x2C options);\n\n destroyImpl.construct(this\x2C () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this\x2C this._readableState);\n }\n });\n}\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function(err\x2C cb) {\n cb(err);\n};\n\nReadable.prototype[EE.captureRejectionSymbol] = function(err) {\n this.destroy(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet\x2C\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function(chunk\x2C encoding) {\n return readableAddChunk(this\x2C chunk\x2C encoding\x2C false);\n};\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function(chunk\x2C encoding) {\n return readableAddChunk(this\x2C chunk\x2C encoding\x2C true);\n};\n\nfunction readableAddChunk(stream\x2C chunk\x2C encoding\x2C addToFront) {\n debug('readableAddChunk'\x2C chunk);\n const state = stream._readableState;\n\n let err;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting\x2C if state.encoding is set\x2C we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk\x2C encoding).toString(state.encoding);\n } else {\n chunk = Buffer.from(chunk\x2C encoding);\n encoding = '';\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = '';\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk);\n encoding = '';\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE(\n 'chunk'\x2C ['string'\x2C 'Buffer'\x2C 'Uint8Array']\x2C chunk);\n }\n }\n\n if (err) {\n errorOrDestroy(stream\x2C err);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream\x2C state);\n } else if (state.objectMode || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream\x2C new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream\x2C state\x2C chunk\x2C true);\n } else if (state.ended) {\n errorOrDestroy(stream\x2C new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed || state.errored) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream\x2C state\x2C chunk\x2C false);\n else\n maybeReadMore(stream\x2C state);\n } else {\n addChunk(stream\x2C state\x2C chunk\x2C false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream\x2C state);\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also\x2C if we have no data yet\x2C we can stand some more bytes.\n // This is to work around cases where hwm=0\x2C such as the repl.\n return !state.ended &&\n (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream\x2C state\x2C chunk\x2C addToFront) {\n if (state.flowing && state.length === 0 && !state.sync &&\n stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear();\n } else {\n state.awaitDrainWriters = null;\n }\n state.dataEmitted = true;\n stream.emit('data'\x2C chunk);\n } else {\n // Update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream\x2C state);\n}\n\nReadable.prototype.isPaused = function() {\n const state = this._readableState;\n return state[kPaused] === true || state.flowing === false;\n};\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function(enc) {\n const decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null)\x2C decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n const buffer = this._readableState.buffer;\n // Iterate over current buffer to convert already stored Buffers:\n let content = '';\n for (const data of buffer) {\n content += decoder.write(data);\n }\n buffer.clear();\n if (content !== '')\n buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts.\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable\x2C so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n\x2C state) {\n if (n <= 0 || (state.length === 0 && state.ended))\n return 0;\n if (state.objectMode)\n return 1;\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length)\n return state.buffer.first().length;\n return state.length;\n }\n if (n <= state.length)\n return n;\n return state.ended ? state.length : 0;\n}\n\n// You can override either this method\x2C or the async _read(n) below.\nReadable.prototype.read = function(n) {\n debug('read'\x2C n);\n // Same as parseInt(undefined\x2C 10)\x2C however V8 7.3 performance regressed\n // in this scenario\x2C so we are doing it manually.\n if (n === undefined) {\n n = NaN;\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n\x2C 10);\n }\n const state = this._readableState;\n const nOrig = n;\n\n // If we're asking for more than the current hwm\x2C then raise the hwm.\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n\n if (n !== 0)\n state.emittedReadable = false;\n\n // If we're doing read(0) to trigger a readable event\x2C but we\n // already have a bunch of data in the buffer\x2C then just trigger\n // the 'readable' event and move on.\n if (n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ?\n state.length >= state.highWaterMark :\n state.length > 0) ||\n state.ended)) {\n debug('read: emitReadable'\x2C state.length\x2C state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n\x2C state);\n\n // If we've ended\x2C and we're now clear\x2C then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases\x2C such as passthrough streams\x2C _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer\x2C providing enough data when\n // before there was *not* enough.\n //\n // So\x2C the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read\x2C then call _read.\n // Note that this may be asynchronous\x2C or synchronous. Yes\x2C it is\n // deeply ugly to write APIs this way\x2C but that still doesn't mean\n // that the Readable class should behave improperly\x2C as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie\x2C if the read call\n // has returned yet)\x2C so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event\x2C then we need to do some reading.\n let doRead = state.needReadable;\n debug('need readable'\x2C doRead);\n\n // If we currently have less than the highWaterMark\x2C then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark'\x2C doRead);\n }\n\n // However\x2C if we've ended\x2C then there's no point\x2C if we're already\n // reading\x2C then it's unnecessary\x2C if we're constructing we have to wait\x2C\n // and if we're destroyed or errored\x2C then it's not allowed\x2C\n if (state.ended || state.reading || state.destroyed || state.errored ||\n !state.constructed) {\n doRead = false;\n debug('reading\x2C ended or constructing'\x2C doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // If the length is currently zero\x2C then we *need* a readable event.\n if (state.length === 0)\n state.needReadable = true;\n\n // Call internal read method\n this._read(state.highWaterMark);\n\n state.sync = false;\n // If _read pushed data synchronously\x2C then `reading` will be false\x2C\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading)\n n = howMuchToRead(nOrig\x2C state);\n }\n\n let ret;\n if (n > 0)\n ret = fromList(n\x2C state);\n else\n ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear();\n } else {\n state.awaitDrainWriters = null;\n }\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer\x2C then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended)\n state.needReadable = true;\n\n // If we tried to read() past the EOF\x2C then emit end on the next tick.\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n\n if (ret !== null) {\n state.dataEmitted = true;\n this.emit('data'\x2C ret);\n }\n\n return ret;\n};\n\nfunction onEofChunk(stream\x2C state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n const chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n if (state.sync) {\n // If we are sync\x2C wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call.\n emitReadable(stream);\n } else {\n // Emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n state.emittedReadable = true;\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream);\n }\n}\n\n// Don't emit readable right away in sync mode\x2C because this can trigger\n// another read() call => stack overflow. This way\x2C it might trigger\n// a nextTick recursion warning\x2C but that's not so bad.\nfunction emitReadable(stream) {\n const state = stream._readableState;\n debug('emitReadable'\x2C state.needReadable\x2C state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable'\x2C state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_\x2C stream);\n }\n}\n\nfunction emitReadable_(stream) {\n const state = stream._readableState;\n debug('emitReadable_'\x2C state.destroyed\x2C state.length\x2C state.ended);\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if:\n // 1. It is not flowing\x2C as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark\x2C so we can schedule\n // another readable later.\n state.needReadable =\n !state.flowing &&\n !state.ended &&\n state.length <= state.highWaterMark;\n flow(stream);\n}\n\n\n// At this point\x2C the user has presumably seen the 'readable' event\x2C\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call\x2C in which case reading = true if\n// it's in progress.\n// However\x2C if we're not ended\x2C or reading\x2C and the length < hwm\x2C\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream\x2C state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_\x2C stream\x2C state);\n }\n}\n\nfunction maybeReadMore_(stream\x2C state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer\x2C and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data\x2C the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the stream has called the implementation defined _read()\n // method\x2C but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended &&\n (state.length < state.highWaterMark ||\n (state.flowing && state.length === 0))) {\n const len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // Didn't get any data\x2C stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// Abstract method. to be overridden in specific implementation classes.\n// call cb(er\x2C data) where data is <= n in length.\n// for virtual (non-string\x2C non-buffer) streams\x2C "length" is somewhat\n// arbitrary\x2C and perhaps not very meaningful.\nReadable.prototype._read = function(n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()');\n};\n\nReadable.prototype.pipe = function(dest\x2C pipeOpts) {\n const src = this;\n const state = this._readableState;\n\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true;\n state.awaitDrainWriters = new SafeSet(\n state.awaitDrainWriters ? [state.awaitDrainWriters] : []\n );\n }\n }\n\n state.pipes.push(dest);\n debug('pipe count=%d opts=%j'\x2C state.pipes.length\x2C pipeOpts);\n\n const doEnd = (!pipeOpts || pipeOpts.end !== false) &&\n dest !== process.stdout &&\n dest !== process.stderr;\n\n const endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once('end'\x2C endFn);\n\n dest.on('unpipe'\x2C onunpipe);\n function onunpipe(readable\x2C unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n let ondrain;\n\n let cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close'\x2C onclose);\n dest.removeListener('finish'\x2C onfinish);\n if (ondrain) {\n dest.removeListener('drain'\x2C ondrain);\n }\n dest.removeListener('error'\x2C onerror);\n dest.removeListener('unpipe'\x2C onunpipe);\n src.removeListener('end'\x2C onend);\n src.removeListener('end'\x2C unpipe);\n src.removeListener('data'\x2C ondata);\n\n cleanedUp = true;\n\n // If the reader is waiting for a drain event from this\n // specific writer\x2C then it would cause it to never start\n // flowing again.\n // So\x2C if this is awaiting a drain\x2C then we just call it now.\n // If we don't know\x2C then assume that we are waiting for one.\n if (ondrain && state.awaitDrainWriters &&\n (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n\n function pause() {\n // If the user unpiped during `dest.write()`\x2C it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response\x2C pause'\x2C 0);\n state.awaitDrainWriters = dest;\n state.multiAwaitDrain = false;\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response\x2C pause'\x2C state.awaitDrainWriters.size);\n state.awaitDrainWriters.add(dest);\n }\n src.pause();\n }\n if (!ondrain) {\n // When the dest drains\x2C it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow()\x2C but adding and removing repeatedly is\n // too slow.\n ondrain = pipeOnDrain(src\x2C dest);\n dest.on('drain'\x2C ondrain);\n }\n }\n\n src.on('data'\x2C ondata);\n function ondata(chunk) {\n debug('ondata');\n const ret = dest.write(chunk);\n debug('dest.write'\x2C ret);\n if (ret === false) {\n pause();\n }\n }\n\n // If the dest has an error\x2C then stop piping into it.\n // However\x2C don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror'\x2C er);\n unpipe();\n dest.removeListener('error'\x2C onerror);\n if (EE.listenerCount(dest\x2C 'error') === 0) {\n const s = dest._writableState || dest._readableState;\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest\x2C er);\n } else {\n dest.emit('error'\x2C er);\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest\x2C 'error'\x2C onerror);\n\n // Both close and finish should trigger unpipe\x2C but only once.\n function onclose() {\n dest.removeListener('finish'\x2C onfinish);\n unpipe();\n }\n dest.once('close'\x2C onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close'\x2C onclose);\n unpipe();\n }\n dest.once('finish'\x2C onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe'\x2C src);\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n if (state.flowing) {\n pause();\n }\n } else if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src\x2C dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState;\n\n // `ondrain` will call directly\x2C\n // `this` maybe not a reference to dest\x2C\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain'\x2C 1);\n state.awaitDrainWriters = null;\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain'\x2C state.awaitDrainWriters.size);\n state.awaitDrainWriters.delete(dest);\n }\n\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) &&\n EE.listenerCount(src\x2C 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\n\nReadable.prototype.unpipe = function(dest) {\n const state = this._readableState;\n const unpipeInfo = { hasUnpiped: false };\n\n // If we're not piping anywhere\x2C then do nothing.\n if (state.pipes.length === 0)\n return this;\n\n if (!dest) {\n // remove all.\n const dests = state.pipes;\n state.pipes = [];\n this.pause();\n\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe'\x2C this\x2C { hasUnpiped: false });\n return this;\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes\x2C dest);\n if (index === -1)\n return this;\n\n state.pipes.splice(index\x2C 1);\n if (state.pipes.length === 0)\n this.pause();\n\n dest.emit('unpipe'\x2C this\x2C unpipeInfo);\n\n return this;\n};\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function(ev\x2C fn) {\n const res = Stream.prototype.on.call(this\x2C ev\x2C fn);\n const state = this._readableState;\n\n if (ev === 'data') {\n // Update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused.\n if (state.flowing !== false)\n this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable'\x2C state.length\x2C state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick\x2C this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function(ev\x2C fn) {\n const res = Stream.prototype.removeListener.call(this\x2C\n ev\x2C fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable'\x2C fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening\x2C this);\n }\n\n return res;\n};\nReadable.prototype.off = Readable.prototype.removeListener;\n\nReadable.prototype.removeAllListeners = function(ev) {\n const res = Stream.prototype.removeAllListeners.apply(this\x2C\n arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable'\x2C fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening\x2C this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n const state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now\x2C otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n } else if (!state.readableListening) {\n state.flowing = null;\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them\x2C then switch into old mode.\nReadable.prototype.resume = function() {\n const state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // We flow only if there is no one listening\n // for readable\x2C but we still have to call\n // resume().\n state.flowing = !state.readableListening;\n resume(this\x2C state);\n }\n state[kPaused] = false;\n return this;\n};\n\nfunction resume(stream\x2C state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_\x2C stream\x2C state);\n }\n}\n\nfunction resume_(stream\x2C state) {\n debug('resume'\x2C state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n}\n\nReadable.prototype.pause = function() {\n debug('call pause flowing=%j'\x2C this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState[kPaused] = true;\n return this;\n};\n\nfunction flow(stream) {\n const state = stream._readableState;\n debug('flow'\x2C state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function(stream) {\n let paused = false;\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method\x2C e.g. Readable.wrap(stream).\n\n stream.on('data'\x2C (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true;\n stream.pause();\n }\n });\n\n stream.on('end'\x2C () => {\n this.push(null);\n });\n\n stream.on('error'\x2C (err) => {\n errorOrDestroy(this\x2C err);\n });\n\n stream.on('close'\x2C () => {\n this.destroy();\n });\n\n stream.on('destroy'\x2C () => {\n this.destroy();\n });\n\n this._read = () => {\n if (paused && stream.resume) {\n paused = false;\n stream.resume();\n }\n };\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream);\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j];\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream);\n }\n }\n\n return this;\n};\n\nReadable.prototype[SymbolAsyncIterator] = function() {\n return streamToAsyncIterator(this);\n};\n\nReadable.prototype.iterator = function(options) {\n if (options !== undefined) {\n validateObject(options\x2C 'options');\n }\n return streamToAsyncIterator(this\x2C options);\n};\n\nfunction streamToAsyncIterator(stream\x2C options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream\x2C { objectMode: true });\n }\n\n const iter = createAsyncIterator(stream\x2C options);\n iter.stream = stream;\n return iter;\n}\n\nasync function* createAsyncIterator(stream\x2C options) {\n let callback = nop;\n\n const opts = {\n destroyOnReturn: true\x2C\n destroyOnError: true\x2C\n ...options\x2C\n };\n\n function next(resolve) {\n if (this === stream) {\n callback();\n callback = nop;\n } else {\n callback = resolve;\n }\n }\n\n const state = stream._readableState;\n\n let error = state.errored;\n let errorEmitted = state.errorEmitted;\n let endEmitted = state.endEmitted;\n let closeEmitted = state.closeEmitted;\n\n stream\n .on('readable'\x2C next)\n .on('error'\x2C function(err) {\n error = err;\n errorEmitted = true;\n next.call(this);\n })\n .on('end'\x2C function() {\n endEmitted = true;\n next.call(this);\n })\n .on('close'\x2C function() {\n closeEmitted = true;\n next.call(this);\n });\n\n let errorThrown = false;\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read();\n if (chunk !== null) {\n yield chunk;\n } else if (errorEmitted) {\n throw error;\n } else if (endEmitted) {\n break;\n } else if (closeEmitted) {\n break;\n } else {\n await new Promise(next);\n }\n }\n } catch (err) {\n if (opts.destroyOnError) {\n destroyImpl.destroyer(stream\x2C err);\n }\n errorThrown = true;\n throw err;\n } finally {\n if (!errorThrown && opts.destroyOnReturn) {\n if (state.autoDestroy || !endEmitted) {\n // TODO(ronag): ERR_PREMATURE_CLOSE?\n destroyImpl.destroyer(stream\x2C null);\n }\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype\x2C {\n readable: {\n get() {\n const r = this._readableState;\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted &&\n !r.endEmitted;\n }\x2C\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val;\n }\n }\n }\x2C\n\n readableDidRead: {\n enumerable: false\x2C\n get: function() {\n return this._readableState.dataEmitted;\n }\n }\x2C\n\n readableAborted: {\n enumerable: false\x2C\n get: function() {\n return !!(this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted;\n }\n }\x2C\n\n readableHighWaterMark: {\n enumerable: false\x2C\n get: function() {\n return this._readableState.highWaterMark;\n }\n }\x2C\n\n readableBuffer: {\n enumerable: false\x2C\n get: function() {\n return this._readableState && this._readableState.buffer;\n }\n }\x2C\n\n readableFlowing: {\n enumerable: false\x2C\n get: function() {\n return this._readableState.flowing;\n }\x2C\n set: function(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n }\x2C\n\n readableLength: {\n enumerable: false\x2C\n get() {\n return this._readableState.length;\n }\n }\x2C\n\n readableObjectMode: {\n enumerable: false\x2C\n get() {\n return this._readableState ? this._readableState.objectMode : false;\n }\n }\x2C\n\n readableEncoding: {\n enumerable: false\x2C\n get() {\n return this._readableState ? this._readableState.encoding : null;\n }\n }\x2C\n\n destroyed: {\n enumerable: false\x2C\n get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n }\x2C\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return;\n }\n\n // Backward compatibility\x2C the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value;\n }\n }\x2C\n\n readableEnded: {\n enumerable: false\x2C\n get() {\n return this._readableState ? this._readableState.endEmitted : false;\n }\n }\x2C\n\n});\n\nObjectDefineProperties(ReadableState.prototype\x2C {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n get() {\n return this.pipes.length;\n }\n }\x2C\n\n // Legacy property for `paused`.\n paused: {\n get() {\n return this[kPaused] !== false;\n }\x2C\n set(value) {\n this[kPaused] = !!value;\n }\n }\n});\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable\x2C so please take care when making\n// changes to the function body.\nfunction fromList(n\x2C state) {\n // nothing buffered.\n if (state.length === 0)\n return null;\n\n let ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n // Read it all\x2C truncate the list.\n if (state.decoder)\n ret = state.buffer.join('');\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list.\n ret = state.buffer.consume(n\x2C state.decoder);\n }\n\n return ret;\n}\n\nfunction endReadable(stream) {\n const state = stream._readableState;\n\n debug('endReadable'\x2C state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT\x2C state\x2C stream);\n }\n}\n\nfunction endReadableNT(state\x2C stream) {\n debug('endReadableNT'\x2C state.endEmitted\x2C state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.errorEmitted && !state.closeEmitted &&\n !state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.emit('end');\n\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT\x2C stream);\n } else if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well.\n const wState = stream._writableState;\n const autoDestroy = !wState || (\n wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false)\n );\n\n if (autoDestroy) {\n stream.destroy();\n }\n }\n }\n}\n\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded &&\n !stream.destroyed;\n if (writable) {\n stream.end();\n }\n}\n\nReadable.from = function(iterable\x2C opts) {\n return from(Readable\x2C iterable\x2C opts);\n};\n\nReadable.wrap = function(src\x2C options) {\n return new Readable({\n objectMode: src.readableObjectMode ?? src.objectMode ?? true\x2C\n ...options\x2C\n destroy(err\x2C callback) {\n destroyImpl.destroyer(src\x2C err);\n callback(err);\n }\n }).wrap(src);\n};\n code-source-info,0xe1ea49db52e,49,6246,7126,C0O6246C9O6260C16O6271C21O6297C28O6304C33O6326C34O6481C41O6497C44O6504C48O6486C52O6515C71O6537C76O6535C80O6584C84O6622C92O6649C95O6670C99O6660C103O6700C111O6730C114O6754C118O6744C122O6787C130O6819C133O6845C137O6835C141O6872C149O6883C151O6899C158O6932C166O6899C171O6954C178O6961C186O6961C192O6985C199O6997C212O6997C219O7125,, code-creation,LazyCompile,10,39978,0xe1ea49de2ee,18,Stream node:internal/streams/legacy:10:16,0x6a244a579f8,~ script-source,50,node:internal/streams/legacy,'use strict';\n\nconst {\n ArrayIsArray\x2C\n ObjectSetPrototypeOf\x2C\n} = primordials;\n\nconst EE = require('events');\n\nfunction Stream(opts) {\n EE.call(this\x2C opts);\n}\nObjectSetPrototypeOf(Stream.prototype\x2C EE.prototype);\nObjectSetPrototypeOf(Stream\x2C EE);\n\nStream.prototype.pipe = function(dest\x2C options) {\n const source = this;\n\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause();\n }\n }\n\n source.on('data'\x2C ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain'\x2C ondrain);\n\n // If the 'end' option is not supplied\x2C dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end'\x2C onend);\n source.on('close'\x2C onclose);\n }\n\n let didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this\x2C 'error') === 0) {\n this.emit('error'\x2C er);\n }\n }\n\n prependListener(source\x2C 'error'\x2C onerror);\n prependListener(dest\x2C 'error'\x2C onerror);\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data'\x2C ondata);\n dest.removeListener('drain'\x2C ondrain);\n\n source.removeListener('end'\x2C onend);\n source.removeListener('close'\x2C onclose);\n\n source.removeListener('error'\x2C onerror);\n dest.removeListener('error'\x2C onerror);\n\n source.removeListener('end'\x2C cleanup);\n source.removeListener('close'\x2C cleanup);\n\n dest.removeListener('close'\x2C cleanup);\n }\n\n source.on('end'\x2C cleanup);\n source.on('close'\x2C cleanup);\n\n dest.on('close'\x2C cleanup);\n dest.emit('pipe'\x2C source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n\nfunction prependListener(emitter\x2C event\x2C fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function')\n return emitter.prependListener(event\x2C fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event\x2C fn);\n else if (ArrayIsArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn\x2C emitter._events[event]];\n}\n\nmodule.exports = { Stream\x2C prependListener };\n code-source-info,0xe1ea49de2ee,50,127,160,C0O138C5O141C10O141C17O159,, code-creation,LazyCompile,10,40040,0xe1ea49de78e,21,EventEmitter node:events:84:22,0x24d59d731ba8,~ code-source-info,0xe1ea49de78e,13,2479,2527,C0O2490C3O2503C8O2508C13O2508C20O2526,, StoreIC,0xe1ea49da290,40074,98,13,X,X,0x000000000000,handle,, StoreIC,0xe1ea49da920,40097,301,19,X,X,0x000000000000,connecting,, StoreIC,0xe1ea49da930,40102,306,18,X,X,0x000000000000,_hadError,, StoreIC,0xe1ea49da93f,40107,308,16,X,X,0x000000000000,_parent,, StoreIC,0xe1ea49da944,40110,309,14,X,X,0x000000000000,_host,, StoreIC,0xe1ea49da9b0,40120,323,25,X,X,0x000000000000,allowHalfOpen,, StoreIC,0xe1ea49da9b5,40124,325,21,X,X,0x000000000000,emitClose,, StoreIC,0xe1ea49da9ba,40128,326,23,X,X,0x000000000000,autoDestroy,, StoreIC,0xe1ea49da9bf,40132,328,25,X,X,0x000000000000,decodeStrings,, code-creation,LazyCompile,10,40183,0xe1ea49df0ae,354,ReadableState node:internal/streams/readable:78:23,0x6a244a551b8,~ code-source-info,0xe1ea49df0ae,49,2519,6226,C0O2857C6O2896C8O2925C11O2932C15O2914C20O3065C25O3086C27O3105C33O3081C37O3121C41O3162C52O3185C54O3204C60O3155C64O3370C69O3391C73O3405C88O3405C97O3478C102O3478C106O3389C110O3681C112O3699C115O3695C120O3693C124O3715C125O3727C129O3734C131O3745C135O3753C136O3766C140O3776C141O3787C145O3798C146O3814C150O3825C151O3838C155O4032C156O4049C160O4329C161O4339C165O4460C166O4478C170O4489C171O4510C175O4521C176O4544C180O4555C181O4576C185O4587C187O4592C191O4601C195O4687C196O4705C200O4776C202O4794C208O4813C214O4823C218O4791C222O4910C224O4930C230O4949C236O4961C240O4927C244O5003C245O5018C249O5271C250O5284C254O5354C255O5366C259O5470C260O5488C264O5695C269O5719C271O5738C279O5716C283O5871C284O5894C288O5904C289O5925C293O5987C294O6004C298O6016C299O6033C303O6045C304O6058C308O6068C309O6082C313O6092C317O6115C323O6131C325O6150C328O6172C335O6146C340O6144C344O6211C348O6201C353O6225,, StoreIC,0xe1ea49df0cf,40203,89,19,X,X,0x000000000000,objectMode,, code-creation,LazyCompile,10,40228,0xe1ea49df4be,98,getHighWaterMark node:internal/streams/state:19:26,0x6a244a5a3b8,~ script-source,53,node:internal/streams/state,'use strict';\n\nconst {\n MathFloor\x2C\n NumberIsInteger\x2C\n} = primordials;\n\nconst { ERR_INVALID_ARG_VALUE } = require('internal/errors').codes;\n\nfunction highWaterMarkFrom(options\x2C isDuplex\x2C duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark :\n isDuplex ? options[duplexKey] : null;\n}\n\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? 16 : 16 * 1024;\n}\n\nfunction getHighWaterMark(state\x2C options\x2C duplexKey\x2C isDuplex) {\n const hwm = highWaterMarkFrom(options\x2C isDuplex\x2C duplexKey);\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark';\n throw new ERR_INVALID_ARG_VALUE(name\x2C hwm);\n }\n return MathFloor(hwm);\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode);\n}\n\nmodule.exports = {\n getHighWaterMark\x2C\n getDefaultHighWaterMark\n};\n code-source-info,0xe1ea49df4be,53,424,832,C0O478C12O478C18O529C21O552C26O557C33O585C38O611C47O633C56O678C69O684C74O678C75O732C80O739C84O754C85O781C88O818C93O788C97O830,, code-creation,LazyCompile,10,40260,0xe1ea49df756,26,highWaterMarkFrom node:internal/streams/state:10:27,0x6a244a5a258,~ code-source-info,0xe1ea49df756,53,168,309,C0O218C7O250C15O270C19O288C25O307,, code-creation,LazyCompile,10,40272,0xe1ea49df82e,13,getDefaultHighWaterMark node:internal/streams/state:15:33,0x6a244a5a368,~ code-source-info,0xe1ea49df82e,53,343,397,C0O360C12O395,, StoreIC,0xe1ea49df118,40279,97,22,X,X,0x000000000000,highWaterMark,, code-creation,LazyCompile,10,40294,0xe1ea49df90e,17,BufferList node:internal/streams/buffer_list:14:14,0x6a244a59738,~ script-source,52,node:internal/streams/buffer_list,'use strict';\n\nconst {\n StringPrototypeSlice\x2C\n SymbolIterator\x2C\n TypedArrayPrototypeSet\x2C\n Uint8Array\x2C\n} = primordials;\n\nconst { Buffer } = require('buffer');\nconst { inspect } = require('internal/util/inspect');\n\nmodule.exports = class BufferList {\n constructor() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n push(v) {\n const entry = { data: v\x2C next: null };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n\n unshift(v) {\n const entry = { data: v\x2C next: this.head };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n\n shift() {\n if (this.length === 0)\n return;\n const ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n\n clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n\n join(s) {\n if (this.length === 0)\n return '';\n let p = this.head;\n let ret = '' + p.data;\n while (p = p.next)\n ret += s + p.data;\n return ret;\n }\n\n concat(n) {\n if (this.length === 0)\n return Buffer.alloc(0);\n const ret = Buffer.allocUnsafe(n >>> 0);\n let p = this.head;\n let i = 0;\n while (p) {\n TypedArrayPrototypeSet(ret\x2C p.data\x2C i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n\x2C hasStrings) {\n const data = this.head.data;\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0\x2C n);\n this.head.data = data.slice(n);\n return slice;\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift();\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n first() {\n return this.head.data;\n }\n\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data;\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = '';\n let p = this.head;\n let c = 0;\n do {\n const str = p.data;\n if (n > str.length) {\n ret += str;\n n -= str.length;\n } else {\n if (n === str.length) {\n ret += str;\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n ret += StringPrototypeSlice(str\x2C 0\x2C n);\n this.head = p;\n p.data = StringPrototypeSlice(str\x2C n);\n }\n break;\n }\n ++c;\n } while (p = p.next);\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n);\n const retLen = n;\n let p = this.head;\n let c = 0;\n do {\n const buf = p.data;\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret\x2C buf\x2C retLen - n);\n n -= buf.length;\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret\x2C buf\x2C retLen - n);\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n TypedArrayPrototypeSet(ret\x2C\n new Uint8Array(buf.buffer\x2C buf.byteOffset\x2C n)\x2C\n retLen - n);\n this.head = p;\n p.data = buf.slice(n);\n }\n break;\n }\n ++c;\n } while (p = p.next);\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [inspect.custom](_\x2C options) {\n return inspect(this\x2C {\n ...options\x2C\n // Only inspect one level.\n depth: 0\x2C\n // It should not recurse.\n customInspect: false\n });\n }\n};\n code-source-info,0xe1ea49df90e,52,265,338,C0O274C1O284C5O296C6O306C10O318C11O330C16O337,, StoreIC,0xe1ea49df90f,40375,15,15,X,X,0x000000000000,head,, StoreIC,0xe1ea49df914,40379,16,15,X,X,0x000000000000,tail,, StoreIC,0xe1ea49df919,40382,17,17,X,X,0x000000000000,length,, StoreIC,0xe1ea49df126,40385,104,15,X,X,0x000000000000,buffer,, StoreIC,0xe1ea49df12b,40388,105,15,X,X,0x000000000000,length,, StoreIC,0xe1ea49df131,40391,106,14,X,X,0x000000000000,pipes,, StoreIC,0xe1ea49df136,40394,107,16,X,X,0x000000000000,flowing,, StoreIC,0xe1ea49df13b,40397,108,14,X,X,0x000000000000,ended,, StoreIC,0xe1ea49df140,40399,109,19,X,X,0x000000000000,endEmitted,, StoreIC,0xe1ea49df145,40403,110,16,X,X,0x000000000000,reading,, StoreIC,0xe1ea49df14a,40406,116,20,X,X,0x000000000000,constructed,, StoreIC,0xe1ea49df14f,40409,122,13,X,X,0x000000000000,sync,, StoreIC,0xe1ea49df154,40411,126,21,X,X,0x000000000000,needReadable,, StoreIC,0xe1ea49df159,40414,127,24,X,X,0x000000000000,emittedReadable,, StoreIC,0xe1ea49df15e,40418,128,26,X,X,0x000000000000,readableListening,, StoreIC,0xe1ea49df163,40420,129,24,X,X,0x000000000000,resumeScheduled,, StoreIC,0xe1ea49df172,40426,133,21,X,X,0x000000000000,errorEmitted,, StoreIC,0xe1ea49df188,40430,136,18,X,X,0x000000000000,emitClose,, StoreIC,0xe1ea49df19e,40433,139,20,X,X,0x000000000000,autoDestroy,, StoreIC,0xe1ea49df1a3,40437,142,18,X,X,0x000000000000,destroyed,, StoreIC,0xe1ea49df1a8,40440,148,16,X,X,0x000000000000,errored,, StoreIC,0xe1ea49df1ad,40443,151,15,X,X,0x000000000000,closed,, StoreIC,0xe1ea49df1b2,40446,155,21,X,X,0x000000000000,closeEmitted,, StoreIC,0xe1ea49df1c5,40449,160,24,X,X,0x000000000000,defaultEncoding,, StoreIC,0xe1ea49df1ca,40455,164,26,X,X,0x000000000000,awaitDrainWriters,, StoreIC,0xe1ea49df1cf,40458,165,24,X,X,0x000000000000,multiAwaitDrain,, StoreIC,0xe1ea49df1d4,40461,168,20,X,X,0x000000000000,readingMore,, StoreIC,0xe1ea49df1d9,40465,170,20,X,X,0x000000000000,dataEmitted,, StoreIC,0xe1ea49df1de,40468,172,16,X,X,0x000000000000,decoder,, StoreIC,0xe1ea49df1e3,40472,173,17,X,X,0x000000000000,encoding,, StoreIC,0xe1ea49db57a,40476,189,23,X,X,0x000000000000,_readableState,, code-creation,LazyCompile,10,40502,0xe1ea49e005e,149,EventEmitter.init node:events:194:29,0x24d59d7328a8,~ code-source-info,0xe1ea49e005e,13,5579,6168,C0O5600C6O5636C13O5648C16O5648C21O5674C25O5644C30O5690C32O5705C37O5705C41O5703C45O5729C46O5747C50O5785C60O5778C64O5817C71O5825C80O5852C85O5873C93O5852C98O5926C100O5931C105O5943C108O5956C113O5943C117O5941C123O6112C125O6117C131O6142C138O6152C140O6151C143O6127C148O6167,, StoreIC,0xe1ea49e0087,40514,198,18,X,X,0x000000000000,_events,, StoreIC,0xe1ea49e008c,40518,199,23,X,X,0x000000000000,_eventsCount,, StoreIC,0xe1ea49e009a,40522,202,22,X,X,0x000000000000,_maxListeners,, code-creation,LazyCompile,10,40552,0xe1ea49e0276,98,construct node:internal/streams/destroy:225:19,0x6a244a490f8,~ script-source,47,node:internal/streams/destroy,'use strict';\n\nconst {\n aggregateTwoErrors\x2C\n codes: {\n ERR_MULTIPLE_CALLBACK\x2C\n }\x2C\n} = require('internal/errors');\nconst {\n Symbol\x2C\n} = primordials;\n\nconst kDestroy = Symbol('kDestroy');\nconst kConstruct = Symbol('kConstruct');\n\nfunction checkError(err\x2C w\x2C r) {\n if (err) {\n // Avoid V8 leak\x2C https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack; // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err;\n }\n if (r && !r.errored) {\n r.errored = err;\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err\x2C cb) {\n const r = this._readableState;\n const w = this._writableState;\n // With duplex streams we use the writable side for state.\n const s = w || r;\n\n if ((w && w.destroyed) || (r && r.destroyed)) {\n if (typeof cb === 'function') {\n cb();\n }\n\n return this;\n }\n\n\n // We set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n checkError(err\x2C w\x2C r);\n\n if (w) {\n w.destroyed = true;\n }\n if (r) {\n r.destroyed = true;\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy\x2C function(er) {\n _destroy(this\x2C aggregateTwoErrors(er\x2C err)\x2C cb);\n });\n } else {\n _destroy(this\x2C err\x2C cb);\n }\n\n return this;\n}\n\nfunction _destroy(self\x2C err\x2C cb) {\n let called = false;\n\n function onDestroy(err) {\n if (called) {\n return;\n }\n called = true;\n\n const r = self._readableState;\n const w = self._writableState;\n\n checkError(err\x2C w\x2C r);\n\n if (w) {\n w.closed = true;\n }\n if (r) {\n r.closed = true;\n }\n\n if (typeof cb === 'function') {\n cb(err);\n }\n\n if (err) {\n process.nextTick(emitErrorCloseNT\x2C self\x2C err);\n } else {\n process.nextTick(emitCloseNT\x2C self);\n }\n }\n try {\n const result = self._destroy(err || null\x2C onDestroy);\n if (result != null) {\n const then = result.then;\n if (typeof then === 'function') {\n then.call(\n result\x2C\n function() {\n process.nextTick(onDestroy\x2C null);\n }\x2C\n function(err) {\n process.nextTick(onDestroy\x2C err);\n });\n }\n }\n } catch (err) {\n onDestroy(err);\n }\n}\n\nfunction emitErrorCloseNT(self\x2C err) {\n emitErrorNT(self\x2C err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n const r = self._readableState;\n const w = self._writableState;\n\n if (w) {\n w.closeEmitted = true;\n }\n if (r) {\n r.closeEmitted = true;\n }\n\n if ((w && w.emitClose) || (r && r.emitClose)) {\n self.emit('close');\n }\n}\n\nfunction emitErrorNT(self\x2C err) {\n const r = self._readableState;\n const w = self._writableState;\n\n if ((w && w.errorEmitted) || (r && r.errorEmitted)) {\n return;\n }\n\n if (w) {\n w.errorEmitted = true;\n }\n if (r) {\n r.errorEmitted = true;\n }\n\n self.emit('error'\x2C err);\n}\n\nfunction undestroy() {\n const r = this._readableState;\n const w = this._writableState;\n\n if (r) {\n r.constructed = true;\n r.closed = false;\n r.closeEmitted = false;\n r.destroyed = false;\n r.errored = null;\n r.errorEmitted = false;\n r.reading = false;\n r.ended = false;\n r.endEmitted = false;\n }\n\n if (w) {\n w.constructed = true;\n w.destroyed = false;\n w.closed = false;\n w.closeEmitted = false;\n w.errored = null;\n w.errorEmitted = false;\n w.ended = false;\n w.ending = false;\n w.finalCalled = false;\n w.prefinished = false;\n w.finished = false;\n }\n}\n\nfunction errorOrDestroy(stream\x2C err\x2C sync) {\n // We have tests that rely on errors being emitted\n // in the same tick\x2C so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n const r = stream._readableState;\n const w = stream._writableState;\n\n if ((w && w.destroyed) || (r && r.destroyed)) {\n return this;\n }\n\n if ((r && r.autoDestroy) || (w && w.autoDestroy))\n stream.destroy(err);\n else if (err) {\n // Avoid V8 leak\x2C https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack; // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err;\n }\n if (r && !r.errored) {\n r.errored = err;\n }\n if (sync) {\n process.nextTick(emitErrorNT\x2C stream\x2C err);\n } else {\n emitErrorNT(stream\x2C err);\n }\n }\n}\n\nfunction construct(stream\x2C cb) {\n if (typeof stream._construct !== 'function') {\n return;\n }\n\n const r = stream._readableState;\n const w = stream._writableState;\n\n if (r) {\n r.constructed = false;\n }\n if (w) {\n w.constructed = false;\n }\n\n stream.once(kConstruct\x2C cb);\n\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return;\n }\n\n process.nextTick(constructNT\x2C stream);\n}\n\nfunction constructNT(stream) {\n let called = false;\n\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream\x2C err ?? new ERR_MULTIPLE_CALLBACK());\n return;\n }\n called = true;\n\n const r = stream._readableState;\n const w = stream._writableState;\n const s = w || r;\n\n if (r) {\n r.constructed = true;\n }\n if (w) {\n w.constructed = true;\n }\n\n if (s.destroyed) {\n stream.emit(kDestroy\x2C err);\n } else if (err) {\n errorOrDestroy(stream\x2C err\x2C true);\n } else {\n process.nextTick(emitConstructNT\x2C stream);\n }\n }\n\n try {\n const result = stream._construct(onConstruct);\n if (result != null) {\n const then = result.then;\n if (typeof then === 'function') {\n then.call(\n result\x2C\n function() {\n process.nextTick(onConstruct\x2C null);\n }\x2C\n function(err) {\n process.nextTick(onConstruct\x2C err);\n });\n }\n }\n } catch (err) {\n onConstruct(err);\n }\n}\n\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct);\n}\n\nfunction isRequest(stream) {\n return stream && stream.setHeader && typeof stream.abort === 'function';\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream\x2C err) {\n if (!stream) return;\n if (isRequest(stream)) return stream.abort();\n if (isRequest(stream.req)) return stream.req.abort();\n if (typeof stream.destroy === 'function') return stream.destroy(err);\n if (typeof stream.close === 'function') return stream.close();\n}\n\nmodule.exports = {\n construct\x2C\n destroyer\x2C\n destroy\x2C\n undestroy\x2C\n errorOrDestroy\n};\n code-source-info,0xe1ea49e0276,47,4626,5014,C0O4661C8O4694C9O4701C10O4726C15O4761C20O4780C24O4793C25O4807C29O4822C33O4835C34O4849C38O4872C45O4877C48O4872C54O4908C61O4922C64O4908C72O4934C77O4959C78O4966C79O4974C82O4982C90O4982C97O5013,, code-creation,LazyCompile,10,40730,0xe1ea49e0f26,266,Writable node:internal/streams/writable:219:18,0x6a244a63428,~ script-source,56,node:internal/streams/writable,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk\x2C encoding\x2C cb)\x2C and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nconst {\n ArrayPrototypeSlice\x2C\n Error\x2C\n FunctionPrototypeSymbolHasInstance\x2C\n ObjectDefineProperty\x2C\n ObjectDefineProperties\x2C\n ObjectSetPrototypeOf\x2C\n StringPrototypeToLowerCase\x2C\n Symbol\x2C\n SymbolHasInstance\x2C\n} = primordials;\n\nmodule.exports = Writable;\nWritable.WritableState = WritableState;\n\nconst EE = require('events');\nconst Stream = require('internal/streams/legacy').Stream;\nconst { Buffer } = require('buffer');\nconst destroyImpl = require('internal/streams/destroy');\n\nconst {\n addAbortSignalNoValidate\x2C\n} = require('internal/streams/add-abort-signal');\n\nconst {\n getHighWaterMark\x2C\n getDefaultHighWaterMark\n} = require('internal/streams/state');\nconst {\n ERR_INVALID_ARG_TYPE\x2C\n ERR_METHOD_NOT_IMPLEMENTED\x2C\n ERR_MULTIPLE_CALLBACK\x2C\n ERR_STREAM_CANNOT_PIPE\x2C\n ERR_STREAM_DESTROYED\x2C\n ERR_STREAM_ALREADY_FINISHED\x2C\n ERR_STREAM_NULL_VALUES\x2C\n ERR_STREAM_WRITE_AFTER_END\x2C\n ERR_UNKNOWN_ENCODING\n} = require('internal/errors').codes;\n\nconst { errorOrDestroy } = destroyImpl;\n\nObjectSetPrototypeOf(Writable.prototype\x2C Stream.prototype);\nObjectSetPrototypeOf(Writable\x2C Stream);\n\nfunction nop() {}\n\nconst kOnFinished = Symbol('kOnFinished');\n\nfunction WritableState(options\x2C stream\x2C isDuplex) {\n // Duplex streams are both readable and writable\x2C but share\n // the same options object.\n // However\x2C some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream\x2C\n // e.g. options.readableObjectMode vs. options.writableObjectMode\x2C etc.\n if (typeof isDuplex !== 'boolean')\n isDuplex = stream instanceof Stream.Duplex;\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode);\n\n if (isDuplex)\n this.objectMode = this.objectMode ||\n !!(options && options.writableObjectMode);\n\n // The point at which write() starts returning false\n // Note: 0 is a valid value\x2C means that we always return false if\n // the entire buffer is not flushed immediately on write().\n this.highWaterMark = options ?\n getHighWaterMark(this\x2C options\x2C 'writableHighWaterMark'\x2C isDuplex) :\n getDefaultHighWaterMark(false);\n\n // if _final has been called.\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // At the start of calling end()\n this.ending = false;\n // When end() has been called\x2C and returned.\n this.ended = false;\n // When 'finish' is emitted.\n this.finished = false;\n\n // Has it been destroyed\n this.destroyed = false;\n\n // Should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n const noDecode = !!(options && options.decodeStrings === false);\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically\x2C its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8'\x2C though.\n this.defaultEncoding = (options && options.defaultEncoding) || 'utf8';\n\n // Not an actual buffer we keep track of\x2C but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // A flag to see when we're in the middle of a write.\n this.writing = false;\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0;\n\n // A flag to be able to tell if the onwrite cb is called immediately\x2C\n // or on a later tick. We set this to true at first\x2C because any\n // actions that shouldn't happen until "later" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // A flag to know if we're processing previously buffered items\x2C which\n // may call the _write() callback in the same tick\x2C so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // The callback that's passed to _write(chunk\x2C cb).\n this.onwrite = onwrite.bind(undefined\x2C stream);\n\n // The callback that the user supplies to write(chunk\x2C encoding\x2C cb).\n this.writecb = null;\n\n // The amount that is being written when _write is called.\n this.writelen = 0;\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null;\n\n resetBuffer(this);\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0;\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in\x2C therefore we start as\n // constructed.\n this.constructed = true;\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false;\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null;\n\n // Indicates whether the stream has finished destroying.\n this.closed = false;\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false;\n\n this[kOnFinished] = [];\n}\n\nfunction resetBuffer(state) {\n state.buffered = [];\n state.bufferedIndex = 0;\n state.allBuffers = true;\n state.allNoop = true;\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered\x2C this.bufferedIndex);\n};\n\nObjectDefineProperty(WritableState.prototype\x2C 'bufferedRequestCount'\x2C {\n get() {\n return this.buffered.length - this.bufferedIndex;\n }\n});\n\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes\x2C too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false\x2C as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation\x2C which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor\x2C at least with V8 6.5.\n const isDuplex = (this instanceof Stream.Duplex);\n\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable\x2C this))\n return new Writable(options);\n\n this._writableState = new WritableState(options\x2C this\x2C isDuplex);\n\n if (options) {\n if (typeof options.write === 'function')\n this._write = options.write;\n\n if (typeof options.writev === 'function')\n this._writev = options.writev;\n\n if (typeof options.destroy === 'function')\n this._destroy = options.destroy;\n\n if (typeof options.final === 'function')\n this._final = options.final;\n\n if (typeof options.construct === 'function')\n this._construct = options.construct;\n if (options.signal)\n addAbortSignalNoValidate(options.signal\x2C this);\n }\n\n Stream.call(this\x2C options);\n\n destroyImpl.construct(this\x2C () => {\n const state = this._writableState;\n\n if (!state.writing) {\n clearBuffer(this\x2C state);\n }\n\n finishMaybe(this\x2C state);\n });\n}\n\nObjectDefineProperty(Writable\x2C SymbolHasInstance\x2C {\n value: function(object) {\n if (FunctionPrototypeSymbolHasInstance(this\x2C object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\x2C\n});\n\n// Otherwise people can pipe Writable streams\x2C which is just wrong.\nWritable.prototype.pipe = function() {\n errorOrDestroy(this\x2C new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction _write(stream\x2C chunk\x2C encoding\x2C cb) {\n const state = stream._writableState;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = state.defaultEncoding;\n } else {\n if (!encoding)\n encoding = state.defaultEncoding;\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n if (typeof cb !== 'function')\n cb = nop;\n }\n\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES();\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk\x2C encoding);\n encoding = 'buffer';\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer';\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk);\n encoding = 'buffer';\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'chunk'\x2C ['string'\x2C 'Buffer'\x2C 'Uint8Array']\x2C chunk);\n }\n }\n\n let err;\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END();\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write');\n }\n\n if (err) {\n process.nextTick(cb\x2C err);\n errorOrDestroy(stream\x2C err\x2C true);\n return err;\n }\n state.pendingcb++;\n return writeOrBuffer(stream\x2C state\x2C chunk\x2C encoding\x2C cb);\n}\n\nWritable.prototype.write = function(chunk\x2C encoding\x2C cb) {\n return _write(this\x2C chunk\x2C encoding\x2C cb) === true;\n};\n\nWritable.prototype.cork = function() {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function() {\n const state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing)\n clearBuffer(this\x2C state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string')\n encoding = StringPrototypeToLowerCase(encoding);\n if (!Buffer.isEncoding(encoding))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\n// If we're already writing something\x2C then just put this\n// in the queue\x2C and wait our turn. Otherwise\x2C call _write\n// If we return false\x2C then we need a drain event\x2C so set that flag.\nfunction writeOrBuffer(stream\x2C state\x2C chunk\x2C encoding\x2C callback) {\n const len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark;\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret)\n state.needDrain = true;\n\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({ chunk\x2C encoding\x2C callback });\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false;\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false;\n }\n } else {\n state.writelen = len;\n state.writecb = callback;\n state.writing = true;\n state.sync = true;\n stream._write(chunk\x2C encoding\x2C state.onwrite);\n state.sync = false;\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed;\n}\n\nfunction doWrite(stream\x2C state\x2C writev\x2C len\x2C chunk\x2C encoding\x2C cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED('write'));\n else if (writev)\n stream._writev(chunk\x2C state.onwrite);\n else\n stream._write(chunk\x2C encoding\x2C state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream\x2C state\x2C er\x2C cb) {\n --state.pendingcb;\n\n cb(er);\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write\x2C not to the buffered\n // writes.\n errorBuffer(state);\n // This can emit error\x2C but error must always follow cb.\n errorOrDestroy(stream\x2C er);\n}\n\nfunction onwrite(stream\x2C er) {\n const state = stream._writableState;\n const sync = state.sync;\n const cb = state.writecb;\n\n if (typeof cb !== 'function') {\n errorOrDestroy(stream\x2C new ERR_MULTIPLE_CALLBACK());\n return;\n }\n\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n\n if (er) {\n // Avoid V8 leak\x2C https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack; // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er;\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er;\n }\n\n if (sync) {\n process.nextTick(onwriteError\x2C stream\x2C state\x2C er\x2C cb);\n } else {\n onwriteError(stream\x2C state\x2C er\x2C cb);\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream\x2C state);\n }\n\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case\x2C we do not schedule a new nextTick()\x2C but\n // rather just increase a counter\x2C to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null &&\n state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++;\n } else {\n state.afterWriteTickInfo = { count: 1\x2C cb\x2C stream\x2C state };\n process.nextTick(afterWriteTick\x2C state.afterWriteTickInfo);\n }\n } else {\n afterWrite(stream\x2C state\x2C 1\x2C cb);\n }\n }\n}\n\nfunction afterWriteTick({ stream\x2C state\x2C count\x2C cb }) {\n state.afterWriteTickInfo = null;\n return afterWrite(stream\x2C state\x2C count\x2C cb);\n}\n\nfunction afterWrite(stream\x2C state\x2C count\x2C cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 &&\n state.needDrain;\n if (needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n\n while (count-- > 0) {\n state.pendingcb--;\n cb();\n }\n\n if (state.destroyed) {\n errorBuffer(state);\n }\n\n finishMaybe(stream\x2C state);\n}\n\n// If there's something in the buffer waiting\x2C then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return;\n }\n\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n const { chunk\x2C callback } = state.buffered[n];\n const len = state.objectMode ? 1 : chunk.length;\n state.length -= len;\n callback(new ERR_STREAM_DESTROYED('write'));\n }\n\n const onfinishCallbacks = state[kOnFinished].splice(0);\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](new ERR_STREAM_DESTROYED('end'));\n }\n\n resetBuffer(state);\n}\n\n// If there's something in the buffer waiting\x2C then process it.\nfunction clearBuffer(stream\x2C state) {\n if (state.corked ||\n state.bufferProcessing ||\n state.destroyed ||\n !state.constructed) {\n return;\n }\n\n const { buffered\x2C bufferedIndex\x2C objectMode } = state;\n const bufferedLength = buffered.length - bufferedIndex;\n\n if (!bufferedLength) {\n return;\n }\n\n let i = bufferedIndex;\n\n state.bufferProcessing = true;\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1;\n\n const callback = state.allNoop ? nop : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err);\n }\n };\n // Make a copy of `buffered` if it's going to be used by `callback` above\x2C\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ?\n buffered : ArrayPrototypeSlice(buffered\x2C i);\n chunks.allBuffers = state.allBuffers;\n\n doWrite(stream\x2C state\x2C true\x2C state.length\x2C chunks\x2C ''\x2C callback);\n\n resetBuffer(state);\n } else {\n do {\n const { chunk\x2C encoding\x2C callback } = buffered[i];\n buffered[i++] = null;\n const len = objectMode ? 1 : chunk.length;\n doWrite(stream\x2C state\x2C false\x2C len\x2C chunk\x2C encoding\x2C callback);\n } while (i < buffered.length && !state.writing);\n\n if (i === buffered.length) {\n resetBuffer(state);\n } else if (i > 256) {\n buffered.splice(0\x2C i);\n state.bufferedIndex = 0;\n } else {\n state.bufferedIndex = i;\n }\n }\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function(chunk\x2C encoding\x2C cb) {\n if (this._writev) {\n this._writev([{ chunk\x2C encoding }]\x2C cb);\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()');\n }\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function(chunk\x2C encoding\x2C cb) {\n const state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n let err;\n\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this\x2C chunk\x2C encoding);\n if (ret instanceof Error) {\n err = ret;\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However\x2C usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true;\n finishMaybe(this\x2C state\x2C true);\n state.ended = true;\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end');\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end');\n }\n\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb\x2C err);\n } else {\n state[kOnFinished].push(cb);\n }\n }\n\n return this;\n};\n\nfunction needFinish(state) {\n return (state.ending &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted);\n}\n\nfunction callFinal(stream\x2C state) {\n let called = false;\n\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream\x2C err ?? ERR_MULTIPLE_CALLBACK());\n return;\n }\n called = true;\n\n state.pendingcb--;\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0);\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err);\n }\n errorOrDestroy(stream\x2C err\x2C state.sync);\n } else if (needFinish(state)) {\n state.prefinished = true;\n stream.emit('prefinish');\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++;\n process.nextTick(finish\x2C stream\x2C state);\n }\n }\n\n state.sync = true;\n state.pendingcb++;\n\n try {\n const result = stream._final(onFinish);\n if (result != null) {\n const then = result.then;\n if (typeof then === 'function') {\n then.call(\n result\x2C\n function() {\n process.nextTick(onFinish\x2C null);\n }\x2C\n function(err) {\n process.nextTick(onFinish\x2C err);\n });\n }\n }\n } catch (err) {\n onFinish(stream\x2C state\x2C err);\n }\n\n state.sync = false;\n}\n\nfunction prefinish(stream\x2C state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true;\n callFinal(stream\x2C state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream\x2C state\x2C sync) {\n if (needFinish(state)) {\n prefinish(stream\x2C state);\n if (state.pendingcb === 0 && needFinish(state)) {\n state.pendingcb++;\n if (sync) {\n process.nextTick(finish\x2C stream\x2C state);\n } else {\n finish(stream\x2C state);\n }\n }\n }\n}\n\nfunction finish(stream\x2C state) {\n state.pendingcb--;\n state.finished = true;\n\n const onfinishCallbacks = state[kOnFinished].splice(0);\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]();\n }\n\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well.\n const rState = stream._readableState;\n const autoDestroy = !rState || (\n rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false)\n );\n if (autoDestroy) {\n stream.destroy();\n }\n }\n}\n\nObjectDefineProperties(Writable.prototype\x2C {\n\n destroyed: {\n get() {\n return this._writableState ? this._writableState.destroyed : false;\n }\x2C\n set(value) {\n // Backward compatibility\x2C the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value;\n }\n }\n }\x2C\n\n writable: {\n get() {\n const w = this._writableState;\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored &&\n !w.ending && !w.ended;\n }\x2C\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val;\n }\n }\n }\x2C\n\n writableFinished: {\n get() {\n return this._writableState ? this._writableState.finished : false;\n }\n }\x2C\n\n writableObjectMode: {\n get() {\n return this._writableState ? this._writableState.objectMode : false;\n }\n }\x2C\n\n writableBuffer: {\n get() {\n return this._writableState && this._writableState.getBuffer();\n }\n }\x2C\n\n writableEnded: {\n get() {\n return this._writableState ? this._writableState.ending : false;\n }\n }\x2C\n\n writableNeedDrain: {\n get() {\n const wState = this._writableState;\n if (!wState) return false;\n return !wState.destroyed && !wState.ending && wState.needDrain;\n }\n }\x2C\n\n writableHighWaterMark: {\n get() {\n return this._writableState && this._writableState.highWaterMark;\n }\n }\x2C\n\n writableCorked: {\n get() {\n return this._writableState ? this._writableState.corked : 0;\n }\n }\x2C\n\n writableLength: {\n get() {\n return this._writableState && this._writableState.length;\n }\n }\n});\n\nconst destroy = destroyImpl.destroy;\nWritable.prototype.destroy = function(err\x2C cb) {\n const state = this._writableState;\n\n // Invoke pending callbacks.\n if (!state.destroyed &&\n (state.bufferedIndex < state.buffered.length ||\n state[kOnFinished].length)) {\n process.nextTick(errorBuffer\x2C state);\n }\n\n destroy.call(this\x2C err\x2C cb);\n return this;\n};\n\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function(err\x2C cb) {\n cb(err);\n};\n\nWritable.prototype[EE.captureRejectionSymbol] = function(err) {\n this.destroy(err);\n};\n code-source-info,0xe1ea49e0f26,56,7409,8929,C0O7409C9O7983C16O8000C19O8007C23O7989C27O8019C33O8037C44O8037C51O8093C58O8100C63O8122C64O8126C83O8148C88O8146C92O8195C96O8233C104O8261C107O8283C111O8273C115O8314C123O8343C126O8366C130O8356C134O8398C142O8428C145O8452C149O8442C153O8485C161O8513C164O8535C168O8525C172O8566C180O8598C183O8624C187O8614C191O8651C197O8665C204O8698C212O8665C217O8720C224O8727C232O8727C238O8751C245O8763C258O8763C265O8928,, code-creation,LazyCompile,10,41195,0xe1ea49e2f76,341,WritableState node:internal/streams/writable:77:23,0x6a244a632c8,~ code-source-info,0xe1ea49e2f76,56,2482,6983,C0O2816C6O2855C8O2884C11O2891C15O2873C20O2999C25O3020C27O3039C33O3015C37O3055C41O3096C52O3119C54O3138C60O3089C64O3347C69O3368C73O3382C88O3382C97O3455C102O3455C106O3366C110O3522C111O3539C115O3574C116O3589C120O3635C121O3647C125O3705C126O3716C130O3758C131O3772C135O3811C136O3826C140O4025C144O4047C150O4061C156O4075C158O4097C159O4094C163O4305C168O4329C170O4348C178O4326C182O4526C183O4538C187O4602C188O4615C192O4692C193O4704C197O4968C198O4978C202O5181C203O5203C207O5269C210O5292C217O5292C223O5282C227O5392C228O5405C232O5477C233O5491C237O5606C238O5630C242O5641C245O5641C249O5768C250O5783C254O5973C255O5990C259O6128C260O6145C264O6232C265O6250C269O6321C271O6339C277O6358C283O6368C287O6336C291O6455C293O6475C299O6494C305O6506C309O6472C313O6729C314O6742C318O6812C319O6824C323O6928C324O6946C328O6958C330O6963C335O6976C340O6982,, StoreIC,0xe1ea49e2f97,41214,88,19,X,X,0x000000000000,objectMode,, StoreIC,0xe1ea49e2fe0,41220,97,22,X,X,0x000000000000,highWaterMark,, StoreIC,0xe1ea49e2fe5,41224,102,20,X,X,0x000000000000,finalCalled,, StoreIC,0xe1ea49e2fea,41227,105,18,X,X,0x000000000000,needDrain,, StoreIC,0xe1ea49e2fef,41230,107,15,X,X,0x000000000000,ending,, StoreIC,0xe1ea49e2ff4,41234,109,14,X,X,0x000000000000,ended,, StoreIC,0xe1ea49e2ff9,41237,111,17,X,X,0x000000000000,finished,, StoreIC,0xe1ea49e2ffe,41240,114,18,X,X,0x000000000000,destroyed,, StoreIC,0xe1ea49e3015,41245,120,22,X,X,0x000000000000,decodeStrings,, StoreIC,0xe1ea49e3028,41248,125,24,X,X,0x000000000000,defaultEncoding,, StoreIC,0xe1ea49e302d,41251,130,15,X,X,0x000000000000,length,, StoreIC,0xe1ea49e3032,41254,133,16,X,X,0x000000000000,writing,, StoreIC,0xe1ea49e3037,41257,136,15,X,X,0x000000000000,corked,, StoreIC,0xe1ea49e303c,41260,142,13,X,X,0x000000000000,sync,, StoreIC,0xe1ea49e3041,41263,147,25,X,X,0x000000000000,bufferProcessing,, StoreIC,0xe1ea49e3055,41267,150,16,X,X,0x000000000000,onwrite,, StoreIC,0xe1ea49e305a,41270,153,16,X,X,0x000000000000,writecb,, StoreIC,0xe1ea49e305f,41273,156,17,X,X,0x000000000000,writelen,, StoreIC,0xe1ea49e3064,41276,160,27,X,X,0x000000000000,afterWriteTickInfo,, code-creation,LazyCompile,10,41288,0xe1ea49e3386,23,resetBuffer node:internal/streams/writable:202:21,0x6a244a63318,~ code-source-info,0xe1ea49e3386,56,7005,7117,C0O7017C2O7032C6O7040C7O7060C11O7067C12O7084C16O7094C17O7108C22O7116,, StoreIC,0xe1ea49e3388,41296,203,18,X,X,0x000000000000,buffered,, StoreIC,0xe1ea49e338d,41299,204,23,X,X,0x000000000000,bufferedIndex,, StoreIC,0xe1ea49e3392,41302,205,20,X,X,0x000000000000,allBuffers,, StoreIC,0xe1ea49e3397,41306,206,17,X,X,0x000000000000,allNoop,, StoreIC,0xe1ea49e3070,41309,166,18,X,X,0x000000000000,pendingcb,, StoreIC,0xe1ea49e3075,41312,172,20,X,X,0x000000000000,constructed,, StoreIC,0xe1ea49e307a,41316,176,20,X,X,0x000000000000,prefinished,, StoreIC,0xe1ea49e307f,41319,179,21,X,X,0x000000000000,errorEmitted,, StoreIC,0xe1ea49e3095,41323,182,18,X,X,0x000000000000,emitClose,, StoreIC,0xe1ea49e30ab,41329,185,20,X,X,0x000000000000,autoDestroy,, StoreIC,0xe1ea49e30b0,41333,190,16,X,X,0x000000000000,errored,, StoreIC,0xe1ea49e30b5,41336,193,15,X,X,0x000000000000,closed,, StoreIC,0xe1ea49e30ba,41340,197,21,X,X,0x000000000000,closeEmitted,, StoreIC,0xe1ea49e0f7e,41344,235,23,X,X,0x000000000000,_writableState,, StoreIC,0xe1ea49daed9,41350,58,22,X,X,0x000000000000,allowHalfOpen,, StoreIC,0xe1ea49daeed,41354,62,21,X,X,0x000000000000,readable,, code-creation,LazyCompile,10,41366,0xe1ea49e348e,21,set node:internal/streams/readable:1175:8,0x6a244a561b0,~ code-source-info,0xe1ea49e348e,49,35837,35964,C0O35887C6O35918C13O35946C15O35942C20O35963,, StoreIC,0xe1ea49e349d,41376,1178,38,X,X,0x000000000000,readable,, StoreIC,0xe1ea49daf0d,41380,68,26,X,X,0x000000000000,allowHalfOpen,, StoreIC,0xe1ea49da9e2,41385,332,18,X,X,0x000000000000,_handle,, code-creation,LazyCompile,10,41395,0xe1ea49e3586,14,set node:net:1707:6,0xe1ea49c8ab8,~ code-source-info,0xe1ea49e3586,122,45570,45603,C0O45576C2O45588C7O45597C13O45601,, code-creation,LazyCompile,10,41406,0xe1ea49e3676,8,get node:net:1706:6,0xe1ea49c8a68,~ code-source-info,0xe1ea49e3676,122,45535,45563,C0O45540C2O45552C4O45551C7O45561,, code-creation,LazyCompile,10,41419,0xe1ea49e375e,32,getNewAsyncId node:net:156:23,0xe1ea49c6ac8,~ code-source-info,0xe1ea49e375e,122,3982,4098,C0O3995C4O4028C14O4061C17O4061C22O4083C27O4083C31O4096,, code-creation,LazyCompile,10,41452,0xe1ea49e392e,196,Readable.on node:internal/streams/readable:875:33,0x6a244a55ae8,~ code-source-info,0xe1ea49e392e,49,27773,28672,C0O27798C5O27805C10O27815C15O27818C29O27818C35O27859C40O27878C42O27885C47O28067C55O28067C62O28093C65O28060C69O28186C75O28194C80O28216C85O28216C91O28235C93O28242C98O28275C104O28296C110O28323C112O28368C118O28347C122O28382C123O28396C127O28411C128O28433C132O28448C140O28475C145O28489C150O28448C155O28515C161O28533C164O28533C170O28577C176O28596C179O28604C187O28604C193O28659C195O28670,, StoreIC,0x337ca0b10f5b,41466,446,14,X,X,0x000000000000,_eventsCount,, code-creation,LazyCompile,10,41490,0xe1ea49e3ba6,135,initSocketHandle node:net:254:26,0xe1ea49c6c58,~ code-source-info,0xe1ea49e3ba6,122,6321,6899,C0O6337C5O6337C9O6353C10O6368C14O6454C20O6474C27O6482C32O6496C36O6513C43O6530C45O6528C49O6548C51O6553C57O6591C62O6572C66O6570C70O6620C72O6625C74O6624C78O6639C80O6675C82O6680C84O6679C88O6699C90O6740C94O6758C99O6763C105O6796C106O6803C107O6812C109O6817C114O6826C118O6856C123O6864C128O6864C134O6898,, code-creation,LazyCompile,10,41517,0xe1ea49e3dd6,120,undestroy node:internal/streams/destroy:160:19,0x6a244a49038,~ code-source-info,0xe1ea49e3dd6,47,3064,3661,C0O3086C5O3119C10O3138C14O3151C15O3165C19O3177C20O3186C24O3199C25O3214C29O3227C30O3239C34O3252C35O3262C39O3274C40O3289C44O3302C45O3312C49O3325C50O3333C54O3346C55O3359C59O3375C63O3388C64O3402C68O3414C69O3426C73O3439C74O3448C78O3461C79O3476C83O3489C84O3499C88O3511C89O3526C93O3539C94O3547C98O3560C99O3569C103O3582C104O3596C108O3609C109O3623C113O3636C114O3647C119O3660,, StoreIC,0xe1ea49e3bb0,41530,256,18,X,X,0x000000000000,_sockname,, StoreIC,0xe1ea49e3bd3,41546,261,25,X,X,0x000000000000,onread,, StoreIC,0xe1ea49dab3d,41556,389,21,X,X,0x000000000000,_pendingData,, StoreIC,0xe1ea49dab43,41563,390,25,X,X,0x000000000000,_pendingEncoding,, StoreIC,0xe1ea49dab90,41568,406,15,X,X,0x000000000000,server,, StoreIC,0xe1ea49dab95,41574,407,16,X,X,0x000000000000,_server,, StoreIC,0xe1ea49da2d1,41584,113,18,X,X,0x000000000000,columns,, StoreIC,0xe1ea49da2da,41592,114,15,X,X,0x000000000000,rows,, StoreIC,0xe1ea49c37ff,41596,48,20,X,X,0x000000000000,_type,, StoreIC,0xe1ea49c38d3,41600,94,13,X,X,0x000000000000,fd,, StoreIC,0xe1ea49c38d8,41603,96,19,X,X,0x000000000000,_isStdio,, StoreIC,0xe1ea49c2b5a,41607,124,22,X,X,0x000000000000,destroySoon,, StoreIC,0xe1ea49c2b65,41610,126,19,X,X,0x000000000000,_destroy,, StoreIC,0x337ca0b119b5,41633,30,19,X,X,0x000000000000,onsignal,, code-creation,LazyCompile,10,41668,0xe1ea49e448e,96,value node:internal/console/constructor:300:20,0x23787e18bdb0,~ code-source-info,0xe1ea49e448e,30,9013,9495,C0O9042C2O9047C4O9046C8O9066C10O9076C15O9113C21O9148C29O9198C34O9198C41O9214C48O9258C53O9269C58O9269C64O9286C66O9321C72O9355C74O9370C78O9397C80O9412C81O9428C87O9443C93O9466C95O9489,, code-creation,LazyCompile,10,41753,0xe1ea49e4c2e,762,getColorDepth node:internal/tty:106:23,0xe1ea49d8270,~ code-source-info,0xe1ea49e4c2e,125,3180,6118,C0O3180C17O3195C27O3327C30O3335C36O3368C39O3380C81O3453C89O3453C93O3491C99O3508C100O3533C108O3533C112O3571C118O3589C119O3614C127O3614C131O3652C137O3670C138O3694C144O3710C145O3724C148O3732C157O3814C166O4044C173O4049C178O4067C184O4083C185O4091C190O4103C197O4112C202O4173C210O4230C218O4230C223O4218C228O4251C235O4284C242O4263C252O4261C260O4483C268O4497C271O4487C276O4501C281O4530C290O4540C293O4530C296O4551C300O4561C305O4579C311O4597C312O4604C316O4614C321O4632C327O4650C328O4662C334O4679C335O4687C338O4695C344O4707C350O4725C351O4733C354O4741C360O4751C365O4892C375O4892C385O4927C392O4935C397O4959C403O4977C404O4988C410O5004C411O5012C416O5035C421O5049C436O5113C441O5056C452O5139C460O5151C462O5160C463O5168C466O5180C501O5224C504O5233C514O5265C525O5301C530O5265C537O5341C543O5359C544O5374C550O5392C551O5441C557O5459C558O5493C564O5511C565O5519C568O5527C575O5537C583O5560C590O5570C595O5589C601O5607C602O5615C605O5623C618O5635C635O5677C640O5639C647O5692C653O5710C654O5738C666O5769C671O5738C675O5738C677O5781C686O5794C691O5813C700O5829C703O5839C704O5850C715O5873C723O5854C730O5974C736O5991C739O6051C742O6059C748O6076C754O6093C755O6100C761O6116,, LoadIC,0xe1ea49e4c4c,41776,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,41781,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,41784,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,41787,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,41791,157,11,X,X,0x38ac3d981791,TMUX,, code-creation,LazyCompile,10,41873,0xe1ea49e51be,49,formatWithOptions node:internal/util/inspect:1883:27,0x44edd6d5f10,~ script-source,14,node:internal/util/inspect,'use strict';\n\nconst {\n Array\x2C\n ArrayIsArray\x2C\n ArrayPrototypeFilter\x2C\n ArrayPrototypeForEach\x2C\n ArrayPrototypePop\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypePushApply\x2C\n ArrayPrototypeSort\x2C\n ArrayPrototypeUnshift\x2C\n BigIntPrototypeValueOf\x2C\n BooleanPrototypeValueOf\x2C\n DatePrototypeGetTime\x2C\n DatePrototypeToISOString\x2C\n DatePrototypeToString\x2C\n ErrorPrototypeToString\x2C\n FunctionPrototypeCall\x2C\n FunctionPrototypeToString\x2C\n JSONStringify\x2C\n MapPrototypeGetSize\x2C\n MapPrototypeEntries\x2C\n MathFloor\x2C\n MathMax\x2C\n MathMin\x2C\n MathRound\x2C\n MathSqrt\x2C\n Number\x2C\n NumberIsNaN\x2C\n NumberParseFloat\x2C\n NumberParseInt\x2C\n NumberPrototypeValueOf\x2C\n Object\x2C\n ObjectAssign\x2C\n ObjectCreate\x2C\n ObjectDefineProperty\x2C\n ObjectGetOwnPropertyDescriptor\x2C\n ObjectGetOwnPropertyNames\x2C\n ObjectGetOwnPropertySymbols\x2C\n ObjectGetPrototypeOf\x2C\n ObjectIs\x2C\n ObjectKeys\x2C\n ObjectPrototypeHasOwnProperty\x2C\n ObjectPrototypePropertyIsEnumerable\x2C\n ObjectSeal\x2C\n ObjectSetPrototypeOf\x2C\n ReflectOwnKeys\x2C\n RegExp\x2C\n RegExpPrototypeTest\x2C\n RegExpPrototypeToString\x2C\n SafeStringIterator\x2C\n SafeMap\x2C\n SafeSet\x2C\n SetPrototypeGetSize\x2C\n SetPrototypeValues\x2C\n String\x2C\n StringPrototypeCharCodeAt\x2C\n StringPrototypeCodePointAt\x2C\n StringPrototypeIncludes\x2C\n StringPrototypeNormalize\x2C\n StringPrototypePadEnd\x2C\n StringPrototypePadStart\x2C\n StringPrototypeRepeat\x2C\n StringPrototypeReplace\x2C\n StringPrototypeSlice\x2C\n StringPrototypeSplit\x2C\n StringPrototypeToLowerCase\x2C\n StringPrototypeTrim\x2C\n StringPrototypeValueOf\x2C\n SymbolPrototypeToString\x2C\n SymbolPrototypeValueOf\x2C\n SymbolIterator\x2C\n SymbolToStringTag\x2C\n TypedArrayPrototypeGetLength\x2C\n TypedArrayPrototypeGetSymbolToStringTag\x2C\n Uint8Array\x2C\n globalThis\x2C\n uncurryThis\x2C\n} = primordials;\n\nconst {\n getOwnNonIndexProperties\x2C\n getPromiseDetails\x2C\n getProxyDetails\x2C\n kPending\x2C\n kRejected\x2C\n previewEntries\x2C\n getConstructorName: internalGetConstructorName\x2C\n getExternalValue\x2C\n propertyFilter: {\n ALL_PROPERTIES\x2C\n ONLY_ENUMERABLE\n }\n} = internalBinding('util');\n\nconst {\n customInspectSymbol\x2C\n isError\x2C\n join\x2C\n removeColors\n} = require('internal/util');\n\nconst {\n codes: {\n ERR_INVALID_ARG_TYPE\n }\x2C\n isStackOverflowError\n} = require('internal/errors');\n\nconst {\n isAsyncFunction\x2C\n isGeneratorFunction\x2C\n isAnyArrayBuffer\x2C\n isArrayBuffer\x2C\n isArgumentsObject\x2C\n isBoxedPrimitive\x2C\n isDataView\x2C\n isExternal\x2C\n isMap\x2C\n isMapIterator\x2C\n isModuleNamespaceObject\x2C\n isNativeError\x2C\n isPromise\x2C\n isSet\x2C\n isSetIterator\x2C\n isWeakMap\x2C\n isWeakSet\x2C\n isRegExp\x2C\n isDate\x2C\n isTypedArray\x2C\n isStringObject\x2C\n isNumberObject\x2C\n isBooleanObject\x2C\n isBigIntObject\x2C\n} = require('internal/util/types');\n\nconst assert = require('internal/assert');\n\nconst { NativeModule } = require('internal/bootstrap/loaders');\nconst {\n validateObject\x2C\n validateString\x2C\n} = require('internal/validators');\n\nlet hexSlice;\n\nconst builtInObjects = new SafeSet(\n ArrayPrototypeFilter(\n ObjectGetOwnPropertyNames(globalThis)\x2C\n (e) => RegExpPrototypeTest(/^[A-Z][a-zA-Z0-9]+$/\x2C e)\n )\n);\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nconst isUndetectableObject = (v) => typeof v === 'undefined' && v !== undefined;\n\n// These options must stay in sync with `getUserOptions`. So if any option will\n// be added or removed\x2C `getUserOptions` must also be updated accordingly.\nconst inspectDefaultOptions = ObjectSeal({\n showHidden: false\x2C\n depth: 2\x2C\n colors: false\x2C\n customInspect: true\x2C\n showProxy: false\x2C\n maxArrayLength: 100\x2C\n maxStringLength: 10000\x2C\n breakLength: 80\x2C\n compact: 3\x2C\n sorted: false\x2C\n getters: false\n});\n\nconst kObjectType = 0;\nconst kArrayType = 1;\nconst kArrayExtrasType = 2;\n\n/* eslint-disable no-control-regex */\nconst strEscapeSequencesRegExp = /[\\x00-\\x1f\\x27\\x5c\\x7f-\\x9f]/;\nconst strEscapeSequencesReplacer = /[\\x00-\\x1f\\x27\\x5c\\x7f-\\x9f]/g;\nconst strEscapeSequencesRegExpSingle = /[\\x00-\\x1f\\x5c\\x7f-\\x9f]/;\nconst strEscapeSequencesReplacerSingle = /[\\x00-\\x1f\\x5c\\x7f-\\x9f]/g;\n/* eslint-enable no-control-regex */\n\nconst keyStrRegExp = /^[a-zA-Z_][a-zA-Z_0-9]*$/;\nconst numberRegExp = /^(0|[1-9][0-9]*)$/;\n\nconst coreModuleRegExp = /^ at (?:[^/\\\\(]+ \\(|)node:(.+):\\d+:\\d+\\)?$/;\nconst nodeModulesRegExp = /[/\\\\]node_modules[/\\\\](.+?)(?=[/\\\\])/g;\n\nconst classRegExp = /^(\\s+[^(]*?)\\s*{/;\n// eslint-disable-next-line node-core/no-unescaped-regexp-dot\nconst stripCommentsRegExp = /(\\/\\/.*?\\n)|(\\/\\*(.|\\n)*?\\*\\/)/g;\n\nconst kMinLineLength = 16;\n\n// Constants to map the iterator state.\nconst kWeak = 0;\nconst kIterator = 1;\nconst kMapEntries = 2;\n\n// Escaped control characters (plus the single quote and the backslash). Use\n// empty strings to fill up unused entries.\nconst meta = [\n '\\\\x00'\x2C '\\\\x01'\x2C '\\\\x02'\x2C '\\\\x03'\x2C '\\\\x04'\x2C '\\\\x05'\x2C '\\\\x06'\x2C '\\\\x07'\x2C // x07\n '\\\\b'\x2C '\\\\t'\x2C '\\\\n'\x2C '\\\\x0B'\x2C '\\\\f'\x2C '\\\\r'\x2C '\\\\x0E'\x2C '\\\\x0F'\x2C // x0F\n '\\\\x10'\x2C '\\\\x11'\x2C '\\\\x12'\x2C '\\\\x13'\x2C '\\\\x14'\x2C '\\\\x15'\x2C '\\\\x16'\x2C '\\\\x17'\x2C // x17\n '\\\\x18'\x2C '\\\\x19'\x2C '\\\\x1A'\x2C '\\\\x1B'\x2C '\\\\x1C'\x2C '\\\\x1D'\x2C '\\\\x1E'\x2C '\\\\x1F'\x2C // x1F\n ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C "\\\\'"\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C // x2F\n ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C // x3F\n ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C // x4F\n ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C '\\\\\\\\'\x2C ''\x2C ''\x2C ''\x2C // x5F\n ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C // x6F\n ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C ''\x2C '\\\\x7F'\x2C // x7F\n '\\\\x80'\x2C '\\\\x81'\x2C '\\\\x82'\x2C '\\\\x83'\x2C '\\\\x84'\x2C '\\\\x85'\x2C '\\\\x86'\x2C '\\\\x87'\x2C // x87\n '\\\\x88'\x2C '\\\\x89'\x2C '\\\\x8A'\x2C '\\\\x8B'\x2C '\\\\x8C'\x2C '\\\\x8D'\x2C '\\\\x8E'\x2C '\\\\x8F'\x2C // x8F\n '\\\\x90'\x2C '\\\\x91'\x2C '\\\\x92'\x2C '\\\\x93'\x2C '\\\\x94'\x2C '\\\\x95'\x2C '\\\\x96'\x2C '\\\\x97'\x2C // x97\n '\\\\x98'\x2C '\\\\x99'\x2C '\\\\x9A'\x2C '\\\\x9B'\x2C '\\\\x9C'\x2C '\\\\x9D'\x2C '\\\\x9E'\x2C '\\\\x9F'\x2C // x9F\n];\n\n// Regex used for ansi escape code splitting\n// Adopted from https://github.com/chalk/ansi-regex/blob/HEAD/index.js\n// License: MIT\x2C authors: @sindresorhus\x2C Qix-\x2C arjunmehta and LitoMore\n// Matches all ansi escape code sequences in a string\nconst ansiPattern = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*' +\n '(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*' +\n '|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)' +\n '|(?:(?:\\\\d{1\x2C4}(?:;\\\\d{0\x2C4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))';\nconst ansi = new RegExp(ansiPattern\x2C 'g');\n\nlet getStringWidth;\n\nfunction getUserOptions(ctx\x2C isCrossContext) {\n const ret = {\n stylize: ctx.stylize\x2C\n showHidden: ctx.showHidden\x2C\n depth: ctx.depth\x2C\n colors: ctx.colors\x2C\n customInspect: ctx.customInspect\x2C\n showProxy: ctx.showProxy\x2C\n maxArrayLength: ctx.maxArrayLength\x2C\n maxStringLength: ctx.maxStringLength\x2C\n breakLength: ctx.breakLength\x2C\n compact: ctx.compact\x2C\n sorted: ctx.sorted\x2C\n getters: ctx.getters\x2C\n ...ctx.userOptions\n };\n\n // Typically\x2C the target value will be an instance of `Object`. If that is\n // *not* the case\x2C the object may come from another vm.Context\x2C and we want\n // to avoid passing it objects from this Context in that case\x2C so we remove\n // the prototype from the returned object itself + the `stylize()` function\x2C\n // and remove all other non-primitives\x2C including non-primitive user options.\n if (isCrossContext) {\n ObjectSetPrototypeOf(ret\x2C null);\n for (const key of ObjectKeys(ret)) {\n if ((typeof ret[key] === 'object' || typeof ret[key] === 'function') &&\n ret[key] !== null) {\n delete ret[key];\n }\n }\n ret.stylize = ObjectSetPrototypeOf((value\x2C flavour) => {\n let stylized;\n try {\n stylized = `${ctx.stylize(value\x2C flavour)}`;\n } catch {}\n\n if (typeof stylized !== 'string') return value;\n // `stylized` is a string as it should be\x2C which is safe to pass along.\n return stylized;\n }\x2C null);\n }\n\n return ret;\n}\n\n/**\n * Echos the value of any input. Tries to print the value out\n * in the best way possible given the different types.\n *\n * @param {any} value The value to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* Legacy: value\x2C showHidden\x2C depth\x2C colors */\nfunction inspect(value\x2C opts) {\n // Default options\n const ctx = {\n budget: {}\x2C\n indentationLvl: 0\x2C\n seen: []\x2C\n currentDepth: 0\x2C\n stylize: stylizeNoColor\x2C\n showHidden: inspectDefaultOptions.showHidden\x2C\n depth: inspectDefaultOptions.depth\x2C\n colors: inspectDefaultOptions.colors\x2C\n customInspect: inspectDefaultOptions.customInspect\x2C\n showProxy: inspectDefaultOptions.showProxy\x2C\n maxArrayLength: inspectDefaultOptions.maxArrayLength\x2C\n maxStringLength: inspectDefaultOptions.maxStringLength\x2C\n breakLength: inspectDefaultOptions.breakLength\x2C\n compact: inspectDefaultOptions.compact\x2C\n sorted: inspectDefaultOptions.sorted\x2C\n getters: inspectDefaultOptions.getters\n };\n if (arguments.length > 1) {\n // Legacy...\n if (arguments.length > 2) {\n if (arguments[2] !== undefined) {\n ctx.depth = arguments[2];\n }\n if (arguments.length > 3 && arguments[3] !== undefined) {\n ctx.colors = arguments[3];\n }\n }\n // Set user-specified options\n if (typeof opts === 'boolean') {\n ctx.showHidden = opts;\n } else if (opts) {\n const optKeys = ObjectKeys(opts);\n for (let i = 0; i < optKeys.length; ++i) {\n const key = optKeys[i];\n // TODO(BridgeAR): Find a solution what to do about stylize. Either make\n // this function public or add a new API with a similar or better\n // functionality.\n if (\n ObjectPrototypeHasOwnProperty(inspectDefaultOptions\x2C key) ||\n key === 'stylize') {\n ctx[key] = opts[key];\n } else if (ctx.userOptions === undefined) {\n // This is required to pass through the actual user input.\n ctx.userOptions = opts;\n }\n }\n }\n }\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n if (ctx.maxArrayLength === null) ctx.maxArrayLength = Infinity;\n if (ctx.maxStringLength === null) ctx.maxStringLength = Infinity;\n return formatValue(ctx\x2C value\x2C 0);\n}\ninspect.custom = customInspectSymbol;\n\nObjectDefineProperty(inspect\x2C 'defaultOptions'\x2C {\n get() {\n return inspectDefaultOptions;\n }\x2C\n set(options) {\n validateObject(options\x2C 'options');\n return ObjectAssign(inspectDefaultOptions\x2C options);\n }\n});\n\n// Set Graphics Rendition https://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n// Each color consists of an array with the color code as first entry and the\n// reset code as second entry.\nconst defaultFG = 39;\nconst defaultBG = 49;\ninspect.colors = ObjectAssign(ObjectCreate(null)\x2C {\n reset: [0\x2C 0]\x2C\n bold: [1\x2C 22]\x2C\n dim: [2\x2C 22]\x2C // Alias: faint\n italic: [3\x2C 23]\x2C\n underline: [4\x2C 24]\x2C\n blink: [5\x2C 25]\x2C\n // Swap foreground and background colors\n inverse: [7\x2C 27]\x2C // Alias: swapcolors\x2C swapColors\n hidden: [8\x2C 28]\x2C // Alias: conceal\n strikethrough: [9\x2C 29]\x2C // Alias: strikeThrough\x2C crossedout\x2C crossedOut\n doubleunderline: [21\x2C 24]\x2C // Alias: doubleUnderline\n black: [30\x2C defaultFG]\x2C\n red: [31\x2C defaultFG]\x2C\n green: [32\x2C defaultFG]\x2C\n yellow: [33\x2C defaultFG]\x2C\n blue: [34\x2C defaultFG]\x2C\n magenta: [35\x2C defaultFG]\x2C\n cyan: [36\x2C defaultFG]\x2C\n white: [37\x2C defaultFG]\x2C\n bgBlack: [40\x2C defaultBG]\x2C\n bgRed: [41\x2C defaultBG]\x2C\n bgGreen: [42\x2C defaultBG]\x2C\n bgYellow: [43\x2C defaultBG]\x2C\n bgBlue: [44\x2C defaultBG]\x2C\n bgMagenta: [45\x2C defaultBG]\x2C\n bgCyan: [46\x2C defaultBG]\x2C\n bgWhite: [47\x2C defaultBG]\x2C\n framed: [51\x2C 54]\x2C\n overlined: [53\x2C 55]\x2C\n gray: [90\x2C defaultFG]\x2C // Alias: grey\x2C blackBright\n redBright: [91\x2C defaultFG]\x2C\n greenBright: [92\x2C defaultFG]\x2C\n yellowBright: [93\x2C defaultFG]\x2C\n blueBright: [94\x2C defaultFG]\x2C\n magentaBright: [95\x2C defaultFG]\x2C\n cyanBright: [96\x2C defaultFG]\x2C\n whiteBright: [97\x2C defaultFG]\x2C\n bgGray: [100\x2C defaultBG]\x2C // Alias: bgGrey\x2C bgBlackBright\n bgRedBright: [101\x2C defaultBG]\x2C\n bgGreenBright: [102\x2C defaultBG]\x2C\n bgYellowBright: [103\x2C defaultBG]\x2C\n bgBlueBright: [104\x2C defaultBG]\x2C\n bgMagentaBright: [105\x2C defaultBG]\x2C\n bgCyanBright: [106\x2C defaultBG]\x2C\n bgWhiteBright: [107\x2C defaultBG]\x2C\n});\n\nfunction defineColorAlias(target\x2C alias) {\n ObjectDefineProperty(inspect.colors\x2C alias\x2C {\n get() {\n return this[target];\n }\x2C\n set(value) {\n this[target] = value;\n }\x2C\n configurable: true\x2C\n enumerable: false\n });\n}\n\ndefineColorAlias('gray'\x2C 'grey');\ndefineColorAlias('gray'\x2C 'blackBright');\ndefineColorAlias('bgGray'\x2C 'bgGrey');\ndefineColorAlias('bgGray'\x2C 'bgBlackBright');\ndefineColorAlias('dim'\x2C 'faint');\ndefineColorAlias('strikethrough'\x2C 'crossedout');\ndefineColorAlias('strikethrough'\x2C 'strikeThrough');\ndefineColorAlias('strikethrough'\x2C 'crossedOut');\ndefineColorAlias('hidden'\x2C 'conceal');\ndefineColorAlias('inverse'\x2C 'swapColors');\ndefineColorAlias('inverse'\x2C 'swapcolors');\ndefineColorAlias('doubleunderline'\x2C 'doubleUnderline');\n\n// TODO(BridgeAR): Add function style support for more complex styles.\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = ObjectAssign(ObjectCreate(null)\x2C {\n special: 'cyan'\x2C\n number: 'yellow'\x2C\n bigint: 'yellow'\x2C\n boolean: 'yellow'\x2C\n undefined: 'grey'\x2C\n null: 'bold'\x2C\n string: 'green'\x2C\n symbol: 'green'\x2C\n date: 'magenta'\x2C\n // "name": intentionally not styling\n // TODO(BridgeAR): Highlight regular expressions properly.\n regexp: 'red'\x2C\n module: 'underline'\n});\n\nfunction addQuotes(str\x2C quotes) {\n if (quotes === -1) {\n return `"${str}"`;\n }\n if (quotes === -2) {\n return `\\`${str}\\``;\n }\n return `'${str}'`;\n}\n\nconst escapeFn = (str) => meta[StringPrototypeCharCodeAt(str)];\n\n// Escape control characters\x2C single quotes and the backslash.\n// This is similar to JSON stringify escaping.\nfunction strEscape(str) {\n let escapeTest = strEscapeSequencesRegExp;\n let escapeReplace = strEscapeSequencesReplacer;\n let singleQuote = 39;\n\n // Check for double quotes. If not present\x2C do not escape single quotes and\n // instead wrap the text in double quotes. If double quotes exist\x2C check for\n // backticks. If they do not exist\x2C use those as fallback instead of the\n // double quotes.\n if (StringPrototypeIncludes(str\x2C "'")) {\n // This invalidates the charCode and therefore can not be matched for\n // anymore.\n if (!StringPrototypeIncludes(str\x2C '"')) {\n singleQuote = -1;\n } else if (!StringPrototypeIncludes(str\x2C '`') &&\n !StringPrototypeIncludes(str\x2C '${')) {\n singleQuote = -2;\n }\n if (singleQuote !== 39) {\n escapeTest = strEscapeSequencesRegExpSingle;\n escapeReplace = strEscapeSequencesReplacerSingle;\n }\n }\n\n // Some magic numbers that worked out fine while benchmarking with v8 6.0\n if (str.length < 5000 && !RegExpPrototypeTest(escapeTest\x2C str))\n return addQuotes(str\x2C singleQuote);\n if (str.length > 100) {\n str = StringPrototypeReplace(str\x2C escapeReplace\x2C escapeFn);\n return addQuotes(str\x2C singleQuote);\n }\n\n let result = '';\n let last = 0;\n const lastIndex = str.length;\n for (let i = 0; i < lastIndex; i++) {\n const point = StringPrototypeCharCodeAt(str\x2C i);\n if (point === singleQuote ||\n point === 92 ||\n point < 32 ||\n (point > 126 && point < 160)) {\n if (last === i) {\n result += meta[point];\n } else {\n result += `${StringPrototypeSlice(str\x2C last\x2C i)}${meta[point]}`;\n }\n last = i + 1;\n }\n }\n\n if (last !== lastIndex) {\n result += StringPrototypeSlice(str\x2C last);\n }\n return addQuotes(result\x2C singleQuote);\n}\n\nfunction stylizeWithColor(str\x2C styleType) {\n const style = inspect.styles[styleType];\n if (style !== undefined) {\n const color = inspect.colors[style];\n if (color !== undefined)\n return `\\u001b[${color[0]}m${str}\\u001b[${color[1]}m`;\n }\n return str;\n}\n\nfunction stylizeNoColor(str) {\n return str;\n}\n\n// Return a new empty array to push in the results of the default formatter.\nfunction getEmptyFormatArray() {\n return [];\n}\n\nfunction isInstanceof(object\x2C proto) {\n try {\n return object instanceof proto;\n } catch {\n return false;\n }\n}\n\nfunction getConstructorName(obj\x2C ctx\x2C recurseTimes\x2C protoProps) {\n let firstProto;\n const tmp = obj;\n while (obj || isUndetectableObject(obj)) {\n const descriptor = ObjectGetOwnPropertyDescriptor(obj\x2C 'constructor');\n if (descriptor !== undefined &&\n typeof descriptor.value === 'function' &&\n descriptor.value.name !== '' &&\n isInstanceof(tmp\x2C descriptor.value)) {\n if (protoProps !== undefined &&\n (firstProto !== obj ||\n !builtInObjects.has(descriptor.value.name))) {\n addPrototypeProperties(\n ctx\x2C tmp\x2C firstProto || tmp\x2C recurseTimes\x2C protoProps);\n }\n return descriptor.value.name;\n }\n\n obj = ObjectGetPrototypeOf(obj);\n if (firstProto === undefined) {\n firstProto = obj;\n }\n }\n\n if (firstProto === null) {\n return null;\n }\n\n const res = internalGetConstructorName(tmp);\n\n if (recurseTimes > ctx.depth && ctx.depth !== null) {\n return `${res} `;\n }\n\n const protoConstr = getConstructorName(\n firstProto\x2C ctx\x2C recurseTimes + 1\x2C protoProps);\n\n if (protoConstr === null) {\n return `${res} <${inspect(firstProto\x2C {\n ...ctx\x2C\n customInspect: false\x2C\n depth: -1\n })}>`;\n }\n\n return `${res} <${protoConstr}>`;\n}\n\n// This function has the side effect of adding prototype properties to the\n// `output` argument (which is an array). This is intended to highlight user\n// defined prototype properties.\nfunction addPrototypeProperties(ctx\x2C main\x2C obj\x2C recurseTimes\x2C output) {\n let depth = 0;\n let keys;\n let keySet;\n do {\n if (depth !== 0 || main === obj) {\n obj = ObjectGetPrototypeOf(obj);\n // Stop as soon as a null prototype is encountered.\n if (obj === null) {\n return;\n }\n // Stop as soon as a built-in object type is detected.\n const descriptor = ObjectGetOwnPropertyDescriptor(obj\x2C 'constructor');\n if (descriptor !== undefined &&\n typeof descriptor.value === 'function' &&\n builtInObjects.has(descriptor.value.name)) {\n return;\n }\n }\n\n if (depth === 0) {\n keySet = new SafeSet();\n } else {\n ArrayPrototypeForEach(keys\x2C (key) => keySet.add(key));\n }\n // Get all own property names and symbols.\n keys = ReflectOwnKeys(obj);\n ArrayPrototypePush(ctx.seen\x2C main);\n for (const key of keys) {\n // Ignore the `constructor` property and keys that exist on layers above.\n if (key === 'constructor' ||\n ObjectPrototypeHasOwnProperty(main\x2C key) ||\n (depth !== 0 && keySet.has(key))) {\n continue;\n }\n const desc = ObjectGetOwnPropertyDescriptor(obj\x2C key);\n if (typeof desc.value === 'function') {\n continue;\n }\n const value = formatProperty(\n ctx\x2C obj\x2C recurseTimes\x2C key\x2C kObjectType\x2C desc\x2C main);\n if (ctx.colors) {\n // Faint!\n ArrayPrototypePush(output\x2C `\\u001b[2m${value}\\u001b[22m`);\n } else {\n ArrayPrototypePush(output\x2C value);\n }\n }\n ArrayPrototypePop(ctx.seen);\n // Limit the inspection to up to three prototype layers. Using `recurseTimes`\n // is not a good choice here\x2C because it's as if the properties are declared\n // on the current object from the users perspective.\n } while (++depth !== 3);\n}\n\nfunction getPrefix(constructor\x2C tag\x2C fallback\x2C size = '') {\n if (constructor === null) {\n if (tag !== '' && fallback !== tag) {\n return `[${fallback}${size}: null prototype] [${tag}] `;\n }\n return `[${fallback}${size}: null prototype] `;\n }\n\n if (tag !== '' && constructor !== tag) {\n return `${constructor}${size} [${tag}] `;\n }\n return `${constructor}${size} `;\n}\n\n// Look up the keys of the object.\nfunction getKeys(value\x2C showHidden) {\n let keys;\n const symbols = ObjectGetOwnPropertySymbols(value);\n if (showHidden) {\n keys = ObjectGetOwnPropertyNames(value);\n if (symbols.length !== 0)\n ArrayPrototypePushApply(keys\x2C symbols);\n } else {\n // This might throw if `value` is a Module Namespace Object from an\n // unevaluated module\x2C but we don't want to perform the actual type\n // check because it's expensive.\n // TODO(devsnek): track https://github.com/tc39/ecma262/issues/1209\n // and modify this logic as needed.\n try {\n keys = ObjectKeys(value);\n } catch (err) {\n assert(isNativeError(err) && err.name === 'ReferenceError' &&\n isModuleNamespaceObject(value));\n keys = ObjectGetOwnPropertyNames(value);\n }\n if (symbols.length !== 0) {\n const filter = (key) => ObjectPrototypePropertyIsEnumerable(value\x2C key);\n ArrayPrototypePushApply(keys\x2C ArrayPrototypeFilter(symbols\x2C filter));\n }\n }\n return keys;\n}\n\nfunction getCtxStyle(value\x2C constructor\x2C tag) {\n let fallback = '';\n if (constructor === null) {\n fallback = internalGetConstructorName(value);\n if (fallback === tag) {\n fallback = 'Object';\n }\n }\n return getPrefix(constructor\x2C tag\x2C fallback);\n}\n\nfunction formatProxy(ctx\x2C proxy\x2C recurseTimes) {\n if (recurseTimes > ctx.depth && ctx.depth !== null) {\n return ctx.stylize('Proxy [Array]'\x2C 'special');\n }\n recurseTimes += 1;\n ctx.indentationLvl += 2;\n const res = [\n formatValue(ctx\x2C proxy[0]\x2C recurseTimes)\x2C\n formatValue(ctx\x2C proxy[1]\x2C recurseTimes)\x2C\n ];\n ctx.indentationLvl -= 2;\n return reduceToSingleString(\n ctx\x2C res\x2C ''\x2C ['Proxy ['\x2C ']']\x2C kArrayExtrasType\x2C recurseTimes);\n}\n\n// Note: using `formatValue` directly requires the indentation level to be\n// corrected by setting `ctx.indentationLvL += diff` and then to decrease the\n// value afterwards again.\nfunction formatValue(ctx\x2C value\x2C recurseTimes\x2C typedArray) {\n // Primitive types cannot have properties.\n if (typeof value !== 'object' &&\n typeof value !== 'function' &&\n !isUndetectableObject(value)) {\n return formatPrimitive(ctx.stylize\x2C value\x2C ctx);\n }\n if (value === null) {\n return ctx.stylize('null'\x2C 'null');\n }\n\n // Memorize the context for custom inspection on proxies.\n const context = value;\n // Always check for proxies to prevent side effects and to prevent triggering\n // any proxy handlers.\n const proxy = getProxyDetails(value\x2C !!ctx.showProxy);\n if (proxy !== undefined) {\n if (ctx.showProxy) {\n return formatProxy(ctx\x2C proxy\x2C recurseTimes);\n }\n value = proxy;\n }\n\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it.\n if (ctx.customInspect) {\n const maybeCustom = value[customInspectSymbol];\n if (typeof maybeCustom === 'function' &&\n // Filter out the util module\x2C its inspect function is special.\n maybeCustom !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n // This makes sure the recurseTimes are reported as before while using\n // a counter internally.\n const depth = ctx.depth === null ? null : ctx.depth - recurseTimes;\n const isCrossContext =\n proxy !== undefined || !(context instanceof Object);\n const ret = FunctionPrototypeCall(\n maybeCustom\x2C context\x2C depth\x2C getUserOptions(ctx\x2C isCrossContext));\n // If the custom inspection method returned `this`\x2C don't go into\n // infinite recursion.\n if (ret !== context) {\n if (typeof ret !== 'string') {\n return formatValue(ctx\x2C ret\x2C recurseTimes);\n }\n return ret.replace(/\\n/g\x2C `\\n${' '.repeat(ctx.indentationLvl)}`);\n }\n }\n }\n\n // Using an array here is actually better for the average case than using\n // a Set. `seen` will only check for the depth and will never grow too large.\n if (ctx.seen.includes(value)) {\n let index = 1;\n if (ctx.circular === undefined) {\n ctx.circular = new SafeMap();\n ctx.circular.set(value\x2C index);\n } else {\n index = ctx.circular.get(value);\n if (index === undefined) {\n index = ctx.circular.size + 1;\n ctx.circular.set(value\x2C index);\n }\n }\n return ctx.stylize(`[Circular *${index}]`\x2C 'special');\n }\n\n return formatRaw(ctx\x2C value\x2C recurseTimes\x2C typedArray);\n}\n\nfunction formatRaw(ctx\x2C value\x2C recurseTimes\x2C typedArray) {\n let keys;\n let protoProps;\n if (ctx.showHidden && (recurseTimes <= ctx.depth || ctx.depth === null)) {\n protoProps = [];\n }\n\n const constructor = getConstructorName(value\x2C ctx\x2C recurseTimes\x2C protoProps);\n // Reset the variable to check for this later on.\n if (protoProps !== undefined && protoProps.length === 0) {\n protoProps = undefined;\n }\n\n let tag = value[SymbolToStringTag];\n // Only list the tag in case it's non-enumerable / not an own property.\n // Otherwise we'd print this twice.\n if (typeof tag !== 'string' ||\n (tag !== '' &&\n (ctx.showHidden ?\n ObjectPrototypeHasOwnProperty :\n ObjectPrototypePropertyIsEnumerable)(\n value\x2C SymbolToStringTag\n ))) {\n tag = '';\n }\n let base = '';\n let formatter = getEmptyFormatArray;\n let braces;\n let noIterator = true;\n let i = 0;\n const filter = ctx.showHidden ? ALL_PROPERTIES : ONLY_ENUMERABLE;\n\n let extrasType = kObjectType;\n\n // Iterators and the rest are split to reduce checks.\n // We have to check all values in case the constructor is set to null.\n // Otherwise it would not possible to identify all types properly.\n if (value[SymbolIterator] || constructor === null) {\n noIterator = false;\n if (ArrayIsArray(value)) {\n // Only set the constructor for non ordinary ("Array [...]") arrays.\n const prefix = (constructor !== 'Array' || tag !== '') ?\n getPrefix(constructor\x2C tag\x2C 'Array'\x2C `(${value.length})`) :\n '';\n keys = getOwnNonIndexProperties(value\x2C filter);\n braces = [`${prefix}[`\x2C ']'];\n if (value.length === 0 && keys.length === 0 && protoProps === undefined)\n return `${braces[0]}]`;\n extrasType = kArrayExtrasType;\n formatter = formatArray;\n } else if (isSet(value)) {\n const size = SetPrototypeGetSize(value);\n const prefix = getPrefix(constructor\x2C tag\x2C 'Set'\x2C `(${size})`);\n keys = getKeys(value\x2C ctx.showHidden);\n formatter = constructor !== null ?\n formatSet.bind(null\x2C value) :\n formatSet.bind(null\x2C SetPrototypeValues(value));\n if (size === 0 && keys.length === 0 && protoProps === undefined)\n return `${prefix}{}`;\n braces = [`${prefix}{`\x2C '}'];\n } else if (isMap(value)) {\n const size = MapPrototypeGetSize(value);\n const prefix = getPrefix(constructor\x2C tag\x2C 'Map'\x2C `(${size})`);\n keys = getKeys(value\x2C ctx.showHidden);\n formatter = constructor !== null ?\n formatMap.bind(null\x2C value) :\n formatMap.bind(null\x2C MapPrototypeEntries(value));\n if (size === 0 && keys.length === 0 && protoProps === undefined)\n return `${prefix}{}`;\n braces = [`${prefix}{`\x2C '}'];\n } else if (isTypedArray(value)) {\n keys = getOwnNonIndexProperties(value\x2C filter);\n let bound = value;\n let fallback = '';\n if (constructor === null) {\n fallback = TypedArrayPrototypeGetSymbolToStringTag(value);\n // Reconstruct the array information.\n bound = new primordials[fallback](value);\n }\n const size = TypedArrayPrototypeGetLength(value);\n const prefix = getPrefix(constructor\x2C tag\x2C fallback\x2C `(${size})`);\n braces = [`${prefix}[`\x2C ']'];\n if (value.length === 0 && keys.length === 0 && !ctx.showHidden)\n return `${braces[0]}]`;\n // Special handle the value. The original value is required below. The\n // bound function is required to reconstruct missing information.\n formatter = formatTypedArray.bind(null\x2C bound\x2C size);\n extrasType = kArrayExtrasType;\n } else if (isMapIterator(value)) {\n keys = getKeys(value\x2C ctx.showHidden);\n braces = getIteratorBraces('Map'\x2C tag);\n // Add braces to the formatter parameters.\n formatter = formatIterator.bind(null\x2C braces);\n } else if (isSetIterator(value)) {\n keys = getKeys(value\x2C ctx.showHidden);\n braces = getIteratorBraces('Set'\x2C tag);\n // Add braces to the formatter parameters.\n formatter = formatIterator.bind(null\x2C braces);\n } else {\n noIterator = true;\n }\n }\n if (noIterator) {\n keys = getKeys(value\x2C ctx.showHidden);\n braces = ['{'\x2C '}'];\n if (constructor === 'Object') {\n if (isArgumentsObject(value)) {\n braces[0] = '[Arguments] {';\n } else if (tag !== '') {\n braces[0] = `${getPrefix(constructor\x2C tag\x2C 'Object')}{`;\n }\n if (keys.length === 0 && protoProps === undefined) {\n return `${braces[0]}}`;\n }\n } else if (typeof value === 'function') {\n base = getFunctionBase(value\x2C constructor\x2C tag);\n if (keys.length === 0 && protoProps === undefined)\n return ctx.stylize(base\x2C 'special');\n } else if (isRegExp(value)) {\n // Make RegExps say that they are RegExps\n base = RegExpPrototypeToString(\n constructor !== null ? value : new RegExp(value)\n );\n const prefix = getPrefix(constructor\x2C tag\x2C 'RegExp');\n if (prefix !== 'RegExp ')\n base = `${prefix}${base}`;\n if ((keys.length === 0 && protoProps === undefined) ||\n (recurseTimes > ctx.depth && ctx.depth !== null)) {\n return ctx.stylize(base\x2C 'regexp');\n }\n } else if (isDate(value)) {\n // Make dates with properties first say the date\n base = NumberIsNaN(DatePrototypeGetTime(value)) ?\n DatePrototypeToString(value) :\n DatePrototypeToISOString(value);\n const prefix = getPrefix(constructor\x2C tag\x2C 'Date');\n if (prefix !== 'Date ')\n base = `${prefix}${base}`;\n if (keys.length === 0 && protoProps === undefined) {\n return ctx.stylize(base\x2C 'date');\n }\n } else if (isError(value)) {\n base = formatError(value\x2C constructor\x2C tag\x2C ctx\x2C keys);\n if (keys.length === 0 && protoProps === undefined)\n return base;\n } else if (isAnyArrayBuffer(value)) {\n // Fast path for ArrayBuffer and SharedArrayBuffer.\n // Can't do the same for DataView because it has a non-primitive\n // .buffer property that we need to recurse for.\n const arrayType = isArrayBuffer(value) ? 'ArrayBuffer' :\n 'SharedArrayBuffer';\n const prefix = getPrefix(constructor\x2C tag\x2C arrayType);\n if (typedArray === undefined) {\n formatter = formatArrayBuffer;\n } else if (keys.length === 0 && protoProps === undefined) {\n return prefix +\n `{ byteLength: ${formatNumber(ctx.stylize\x2C value.byteLength)} }`;\n }\n braces[0] = `${prefix}{`;\n ArrayPrototypeUnshift(keys\x2C 'byteLength');\n } else if (isDataView(value)) {\n braces[0] = `${getPrefix(constructor\x2C tag\x2C 'DataView')}{`;\n // .buffer goes last\x2C it's not a primitive like the others.\n ArrayPrototypeUnshift(keys\x2C 'byteLength'\x2C 'byteOffset'\x2C 'buffer');\n } else if (isPromise(value)) {\n braces[0] = `${getPrefix(constructor\x2C tag\x2C 'Promise')}{`;\n formatter = formatPromise;\n } else if (isWeakSet(value)) {\n braces[0] = `${getPrefix(constructor\x2C tag\x2C 'WeakSet')}{`;\n formatter = ctx.showHidden ? formatWeakSet : formatWeakCollection;\n } else if (isWeakMap(value)) {\n braces[0] = `${getPrefix(constructor\x2C tag\x2C 'WeakMap')}{`;\n formatter = ctx.showHidden ? formatWeakMap : formatWeakCollection;\n } else if (isModuleNamespaceObject(value)) {\n braces[0] = `${getPrefix(constructor\x2C tag\x2C 'Module')}{`;\n // Special handle keys for namespace objects.\n formatter = formatNamespaceObject.bind(null\x2C keys);\n } else if (isBoxedPrimitive(value)) {\n base = getBoxedBase(value\x2C ctx\x2C keys\x2C constructor\x2C tag);\n if (keys.length === 0 && protoProps === undefined) {\n return base;\n }\n } else {\n if (keys.length === 0 && protoProps === undefined) {\n if (isExternal(value)) {\n const address = getExternalValue(value).toString(16);\n return ctx.stylize(`[External: ${address}]`\x2C 'special');\n }\n return `${getCtxStyle(value\x2C constructor\x2C tag)}{}`;\n }\n braces[0] = `${getCtxStyle(value\x2C constructor\x2C tag)}{`;\n }\n }\n\n if (recurseTimes > ctx.depth && ctx.depth !== null) {\n let constructorName = getCtxStyle(value\x2C constructor\x2C tag).slice(0\x2C -1);\n if (constructor !== null)\n constructorName = `[${constructorName}]`;\n return ctx.stylize(constructorName\x2C 'special');\n }\n recurseTimes += 1;\n\n ctx.seen.push(value);\n ctx.currentDepth = recurseTimes;\n let output;\n const indentationLvl = ctx.indentationLvl;\n try {\n output = formatter(ctx\x2C value\x2C recurseTimes);\n for (i = 0; i < keys.length; i++) {\n output.push(\n formatProperty(ctx\x2C value\x2C recurseTimes\x2C keys[i]\x2C extrasType));\n }\n if (protoProps !== undefined) {\n output.push(...protoProps);\n }\n } catch (err) {\n const constructorName = getCtxStyle(value\x2C constructor\x2C tag).slice(0\x2C -1);\n return handleMaxCallStackSize(ctx\x2C err\x2C constructorName\x2C indentationLvl);\n }\n if (ctx.circular !== undefined) {\n const index = ctx.circular.get(value);\n if (index !== undefined) {\n const reference = ctx.stylize(``\x2C 'special');\n // Add reference always to the very beginning of the output.\n if (ctx.compact !== true) {\n base = base === '' ? reference : `${reference} ${base}`;\n } else {\n braces[0] = `${reference} ${braces[0]}`;\n }\n }\n }\n ctx.seen.pop();\n\n if (ctx.sorted) {\n const comparator = ctx.sorted === true ? undefined : ctx.sorted;\n if (extrasType === kObjectType) {\n output = output.sort(comparator);\n } else if (keys.length > 1) {\n const sorted = output.slice(output.length - keys.length).sort(comparator);\n output.splice(output.length - keys.length\x2C keys.length\x2C ...sorted);\n }\n }\n\n const res = reduceToSingleString(\n ctx\x2C output\x2C base\x2C braces\x2C extrasType\x2C recurseTimes\x2C value);\n const budget = ctx.budget[ctx.indentationLvl] || 0;\n const newLength = budget + res.length;\n ctx.budget[ctx.indentationLvl] = newLength;\n // If any indentationLvl exceeds this limit\x2C limit further inspecting to the\n // minimum. Otherwise the recursive algorithm might continue inspecting the\n // object even though the maximum string size (~2 ** 28 on 32 bit systems and\n // ~2 ** 30 on 64 bit systems) exceeded. The actual output is not limited at\n // exactly 2 ** 27 but a bit higher. This depends on the object shape.\n // This limit also makes sure that huge objects don't block the event loop\n // significantly.\n if (newLength > 2 ** 27) {\n ctx.depth = -1;\n }\n return res;\n}\n\nfunction getIteratorBraces(type\x2C tag) {\n if (tag !== `${type} Iterator`) {\n if (tag !== '')\n tag += '] [';\n tag += `${type} Iterator`;\n }\n return [`[${tag}] {`\x2C '}'];\n}\n\nfunction getBoxedBase(value\x2C ctx\x2C keys\x2C constructor\x2C tag) {\n let fn;\n let type;\n if (isNumberObject(value)) {\n fn = NumberPrototypeValueOf;\n type = 'Number';\n } else if (isStringObject(value)) {\n fn = StringPrototypeValueOf;\n type = 'String';\n // For boxed Strings\x2C we have to remove the 0-n indexed entries\x2C\n // since they just noisy up the output and are redundant\n // Make boxed primitive Strings look like such\n keys.splice(0\x2C value.length);\n } else if (isBooleanObject(value)) {\n fn = BooleanPrototypeValueOf;\n type = 'Boolean';\n } else if (isBigIntObject(value)) {\n fn = BigIntPrototypeValueOf;\n type = 'BigInt';\n } else {\n fn = SymbolPrototypeValueOf;\n type = 'Symbol';\n }\n let base = `[${type}`;\n if (type !== constructor) {\n if (constructor === null) {\n base += ' (null prototype)';\n } else {\n base += ` (${constructor})`;\n }\n }\n base += `: ${formatPrimitive(stylizeNoColor\x2C fn(value)\x2C ctx)}]`;\n if (tag !== '' && tag !== constructor) {\n base += ` [${tag}]`;\n }\n if (keys.length !== 0 || ctx.stylize === stylizeNoColor)\n return base;\n return ctx.stylize(base\x2C StringPrototypeToLowerCase(type));\n}\n\nfunction getClassBase(value\x2C constructor\x2C tag) {\n const hasName = ObjectPrototypeHasOwnProperty(value\x2C 'name');\n const name = (hasName && value.name) || '(anonymous)';\n let base = `class ${name}`;\n if (constructor !== 'Function' && constructor !== null) {\n base += ` [${constructor}]`;\n }\n if (tag !== '' && constructor !== tag) {\n base += ` [${tag}]`;\n }\n if (constructor !== null) {\n const superName = ObjectGetPrototypeOf(value).name;\n if (superName) {\n base += ` extends ${superName}`;\n }\n } else {\n base += ' extends [null prototype]';\n }\n return `[${base}]`;\n}\n\nfunction getFunctionBase(value\x2C constructor\x2C tag) {\n const stringified = FunctionPrototypeToString(value);\n if (stringified.slice(0\x2C 5) === 'class' && stringified.endsWith('}')) {\n const slice = stringified.slice(5\x2C -1);\n const bracketIndex = slice.indexOf('{');\n if (bracketIndex !== -1 &&\n (!slice.slice(0\x2C bracketIndex).includes('(') ||\n // Slow path to guarantee that it's indeed a class.\n classRegExp.test(slice.replace(stripCommentsRegExp)))) {\n return getClassBase(value\x2C constructor\x2C tag);\n }\n }\n let type = 'Function';\n if (isGeneratorFunction(value)) {\n type = `Generator${type}`;\n }\n if (isAsyncFunction(value)) {\n type = `Async${type}`;\n }\n let base = `[${type}`;\n if (constructor === null) {\n base += ' (null prototype)';\n }\n if (value.name === '') {\n base += ' (anonymous)';\n } else {\n base += `: ${value.name}`;\n }\n base += ']';\n if (constructor !== type && constructor !== null) {\n base += ` ${constructor}`;\n }\n if (tag !== '' && constructor !== tag) {\n base += ` [${tag}]`;\n }\n return base;\n}\n\nfunction formatError(err\x2C constructor\x2C tag\x2C ctx\x2C keys) {\n const name = err.name != null ? String(err.name) : 'Error';\n let len = name.length;\n let stack = err.stack ? String(err.stack) : ErrorPrototypeToString(err);\n\n // Do not "duplicate" error properties that are already included in the output\n // otherwise.\n if (!ctx.showHidden && keys.length !== 0) {\n for (const name of ['name'\x2C 'message'\x2C 'stack']) {\n const index = keys.indexOf(name);\n // Only hide the property in case it's part of the original stack\n if (index !== -1 && stack.includes(err[name])) {\n keys.splice(index\x2C 1);\n }\n }\n }\n\n // A stack trace may contain arbitrary data. Only manipulate the output\n // for "regular errors" (errors that "look normal") for now.\n if (constructor === null ||\n (name.endsWith('Error') &&\n stack.startsWith(name) &&\n (stack.length === len || stack[len] === ':' || stack[len] === '\\n'))) {\n let fallback = 'Error';\n if (constructor === null) {\n const start = stack.match(/^([A-Z][a-z_ A-Z0-9[\\]()-]+)(?::|\\n {4}at)/) ||\n stack.match(/^([a-z_A-Z0-9-]*Error)$/);\n fallback = (start && start[1]) || '';\n len = fallback.length;\n fallback = fallback || 'Error';\n }\n const prefix = getPrefix(constructor\x2C tag\x2C fallback).slice(0\x2C -1);\n if (name !== prefix) {\n if (prefix.includes(name)) {\n if (len === 0) {\n stack = `${prefix}: ${stack}`;\n } else {\n stack = `${prefix}${stack.slice(len)}`;\n }\n } else {\n stack = `${prefix} [${name}]${stack.slice(len)}`;\n }\n }\n }\n // Ignore the error message if it's contained in the stack.\n let pos = (err.message && stack.indexOf(err.message)) || -1;\n if (pos !== -1)\n pos += err.message.length;\n // Wrap the error in brackets in case it has no stack trace.\n const stackStart = stack.indexOf('\\n at'\x2C pos);\n if (stackStart === -1) {\n stack = `[${stack}]`;\n } else if (ctx.colors) {\n // Highlight userland code and node modules.\n let newStack = stack.slice(0\x2C stackStart);\n const lines = stack.slice(stackStart + 1).split('\\n');\n for (const line of lines) {\n const core = line.match(coreModuleRegExp);\n if (core !== null && NativeModule.exists(core[1])) {\n newStack += `\\n${ctx.stylize(line\x2C 'undefined')}`;\n } else {\n // This adds underscores to all node_modules to quickly identify them.\n let nodeModule;\n newStack += '\\n';\n let pos = 0;\n while (nodeModule = nodeModulesRegExp.exec(line)) {\n // '/node_modules/'.length === 14\n newStack += line.slice(pos\x2C nodeModule.index + 14);\n newStack += ctx.stylize(nodeModule[1]\x2C 'module');\n pos = nodeModule.index + nodeModule[0].length;\n }\n newStack += pos === 0 ? line : line.slice(pos);\n }\n }\n stack = newStack;\n }\n // The message and the stack have to be indented as well!\n if (ctx.indentationLvl !== 0) {\n const indentation = ' '.repeat(ctx.indentationLvl);\n stack = stack.replace(/\\n/g\x2C `\\n${indentation}`);\n }\n return stack;\n}\n\nfunction groupArrayElements(ctx\x2C output\x2C value) {\n let totalLength = 0;\n let maxLength = 0;\n let i = 0;\n let outputLength = output.length;\n if (ctx.maxArrayLength < output.length) {\n // This makes sure the "... n more items" part is not taken into account.\n outputLength--;\n }\n const separatorSpace = 2; // Add 1 for the space and 1 for the separator.\n const dataLen = new Array(outputLength);\n // Calculate the total length of all output entries and the individual max\n // entries length of all output entries. We have to remove colors first\x2C\n // otherwise the length would not be calculated properly.\n for (; i < outputLength; i++) {\n const len = getStringWidth(output[i]\x2C ctx.colors);\n dataLen[i] = len;\n totalLength += len + separatorSpace;\n if (maxLength < len)\n maxLength = len;\n }\n // Add two to `maxLength` as we add a single whitespace character plus a comma\n // in-between two entries.\n const actualMax = maxLength + separatorSpace;\n // Check if at least three entries fit next to each other and prevent grouping\n // of arrays that contains entries of very different length (i.e.\x2C if a single\n // entry is longer than 1/5 of all other entries combined). Otherwise the\n // space in-between small entries would be enormous.\n if (actualMax * 3 + ctx.indentationLvl < ctx.breakLength &&\n (totalLength / actualMax > 5 || maxLength <= 6)) {\n\n const approxCharHeights = 2.5;\n const averageBias = MathSqrt(actualMax - totalLength / output.length);\n const biasedMax = MathMax(actualMax - 3 - averageBias\x2C 1);\n // Dynamically check how many columns seem possible.\n const columns = MathMin(\n // Ideally a square should be drawn. We expect a character to be about 2.5\n // times as high as wide. This is the area formula to calculate a square\n // which contains n rectangles of size `actualMax * approxCharHeights`.\n // Divide that by `actualMax` to receive the correct number of columns.\n // The added bias increases the columns for short entries.\n MathRound(\n MathSqrt(\n approxCharHeights * biasedMax * outputLength\n ) / biasedMax\n )\x2C\n // Do not exceed the breakLength.\n MathFloor((ctx.breakLength - ctx.indentationLvl) / actualMax)\x2C\n // Limit array grouping for small `compact` modes as the user requested\n // minimal grouping.\n ctx.compact * 4\x2C\n // Limit the columns to a maximum of fifteen.\n 15\n );\n // Return with the original output if no grouping should happen.\n if (columns <= 1) {\n return output;\n }\n const tmp = [];\n const maxLineLength = [];\n for (let i = 0; i < columns; i++) {\n let lineMaxLength = 0;\n for (let j = i; j < output.length; j += columns) {\n if (dataLen[j] > lineMaxLength)\n lineMaxLength = dataLen[j];\n }\n lineMaxLength += separatorSpace;\n maxLineLength[i] = lineMaxLength;\n }\n let order = StringPrototypePadStart;\n if (value !== undefined) {\n for (let i = 0; i < output.length; i++) {\n if (typeof value[i] !== 'number' && typeof value[i] !== 'bigint') {\n order = StringPrototypePadEnd;\n break;\n }\n }\n }\n // Each iteration creates a single line of grouped entries.\n for (let i = 0; i < outputLength; i += columns) {\n // The last lines may contain less entries than columns.\n const max = MathMin(i + columns\x2C outputLength);\n let str = '';\n let j = i;\n for (; j < max - 1; j++) {\n // Calculate extra color padding in case it's active. This has to be\n // done line by line as some lines might contain more colors than\n // others.\n const padding = maxLineLength[j - i] + output[j].length - dataLen[j];\n str += order(`${output[j]}\x2C `\x2C padding\x2C ' ');\n }\n if (order === StringPrototypePadStart) {\n const padding = maxLineLength[j - i] +\n output[j].length -\n dataLen[j] -\n separatorSpace;\n str += StringPrototypePadStart(output[j]\x2C padding\x2C ' ');\n } else {\n str += output[j];\n }\n ArrayPrototypePush(tmp\x2C str);\n }\n if (ctx.maxArrayLength < output.length) {\n ArrayPrototypePush(tmp\x2C output[outputLength]);\n }\n output = tmp;\n }\n return output;\n}\n\nfunction handleMaxCallStackSize(ctx\x2C err\x2C constructorName\x2C indentationLvl) {\n if (isStackOverflowError(err)) {\n ctx.seen.pop();\n ctx.indentationLvl = indentationLvl;\n return ctx.stylize(\n `[${constructorName}: Inspection interrupted ` +\n 'prematurely. Maximum call stack size exceeded.]'\x2C\n 'special'\n );\n }\n /* c8 ignore next */\n assert.fail(err.stack);\n}\n\nfunction formatNumber(fn\x2C value) {\n // Format -0 as '-0'. Checking `value === -0` won't distinguish 0 from -0.\n return fn(ObjectIs(value\x2C -0) ? '-0' : `${value}`\x2C 'number');\n}\n\nfunction formatBigInt(fn\x2C value) {\n return fn(`${value}n`\x2C 'bigint');\n}\n\nfunction formatPrimitive(fn\x2C value\x2C ctx) {\n if (typeof value === 'string') {\n let trailer = '';\n if (value.length > ctx.maxStringLength) {\n const remaining = value.length - ctx.maxStringLength;\n value = value.slice(0\x2C ctx.maxStringLength);\n trailer = `... ${remaining} more character${remaining > 1 ? 's' : ''}`;\n }\n if (ctx.compact !== true &&\n // TODO(BridgeAR): Add unicode support. Use the readline getStringWidth\n // function.\n value.length > kMinLineLength &&\n value.length > ctx.breakLength - ctx.indentationLvl - 4) {\n return value\n .split(/(?<=\\n)/)\n .map((line) => fn(strEscape(line)\x2C 'string'))\n .join(` +\\n${' '.repeat(ctx.indentationLvl + 2)}`) + trailer;\n }\n return fn(strEscape(value)\x2C 'string') + trailer;\n }\n if (typeof value === 'number')\n return formatNumber(fn\x2C value);\n if (typeof value === 'bigint')\n return formatBigInt(fn\x2C value);\n if (typeof value === 'boolean')\n return fn(`${value}`\x2C 'boolean');\n if (typeof value === 'undefined')\n return fn('undefined'\x2C 'undefined');\n // es6 symbol primitive\n return fn(SymbolPrototypeToString(value)\x2C 'symbol');\n}\n\nfunction formatNamespaceObject(keys\x2C ctx\x2C value\x2C recurseTimes) {\n const output = new Array(keys.length);\n for (let i = 0; i < keys.length; i++) {\n try {\n output[i] = formatProperty(ctx\x2C value\x2C recurseTimes\x2C keys[i]\x2C\n kObjectType);\n } catch (err) {\n assert(isNativeError(err) && err.name === 'ReferenceError');\n // Use the existing functionality. This makes sure the indentation and\n // line breaks are always correct. Otherwise it is very difficult to keep\n // this aligned\x2C even though this is a hacky way of dealing with this.\n const tmp = { [keys[i]]: '' };\n output[i] = formatProperty(ctx\x2C tmp\x2C recurseTimes\x2C keys[i]\x2C kObjectType);\n const pos = output[i].lastIndexOf(' ');\n // We have to find the last whitespace and have to replace that value as\n // it will be visualized as a regular string.\n output[i] = output[i].slice(0\x2C pos + 1) +\n ctx.stylize(''\x2C 'special');\n }\n }\n // Reset the keys to an empty array. This prevents duplicated inspection.\n keys.length = 0;\n return output;\n}\n\n// The array is sparse and/or has extra keys\nfunction formatSpecialArray(ctx\x2C value\x2C recurseTimes\x2C maxLength\x2C output\x2C i) {\n const keys = ObjectKeys(value);\n let index = i;\n for (; i < keys.length && output.length < maxLength; i++) {\n const key = keys[i];\n const tmp = +key;\n // Arrays can only have up to 2^32 - 1 entries\n if (tmp > 2 ** 32 - 2) {\n break;\n }\n if (`${index}` !== key) {\n if (!numberRegExp.test(key)) {\n break;\n }\n const emptyItems = tmp - index;\n const ending = emptyItems > 1 ? 's' : '';\n const message = `<${emptyItems} empty item${ending}>`;\n output.push(ctx.stylize(message\x2C 'undefined'));\n index = tmp;\n if (output.length === maxLength) {\n break;\n }\n }\n output.push(formatProperty(ctx\x2C value\x2C recurseTimes\x2C key\x2C kArrayType));\n index++;\n }\n const remaining = value.length - index;\n if (output.length !== maxLength) {\n if (remaining > 0) {\n const ending = remaining > 1 ? 's' : '';\n const message = `<${remaining} empty item${ending}>`;\n output.push(ctx.stylize(message\x2C 'undefined'));\n }\n } else if (remaining > 0) {\n output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`);\n }\n return output;\n}\n\nfunction formatArrayBuffer(ctx\x2C value) {\n let buffer;\n try {\n buffer = new Uint8Array(value);\n } catch {\n return [ctx.stylize('(detached)'\x2C 'special')];\n }\n if (hexSlice === undefined)\n hexSlice = uncurryThis(require('buffer').Buffer.prototype.hexSlice);\n let str = StringPrototypeTrim(StringPrototypeReplace(\n hexSlice(buffer\x2C 0\x2C MathMin(ctx.maxArrayLength\x2C buffer.length))\x2C\n /(.{2})/g\x2C '$1 '));\n const remaining = buffer.length - ctx.maxArrayLength;\n if (remaining > 0)\n str += ` ... ${remaining} more byte${remaining > 1 ? 's' : ''}`;\n return [`${ctx.stylize('[Uint8Contents]'\x2C 'special')}: <${str}>`];\n}\n\nfunction formatArray(ctx\x2C value\x2C recurseTimes) {\n const valLen = value.length;\n const len = MathMin(MathMax(0\x2C ctx.maxArrayLength)\x2C valLen);\n\n const remaining = valLen - len;\n const output = [];\n for (let i = 0; i < len; i++) {\n // Special handle sparse arrays.\n if (!ObjectPrototypeHasOwnProperty(value\x2C i)) {\n return formatSpecialArray(ctx\x2C value\x2C recurseTimes\x2C len\x2C output\x2C i);\n }\n output.push(formatProperty(ctx\x2C value\x2C recurseTimes\x2C i\x2C kArrayType));\n }\n if (remaining > 0)\n output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`);\n return output;\n}\n\nfunction formatTypedArray(value\x2C length\x2C ctx\x2C ignored\x2C recurseTimes) {\n const maxLength = MathMin(MathMax(0\x2C ctx.maxArrayLength)\x2C length);\n const remaining = value.length - maxLength;\n const output = new Array(maxLength);\n const elementFormatter = value.length > 0 && typeof value[0] === 'number' ?\n formatNumber :\n formatBigInt;\n for (let i = 0; i < maxLength; ++i)\n output[i] = elementFormatter(ctx.stylize\x2C value[i]);\n if (remaining > 0) {\n output[maxLength] = `... ${remaining} more item${remaining > 1 ? 's' : ''}`;\n }\n if (ctx.showHidden) {\n // .buffer goes last\x2C it's not a primitive like the others.\n // All besides `BYTES_PER_ELEMENT` are actually getters.\n ctx.indentationLvl += 2;\n for (const key of [\n 'BYTES_PER_ELEMENT'\x2C\n 'length'\x2C\n 'byteLength'\x2C\n 'byteOffset'\x2C\n 'buffer'\x2C\n ]) {\n const str = formatValue(ctx\x2C value[key]\x2C recurseTimes\x2C true);\n ArrayPrototypePush(output\x2C `[${key}]: ${str}`);\n }\n ctx.indentationLvl -= 2;\n }\n return output;\n}\n\nfunction formatSet(value\x2C ctx\x2C ignored\x2C recurseTimes) {\n const output = [];\n ctx.indentationLvl += 2;\n for (const v of value) {\n ArrayPrototypePush(output\x2C formatValue(ctx\x2C v\x2C recurseTimes));\n }\n ctx.indentationLvl -= 2;\n return output;\n}\n\nfunction formatMap(value\x2C ctx\x2C ignored\x2C recurseTimes) {\n const output = [];\n ctx.indentationLvl += 2;\n for (const { 0: k\x2C 1: v } of value) {\n output.push(\n `${formatValue(ctx\x2C k\x2C recurseTimes)} => ${formatValue(ctx\x2C v\x2C recurseTimes)}`\n );\n }\n ctx.indentationLvl -= 2;\n return output;\n}\n\nfunction formatSetIterInner(ctx\x2C recurseTimes\x2C entries\x2C state) {\n const maxArrayLength = MathMax(ctx.maxArrayLength\x2C 0);\n const maxLength = MathMin(maxArrayLength\x2C entries.length);\n const output = new Array(maxLength);\n ctx.indentationLvl += 2;\n for (let i = 0; i < maxLength; i++) {\n output[i] = formatValue(ctx\x2C entries[i]\x2C recurseTimes);\n }\n ctx.indentationLvl -= 2;\n if (state === kWeak && !ctx.sorted) {\n // Sort all entries to have a halfway reliable output (if more entries than\n // retrieved ones exist\x2C we can not reliably return the same output) if the\n // output is not sorted anyway.\n ArrayPrototypeSort(output);\n }\n const remaining = entries.length - maxLength;\n if (remaining > 0) {\n ArrayPrototypePush(output\x2C\n `... ${remaining} more item${remaining > 1 ? 's' : ''}`);\n }\n return output;\n}\n\nfunction formatMapIterInner(ctx\x2C recurseTimes\x2C entries\x2C state) {\n const maxArrayLength = MathMax(ctx.maxArrayLength\x2C 0);\n // Entries exist as [key1\x2C val1\x2C key2\x2C val2\x2C ...]\n const len = entries.length / 2;\n const remaining = len - maxArrayLength;\n const maxLength = MathMin(maxArrayLength\x2C len);\n let output = new Array(maxLength);\n let i = 0;\n ctx.indentationLvl += 2;\n if (state === kWeak) {\n for (; i < maxLength; i++) {\n const pos = i * 2;\n output[i] =\n `${formatValue(ctx\x2C entries[pos]\x2C recurseTimes)} => ${formatValue(ctx\x2C entries[pos + 1]\x2C recurseTimes)}`;\n }\n // Sort all entries to have a halfway reliable output (if more entries than\n // retrieved ones exist\x2C we can not reliably return the same output) if the\n // output is not sorted anyway.\n if (!ctx.sorted)\n output = output.sort();\n } else {\n for (; i < maxLength; i++) {\n const pos = i * 2;\n const res = [\n formatValue(ctx\x2C entries[pos]\x2C recurseTimes)\x2C\n formatValue(ctx\x2C entries[pos + 1]\x2C recurseTimes)\x2C\n ];\n output[i] = reduceToSingleString(\n ctx\x2C res\x2C ''\x2C ['['\x2C ']']\x2C kArrayExtrasType\x2C recurseTimes);\n }\n }\n ctx.indentationLvl -= 2;\n if (remaining > 0) {\n output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`);\n }\n return output;\n}\n\nfunction formatWeakCollection(ctx) {\n return [ctx.stylize(''\x2C 'special')];\n}\n\nfunction formatWeakSet(ctx\x2C value\x2C recurseTimes) {\n const entries = previewEntries(value);\n return formatSetIterInner(ctx\x2C recurseTimes\x2C entries\x2C kWeak);\n}\n\nfunction formatWeakMap(ctx\x2C value\x2C recurseTimes) {\n const entries = previewEntries(value);\n return formatMapIterInner(ctx\x2C recurseTimes\x2C entries\x2C kWeak);\n}\n\nfunction formatIterator(braces\x2C ctx\x2C value\x2C recurseTimes) {\n const { 0: entries\x2C 1: isKeyValue } = previewEntries(value\x2C true);\n if (isKeyValue) {\n // Mark entry iterators as such.\n braces[0] = braces[0].replace(/ Iterator] {$/\x2C ' Entries] {');\n return formatMapIterInner(ctx\x2C recurseTimes\x2C entries\x2C kMapEntries);\n }\n\n return formatSetIterInner(ctx\x2C recurseTimes\x2C entries\x2C kIterator);\n}\n\nfunction formatPromise(ctx\x2C value\x2C recurseTimes) {\n let output;\n const { 0: state\x2C 1: result } = getPromiseDetails(value);\n if (state === kPending) {\n output = [ctx.stylize(''\x2C 'special')];\n } else {\n ctx.indentationLvl += 2;\n const str = formatValue(ctx\x2C result\x2C recurseTimes);\n ctx.indentationLvl -= 2;\n output = [\n state === kRejected ?\n `${ctx.stylize(''\x2C 'special')} ${str}` :\n str\x2C\n ];\n }\n return output;\n}\n\nfunction formatProperty(ctx\x2C value\x2C recurseTimes\x2C key\x2C type\x2C desc\x2C\n original = value) {\n let name\x2C str;\n let extra = ' ';\n desc = desc || ObjectGetOwnPropertyDescriptor(value\x2C key) ||\n { value: value[key]\x2C enumerable: true };\n if (desc.value !== undefined) {\n const diff = (ctx.compact !== true || type !== kObjectType) ? 2 : 3;\n ctx.indentationLvl += diff;\n str = formatValue(ctx\x2C desc.value\x2C recurseTimes);\n if (diff === 3 && ctx.breakLength < getStringWidth(str\x2C ctx.colors)) {\n extra = `\\n${' '.repeat(ctx.indentationLvl)}`;\n }\n ctx.indentationLvl -= diff;\n } else if (desc.get !== undefined) {\n const label = desc.set !== undefined ? 'Getter/Setter' : 'Getter';\n const s = ctx.stylize;\n const sp = 'special';\n if (ctx.getters && (ctx.getters === true ||\n (ctx.getters === 'get' && desc.set === undefined) ||\n (ctx.getters === 'set' && desc.set !== undefined))) {\n try {\n const tmp = FunctionPrototypeCall(desc.get\x2C original);\n ctx.indentationLvl += 2;\n if (tmp === null) {\n str = `${s(`[${label}:`\x2C sp)} ${s('null'\x2C 'null')}${s(']'\x2C sp)}`;\n } else if (typeof tmp === 'object') {\n str = `${s(`[${label}]`\x2C sp)} ${formatValue(ctx\x2C tmp\x2C recurseTimes)}`;\n } else {\n const primitive = formatPrimitive(s\x2C tmp\x2C ctx);\n str = `${s(`[${label}:`\x2C sp)} ${primitive}${s(']'\x2C sp)}`;\n }\n ctx.indentationLvl -= 2;\n } catch (err) {\n const message = ``;\n str = `${s(`[${label}:`\x2C sp)} ${message}${s(']'\x2C sp)}`;\n }\n } else {\n str = ctx.stylize(`[${label}]`\x2C sp);\n }\n } else if (desc.set !== undefined) {\n str = ctx.stylize('[Setter]'\x2C 'special');\n } else {\n str = ctx.stylize('undefined'\x2C 'undefined');\n }\n if (type === kArrayType) {\n return str;\n }\n if (typeof key === 'symbol') {\n const tmp = StringPrototypeReplace(\n SymbolPrototypeToString(key)\x2C\n strEscapeSequencesReplacer\x2C escapeFn\n );\n name = `[${ctx.stylize(tmp\x2C 'symbol')}]`;\n } else if (key === '__proto__') {\n name = "['__proto__']";\n } else if (desc.enumerable === false) {\n const tmp = StringPrototypeReplace(key\x2C\n strEscapeSequencesReplacer\x2C escapeFn);\n name = `[${tmp}]`;\n } else if (RegExpPrototypeTest(keyStrRegExp\x2C key)) {\n name = ctx.stylize(key\x2C 'name');\n } else {\n name = ctx.stylize(strEscape(key)\x2C 'string');\n }\n return `${name}:${extra}${str}`;\n}\n\nfunction isBelowBreakLength(ctx\x2C output\x2C start\x2C base) {\n // Each entry is separated by at least a comma. Thus\x2C we start with a total\n // length of at least `output.length`. In addition\x2C some cases have a\n // whitespace in-between each other that is added to the total as well.\n // TODO(BridgeAR): Add unicode support. Use the readline getStringWidth\n // function. Check the performance overhead and make it an opt-in in case it's\n // significant.\n let totalLength = output.length + start;\n if (totalLength + output.length > ctx.breakLength)\n return false;\n for (let i = 0; i < output.length; i++) {\n if (ctx.colors) {\n totalLength += removeColors(output[i]).length;\n } else {\n totalLength += output[i].length;\n }\n if (totalLength > ctx.breakLength) {\n return false;\n }\n }\n // Do not line up properties on the same line if `base` contains line breaks.\n return base === '' || !StringPrototypeIncludes(base\x2C '\\n');\n}\n\nfunction reduceToSingleString(\n ctx\x2C output\x2C base\x2C braces\x2C extrasType\x2C recurseTimes\x2C value) {\n if (ctx.compact !== true) {\n if (typeof ctx.compact === 'number' && ctx.compact >= 1) {\n // Memorize the original output length. In case the output is grouped\x2C\n // prevent lining up the entries on a single line.\n const entries = output.length;\n // Group array elements together if the array contains at least six\n // separate entries.\n if (extrasType === kArrayExtrasType && entries > 6) {\n output = groupArrayElements(ctx\x2C output\x2C value);\n }\n // `ctx.currentDepth` is set to the most inner depth of the currently\n // inspected object part while `recurseTimes` is the actual current depth\n // that is inspected.\n //\n // Example:\n //\n // const a = { first: [ 1\x2C 2\x2C 3 ]\x2C second: { inner: [ 1\x2C 2\x2C 3 ] } }\n //\n // The deepest depth of `a` is 2 (a.second.inner) and `a.first` has a max\n // depth of 1.\n //\n // Consolidate all entries of the local most inner depth up to\n // `ctx.compact`\x2C as long as the properties are smaller than\n // `ctx.breakLength`.\n if (ctx.currentDepth - recurseTimes < ctx.compact &&\n entries === output.length) {\n // Line up all entries on a single line in case the entries do not\n // exceed `breakLength`. Add 10 as constant to start next to all other\n // factors that may reduce `breakLength`.\n const start = output.length + ctx.indentationLvl +\n braces[0].length + base.length + 10;\n if (isBelowBreakLength(ctx\x2C output\x2C start\x2C base)) {\n return `${base ? `${base} ` : ''}${braces[0]} ${join(output\x2C '\x2C ')}` +\n ` ${braces[1]}`;\n }\n }\n }\n // Line up each entry on an individual line.\n const indentation = `\\n${StringPrototypeRepeat(' '\x2C ctx.indentationLvl)}`;\n return `${base ? `${base} ` : ''}${braces[0]}${indentation} ` +\n `${join(output\x2C `\x2C${indentation} `)}${indentation}${braces[1]}`;\n }\n // Line up all entries on a single line in case the entries do not exceed\n // `breakLength`.\n if (isBelowBreakLength(ctx\x2C output\x2C 0\x2C base)) {\n return `${braces[0]}${base ? ` ${base}` : ''} ${join(output\x2C '\x2C ')} ` +\n braces[1];\n }\n const indentation = StringPrototypeRepeat(' '\x2C ctx.indentationLvl);\n // If the opening "brace" is too large\x2C like in the case of "Set {"\x2C\n // we need to force the first item to be on the next line or the\n // items will not line up correctly.\n const ln = base === '' && braces[0].length === 1 ?\n ' ' : `${base ? ` ${base}` : ''}\\n${indentation} `;\n // Line up each entry on an individual line.\n return `${braces[0]}${ln}${join(output\x2C `\x2C\\n${indentation} `)} ${braces[1]}`;\n}\n\nfunction hasBuiltInToString(value) {\n // Prevent triggering proxy traps.\n const getFullProxy = false;\n const proxyTarget = getProxyDetails(value\x2C getFullProxy);\n if (proxyTarget !== undefined) {\n value = proxyTarget;\n }\n\n // Count objects that have no `toString` function as built-in.\n if (typeof value.toString !== 'function') {\n return true;\n }\n\n // The object has a own `toString` property. Thus it's not not a built-in one.\n if (ObjectPrototypeHasOwnProperty(value\x2C 'toString')) {\n return false;\n }\n\n // Find the object that has the `toString` property as own property in the\n // prototype chain.\n let pointer = value;\n do {\n pointer = ObjectGetPrototypeOf(pointer);\n } while (!ObjectPrototypeHasOwnProperty(pointer\x2C 'toString'));\n\n // Check closer if the object is a built-in.\n const descriptor = ObjectGetOwnPropertyDescriptor(pointer\x2C 'constructor');\n return descriptor !== undefined &&\n typeof descriptor.value === 'function' &&\n builtInObjects.has(descriptor.value.name);\n}\n\nconst firstErrorLine = (error) =>\n StringPrototypeSplit(error.message\x2C '\\n'\x2C 1)[0];\nlet CIRCULAR_ERROR_MESSAGE;\nfunction tryStringify(arg) {\n try {\n return JSONStringify(arg);\n } catch (err) {\n // Populate the circular error message lazily\n if (!CIRCULAR_ERROR_MESSAGE) {\n try {\n const a = {}; a.a = a; JSONStringify(a);\n } catch (err) {\n CIRCULAR_ERROR_MESSAGE = firstErrorLine(err);\n }\n }\n if (err.name === 'TypeError' &&\n firstErrorLine(err) === CIRCULAR_ERROR_MESSAGE) {\n return '[Circular]';\n }\n throw err;\n }\n}\n\nfunction format(...args) {\n return formatWithOptionsInternal(undefined\x2C args);\n}\n\nfunction formatWithOptions(inspectOptions\x2C ...args) {\n if (typeof inspectOptions !== 'object' || inspectOptions === null) {\n throw new ERR_INVALID_ARG_TYPE(\n 'inspectOptions'\x2C 'object'\x2C inspectOptions);\n }\n return formatWithOptionsInternal(inspectOptions\x2C args);\n}\n\nfunction formatWithOptionsInternal(inspectOptions\x2C args) {\n const first = args[0];\n let a = 0;\n let str = '';\n let join = '';\n\n if (typeof first === 'string') {\n if (args.length === 1) {\n return first;\n }\n let tempStr;\n let lastPos = 0;\n\n for (let i = 0; i < first.length - 1; i++) {\n if (StringPrototypeCharCodeAt(first\x2C i) === 37) { // '%'\n const nextChar = StringPrototypeCharCodeAt(first\x2C ++i);\n if (a + 1 !== args.length) {\n switch (nextChar) {\n case 115: // 's'\n const tempArg = args[++a];\n if (typeof tempArg === 'number') {\n tempStr = formatNumber(stylizeNoColor\x2C tempArg);\n } else if (typeof tempArg === 'bigint') {\n tempStr = `${tempArg}n`;\n } else if (typeof tempArg !== 'object' ||\n tempArg === null ||\n !hasBuiltInToString(tempArg)) {\n tempStr = String(tempArg);\n } else {\n tempStr = inspect(tempArg\x2C {\n ...inspectOptions\x2C\n compact: 3\x2C\n colors: false\x2C\n depth: 0\n });\n }\n break;\n case 106: // 'j'\n tempStr = tryStringify(args[++a]);\n break;\n case 100: // 'd'\n const tempNum = args[++a];\n if (typeof tempNum === 'bigint') {\n tempStr = `${tempNum}n`;\n } else if (typeof tempNum === 'symbol') {\n tempStr = 'NaN';\n } else {\n tempStr = formatNumber(stylizeNoColor\x2C Number(tempNum));\n }\n break;\n case 79: // 'O'\n tempStr = inspect(args[++a]\x2C inspectOptions);\n break;\n case 111: // 'o'\n tempStr = inspect(args[++a]\x2C {\n ...inspectOptions\x2C\n showHidden: true\x2C\n showProxy: true\x2C\n depth: 4\n });\n break;\n case 105: // 'i'\n const tempInteger = args[++a];\n if (typeof tempInteger === 'bigint') {\n tempStr = `${tempInteger}n`;\n } else if (typeof tempInteger === 'symbol') {\n tempStr = 'NaN';\n } else {\n tempStr = formatNumber(stylizeNoColor\x2C\n NumberParseInt(tempInteger));\n }\n break;\n case 102: // 'f'\n const tempFloat = args[++a];\n if (typeof tempFloat === 'symbol') {\n tempStr = 'NaN';\n } else {\n tempStr = formatNumber(stylizeNoColor\x2C\n NumberParseFloat(tempFloat));\n }\n break;\n case 99: // 'c'\n a += 1;\n tempStr = '';\n break;\n case 37: // '%'\n str += StringPrototypeSlice(first\x2C lastPos\x2C i);\n lastPos = i + 1;\n continue;\n default: // Any other character is not a correct placeholder\n continue;\n }\n if (lastPos !== i - 1) {\n str += StringPrototypeSlice(first\x2C lastPos\x2C i - 1);\n }\n str += tempStr;\n lastPos = i + 1;\n } else if (nextChar === 37) {\n str += StringPrototypeSlice(first\x2C lastPos\x2C i);\n lastPos = i + 1;\n }\n }\n }\n if (lastPos !== 0) {\n a++;\n join = ' ';\n if (lastPos < first.length) {\n str += StringPrototypeSlice(first\x2C lastPos);\n }\n }\n }\n\n while (a < args.length) {\n const value = args[a];\n str += join;\n str += typeof value !== 'string' ? inspect(value\x2C inspectOptions) : value;\n join = ' ';\n a++;\n }\n return str;\n}\n\nif (internalBinding('config').hasIntl) {\n const icu = internalBinding('icu');\n // icu.getStringWidth(string\x2C ambiguousAsFullWidth\x2C expandEmojiSequence)\n // Defaults: ambiguousAsFullWidth = false; expandEmojiSequence = true;\n // TODO(BridgeAR): Expose the options to the user. That is probably the\n // best thing possible at the moment\x2C since it's difficult to know what\n // the receiving end supports.\n getStringWidth = function getStringWidth(str\x2C removeControlChars = true) {\n let width = 0;\n\n if (removeControlChars)\n str = stripVTControlCharacters(str);\n for (let i = 0; i < str.length; i++) {\n // Try to avoid calling into C++ by first handling the ASCII portion of\n // the string. If it is fully ASCII\x2C we skip the C++ part.\n const code = str.charCodeAt(i);\n if (code >= 127) {\n width += icu.getStringWidth(str.slice(i).normalize('NFC'));\n break;\n }\n width += code >= 32 ? 1 : 0;\n }\n return width;\n };\n} else {\n /**\n * Returns the number of columns required to display the given string.\n */\n getStringWidth = function getStringWidth(str\x2C removeControlChars = true) {\n let width = 0;\n\n if (removeControlChars)\n str = stripVTControlCharacters(str);\n str = StringPrototypeNormalize(str\x2C 'NFC');\n for (const char of new SafeStringIterator(str)) {\n const code = StringPrototypeCodePointAt(char\x2C 0);\n if (isFullWidthCodePoint(code)) {\n width += 2;\n } else if (!isZeroWidthCodePoint(code)) {\n width++;\n }\n }\n\n return width;\n };\n\n /**\n * Returns true if the character represented by a given\n * Unicode code point is full-width. Otherwise returns false.\n */\n const isFullWidthCodePoint = (code) => {\n // Code points are partially derived from:\n // https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt\n return code >= 0x1100 && (\n code <= 0x115f || // Hangul Jamo\n code === 0x2329 || // LEFT-POINTING ANGLE BRACKET\n code === 0x232a || // RIGHT-POINTING ANGLE BRACKET\n // CJK Radicals Supplement .. Enclosed CJK Letters and Months\n (code >= 0x2e80 && code <= 0x3247 && code !== 0x303f) ||\n // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n (code >= 0x3250 && code <= 0x4dbf) ||\n // CJK Unified Ideographs .. Yi Radicals\n (code >= 0x4e00 && code <= 0xa4c6) ||\n // Hangul Jamo Extended-A\n (code >= 0xa960 && code <= 0xa97c) ||\n // Hangul Syllables\n (code >= 0xac00 && code <= 0xd7a3) ||\n // CJK Compatibility Ideographs\n (code >= 0xf900 && code <= 0xfaff) ||\n // Vertical Forms\n (code >= 0xfe10 && code <= 0xfe19) ||\n // CJK Compatibility Forms .. Small Form Variants\n (code >= 0xfe30 && code <= 0xfe6b) ||\n // Halfwidth and Fullwidth Forms\n (code >= 0xff01 && code <= 0xff60) ||\n (code >= 0xffe0 && code <= 0xffe6) ||\n // Kana Supplement\n (code >= 0x1b000 && code <= 0x1b001) ||\n // Enclosed Ideographic Supplement\n (code >= 0x1f200 && code <= 0x1f251) ||\n // Miscellaneous Symbols and Pictographs 0x1f300 - 0x1f5ff\n // Emoticons 0x1f600 - 0x1f64f\n (code >= 0x1f300 && code <= 0x1f64f) ||\n // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n (code >= 0x20000 && code <= 0x3fffd)\n );\n };\n\n const isZeroWidthCodePoint = (code) => {\n return code <= 0x1F || // C0 control codes\n (code >= 0x7F && code <= 0x9F) || // C1 control codes\n (code >= 0x300 && code <= 0x36F) || // Combining Diacritical Marks\n (code >= 0x200B && code <= 0x200F) || // Modifying Invisible Characters\n // Combining Diacritical Marks for Symbols\n (code >= 0x20D0 && code <= 0x20FF) ||\n (code >= 0xFE00 && code <= 0xFE0F) || // Variation Selectors\n (code >= 0xFE20 && code <= 0xFE2F) || // Combining Half Marks\n (code >= 0xE0100 && code <= 0xE01EF); // Variation Selectors\n };\n}\n\n/**\n * Remove all VT control characters. Use to estimate displayed string width.\n */\nfunction stripVTControlCharacters(str) {\n validateString(str\x2C 'str');\n\n return str.replace(ansi\x2C '');\n}\n\nmodule.exports = {\n inspect\x2C\n format\x2C\n formatWithOptions\x2C\n getStringWidth\x2C\n inspectDefaultOptions\x2C\n stripVTControlCharacters\n};\n code-source-info,0xe1ea49e51be,14,63655,63904,C0O63655C8O63685C18O63758C34O63764C39O63758C40O63847C43O63854C48O63902,, code-creation,LazyCompile,10,43193,0xe1ea49e972e,855,formatWithOptionsInternal node:internal/util/inspect:1891:35,0x44edd6d5f88,~ code-source-info,0xe1ea49e972e,14,63940,67783,C0O63981C1O63985C5O64000C7O64015C10O64032C13O64039C19O64085C26O64092C31O64107C33O64120C34O64135C36O64162C38O64183C40O64196C44O64203C47O64188C52O64221C57O64225C65O64261C70O64303C77O64329C80O64303C86O64350C88O64356C92O64369C96O64360C112O64389C180O64468C185O64472C189O64493C195O64544C204O64583C206O64554C214O64614C222O64665C236O64711C246O64771C255O64836C257O64817C263O64864C270O64881C272O64874C279O64930C284O64948C286O64980C294O65023C299O65052C304O65084C308O64940C314O65136C316O65186C321O65209C324O65213C329O65196C334O65235C336O65301C341O65305C345O65326C351O65377C365O65423C373O65474C378O65530C387O65569C393O65576C395O65569C401O65540C407O65617C409O65666C414O65684C417O65688C422O65676C428O65726C430O65776C435O65794C438O65798C443O65826C450O65870C455O65903C461O65932C465O65786C471O65966C473O66036C478O66040C482O66061C488O66116C502O66166C510O66221C515O66277C524O66355C530O66370C532O66355C538O66287C544O66415C546O66483C551O66487C555O66508C561O66561C566O66617C575O66695C581O66712C583O66695C589O66627C595O66755C597O66804C603O66826C606O66854C608O66903C610O66910C623O66910C635O66965C637O66977C641O66996C643O67093C645O67125C647O67143C650O67137C655O67162C657O67169C662O67208C673O67169C685O67236C687O67243C694O67262C696O67274C702O67294C704O67307C709O67327C711O67334C723O67334C735O67385C737O67397C741O64209C746O64170C752O67430C753O67442C758O67457C763O67468C766O67506C770O67498C775O67524C777O67531C780O67531C792O67606C796O67599C801O67634C803O67638C807O67647C809O67654C816O67664C828O67699C837O67732C841O67743C844O67759C849O67590C852O67770C854O67781,, code-creation,LazyCompile,10,43250,0xe1ea49e9e9e,269,value node:internal/console/constructor:258:20,0x23787e18bd28,~ code-source-info,0xe1ea49e9e9e,30,7494,8932,C0O7551C5O7592C7O7597C9O7596C13O7637C15O7654C17O7650C21O7687C23O7704C29O7719C34O7755C38O7780C44O7807C49O7851C55O7858C60O7875C68O7879C75O7930C80O7962C90O7982C98O7939C105O8016C107O8037C112O8061C122O8084C123O8101C128O8126C133O8126C138O8140C145O8457C153O8457C160O8480C165O8504C176O8504C182O8541C187O8541C206O8737C216O8741C222O8776C224O8776C238O8881C239O8888C250O8888C268O8931,, LoadIC,0xe1ea49e9ecf,43264,267,23,X,X,0x268a435c1349,length,, code-creation,LazyCompile,10,43282,0xe1ea49ea12e,31,listenerCount node:events:722:23,0x24d59d733280,~ code-source-info,0xe1ea49ea12e,13,20617,20885,C0O20648C5O20660C7O20711C9O20717C13O20730C17O20776C19O20785C20O20797C24O20853C28O20860C29O20874C30O20883,, code-creation,LazyCompile,10,43298,0xe1ea49ea23e,39,once node:events:528:44,0x24d59d732f10,~ code-source-info,0xe1ea49ea23e,13,15368,15481,C0O15389C3O15389C7O15422C24O15431C30O15422C36O15467C38O15479,, code-creation,LazyCompile,10,43316,0xe1ea49ea406,60,_onceWrap node:events:514:19,0x24d59d732ec0,~ code-source-info,0xe1ea49ea406,13,14941,15164,C0O14984C6O15008C12O15019C18O15027C24O15033C31O15063C34O15075C39O15075C45O15090C47O15107C51O15121C53O15134C57O15147C59O15162,, StoreIC,0xe1ea49ea40c,43332,515,41,X,X,0x000000000000,wrapFn,, StoreIC,0xe1ea49ea412,43337,515,52,X,X,0x000000000000,target,, StoreIC,0xe1ea49ea418,43340,515,60,X,X,0x000000000000,type,, StoreIC,0xe1ea49ea41e,43343,515,66,X,X,0x000000000000,listener,, StoreIC,0xe1ea49ea435,43346,517,20,X,X,0x000000000000,listener,, StoreIC,0xe1ea49ea43b,43350,518,16,X,X,0x000000000000,wrapFn,, code-creation,LazyCompile,10,43364,0xe1ea49ea62e,26,Writable.write node:internal/streams/writable:333:36,0x6a244a635d8,~ code-source-info,0xe1ea49ea62e,56,10749,10827,C0O10775C15O10782C22O10816C25O10825,, code-creation,LazyCompile,10,43409,0xe1ea49ea816,338,_write node:internal/streams/writable:283:16,0x6a244a63588,~ code-source-info,0xe1ea49ea816,56,9383,10712,C0O9438C5O9457C11O9499C14O9535C22O9567C26O9605C34O9631C36O9644C43O9661C46O9668C51O9668C58O9696C65O9702C70O9696C71O9742C77O9778C81O9795C85O9821C90O9827C95O9821C96O9877C102O9895C108O9944C114O9958C119O9979C124O9994C129O9994C137O10025C143O10065C145O10086C147O10075C152O10102C158O10134C163O10145C168O10145C175O10175C180O10190C185O10190C192O10224C198O10264C216O10270C221O10264C222O10374C224O10391C230O10405C235O10411C243O10464C249O10481C259O10487C265O10529C269O10544C272O10552C277O10552C283O10575C296O10575C301O10614C303O10625C304O10632C310O10647C314O10653C332O10660C337O10710,, StoreIC,0xe1ea49ea94c,43424,329,18,X,X,0x000000000000,pendingcb,, code-creation,LazyCompile,10,43457,0xe1ea49eabf6,217,writeOrBuffer node:internal/streams/writable:365:23,0x6a244a637e8,~ code-source-info,0xe1ea49eabf6,56,11668,12659,C0O11733C10O11756C15O11767C22O11783C25O11780C29O11848C34O11863C38O11855C42O11952C44O11966C45O11982C49O12003C55O12020C61O12036C67O12054C73O12079C78O12088C90O12095C96O12102C102O12112C106O12088C111O12139C119O12162C124O12184C125O12201C129O12230C137O12250C142O12267C143O12281C149O12311C151O12326C155O12337C157O12351C161O12367C162O12381C166O12393C167O12404C171O12423C176O12453C190O12423C195O12467C196O12478C200O12608C204O12629C211O12647C216O12657,, LoadIC,0xe1ea49eac00,43470,366,44,X,X,0x268a435c2aa1,length,, StoreIC,0xe1ea49eac0f,43473,368,16,X,X,0x000000000000,length,, StoreIC,0xe1ea49eac8d,43478,385,20,X,X,0x000000000000,writelen,, StoreIC,0xe1ea49eac93,43481,386,19,X,X,0x000000000000,writecb,, StoreIC,0xe1ea49eac98,43484,387,19,X,X,0x000000000000,writing,, code-creation,LazyCompile,10,43494,0xe1ea49eae2e,26,Socket._write node:net:806:35,0xe1ea49c82e0,~ code-source-info,0xe1ea49eae2e,122,20696,20769,C0O20726C19O20726C25O20768,, code-creation,LazyCompile,10,43525,0xe1ea49eb02e,186,Socket._writeGeneric node:net:769:42,0xe1ea49c81a0,~ code-source-info,0xe1ea49eb02e,122,19806,20559,C0O19806C21O20008C27O20026C29O20044C33O20056C35O20078C39O20099C52O20099C58O20202C59O20209C60O20216C61O20234C65O20244C67O20266C71O20285C77O20300C84O20307C87O20303C93O20300C97O20333C98O20346C99O20359C104O20359C108O20381C110O20388C114O20404C130O20410C138O20452C157O20458C163O20508C169O20519C173O20524C176O20551C180O20545C185O20558,, code-creation,LazyCompile,10,43549,0xe1ea49eb296,45,_unrefTimer node:net:417:52,0xe1ea49c74c8,~ code-source-info,0xe1ea49eb296,122,11293,11403,C0O11313C5O11321C9O11352C11O11358C13O11357C18O11375C20O11377C22O11376C26O11387C31O11387C35O11337C40O11300C44O11402,, code-creation,LazyCompile,10,43573,0xe1ea49eb3b6,55,writeGeneric node:internal/stream_base_commons:151:22,0x1ce311df8e00,~ script-source,84,node:internal/stream_base_commons,'use strict';\n\nconst {\n Array\x2C\n Symbol\x2C\n} = primordials;\n\nconst { Buffer } = require('buffer');\nconst { FastBuffer } = require('internal/buffer');\nconst {\n WriteWrap\x2C\n kReadBytesOrError\x2C\n kArrayBufferOffset\x2C\n kBytesWritten\x2C\n kLastWriteWasAsync\x2C\n streamBaseState\n} = internalBinding('stream_wrap');\nconst { UV_EOF } = internalBinding('uv');\nconst {\n errnoException\n} = require('internal/errors');\nconst { owner_symbol } = require('internal/async_hooks').symbols;\nconst {\n kTimeout\x2C\n setUnrefTimeout\x2C\n getTimerDuration\n} = require('internal/timers');\nconst { isUint8Array } = require('internal/util/types');\nconst { clearTimeout } = require('timers');\nconst { validateCallback } = require('internal/validators');\n\nconst kMaybeDestroy = Symbol('kMaybeDestroy');\nconst kUpdateTimer = Symbol('kUpdateTimer');\nconst kAfterAsyncWrite = Symbol('kAfterAsyncWrite');\nconst kHandle = Symbol('kHandle');\nconst kSession = Symbol('kSession');\n\nlet debug = require('internal/util/debuglog').debuglog('stream'\x2C (fn) => {\n debug = fn;\n});\nconst kBuffer = Symbol('kBuffer');\nconst kBufferGen = Symbol('kBufferGen');\nconst kBufferCb = Symbol('kBufferCb');\n\nfunction handleWriteReq(req\x2C data\x2C encoding) {\n const { handle } = req;\n\n switch (encoding) {\n case 'buffer':\n {\n const ret = handle.writeBuffer(req\x2C data);\n if (streamBaseState[kLastWriteWasAsync])\n req.buffer = data;\n return ret;\n }\n case 'latin1':\n case 'binary':\n return handle.writeLatin1String(req\x2C data);\n case 'utf8':\n case 'utf-8':\n return handle.writeUtf8String(req\x2C data);\n case 'ascii':\n return handle.writeAsciiString(req\x2C data);\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return handle.writeUcs2String(req\x2C data);\n default:\n {\n const buffer = Buffer.from(data\x2C encoding);\n const ret = handle.writeBuffer(req\x2C buffer);\n if (streamBaseState[kLastWriteWasAsync])\n req.buffer = buffer;\n return ret;\n }\n }\n}\n\nfunction onWriteComplete(status) {\n debug('onWriteComplete'\x2C status\x2C this.error);\n\n let stream = this.handle[owner_symbol];\n\n if (stream.constructor.name === 'ReusedHandle') {\n stream = stream.handle;\n }\n\n if (stream.destroyed) {\n if (typeof this.callback === 'function')\n this.callback(null);\n return;\n }\n\n // TODO (ronag): This should be moved before if(stream.destroyed)\n // in order to avoid swallowing error.\n if (status < 0) {\n const ex = errnoException(status\x2C 'write'\x2C this.error);\n if (typeof this.callback === 'function')\n this.callback(ex);\n else\n stream.destroy(ex);\n return;\n }\n\n stream[kUpdateTimer]();\n stream[kAfterAsyncWrite](this);\n\n if (typeof this.callback === 'function')\n this.callback(null);\n}\n\nfunction createWriteWrap(handle\x2C callback) {\n const req = new WriteWrap();\n\n req.handle = handle;\n req.oncomplete = onWriteComplete;\n req.async = false;\n req.bytes = 0;\n req.buffer = null;\n req.callback = callback;\n\n return req;\n}\n\nfunction writevGeneric(self\x2C data\x2C cb) {\n const req = createWriteWrap(self[kHandle]\x2C cb);\n const allBuffers = data.allBuffers;\n let chunks;\n if (allBuffers) {\n chunks = data;\n for (let i = 0; i < data.length; i++)\n data[i] = data[i].chunk;\n } else {\n chunks = new Array(data.length << 1);\n for (let i = 0; i < data.length; i++) {\n const entry = data[i];\n chunks[i * 2] = entry.chunk;\n chunks[i * 2 + 1] = entry.encoding;\n }\n }\n const err = req.handle.writev(req\x2C chunks\x2C allBuffers);\n\n // Retain chunks\n if (err === 0) req._chunks = chunks;\n\n afterWriteDispatched(req\x2C err\x2C cb);\n return req;\n}\n\nfunction writeGeneric(self\x2C data\x2C encoding\x2C cb) {\n const req = createWriteWrap(self[kHandle]\x2C cb);\n const err = handleWriteReq(req\x2C data\x2C encoding);\n\n afterWriteDispatched(req\x2C err\x2C cb);\n return req;\n}\n\nfunction afterWriteDispatched(req\x2C err\x2C cb) {\n req.bytes = streamBaseState[kBytesWritten];\n req.async = !!streamBaseState[kLastWriteWasAsync];\n\n if (err !== 0)\n return cb(errnoException(err\x2C 'write'\x2C req.error));\n\n if (!req.async && typeof req.callback === 'function') {\n req.callback();\n }\n}\n\nfunction onStreamRead(arrayBuffer) {\n const nread = streamBaseState[kReadBytesOrError];\n\n const handle = this;\n\n let stream = this[owner_symbol];\n\n if (stream.constructor.name === 'ReusedHandle') {\n stream = stream.handle;\n }\n\n stream[kUpdateTimer]();\n\n if (nread > 0 && !stream.destroyed) {\n let ret;\n let result;\n const userBuf = stream[kBuffer];\n if (userBuf) {\n result = (stream[kBufferCb](nread\x2C userBuf) !== false);\n const bufGen = stream[kBufferGen];\n if (bufGen !== null) {\n const nextBuf = bufGen();\n if (isUint8Array(nextBuf))\n stream[kBuffer] = ret = nextBuf;\n }\n } else {\n const offset = streamBaseState[kArrayBufferOffset];\n const buf = new FastBuffer(arrayBuffer\x2C offset\x2C nread);\n result = stream.push(buf);\n }\n if (!result) {\n handle.reading = false;\n if (!stream.destroyed) {\n const err = handle.readStop();\n if (err)\n stream.destroy(errnoException(err\x2C 'read'));\n }\n }\n\n return ret;\n }\n\n if (nread === 0) {\n return;\n }\n\n if (nread !== UV_EOF) {\n // CallJSOnreadMethod expects the return value to be a buffer.\n // Ref: https://github.com/nodejs/node/pull/34375\n stream.destroy(errnoException(nread\x2C 'read'));\n return;\n }\n\n // Defer this until we actually emit end\n if (stream._readableState.endEmitted) {\n if (stream[kMaybeDestroy])\n stream[kMaybeDestroy]();\n } else {\n if (stream[kMaybeDestroy])\n stream.on('end'\x2C stream[kMaybeDestroy]);\n\n // TODO(ronag): Without this `readStop`\x2C `onStreamRead`\n // will be called once more (i.e. after Readable.ended)\n // on Windows causing a ECONNRESET\x2C failing the\n // test-https-truncate test.\n if (handle.readStop) {\n const err = handle.readStop();\n if (err) {\n // CallJSOnreadMethod expects the return value to be a buffer.\n // Ref: https://github.com/nodejs/node/pull/34375\n stream.destroy(errnoException(err\x2C 'read'));\n return;\n }\n }\n\n // Push a null to signal the end of data.\n // Do it before `maybeDestroy` for correct order of events:\n // `end` -> `close`\n stream.push(null);\n stream.read(0);\n }\n}\n\nfunction setStreamTimeout(msecs\x2C callback) {\n if (this.destroyed)\n return this;\n\n this.timeout = msecs;\n\n // Type checking identical to timers.enroll()\n msecs = getTimerDuration(msecs\x2C 'msecs');\n\n // Attempt to clear an existing timer in both cases -\n // even if it will be rescheduled we don't want to leak an existing timer.\n clearTimeout(this[kTimeout]);\n\n if (msecs === 0) {\n if (callback !== undefined) {\n validateCallback(callback);\n this.removeListener('timeout'\x2C callback);\n }\n } else {\n this[kTimeout] = setUnrefTimeout(this._onTimeout.bind(this)\x2C msecs);\n if (this[kSession]) this[kSession][kUpdateTimer]();\n\n if (callback !== undefined) {\n validateCallback(callback);\n this.once('timeout'\x2C callback);\n }\n }\n return this;\n}\n\nmodule.exports = {\n writevGeneric\x2C\n writeGeneric\x2C\n onStreamRead\x2C\n kAfterAsyncWrite\x2C\n kMaybeDestroy\x2C\n kUpdateTimer\x2C\n kHandle\x2C\n kSession\x2C\n setStreamTimeout\x2C\n kBuffer\x2C\n kBufferCb\x2C\n kBufferGen\n};\n code-source-info,0xe1ea49eb3b6,84,3680,3864,C0O3723C5O3744C7O3743C11O3723C17O3773C29O3773C35O3813C47O3813C52O3851C54O3862,, code-creation,LazyCompile,10,43716,0xe1ea49ebe66,47,createWriteWrap node:internal/stream_base_commons:113:25,0x1ce311df8d40,~ code-source-info,0xe1ea49ebe66,84,2802,3016,C0O2837C5O2837C11O2857C13O2868C17O2880C19O2895C23O2916C24O2926C28O2937C29O2947C33O2954C34O2965C38O2975C40O2988C44O3003C46O3014,, StoreIC,0xe1ea49ebe73,43728,116,14,X,X,0x000000000000,handle,, StoreIC,0xe1ea49ebe79,43733,117,18,X,X,0x000000000000,oncomplete,, StoreIC,0xe1ea49ebe7e,43736,118,13,X,X,0x000000000000,async,, StoreIC,0xe1ea49ebe83,43739,119,13,X,X,0x000000000000,bytes,, StoreIC,0xe1ea49ebe88,43742,120,14,X,X,0x000000000000,buffer,, StoreIC,0xe1ea49ebe8e,43746,121,16,X,X,0x000000000000,callback,, code-creation,LazyCompile,10,43776,0xe1ea49ec06e,215,handleWriteReq node:internal/stream_base_commons:45:24,0x1ce311df8ca0,~ code-source-info,0xe1ea49ec06e,84,1174,2006,C0O1208C5O1227C80O1297C85O1297C92O1327C99O1347C101O1346C106O1376C108O1387C112O1401C114O1412C115O1477C120O1477C126O1506C127O1562C132O1562C138O1589C139O1628C144O1628C150O1656C151O1753C156O1753C162O1780C163O1821C168O1828C173O1828C180O1875C185O1875C192O1907C199O1927C201O1926C206O1956C208O1967C212O1983C214O1994,, code-creation,LazyCompile,10,43812,0xe1ea49ec2b6,92,afterWriteDispatched node:internal/stream_base_commons:159:30,0x1ce311df8e70,~ code-source-info,0xe1ea49ec2b6,84,3895,4169,C0O3914C2O3926C7O3942C9O3941C12O3924C16O3960C18O3974C23O3990C25O3989C30O3970C34O4014C35O4022C40O4033C42O4043C48O4076C56O4043C62O4040C66O4084C67O4097C73O4117C81O4152C86O4152C91O4168,, StoreIC,0xe1ea49ec2c2,43823,160,13,X,X,0x000000000000,bytes,, code-creation,LazyCompile,10,43864,0xe1ea49ec50e,323,onwrite node:internal/streams/writable:425:17,0x6a244a638d8,~ code-source-info,0xe1ea49ec50e,56,13444,15067,C0O13482C5O13519C10O13544C15O13556C19O13592C26O13619C29O13615C35O13592C40O13649C41O13656C42O13664C43O13678C47O13689C48O13703C52O13713C57O13735C64O13726C68O13747C69O13762C73O13770C77O13874C81O13942C87O13959C89O13973C93O14091C99O14117C104O14132C110O14156C117O14179C121O14196C125O14214C128O14222C148O14222C155O14288C170O14288C177O14356C182O14365C187O14380C191O14372C196O14403C199O14403C204O14442C208O14723C214O14770C219O14789C226O14792C231O14816C242O14840C248O14867C255O14906C261O14910C267O14918C273O14892C277O14935C280O14943C288O14974C293O14943C301O15022C316O15022C322O15066,, StoreIC,0xe1ea49ec60d,43884,473,48,X,X,0x000000000000,cb,, StoreIC,0xe1ea49ec613,43889,473,52,X,X,0x000000000000,stream,, StoreIC,0xe1ea49ec619,43892,473,60,X,X,0x000000000000,state,, StoreIC,0xe1ea49ec61f,43895,473,34,X,X,0x000000000000,afterWriteTickInfo,, code-creation,LazyCompile,10,43940,0xe1ea49ec95e,368,nextTick node:internal/process/task_queues:104:18,0x24d59d73bb70,~ script-source,25,node:internal/process/task_queues,'use strict';\n\nconst {\n Array\x2C\n FunctionPrototypeBind\x2C\n} = primordials;\n\nconst {\n // For easy access to the nextTick state in the C++ land\x2C\n // and to avoid unnecessary calls into JS land.\n tickInfo\x2C\n // Used to run V8's micro task queue.\n runMicrotasks\x2C\n setTickCallback\x2C\n enqueueMicrotask\n} = internalBinding('task_queue');\n\nconst {\n setHasRejectionToWarn\x2C\n hasRejectionToWarn\x2C\n listenForRejections\x2C\n processPromiseRejections\n} = require('internal/process/promises');\n\nconst {\n getDefaultTriggerAsyncId\x2C\n newAsyncId\x2C\n initHooksExist\x2C\n destroyHooksExist\x2C\n emitInit\x2C\n emitBefore\x2C\n emitAfter\x2C\n emitDestroy\x2C\n symbols: { async_id_symbol\x2C trigger_async_id_symbol }\n} = require('internal/async_hooks');\nconst FixedQueue = require('internal/fixed_queue');\n\nconst {\n validateCallback\x2C\n validateFunction\x2C\n} = require('internal/validators');\n\nconst { AsyncResource } = require('async_hooks');\n\n// *Must* match Environment::TickInfo::Fields in src/env.h.\nconst kHasTickScheduled = 0;\n\nfunction hasTickScheduled() {\n return tickInfo[kHasTickScheduled] === 1;\n}\n\nfunction setHasTickScheduled(value) {\n tickInfo[kHasTickScheduled] = value ? 1 : 0;\n}\n\nconst queue = new FixedQueue();\n\n// Should be in sync with RunNextTicksNative in node_task_queue.cc\nfunction runNextTicks() {\n if (!hasTickScheduled() && !hasRejectionToWarn())\n runMicrotasks();\n if (!hasTickScheduled() && !hasRejectionToWarn())\n return;\n\n processTicksAndRejections();\n}\n\nfunction processTicksAndRejections() {\n let tock;\n do {\n while (tock = queue.shift()) {\n const asyncId = tock[async_id_symbol];\n emitBefore(asyncId\x2C tock[trigger_async_id_symbol]\x2C tock);\n\n try {\n const callback = tock.callback;\n if (tock.args === undefined) {\n callback();\n } else {\n const args = tock.args;\n switch (args.length) {\n case 1: callback(args[0]); break;\n case 2: callback(args[0]\x2C args[1]); break;\n case 3: callback(args[0]\x2C args[1]\x2C args[2]); break;\n case 4: callback(args[0]\x2C args[1]\x2C args[2]\x2C args[3]); break;\n default: callback(...args);\n }\n }\n } finally {\n if (destroyHooksExist())\n emitDestroy(asyncId);\n }\n\n emitAfter(asyncId);\n }\n runMicrotasks();\n } while (!queue.isEmpty() || processPromiseRejections());\n setHasTickScheduled(false);\n setHasRejectionToWarn(false);\n}\n\n// `nextTick()` will not enqueue any callback when the process is about to\n// exit since the callback would not have a chance to be executed.\nfunction nextTick(callback) {\n validateCallback(callback);\n\n if (process._exiting)\n return;\n\n let args;\n switch (arguments.length) {\n case 1: break;\n case 2: args = [arguments[1]]; break;\n case 3: args = [arguments[1]\x2C arguments[2]]; break;\n case 4: args = [arguments[1]\x2C arguments[2]\x2C arguments[3]]; break;\n default:\n args = new Array(arguments.length - 1);\n for (let i = 1; i < arguments.length; i++)\n args[i - 1] = arguments[i];\n }\n\n if (queue.isEmpty())\n setHasTickScheduled(true);\n const asyncId = newAsyncId();\n const triggerAsyncId = getDefaultTriggerAsyncId();\n const tickObject = {\n [async_id_symbol]: asyncId\x2C\n [trigger_async_id_symbol]: triggerAsyncId\x2C\n callback\x2C\n args\n };\n if (initHooksExist())\n emitInit(asyncId\x2C 'TickObject'\x2C triggerAsyncId\x2C tickObject);\n queue.push(tickObject);\n}\n\nfunction runMicrotask() {\n this.runInAsyncScope(() => {\n const callback = this.callback;\n try {\n callback();\n } finally {\n this.emitDestroy();\n }\n });\n}\n\nconst defaultMicrotaskResourceOpts = { requireManualDestroy: true };\n\nfunction queueMicrotask(callback) {\n validateFunction(callback\x2C 'callback');\n\n const asyncResource = new AsyncResource(\n 'Microtask'\x2C\n defaultMicrotaskResourceOpts\n );\n asyncResource.callback = callback;\n\n enqueueMicrotask(FunctionPrototypeBind(runMicrotask\x2C asyncResource));\n}\n\nmodule.exports = {\n setupTaskQueue() {\n // Sets the per-isolate promise rejection callback\n listenForRejections();\n // Sets the callback to be run in every tick.\n setTickCallback(processTicksAndRejections);\n return {\n nextTick\x2C\n runNextTicks\n };\n }\x2C\n queueMicrotask\n};\n code-source-info,0xe1ea49ec95e,25,2591,3435,C0O2591C2O2606C7O2606C11O2637C14O2649C20O2663C21O2670C22O2678C24O2704C59O2726C61O2745C70O2762C82O2768C84O2787C93O2804C105O2818C117O2824C119O2843C128O2860C140O2874C152O2888C164O2894C166O2920C171O2947C175O2954C181O2927C187O2979C190O2996C194O2984C199O3017C201O3024C207O3040C210O3029C214O3005C219O2966C222O3052C227O3062C232O3062C238O3077C243O3077C247O3122C252O3122C256O3161C261O3161C265O3210C272O3217C278O3235C285O3249C291O3275C301O3295C311O3309C319O3321C324O3325C329O3347C346O3347C351O3410C356O3416C361O3416C367O3434,, code-creation,LazyCompile,10,44040,0xe1ea49ed1de,15,isEmpty node:internal/fixed_queue:95:10,0x23787e185b80,~ script-source,28,node:internal/fixed_queue,'use strict';\n\nconst {\n Array\x2C\n} = primordials;\n\n// Currently optimal queue size\x2C tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or\x2C if there is only one circular buffer\x2C it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one\x2C removing means\n// moving `bottom` forward by one. After reaching the end\x2C the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue\x2C sets the old queue's `.next` to it\x2C\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue\x2C it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n code-source-info,0xe1ea49ed1de,28,3637,3677,C0O3658C5O3663C10O3663C14O3673,, code-creation,LazyCompile,10,44120,0xe1ea49ed696,13,isEmpty node:internal/fixed_queue:67:10,0x23787e1858c8,~ code-source-info,0xe1ea49ed696,28,3084,3129,C0O3105C5O3118C9O3109C12O3125,, code-creation,LazyCompile,10,44132,0xe1ea49ed786,25,setHasTickScheduled node:internal/process/task_queues:52:29,0x24d59d73ba80,~ code-source-info,0xe1ea49ed786,25,1104,1162,C0O1116C7O1125C12O1146C19O1144C24O1161,, code-creation,LazyCompile,10,44161,0xe1ea49ed87e,23,newAsyncId node:internal/async_hooks:415:20,0x24d59d739ad8,~ script-source,24,node:internal/async_hooks,'use strict';\n\nconst {\n ArrayPrototypeSlice\x2C\n ErrorCaptureStackTrace\x2C\n ObjectPrototypeHasOwnProperty\x2C\n ObjectDefineProperty\x2C\n Symbol\x2C\n} = primordials;\n\nconst async_wrap = internalBinding('async_wrap');\nconst { setCallbackTrampoline } = async_wrap;\n/* async_hook_fields is a Uint32Array wrapping the uint32_t array of\n * Environment::AsyncHooks::fields_[]. Each index tracks the number of active\n * hooks for each type.\n *\n * async_id_fields is a Float64Array wrapping the double array of\n * Environment::AsyncHooks::async_id_fields_[]. Each index contains the ids for\n * the various asynchronous states of the application. These are:\n * kExecutionAsyncId: The async_id assigned to the resource responsible for the\n * current execution stack.\n * kTriggerAsyncId: The async_id of the resource that caused (or 'triggered')\n * the resource corresponding to the current execution stack.\n * kAsyncIdCounter: Incremental counter tracking the next assigned async_id.\n * kDefaultTriggerAsyncId: Written immediately before a resource's constructor\n * that sets the value of the init()'s triggerAsyncId. The precedence order\n * of retrieving the triggerAsyncId value is:\n * 1. the value passed directly to the constructor\n * 2. value set in kDefaultTriggerAsyncId\n * 3. executionAsyncId of the current resource.\n *\n * async_ids_stack is a Float64Array that contains part of the async ID\n * stack. Each pushAsyncContext() call adds two doubles to it\x2C and each\n * popAsyncContext() call removes two doubles from it.\n * It has a fixed size\x2C so if that is exceeded\x2C calls to the native\n * side are used instead in pushAsyncContext() and popAsyncContext().\n */\nconst {\n async_hook_fields\x2C\n async_id_fields\x2C\n execution_async_resources\n} = async_wrap;\n// Store the pair executionAsyncId and triggerAsyncId in a AliasedFloat64Array\n// in Environment::AsyncHooks::async_ids_stack_ which tracks the resource\n// responsible for the current execution stack. This is unwound as each resource\n// exits. In the case of a fatal exception this stack is emptied after calling\n// each hook's after() callback.\nconst {\n pushAsyncContext: pushAsyncContext_\x2C\n popAsyncContext: popAsyncContext_\x2C\n executionAsyncResource: executionAsyncResource_\x2C\n clearAsyncIdStack\x2C\n} = async_wrap;\n// For performance reasons\x2C only track Promises when a hook is enabled.\nconst { setPromiseHooks } = async_wrap;\n// Properties in active_hooks are used to keep track of the set of hooks being\n// executed in case another hook is enabled/disabled. The new set of hooks is\n// then restored once the active set of hooks is finished executing.\nconst active_hooks = {\n // Array of all AsyncHooks that will be iterated whenever an async event\n // fires. Using var instead of (preferably const) in order to assign\n // active_hooks.tmp_array if a hook is enabled/disabled during hook\n // execution.\n array: []\x2C\n // Use a counter to track nested calls of async hook callbacks and make sure\n // the active_hooks.array isn't altered mid execution.\n call_depth: 0\x2C\n // Use to temporarily store and updated active_hooks.array if the user\n // enables or disables a hook while hooks are being processed. If a hook is\n // enabled() or disabled() during hook execution then the current set of\n // active hooks is duplicated and set equal to active_hooks.tmp_array. Any\n // subsequent changes are on the duplicated array. When all hooks have\n // completed executing active_hooks.tmp_array is assigned to\n // active_hooks.array.\n tmp_array: null\x2C\n // Keep track of the field counts held in active_hooks.tmp_array. Because the\n // async_hook_fields can't be reassigned\x2C store each uint32 in an array that\n // is written back to async_hook_fields when active_hooks.array is restored.\n tmp_fields: null\n};\n\nconst { registerDestroyHook } = async_wrap;\nconst { enqueueMicrotask } = internalBinding('task_queue');\nconst { owner_symbol } = internalBinding('symbols');\n\n// Each constant tracks how many callbacks there are for any given step of\n// async execution. These are tracked so if the user didn't include callbacks\n// for a given step\x2C that step can bail out early.\nconst {\n kInit\x2C kBefore\x2C kAfter\x2C kDestroy\x2C kTotals\x2C kPromiseResolve\x2C\n kCheck\x2C kExecutionAsyncId\x2C kAsyncIdCounter\x2C kTriggerAsyncId\x2C\n kDefaultTriggerAsyncId\x2C kStackLength\x2C kUsesExecutionAsyncResource\x2C\n} = async_wrap.constants;\n\nconst { async_id_symbol\x2C\n trigger_async_id_symbol } = internalBinding('symbols');\n\n// Lazy load of internal/util/inspect;\nlet inspect;\n\n// Used in AsyncHook and AsyncResource.\nconst init_symbol = Symbol('init');\nconst before_symbol = Symbol('before');\nconst after_symbol = Symbol('after');\nconst destroy_symbol = Symbol('destroy');\nconst promise_resolve_symbol = Symbol('promiseResolve');\nconst emitBeforeNative = emitHookFactory(before_symbol\x2C 'emitBeforeNative');\nconst emitAfterNative = emitHookFactory(after_symbol\x2C 'emitAfterNative');\nconst emitDestroyNative = emitHookFactory(destroy_symbol\x2C 'emitDestroyNative');\nconst emitPromiseResolveNative =\n emitHookFactory(promise_resolve_symbol\x2C 'emitPromiseResolveNative');\n\nlet domain_cb;\nfunction useDomainTrampoline(fn) {\n domain_cb = fn;\n}\n\nfunction callbackTrampoline(asyncId\x2C resource\x2C cb\x2C ...args) {\n const index = async_hook_fields[kStackLength] - 1;\n execution_async_resources[index] = resource;\n\n if (asyncId !== 0 && hasHooks(kBefore))\n emitBeforeNative(asyncId);\n\n let result;\n if (asyncId === 0 && typeof domain_cb === 'function') {\n args.unshift(cb);\n result = domain_cb.apply(this\x2C args);\n } else {\n result = cb.apply(this\x2C args);\n }\n\n if (asyncId !== 0 && hasHooks(kAfter))\n emitAfterNative(asyncId);\n\n execution_async_resources.pop();\n return result;\n}\n\nsetCallbackTrampoline(callbackTrampoline);\n\nconst topLevelResource = {};\n\nfunction executionAsyncResource() {\n // Indicate to the native layer that this function is likely to be used\x2C\n // in which case it will inform JS about the current async resource via\n // the trampoline above.\n async_hook_fields[kUsesExecutionAsyncResource] = 1;\n\n const index = async_hook_fields[kStackLength] - 1;\n if (index === -1) return topLevelResource;\n const resource = execution_async_resources[index] ||\n executionAsyncResource_(index);\n return lookupPublicResource(resource);\n}\n\nfunction inspectExceptionValue(e) {\n inspect ??= require('internal/util/inspect').inspect;\n return { message: inspect(e) };\n}\n\n// Used to fatally abort the process if a callback throws.\nfunction fatalError(e) {\n if (typeof e?.stack === 'string') {\n process._rawDebug(e.stack);\n } else {\n const o = inspectExceptionValue(e);\n ErrorCaptureStackTrace(o\x2C fatalError);\n process._rawDebug(o.stack);\n }\n\n const { getOptionValue } = require('internal/options');\n if (getOptionValue('--abort-on-uncaught-exception')) {\n process.abort();\n }\n process.exit(1);\n}\n\nfunction lookupPublicResource(resource) {\n if (typeof resource !== 'object' || resource === null) return resource;\n\n const publicResource = resource[owner_symbol];\n\n if (publicResource != null) {\n return publicResource;\n }\n\n return resource;\n}\n\n// Emit From Native //\n\n// Used by C++ to call all init() callbacks. Because some state can be setup\n// from C++ there's no need to perform all the same operations as in\n// emitInitScript.\nfunction emitInitNative(asyncId\x2C type\x2C triggerAsyncId\x2C resource) {\n active_hooks.call_depth += 1;\n resource = lookupPublicResource(resource);\n // Use a single try/catch for all hooks to avoid setting up one per iteration.\n try {\n // Using var here instead of let because "for (var ...)" is faster than let.\n // Refs: https://github.com/nodejs/node/pull/30380#issuecomment-552948364\n for (var i = 0; i < active_hooks.array.length; i++) {\n if (typeof active_hooks.array[i][init_symbol] === 'function') {\n active_hooks.array[i][init_symbol](\n asyncId\x2C type\x2C triggerAsyncId\x2C\n resource\n );\n }\n }\n } catch (e) {\n fatalError(e);\n } finally {\n active_hooks.call_depth -= 1;\n }\n\n // Hooks can only be restored if there have been no recursive hook calls.\n // Also the active hooks do not need to be restored if enable()/disable()\n // weren't called during hook execution\x2C in which case active_hooks.tmp_array\n // will be null.\n if (active_hooks.call_depth === 0 && active_hooks.tmp_array !== null) {\n restoreActiveHooks();\n }\n}\n\n// Called from native. The asyncId stack handling is taken care of there\n// before this is called.\nfunction emitHook(symbol\x2C asyncId) {\n active_hooks.call_depth += 1;\n // Use a single try/catch for all hook to avoid setting up one per\n // iteration.\n try {\n // Using var here instead of let because "for (var ...)" is faster than let.\n // Refs: https://github.com/nodejs/node/pull/30380#issuecomment-552948364\n for (var i = 0; i < active_hooks.array.length; i++) {\n if (typeof active_hooks.array[i][symbol] === 'function') {\n active_hooks.array[i][symbol](asyncId);\n }\n }\n } catch (e) {\n fatalError(e);\n } finally {\n active_hooks.call_depth -= 1;\n }\n\n // Hooks can only be restored if there have been no recursive hook calls.\n // Also the active hooks do not need to be restored if enable()/disable()\n // weren't called during hook execution\x2C in which case\n // active_hooks.tmp_array will be null.\n if (active_hooks.call_depth === 0 && active_hooks.tmp_array !== null) {\n restoreActiveHooks();\n }\n}\n\nfunction emitHookFactory(symbol\x2C name) {\n const fn = emitHook.bind(undefined\x2C symbol);\n\n // Set the name property of the function as it looks good in the stack trace.\n ObjectDefineProperty(fn\x2C 'name'\x2C {\n value: name\n });\n return fn;\n}\n\n// Manage Active Hooks //\n\nfunction getHookArrays() {\n if (active_hooks.call_depth === 0)\n return [active_hooks.array\x2C async_hook_fields];\n // If this hook is being enabled while in the middle of processing the array\n // of currently active hooks then duplicate the current set of active hooks\n // and store this there. This shouldn't fire until the next time hooks are\n // processed.\n if (active_hooks.tmp_array === null)\n storeActiveHooks();\n return [active_hooks.tmp_array\x2C active_hooks.tmp_fields];\n}\n\n\nfunction storeActiveHooks() {\n active_hooks.tmp_array = ArrayPrototypeSlice(active_hooks.array);\n // Don't want to make the assumption that kInit to kDestroy are indexes 0 to\n // 4. So do this the long way.\n active_hooks.tmp_fields = [];\n copyHooks(active_hooks.tmp_fields\x2C async_hook_fields);\n}\n\nfunction copyHooks(destination\x2C source) {\n destination[kInit] = source[kInit];\n destination[kBefore] = source[kBefore];\n destination[kAfter] = source[kAfter];\n destination[kDestroy] = source[kDestroy];\n destination[kPromiseResolve] = source[kPromiseResolve];\n}\n\n\n// Then restore the correct hooks array in case any hooks were added/removed\n// during hook callback execution.\nfunction restoreActiveHooks() {\n active_hooks.array = active_hooks.tmp_array;\n copyHooks(async_hook_fields\x2C active_hooks.tmp_fields);\n\n active_hooks.tmp_array = null;\n active_hooks.tmp_fields = null;\n}\n\nfunction trackPromise(promise\x2C parent) {\n if (promise[async_id_symbol]) {\n return;\n }\n\n // Get trigger id from parent async id before making the async id of the\n // child so if a new one must be made it will be lower than the child.\n const triggerAsyncId = parent ? getOrSetAsyncId(parent) :\n getDefaultTriggerAsyncId();\n\n promise[async_id_symbol] = newAsyncId();\n promise[trigger_async_id_symbol] = triggerAsyncId;\n}\n\nfunction promiseInitHook(promise\x2C parent) {\n trackPromise(promise\x2C parent);\n const asyncId = promise[async_id_symbol];\n const triggerAsyncId = promise[trigger_async_id_symbol];\n emitInitScript(asyncId\x2C 'PROMISE'\x2C triggerAsyncId\x2C promise);\n}\n\nfunction promiseInitHookWithDestroyTracking(promise\x2C parent) {\n promiseInitHook(promise\x2C parent);\n destroyTracking(promise\x2C parent);\n}\n\nconst destroyedSymbol = Symbol('destroyed');\n\nfunction destroyTracking(promise\x2C parent) {\n trackPromise(promise\x2C parent);\n const asyncId = promise[async_id_symbol];\n const destroyed = { destroyed: false };\n promise[destroyedSymbol] = destroyed;\n registerDestroyHook(promise\x2C asyncId\x2C destroyed);\n}\n\nfunction promiseBeforeHook(promise) {\n trackPromise(promise);\n const asyncId = promise[async_id_symbol];\n const triggerId = promise[trigger_async_id_symbol];\n emitBeforeScript(asyncId\x2C triggerId\x2C promise);\n}\n\nfunction promiseAfterHook(promise) {\n trackPromise(promise);\n const asyncId = promise[async_id_symbol];\n if (hasHooks(kAfter)) {\n emitAfterNative(asyncId);\n }\n if (asyncId === executionAsyncId()) {\n // This condition might not be true if async_hooks was enabled during\n // the promise callback execution.\n // Popping it off the stack can be skipped in that case\x2C because it is\n // known that it would correspond to exactly one call with\n // PromiseHookType::kBefore that was not witnessed by the PromiseHook.\n popAsyncContext(asyncId);\n }\n}\n\nfunction promiseResolveHook(promise) {\n trackPromise(promise);\n const asyncId = promise[async_id_symbol];\n emitPromiseResolveNative(asyncId);\n}\n\nlet wantPromiseHook = false;\nfunction enableHooks() {\n async_hook_fields[kCheck] += 1;\n}\n\nfunction updatePromiseHookMode() {\n wantPromiseHook = true;\n let initHook;\n if (initHooksExist()) {\n initHook = destroyHooksExist() ? promiseInitHookWithDestroyTracking :\n promiseInitHook;\n } else if (destroyHooksExist()) {\n initHook = destroyTracking;\n }\n setPromiseHooks(\n initHook\x2C\n promiseBeforeHook\x2C\n promiseAfterHook\x2C\n promiseResolveHooksExist() ? promiseResolveHook : undefined\x2C\n );\n}\n\nfunction disableHooks() {\n async_hook_fields[kCheck] -= 1;\n\n wantPromiseHook = false;\n\n // Delay the call to `disablePromiseHook()` because we might currently be\n // between the `before` and `after` calls of a Promise.\n enqueueMicrotask(disablePromiseHookIfNecessary);\n}\n\nfunction disablePromiseHookIfNecessary() {\n if (!wantPromiseHook) {\n setPromiseHooks(undefined\x2C undefined\x2C undefined\x2C undefined);\n }\n}\n\n// Internal Embedder API //\n\n// Increment the internal id counter and return the value. Important that the\n// counter increment first. Since it's done the same way in\n// Environment::new_async_uid()\nfunction newAsyncId() {\n return ++async_id_fields[kAsyncIdCounter];\n}\n\nfunction getOrSetAsyncId(object) {\n if (ObjectPrototypeHasOwnProperty(object\x2C async_id_symbol)) {\n return object[async_id_symbol];\n }\n\n return object[async_id_symbol] = newAsyncId();\n}\n\n\n// Return the triggerAsyncId meant for the constructor calling it. It's up to\n// the user to safeguard this call and make sure it's zero'd out when the\n// constructor is complete.\nfunction getDefaultTriggerAsyncId() {\n const defaultTriggerAsyncId = async_id_fields[kDefaultTriggerAsyncId];\n // If defaultTriggerAsyncId isn't set\x2C use the executionAsyncId\n if (defaultTriggerAsyncId < 0)\n return async_id_fields[kExecutionAsyncId];\n return defaultTriggerAsyncId;\n}\n\n\nfunction clearDefaultTriggerAsyncId() {\n async_id_fields[kDefaultTriggerAsyncId] = -1;\n}\n\n\nfunction defaultTriggerAsyncIdScope(triggerAsyncId\x2C block\x2C ...args) {\n if (triggerAsyncId === undefined)\n return block.apply(null\x2C args);\n // CHECK(NumberIsSafeInteger(triggerAsyncId))\n // CHECK(triggerAsyncId > 0)\n const oldDefaultTriggerAsyncId = async_id_fields[kDefaultTriggerAsyncId];\n async_id_fields[kDefaultTriggerAsyncId] = triggerAsyncId;\n\n try {\n return block.apply(null\x2C args);\n } finally {\n async_id_fields[kDefaultTriggerAsyncId] = oldDefaultTriggerAsyncId;\n }\n}\n\nfunction hasHooks(key) {\n return async_hook_fields[key] > 0;\n}\n\nfunction enabledHooksExist() {\n return hasHooks(kCheck);\n}\n\nfunction initHooksExist() {\n return hasHooks(kInit);\n}\n\nfunction afterHooksExist() {\n return hasHooks(kAfter);\n}\n\nfunction destroyHooksExist() {\n return hasHooks(kDestroy);\n}\n\nfunction promiseResolveHooksExist() {\n return hasHooks(kPromiseResolve);\n}\n\n\nfunction emitInitScript(asyncId\x2C type\x2C triggerAsyncId\x2C resource) {\n // Short circuit all checks for the common case. Which is that no hooks have\n // been set. Do this to remove performance impact for embedders (and core).\n if (!hasHooks(kInit))\n return;\n\n if (triggerAsyncId === null) {\n triggerAsyncId = getDefaultTriggerAsyncId();\n }\n\n emitInitNative(asyncId\x2C type\x2C triggerAsyncId\x2C resource);\n}\n\n\nfunction emitBeforeScript(asyncId\x2C triggerAsyncId\x2C resource) {\n pushAsyncContext(asyncId\x2C triggerAsyncId\x2C resource);\n\n if (hasHooks(kBefore))\n emitBeforeNative(asyncId);\n}\n\n\nfunction emitAfterScript(asyncId) {\n if (hasHooks(kAfter))\n emitAfterNative(asyncId);\n\n popAsyncContext(asyncId);\n}\n\n\nfunction emitDestroyScript(asyncId) {\n // Return early if there are no destroy callbacks\x2C or invalid asyncId.\n if (!hasHooks(kDestroy) || asyncId <= 0)\n return;\n async_wrap.queueDestroyAsyncId(asyncId);\n}\n\n\nfunction hasAsyncIdStack() {\n return hasHooks(kStackLength);\n}\n\n\n// This is the equivalent of the native push_async_ids() call.\nfunction pushAsyncContext(asyncId\x2C triggerAsyncId\x2C resource) {\n const offset = async_hook_fields[kStackLength];\n execution_async_resources[offset] = resource;\n if (offset * 2 >= async_wrap.async_ids_stack.length)\n return pushAsyncContext_(asyncId\x2C triggerAsyncId);\n async_wrap.async_ids_stack[offset * 2] = async_id_fields[kExecutionAsyncId];\n async_wrap.async_ids_stack[offset * 2 + 1] = async_id_fields[kTriggerAsyncId];\n async_hook_fields[kStackLength]++;\n async_id_fields[kExecutionAsyncId] = asyncId;\n async_id_fields[kTriggerAsyncId] = triggerAsyncId;\n}\n\n\n// This is the equivalent of the native pop_async_ids() call.\nfunction popAsyncContext(asyncId) {\n const stackLength = async_hook_fields[kStackLength];\n if (stackLength === 0) return false;\n\n if (enabledHooksExist() && async_id_fields[kExecutionAsyncId] !== asyncId) {\n // Do the same thing as the native code (i.e. crash hard).\n return popAsyncContext_(asyncId);\n }\n\n const offset = stackLength - 1;\n async_id_fields[kExecutionAsyncId] = async_wrap.async_ids_stack[2 * offset];\n async_id_fields[kTriggerAsyncId] = async_wrap.async_ids_stack[2 * offset + 1];\n execution_async_resources.pop();\n async_hook_fields[kStackLength] = offset;\n return offset > 0;\n}\n\n\nfunction executionAsyncId() {\n return async_id_fields[kExecutionAsyncId];\n}\n\nfunction triggerAsyncId() {\n return async_id_fields[kTriggerAsyncId];\n}\n\n\nmodule.exports = {\n executionAsyncId\x2C\n triggerAsyncId\x2C\n // Private API\n getHookArrays\x2C\n symbols: {\n async_id_symbol\x2C trigger_async_id_symbol\x2C\n init_symbol\x2C before_symbol\x2C after_symbol\x2C destroy_symbol\x2C\n promise_resolve_symbol\x2C owner_symbol\n }\x2C\n constants: {\n kInit\x2C kBefore\x2C kAfter\x2C kDestroy\x2C kTotals\x2C kPromiseResolve\n }\x2C\n enableHooks\x2C\n disableHooks\x2C\n updatePromiseHookMode\x2C\n clearDefaultTriggerAsyncId\x2C\n clearAsyncIdStack\x2C\n hasAsyncIdStack\x2C\n executionAsyncResource\x2C\n // Internal Embedder API\n newAsyncId\x2C\n getOrSetAsyncId\x2C\n getDefaultTriggerAsyncId\x2C\n defaultTriggerAsyncIdScope\x2C\n enabledHooksExist\x2C\n initHooksExist\x2C\n afterHooksExist\x2C\n destroyHooksExist\x2C\n emitInit: emitInitScript\x2C\n emitBefore: emitBeforeScript\x2C\n emitAfter: emitAfterScript\x2C\n emitDestroy: emitDestroyScript\x2C\n pushAsyncContext\x2C\n popAsyncContext\x2C\n registerDestroyHook\x2C\n useDomainTrampoline\x2C\n nativeHooks: {\n init: emitInitNative\x2C\n before: emitBeforeNative\x2C\n after: emitAfterNative\x2C\n destroy: emitDestroyNative\x2C\n promise_resolve: emitPromiseResolveNative\n }\n};\n code-source-info,0xe1ea49ed87e,24,14326,14377,C0O14333C7O14358C16O14373C22O14375,, code-creation,LazyCompile,10,44501,0xe1ea49eecee,35,getDefaultTriggerAsyncId node:internal/async_hooks:431:34,0x24d59d739b78,~ code-source-info,0xe1ea49eecee,24,14785,15042,C0O14822C7O14838C9O14837C13O14931C14O14957C19O14966C26O14989C28O14988C31O15008C32O15011C34O15040,, code-creation,LazyCompile,10,44518,0xe1ea49eedfe,13,initHooksExist node:internal/async_hooks:468:24,0x24d59d739d68,~ code-source-info,0xe1ea49eedfe,24,15781,15813,C0O15788C5O15804C8O15795C12O15811,, code-creation,LazyCompile,10,44529,0xe1ea49eeee6,16,hasHooks node:internal/async_hooks:460:18,0x24d59d739cc8,~ code-source-info,0xe1ea49eeee6,24,15649,15695,C0O15659C7O15683C12O15689C15O15693,, code-creation,LazyCompile,10,44545,0xe1ea49eeff6,59,push node:internal/fixed_queue:99:7,0x23787e185bd0,~ code-source-info,0xe1ea49eeff6,28,3685,3945,C0O3707C5O3712C10O3712C16O3871C23O3887C26O3883C32O3881C38O3864C42O3925C47O3930C52O3930C58O3944,, code-creation,LazyCompile,10,44558,0xe1ea49ef13e,24,isFull node:internal/fixed_queue:71:9,0x23787e185930,~ code-source-info,0xe1ea49ef13e,28,3139,3200,C0O3162C4O3166C10O3173C12O3171C16O3189C20O3180C23O3196,, code-creation,LazyCompile,10,44571,0xe1ea49ef24e,37,push node:internal/fixed_queue:75:7,0x23787e185998,~ code-source-info,0xe1ea49ef24e,28,3208,3291,C0O3226C5O3236C12O3241C16O3270C20O3274C26O3281C28O3279C31O3262C36O3290,, StoreIC,0xe1ea49ef26d,44579,77,14,X,X,0x000000000000,top,, StoreIC,0xe1ea49eacba,44585,390,16,X,X,0x000000000000,sync,, code-creation,LazyCompile,10,44601,0xe1ea49ef386,62,Readable.removeListener node:internal/streams/readable:905:45,0x6a244a55b58,~ code-source-info,0xe1ea49ef386,49,28775,29332,C0O28800C5O28807C10O28817C15O28832C29O28832C35O28906C37O28913C42O29263C45O29271C53O29271C59O29319C61O29330,, code-creation,LazyCompile,10,44645,0xe1ea49ef506,307,removeListener node:events:557:28,0x24d59d732fd8,~ code-source-info,0xe1ea49ef506,13,16114,17385,C0O16139C3O16139C7O16191C12O16206C14O16240C16O16252C17O16273C19O16279C23O16293C25O16325C27O16337C28O16345C30O16354C35O16375C42O16384C47O16408C54O16419C59O16432C64O16449C66O16464C71O16464C75O16462C81O16509C83O16523C85O16551C91O16584C99O16618C114O16584C121O16664C127O16721C130O16752C134O16759C138O16766C139O16766C144O16789C146O16797C152O16801C159O16821C163O16825C170O16834C175O16862C180O16888C182O16773C187O16734C190O16926C191O16939C196O16954C198O16966C199O16976C200O16989C205O17011C210O17011C216O17045C222O17086C228O17098C233O17122C240O17096C246O17144C251O17144C256O17199C263O17206C268O17223C269O17242C272O17236C276O17267C282O17312C299O17312C304O17367C306O17379,, LoadGlobalIC,0x3dda0e07d6b1,44666,32,16,X,X,0x38ac3d9811a9,process,, code-creation,LazyCompile,10,44676,0xe1ea49ef7c6,5,get node:internal/bootstrap/pre_execution:314:8,0x337ca0b1e050,~ code-source-info,0xe1ea49ef7c6,92,10085,10118,C0O10096C4O10112,, code-creation,LazyCompile,10,44693,0xe1ea49ef996,91,memoryUsage node:internal/process/per_thread:165:23,0x44edd6fe248,~ code-source-info,0xe1ea49ef996,23,4462,4668,C0O4471C7O4484C10O4471C14O4500C21O4520C25O4529C34O4551C39O4560C48O4581C53O4590C62O4611C67O4620C76O4645C81O4654C90O4664,, StoreIC,0xe1ea49ef9b2,44721,168,21,X,X,0x000000000000,rss,, StoreIC,0xe1ea49ef9c0,44728,169,27,X,X,0x000000000000,heapTotal,, StoreIC,0xe1ea49ef9ce,44733,170,26,X,X,0x000000000000,heapUsed,, StoreIC,0xe1ea49ef9dc,44737,171,26,X,X,0x000000000000,external,, StoreIC,0xe1ea49ef9ea,44743,172,30,X,X,0x000000000000,arrayBuffers,, StoreIC,0x3dda0e07d6be,44747,32,24,X,X,0x000000000000,start,, code-creation,LazyCompile,10,44778,0xe1ea49efb1e,62,PerformanceObserver node:internal/perf/observe:199:14,0x6a244a7d810,~ script-source,67,node:internal/perf/observe,'use strict';\n\nconst {\n ArrayFrom\x2C\n ArrayIsArray\x2C\n ArrayPrototypeFilter\x2C\n ArrayPrototypeFlatMap\x2C\n ArrayPrototypeIncludes\x2C\n ArrayPrototypePush\x2C\n ArrayPrototypePushApply\x2C\n ArrayPrototypeSlice\x2C\n ArrayPrototypeSort\x2C\n Error\x2C\n ObjectDefineProperties\x2C\n ObjectFreeze\x2C\n ObjectKeys\x2C\n SafeMap\x2C\n SafeSet\x2C\n Symbol\x2C\n} = primordials;\n\nconst {\n constants: {\n NODE_PERFORMANCE_ENTRY_TYPE_GC\x2C\n NODE_PERFORMANCE_ENTRY_TYPE_HTTP2\x2C\n NODE_PERFORMANCE_ENTRY_TYPE_HTTP\x2C\n }\x2C\n installGarbageCollectionTracking\x2C\n observerCounts\x2C\n removeGarbageCollectionTracking\x2C\n setupObservers\x2C\n} = internalBinding('performance');\n\nconst {\n InternalPerformanceEntry\x2C\n isPerformanceEntry\x2C\n kBufferNext\x2C\n} = require('internal/perf/performance_entry');\n\nconst {\n codes: {\n ERR_INVALID_ARG_VALUE\x2C\n ERR_INVALID_ARG_TYPE\x2C\n ERR_MISSING_ARGS\x2C\n }\x2C\n} = require('internal/errors');\n\nconst {\n validateCallback\x2C\n validateObject\x2C\n} = require('internal/validators');\n\nconst {\n customInspectSymbol: kInspect\x2C\n deprecate\x2C\n lazyDOMException\x2C\n} = require('internal/util');\n\nconst {\n setImmediate\x2C\n} = require('timers');\n\nconst { inspect } = require('util');\n\nconst kBuffer = Symbol('kBuffer');\nconst kCallback = Symbol('kCallback');\nconst kDispatch = Symbol('kDispatch');\nconst kEntryTypes = Symbol('kEntryTypes');\nconst kMaybeBuffer = Symbol('kMaybeBuffer');\nconst kDeprecatedFields = Symbol('kDeprecatedFields');\nconst kType = Symbol('kType');\n\nconst kDeprecationMessage =\n 'Custom PerformanceEntry accessors are deprecated. ' +\n 'Please use the detail property.';\n\nconst kTypeSingle = 0;\nconst kTypeMultiple = 1;\n\nlet gcTrackingInstalled = false;\n\nconst kSupportedEntryTypes = ObjectFreeze([\n 'function'\x2C\n 'gc'\x2C\n 'http'\x2C\n 'http2'\x2C\n 'mark'\x2C\n 'measure'\x2C\n]);\n\n// Performance timeline entry Buffers\nconst markEntryBuffer = createBuffer();\nconst measureEntryBuffer = createBuffer();\nconst kMaxPerformanceEntryBuffers = 1e6;\nconst kClearPerformanceEntryBuffers = ObjectFreeze({\n 'mark': 'performance.clearMarks'\x2C\n 'measure': 'performance.clearMeasures'\x2C\n});\nconst kWarnedEntryTypes = new SafeMap();\n\nconst kObservers = new SafeSet();\nconst kPending = new SafeSet();\nlet isPending = false;\n\nfunction queuePending() {\n if (isPending) return;\n isPending = true;\n setImmediate(() => {\n isPending = false;\n const pendings = ArrayFrom(kPending.values());\n kPending.clear();\n for (const pending of pendings)\n pending[kDispatch]();\n });\n}\n\nfunction getObserverType(type) {\n switch (type) {\n case 'gc': return NODE_PERFORMANCE_ENTRY_TYPE_GC;\n case 'http2': return NODE_PERFORMANCE_ENTRY_TYPE_HTTP2;\n case 'http': return NODE_PERFORMANCE_ENTRY_TYPE_HTTP;\n }\n}\n\nfunction maybeDecrementObserverCounts(entryTypes) {\n for (const type of entryTypes) {\n const observerType = getObserverType(type);\n\n if (observerType !== undefined) {\n observerCounts[observerType]--;\n\n if (observerType === NODE_PERFORMANCE_ENTRY_TYPE_GC &&\n observerCounts[observerType] === 0) {\n removeGarbageCollectionTracking();\n gcTrackingInstalled = false;\n }\n }\n }\n}\n\nfunction maybeIncrementObserverCount(type) {\n const observerType = getObserverType(type);\n\n if (observerType !== undefined) {\n observerCounts[observerType]++;\n if (!gcTrackingInstalled &&\n observerType === NODE_PERFORMANCE_ENTRY_TYPE_GC) {\n installGarbageCollectionTracking();\n gcTrackingInstalled = true;\n }\n }\n}\n\nclass PerformanceObserverEntryList {\n constructor(entries) {\n this[kBuffer] = ArrayPrototypeSort(entries\x2C (first\x2C second) => {\n if (first.startTime < second.startTime) return -1;\n if (first.startTime > second.startTime) return 1;\n return 0;\n });\n }\n\n getEntries() {\n return ArrayPrototypeSlice(this[kBuffer]);\n }\n\n getEntriesByType(type) {\n type = `${type}`;\n return ArrayPrototypeFilter(\n this[kBuffer]\x2C\n (entry) => entry.entryType === type);\n }\n\n getEntriesByName(name\x2C type) {\n name = `${name}`;\n if (type != null /** not nullish */) {\n return ArrayPrototypeFilter(\n this[kBuffer]\x2C\n (entry) => entry.name === name && entry.entryType === type);\n }\n return ArrayPrototypeFilter(\n this[kBuffer]\x2C\n (entry) => entry.name === name);\n }\n\n [kInspect](depth\x2C options) {\n if (depth < 0) return this;\n\n const opts = {\n ...options\x2C\n depth: options.depth == null ? null : options.depth - 1\n };\n\n return `PerformanceObserverEntryList ${inspect(this[kBuffer]\x2C opts)}`;\n }\n}\n\nclass PerformanceObserver {\n constructor(callback) {\n // TODO(joyeecheung): V8 snapshot does not support instance member\n // initializers for now:\n // https://bugs.chromium.org/p/v8/issues/detail?id=10704\n this[kBuffer] = [];\n this[kEntryTypes] = new SafeSet();\n this[kType] = undefined;\n validateCallback(callback);\n this[kCallback] = callback;\n }\n\n observe(options = {}) {\n validateObject(options\x2C 'options');\n const {\n entryTypes\x2C\n type\x2C\n buffered\x2C\n } = { ...options };\n if (entryTypes === undefined && type === undefined)\n throw new ERR_MISSING_ARGS('options.entryTypes'\x2C 'options.type');\n if (entryTypes != null && type != null)\n throw new ERR_INVALID_ARG_VALUE('options.entryTypes'\x2C\n entryTypes\x2C\n 'options.entryTypes can not set with ' +\n 'options.type together');\n\n switch (this[kType]) {\n case undefined:\n if (entryTypes !== undefined) this[kType] = kTypeMultiple;\n if (type !== undefined) this[kType] = kTypeSingle;\n break;\n case kTypeSingle:\n if (entryTypes !== undefined)\n throw lazyDOMException(\n 'PerformanceObserver can not change to multiple observations'\x2C\n 'InvalidModificationError');\n break;\n case kTypeMultiple:\n if (type !== undefined)\n throw lazyDOMException(\n 'PerformanceObserver can not change to single observation'\x2C\n 'InvalidModificationError');\n break;\n }\n\n if (this[kType] === kTypeMultiple) {\n if (!ArrayIsArray(entryTypes)) {\n throw new ERR_INVALID_ARG_TYPE(\n 'options.entryTypes'\x2C\n 'string[]'\x2C\n entryTypes);\n }\n maybeDecrementObserverCounts(this[kEntryTypes]);\n this[kEntryTypes].clear();\n for (let n = 0; n < entryTypes.length; n++) {\n if (ArrayPrototypeIncludes(kSupportedEntryTypes\x2C entryTypes[n])) {\n this[kEntryTypes].add(entryTypes[n]);\n maybeIncrementObserverCount(entryTypes[n]);\n }\n }\n } else {\n if (!ArrayPrototypeIncludes(kSupportedEntryTypes\x2C type))\n return;\n this[kEntryTypes].add(type);\n maybeIncrementObserverCount(type);\n if (buffered) {\n const entries = filterBufferMapByNameAndType(undefined\x2C type);\n ArrayPrototypePushApply(this[kBuffer]\x2C entries);\n kPending.add(this);\n if (kPending.size)\n queuePending();\n }\n }\n\n if (this[kEntryTypes].size)\n kObservers.add(this);\n else\n this.disconnect();\n }\n\n disconnect() {\n maybeDecrementObserverCounts(this[kEntryTypes]);\n kObservers.delete(this);\n kPending.delete(this);\n this[kBuffer] = [];\n this[kEntryTypes].clear();\n this[kType] = undefined;\n }\n\n takeRecords() {\n const list = this[kBuffer];\n this[kBuffer] = [];\n return list;\n }\n\n static get supportedEntryTypes() {\n return kSupportedEntryTypes;\n }\n\n [kMaybeBuffer](entry) {\n if (!this[kEntryTypes].has(entry.entryType))\n return;\n ArrayPrototypePush(this[kBuffer]\x2C entry);\n kPending.add(this);\n if (kPending.size)\n queuePending();\n }\n\n [kDispatch]() {\n this[kCallback](new PerformanceObserverEntryList(this.takeRecords())\x2C\n this);\n }\n\n [kInspect](depth\x2C options) {\n if (depth < 0) return this;\n\n const opts = {\n ...options\x2C\n depth: options.depth == null ? null : options.depth - 1\n };\n\n return `PerformanceObserver ${inspect({\n connected: kObservers.has(this)\x2C\n pending: kPending.has(this)\x2C\n entryTypes: ArrayFrom(this[kEntryTypes])\x2C\n buffer: this[kBuffer]\x2C\n }\x2C opts)}`;\n }\n}\n\nfunction enqueue(entry) {\n if (!isPerformanceEntry(entry))\n throw new ERR_INVALID_ARG_TYPE('entry'\x2C 'PerformanceEntry'\x2C entry);\n\n for (const obs of kObservers) {\n obs[kMaybeBuffer](entry);\n }\n\n const entryType = entry.entryType;\n let buffer;\n if (entryType === 'mark') {\n buffer = markEntryBuffer;\n } else if (entryType === 'measure') {\n buffer = measureEntryBuffer;\n } else {\n return;\n }\n\n const count = buffer.count + 1;\n buffer.count = count;\n if (count === 1) {\n buffer.head = entry;\n buffer.tail = entry;\n return;\n }\n buffer.tail[kBufferNext] = entry;\n buffer.tail = entry;\n\n if (count > kMaxPerformanceEntryBuffers &&\n !kWarnedEntryTypes.has(entryType)) {\n kWarnedEntryTypes.set(entryType\x2C true);\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n const w = new Error('Possible perf_hooks memory leak detected. ' +\n `${count} ${entryType} entries added to the global ` +\n 'performance entry buffer. Use ' +\n `${kClearPerformanceEntryBuffers[entryType]} to ` +\n 'clear the buffer.');\n w.name = 'MaxPerformanceEntryBufferExceededWarning';\n w.entryType = entryType;\n w.count = count;\n process.emitWarning(w);\n }\n}\n\nfunction clearEntriesFromBuffer(type\x2C name) {\n let buffer;\n if (type === 'mark') {\n buffer = markEntryBuffer;\n } else if (type === 'measure') {\n buffer = measureEntryBuffer;\n } else {\n return;\n }\n if (name === undefined) {\n resetBuffer(buffer);\n return;\n }\n\n let head = null;\n let tail = null;\n let count = 0;\n for (let entry = buffer.head; entry !== null; entry = entry[kBufferNext]) {\n if (entry.name !== name) {\n head = head ?? entry;\n tail = entry;\n continue;\n }\n if (tail === null) {\n continue;\n }\n tail[kBufferNext] = entry[kBufferNext];\n count++;\n }\n buffer.head = head;\n buffer.tail = tail;\n buffer.count = count;\n}\n\nfunction filterBufferMapByNameAndType(name\x2C type) {\n let bufferList;\n if (type === 'mark') {\n bufferList = [markEntryBuffer];\n } else if (type === 'measure') {\n bufferList = [measureEntryBuffer];\n } else if (type !== undefined) {\n // Unrecognized type;\n return [];\n } else {\n bufferList = [markEntryBuffer\x2C measureEntryBuffer];\n }\n return ArrayPrototypeFlatMap(bufferList\x2C\n (buffer) => filterBufferByName(buffer\x2C name));\n}\n\nfunction filterBufferByName(buffer\x2C name) {\n const arr = [];\n for (let entry = buffer.head; entry !== null; entry = entry[kBufferNext]) {\n if (name === undefined || entry.name === name) {\n ArrayPrototypePush(arr\x2C entry);\n }\n }\n return arr;\n}\n\nfunction observerCallback(name\x2C type\x2C startTime\x2C duration\x2C details) {\n const entry =\n new InternalPerformanceEntry(\n name\x2C\n type\x2C\n startTime\x2C\n duration\x2C\n details);\n\n if (details !== undefined) {\n // GC\x2C HTTP2\x2C and HTTP PerformanceEntry used additional\n // properties directly off the entry. Those have been\n // moved into the details property. The existing accessors\n // are still included but are deprecated.\n entry[kDeprecatedFields] = new SafeMap();\n\n const detailKeys = ObjectKeys(details);\n const props = {};\n for (let n = 0; n < detailKeys.length; n++) {\n const key = detailKeys[n];\n entry[kDeprecatedFields].set(key\x2C details[key]);\n props[key] = {\n configurable: true\x2C\n enumerable: true\x2C\n get: deprecate(() => {\n return entry[kDeprecatedFields].get(key);\n }\x2C kDeprecationMessage\x2C 'DEP0152')\x2C\n set: deprecate((value) => {\n entry[kDeprecatedFields].set(key\x2C value);\n }\x2C kDeprecationMessage\x2C 'DEP0152')\x2C\n };\n }\n ObjectDefineProperties(entry\x2C props);\n }\n\n enqueue(entry);\n}\n\nsetupObservers(observerCallback);\n\nfunction hasObserver(type) {\n const observerType = getObserverType(type);\n return observerCounts[observerType] > 0;\n}\n\nfunction createBuffer() {\n return {\n head: null\x2C\n tail: null\x2C\n count: 0\x2C\n };\n}\n\nfunction resetBuffer(buffer) {\n buffer.head = null;\n buffer.tail = null;\n buffer.count = 0;\n}\n\nmodule.exports = {\n PerformanceObserver\x2C\n PerformanceObserverEntryList\x2C\n enqueue\x2C\n hasObserver\x2C\n clearEntriesFromBuffer\x2C\n filterBufferMapByNameAndType\x2C\n};\n code-source-info,0xe1ea49efb1e,67,4564,4897,C0O4742C2O4747C7O4756C11O4766C13O4771C18O4790C21O4786C26O4784C30O4805C32O4810C36O4817C40O4834C45O4834C49O4866C51O4871C56O4882C61O4896,, code-creation,LazyCompile,10,45066,0xe1ea49f0eb6,538,observe node:internal/perf/observe:210:10,0x6a244a7d888,~ code-source-info,0xe1ea49f0eb6,67,4908,7168,C4O4908C10O4929C18O4929C23O5031C28O4983C33O5001C38O5013C43O5051C51O5109C64O5115C69O5109C70O5179C80O5225C93O5406C102O5231C107O5225C108O5477C110O5490C112O5489C117O5511C124O5674C133O5901C142O5530C146O5560C148O5565C153O5574C155O5572C159O5597C163O5621C165O5626C170O5635C172O5633C176O5656C178O5695C182O5735C193O5741C198O5735C199O5883C201O5924C205O5958C216O5964C221O5958C222O6103C224O6121C226O6130C228O6129C234O6141C236O6137C241O6164C246O6169C252O6205C268O6211C273O6205C274O6328C279O6362C281O6361C285O6328C289O6383C291O6388C293O6387C297O6401C302O6401C306O6429C308O6447C312O6434C317O6470C324O6497C329O6529C333O6474C340O6547C342O6552C344O6551C348O6565C355O6579C359O6565C364O6595C369O6633C373O6595C377O6456C382O6416C387O6676C394O6704C397O6681C404O6741C405O6748C406O6755C408O6760C410O6759C414O6773C419O6773C424O6790C427O6790C431O6831C435O6871C440O6871C446O6926C453O6955C455O6954C459O6926C464O6983C469O6992C474O6992C479O7011C484O7024C490O7040C493O7040C496O7075C498O7084C500O7083C504O7097C510O7109C515O7120C520O7120C527O7151C532O7151C537O7167,, code-creation,LazyCompile,10,45103,0xe1ea49f137e,99, node:internal/validators:153:3,0x44edd6da0a8,~ code-source-info,0xe1ea49f137e,17,4365,4924,C0O4423C4O4463C9O4499C14O4537C21O4573C26O4609C33O4645C38O4659C46O4706C50O4720C53O4720C67O4795C75O4860C91O4866C96O4860C98O4923,, code-creation,LazyCompile,10,45136,0xe1ea49f1566,193,maybeDecrementObserverCounts node:internal/perf/observe:125:38,0x6a244a7d580,~ code-source-info,0xe1ea49f1566,67,2717,3101,C0O2753C24O2745C52O2745C55O2792C58O2792C63O2820C68O2860C75O2875C80O2888C84O2899C86O2920C88O2916C95O2964C100O2978C105O2993C110O3010C115O3010C118O3053C122O3073C128O2734C192O3100,, StoreIC,0x3dda0e054725,45150,271,22,X,X,0x000000000000,_iterator,, LoadIC,0x3dda0e054859,45158,274,24,P,P,0x38ac3d9b9321,_iterator,, code-creation,LazyCompile,10,45177,0xe1ea49f1796,61,maybeIncrementObserverCount node:internal/perf/observe:141:37,0x6a244a7d5d0,~ code-source-info,0xe1ea49f1796,67,3139,3445,C0O3171C3O3171C8O3197C10O3235C17O3250C22O3263C26O3271C34O3324C36O3320C41O3364C46O3364C49O3406C53O3426C60O3444,, code-creation,LazyCompile,10,45192,0xe1ea49f18ee,43,getObserverType node:internal/perf/observe:117:25,0x6a244a7d530,~ code-source-info,0xe1ea49f18ee,67,2474,2678,C0O2485C26O2516C30O2554C31O2573C35O2614C36O2632C40O2672C42O2677,, code-creation,LazyCompile,10,45206,0xe1ea49f1a06,16, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-static-lexer.js:8:32,0x3dda0e0701c8,~ code-source-info,0xe1ea49f1a06,115,382,427,C0O394C5O410C10O418C14O418C15O427,, code-creation,LazyCompile,10,45218,0xe1ea49f1aee,16,get /home/wincent/code/masochist/next/packages/lexer/lib/index.js:8:77,0x3dda0e0722b8,~ code-source-info,0xe1ea49f1aee,116,364,409,C0O369C6O376C11O398C15O407,, code-creation,LazyCompile,10,45231,0xe1ea49f1c0e,28,__importDefault /home/wincent/code/masochist/next/packages/lexer/lib/index.js:2:66,0x3dda0e072268,~ code-source-info,0xe1ea49f1c0e,116,79,151,C0O91C4O110C14O124C21O143C27O149,, code-creation,LazyCompile,10,45517,0xe1ea49f2736,5890,lex /home/wincent/code/masochist/next/packages/lexer/lib/lex.js:7:14,0x3dda0e0738f0,~ code-source-info,0xe1ea49f2736,117,282,21751,C10O282C15O282C35O282C39O311C42O334C44O353C45O381C47O396C48O433C53O460C55O460C60O498C65O498C71O521C73O555C363O21577C370O578C372O585C379O600C384O632C389O682C391O689C398O704C409O719C414O753C419O803C421O810C426O842C431O892C433O899C438O931C443O949C453O979C465O937C477O931C497O931C501O1012C503O1027C507O1052C514O1106C516O1113C521O1145C526O1195C528O1202C533O1234C538O1284C540O1291C545O1323C550O1341C560O1373C572O1329C584O1323C604O1323C608O1406C610O1421C614O1446C621O1500C623O1507C628O1539C633O1557C643O1592C655O1545C667O1539C687O1539C691O1625C693O1640C697O1665C704O1719C706O1726C711O1758C716O1776C726O1815C738O1764C750O1758C770O1758C774O1848C776O1863C780O1888C787O1942C789O1949C794O1981C799O1999C809O2038C821O1987C833O1981C853O1981C857O2071C859O2086C863O2111C870O2165C872O2172C877O2204C882O2255C884O2262C889O2294C894O2345C896O2352C901O2384C906O2435C908O2442C915O2456C920O2487C925O2538C927O2545C932O2577C937O2595C947O2626C959O2583C971O2577C991O2577C995O2659C997O2674C1001O2699C1008O2753C1010O2760C1015O2792C1020O2810C1030O2842C1042O2798C1054O2792C1074O2792C1078O2875C1080O2890C1084O2915C1091O2969C1093O2976C1098O3008C1103O3026C1113O3054C1125O3014C1137O3008C1157O3008C1161O3087C1163O3102C1167O3127C1174O3181C1176O3188C1183O3202C1190O3216C1197O3231C1204O3245C1211O3259C1218O3273C1225O3287C1232O3301C1237O3332C1242O3383C1244O3390C1249O3422C1254O3440C1264O3481C1276O3428C1288O3422C1308O3422C1312O3514C1314O3529C1318O3554C1325O3608C1327O3615C1332O3647C1337O3665C1347O3706C1359O3653C1371O3647C1391O3647C1395O3739C1397O3754C1401O3779C1408O3833C1410O3840C1415O3872C1420O3923C1422O3930C1427O3962C1432O4013C1434O4020C1439O4052C1444O4070C1454O4109C1466O4058C1478O4052C1498O4052C1502O4142C1504O4157C1508O4182C1515O4236C1517O4243C1522O4275C1527O4293C1537O4322C1549O4281C1561O4275C1581O4275C1585O4355C1587O4370C1591O4395C1598O4449C1600O4456C1605O4488C1610O4506C1620O4545C1632O4494C1644O4488C1664O4488C1668O4578C1670O4593C1674O4618C1681O4694C1686O4744C1688O4787C1690O4794C1697O4809C1702O4841C1707O4951C1710O4987C1715O5022C1717O5071C1719O5148C1722O5180C1727O5211C1729O5262C1731O5269C1736O5301C1741O5411C1744O5447C1749O5482C1751O5531C1753O5574C1755O5581C1762O5596C1769O5610C1776O5624C1783O5638C1790O5652C1801O5666C1806O5699C1811O5750C1813O5757C1818O5789C1823O5840C1825O5847C1830O5879C1835O5952C1840O6002C1842O6045C1844O6052C1851O6067C1862O6081C1867O6114C1872O6224C1875O6260C1880O6295C1882O6344C1884O6388C1886O6395C1891O6427C1896O6478C1898O6485C1905O6499C1910O6530C1915O6603C1920O6653C1922O6697C1924O6704C1929O6736C1934O6809C1939O6859C1941O6903C1943O6910C1948O6942C1953O6993C1955O7000C1962O7015C1967O7047C1972O7120C1977O7138C1996O7126C2008O7120C2028O7120C2032O7199C2035O7235C2040O7270C2042O7319C2044O7363C2046O7370C2053O7384C2058O7415C2063O7466C2065O7473C2070O7505C2075O7556C2077O7563C2084O7578C2089O7610C2094O7683C2099O7701C2118O7689C2130O7683C2150O7683C2154O7762C2157O7798C2162O7833C2164O7882C2166O7926C2168O7933C2175O7947C2182O7961C2189O7975C2196O7989C2203O8004C2210O8018C2215O8049C2220O8122C2225O8140C2244O8128C2256O8122C2276O8122C2280O8199C2283O8235C2288O8270C2290O8319C2292O8363C2294O8370C2301O8384C2308O8398C2315O8412C2322O8426C2329O8441C2336O8455C2343O8469C2350O8483C2355O8514C2360O8565C2362O8572C2367O8604C2372O8677C2377O8695C2396O8683C2408O8677C2428O8677C2432O8754C2435O8790C2440O8825C2442O8874C2444O8918C2446O8925C2453O8939C2460O8953C2467O8967C2474O8981C2481O8996C2488O9010C2495O9024C2502O9038C2507O9069C2512O9120C2514O9127C2519O9159C2524O9232C2529O9250C2548O9238C2560O9232C2580O9232C2584O9309C2587O9345C2592O9380C2594O9429C2596O9473C2598O9480C2605O9495C2612O9509C2619O9523C2626O9537C2633O9551C2644O9565C2649O9598C2654O9649C2656O9656C2661O9688C2666O9739C2668O9746C2673O9778C2678O9796C2688O9834C2700O9784C2712O9778C2732O9778C2736O9867C2738O9882C2742O9907C2749O9983C2754O10033C2756O10077C2758O10084C2763O10116C2768O10189C2773O10207C2792O10195C2804O10189C2824O10189C2828O10274C2831O10310C2836O10345C2838O10394C2840O10438C2842O10445C2849O10460C2856O10475C2863O10490C2870O10505C2877O10520C2884O10535C2889O10567C2894O10618C2896O10625C2901O10657C2906O10708C2908O10715C2913O10747C2918O10820C2923O10870C2925O10914C2927O10921C2932O10953C2937O10971C2947O11005C2959O10959C2971O10953C2991O10953C2995O11038C2997O11053C3001O11078C3008O11154C3013O11204C3015O11248C3017O11255C3024O11269C3029O11300C3034O11373C3039O11423C3041O11467C3043O11474C3050O11489C3055O11521C3060O11572C3062O11579C3069O11593C3074O11624C3079O11697C3084O11747C3086O11791C3088O11798C3095O11812C3102O11826C3109O11840C3116O11854C3123O11869C3130O11883C3135O11914C3140O11965C3142O11972C3147O12004C3152O12077C3157O12095C3176O12083C3188O12077C3208O12077C3212O12154C3215O12190C3220O12225C3222O12274C3224O12318C3226O12325C3233O12339C3240O12353C3247O12367C3254O12381C3261O12396C3268O12410C3273O12441C3278O12514C3283O12532C3302O12520C3314O12514C3334O12514C3338O12589C3341O12625C3346O12660C3348O12709C3350O12753C3352O12760C3359O12774C3366O12788C3373O12803C3380O12817C3387O12831C3394O12845C3401O12859C3412O12873C3417O12906C3422O12957C3424O12964C3429O12996C3434O13047C3436O13054C3441O13086C3446O13159C3451O13209C3453O13253C3455O13260C3462O13275C3469O13290C3476O13305C3483O13320C3490O13335C3495O13367C3500O13418C3502O13425C3507O13457C3512O13508C3514O13515C3519O13547C3524O13620C3529O13670C3531O13714C3533O13721C3540O13735C3547O13749C3554O13763C3561O13777C3568O13791C3573O13822C3578O13895C3583O13945C3585O13989C3587O13996C3594O14011C3599O14043C3604O14094C3606O14101C3613O14115C3618O14146C3623O14219C3628O14237C3647O14225C3659O14219C3679O14219C3683O14298C3686O14334C3691O14369C3693O14418C3695O14462C3697O14469C3704O14483C3709O14514C3714O14587C3719O14637C3721O14681C3723O14688C3730O14702C3735O14733C3740O14806C3745O14824C3764O14812C3776O14806C3796O14806C3800O14885C3803O14921C3808O14956C3810O15005C3812O15049C3814O15056C3821O15070C3831O15084C3841O15098C3851O15112C3861O15127C3871O15141C3881O15155C3891O15169C3899O15200C3904O15251C3906O15258C3914O15290C3919O15363C3924O15381C3943O15369C3960O15363C3980O15363C3984O15440C3987O15476C3992O15511C3994O15560C3996O15604C3998O15611C4008O15625C4018O15639C4028O15654C4038O15668C4048O15682C4058O15696C4068O15710C4082O15724C4090O15757C4095O15808C4097O15815C4105O15847C4110O15898C4112O15905C4120O15937C4125O16010C4130O16060C4132O16104C4134O16111C4144O16125C4154O16139C4164O16154C4174O16168C4184O16182C4194O16196C4204O16210C4218O16224C4226O16257C4231O16308C4233O16315C4241O16347C4246O16398C4248O16405C4256O16437C4261O16510C4266O16560C4268O16604C4270O16611C4280O16625C4290O16639C4300O16653C4310O16667C4320O16681C4328O16712C4333O16785C4338O16835C4340O16879C4342O16886C4352O16900C4362O16914C4372O16928C4382O16942C4392O16957C4402O16971C4412O16985C4422O16999C4430O17030C4435O17081C4437O17088C4445O17120C4450O17193C4455O17211C4474O17199C4491O17193C4511O17193C4515O17270C4518O17306C4523O17341C4525O17390C4527O17434C4529O17441C4539O17455C4549O17469C4559O17484C4569O17498C4579O17512C4589O17526C4599O17540C4613O17554C4621O17587C4626O17638C4628O17645C4636O17677C4641O17728C4643O17735C4651O17767C4656O17785C4666O17829C4681O17773C4698O17767C4718O17767C4722O17862C4724O17877C4731O17902C4738O17978C4743O18028C4745O18072C4747O18079C4757O18093C4767O18107C4777O18122C4787O18136C4797O18150C4807O18164C4817O18178C4831O18192C4839O18225C4844O18276C4846O18283C4854O18315C4859O18366C4861O18373C4869O18405C4874O18478C4879O18528C4881O18572C4883O18579C4893O18593C4903O18607C4913O18621C4923O18635C4933O18649C4941O18680C4946O18753C4951O18803C4953O18847C4955O18854C4965O18868C4975O18882C4985O18896C4995O18910C5005O18925C5015O18939C5025O18953C5035O18967C5043O18998C5048O19049C5050O19056C5058O19088C5063O19161C5068O19179C5087O19167C5104O19161C5124O19161C5128O19238C5131O19274C5136O19309C5138O19358C5140O19402C5142O19409C5152O19424C5162O19439C5172O19453C5182O19467C5196O19481C5204O19514C5209O19565C5211O19572C5219O19604C5224O19677C5229O19727C5231O19771C5233O19778C5243O19792C5253O19806C5263O19820C5273O19834C5283O19848C5291O19879C5296O19952C5301O20002C5303O20046C5305O20053C5315O20067C5325O20081C5335O20095C5345O20109C5355O20124C5365O20138C5375O20152C5385O20166C5393O20197C5398O20248C5400O20255C5408O20287C5413O20360C5418O20378C5437O20366C5454O20360C5474O20360C5478O20437C5481O20473C5486O20508C5488O20557C5490O20601C5492O20608C5502O20622C5512O20636C5522O20650C5532O20664C5542O20679C5552O20693C5562O20707C5572O20721C5580O20752C5585O20803C5587O20810C5595O20842C5600O20915C5605O20933C5624O20921C5641O20915C5661O20915C5665O20992C5668O21028C5673O21063C5675O21112C5677O21156C5679O21163C5689O21177C5699O21191C5709O21205C5719O21219C5729O21234C5739O21248C5747O21279C5752O21352C5757O21370C5776O21358C5793O21352C5813O21352C5817O21433C5820O21469C5825O21504C5827O21553C5829O21601C5841O21607C5851O21601C5852O21684C5864O21690C5874O21684C5875O21739C5882O451C5889O21750,, LoadIC,0xe1ea49f2766,45607,13,26,X,X,0x268a435c18e1,length,, LoadIC,0xe1ea49f2772,45611,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45615,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45617,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45620,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45622,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45624,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45627,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45629,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45631,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45634,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45636,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45638,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45641,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45643,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45645,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45648,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45650,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45652,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45655,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45657,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45660,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45662,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45664,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45666,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45669,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45671,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45674,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45676,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45678,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45680,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45683,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45685,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45688,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45690,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45693,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45695,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45697,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45700,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45702,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45705,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45707,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45710,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45712,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45714,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45717,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45719,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45722,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45724,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45727,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45729,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45733,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45735,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45738,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45740,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45743,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45745,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45747,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45750,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45752,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45755,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45757,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45760,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45763,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45765,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45768,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45770,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45773,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45775,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45777,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45779,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45782,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45784,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45787,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45789,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45791,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45793,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45796,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45798,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45801,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45803,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45806,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45808,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45810,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45813,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45815,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45817,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45820,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45822,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45825,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45827,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45830,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45833,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45835,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45838,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45840,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45842,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45845,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45847,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45849,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45851,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45854,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45856,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45859,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45861,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45864,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45866,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45868,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45872,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45874,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45877,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45879,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45882,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45884,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45888,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45890,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45892,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45895,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45897,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45900,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45902,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45904,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45906,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45909,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45911,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45914,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45916,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45918,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45920,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45923,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45925,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45928,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45930,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45932,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45935,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45937,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45939,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45942,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45944,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45946,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45949,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45951,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45954,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45956,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45958,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45960,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45963,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45965,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45967,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45970,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45972,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45974,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45977,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45979,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45982,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45984,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45986,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45989,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45991,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45994,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45997,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,45999,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46002,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46004,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46006,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46008,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46011,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46013,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46015,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46018,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46020,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46023,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46025,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46027,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46030,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46032,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46034,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46038,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46040,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46043,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46045,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46048,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46050,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46053,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46055,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46057,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46060,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46062,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46065,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46067,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46069,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46071,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46074,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46076,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46078,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46082,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46084,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46087,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46089,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46091,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46094,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46096,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46099,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46101,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46103,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46105,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46108,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46110,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46112,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46115,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46117,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46120,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46122,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46124,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46126,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46129,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46131,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46134,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46136,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46139,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46141,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46143,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46146,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46148,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46151,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46153,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46155,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46157,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46160,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46162,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46165,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46167,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46169,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46171,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46174,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46176,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46178,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46181,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46183,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46185,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46189,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46191,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46194,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46196,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46199,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46201,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46203,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46205,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46208,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46210,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46213,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46215,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46218,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46220,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46222,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46225,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46227,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46229,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46232,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46234,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46236,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46239,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46241,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46243,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46246,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46248,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46250,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46253,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46255,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46257,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46259,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46262,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46264,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46267,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46270,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46272,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46274,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46277,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46279,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46281,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46284,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46286,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46288,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46291,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46293,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46296,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46298,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46301,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46303,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46305,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46307,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46310,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46312,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46315,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46317,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46319,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46321,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46324,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46326,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46328,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46331,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46334,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46336,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46340,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46343,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46345,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46351,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46354,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46356,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46358,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46360,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46363,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46367,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46369,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46371,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46373,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46376,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46378,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46381,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46383,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46385,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46387,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46390,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46392,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46395,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46397,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46400,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46402,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46404,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46407,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46409,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46411,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46414,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46416,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46418,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46421,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46423,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46425,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46427,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46429,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46432,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46434,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46437,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46439,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46441,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46443,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46446,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46448,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46450,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46452,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46455,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46457,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46460,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46462,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46465,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46467,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46469,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46472,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46474,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46476,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46479,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46481,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46484,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46486,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46488,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46491,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46495,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46497,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46499,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46501,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46504,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46506,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46509,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46511,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46514,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46516,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46518,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46521,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46523,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46525,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46527,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46530,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46532,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46535,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46537,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46539,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46541,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46544,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46546,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46549,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46551,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46553,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46555,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46558,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46560,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46563,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46565,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46567,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46569,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46572,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46574,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46576,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46579,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46581,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46583,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46586,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46588,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46591,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46593,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46595,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46598,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46600,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46603,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46606,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46608,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46611,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46614,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46616,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46619,15,26,X,X,0x268a435c18e1,charCodeAt,, code-creation,LazyCompile,10,46637,0xe1ea49f482e,56,Token /home/wincent/code/masochist/next/packages/lexer/lib/Token.js:16:16,0x3dda0e075438,~ code-source-info,0xe1ea49f482e,118,1204,1505,C0O1241C3O1255C10O1255C16O1364C18O1374C22O1390C24O1401C28O1418C30O1427C34O1442C49O1442C55O1504,, StoreIC,0xe1ea49f4840,46650,19,19,X,X,0x000000000000,name,, StoreIC,0xe1ea49f4846,46655,20,20,X,X,0x000000000000,start,, StoreIC,0xe1ea49f484c,46658,21,18,X,X,0x000000000000,end,, code-creation,LazyCompile,10,46682,0xe1ea49f4aa6,143,__classPrivateFieldSet /home/wincent/code/masochist/next/packages/lexer/lib/Token.js:2:80,0x3dda0e075398,~ code-source-info,0xe1ea49f4aa6,118,93,599,C0O133C2O142C7O151C16O157C21O151C22O210C24O219C31O231C33O234C42O240C47O234C48O308C56O351C64O365C67O376C72O376C80O391C89O397C94O391C95O491C97O504C102O516C107O516C117O540C121O552C129O568C134O568C142O597,, LoadIC,0xe1ea49f2772,46699,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46702,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46705,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46707,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46710,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46713,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46715,15,26,X,X,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2772,46717,15,26,X,X,0x268a435c18e1,charCodeAt,, code-creation,Function,11,46939,0x7fe6cc04ad00,35744,lex /home/wincent/code/masochist/next/packages/lexer/lib/lex.js:7:14,0x3dda0e0738f0,^ code-source-info,0x7fe6cc04ad00,117,282,21751,,, code-creation,Function,11,46950,0x7fe6cc053900,188,isURLInstance node:internal/url:1492:23,0x23787e19b110,^ code-source-info,0x7fe6cc053900,33,41338,41435,,, code-creation,Function,11,46958,0x7fe6cc053a20,396, node:internal/fs/utils:686:40,0x1ce311deb720,^ code-source-info,0x7fe6cc053a20,78,18634,18755,,, code-creation,Function,11,46965,0x7fe6cc053c20,304,getOwn node:internal/bootstrap/loaders:180:16,0x24d59d70f450,^ code-source-info,0x7fe6cc053c20,9,5498,5652,,, code-creation,Function,11,46980,0x7fe6cc053dc0,664,syncExports node:internal/bootstrap/loaders:287:14,0x24d59d70f7b8,^ code-source-info,0x7fe6cc053dc0,9,9167,9500,,, code-creation,Function,11,46986,0x7fe6cc0540c0,104,require node:internal/modules/cjs/helpers:101:31,0x3dda0e0708e0,^ code-source-info,0x7fe6cc0540c0,98,3108,3154,,, code-creation,Function,11,46992,0x7fe6cc0541a0,116,get node:net:1706:6,0xe1ea49c8a68,^ code-source-info,0x7fe6cc0541a0,122,45535,45563,,, LoadIC,0xe1ea49f2772,47001,15,26,0,1,0x268a435c18e1,charCodeAt,, LoadIC,0xe1ea49f2fe7,47014,230,39,0,1,0x38ac3d9b3339,default,, LoadIC,0xe1ea49f4831,47033,17,23,0,1,0x38ac3d999ec9,set,, StoreIC,0xe1ea49f4840,47037,19,19,0,1,0x38ac3d9b9489,name,, StoreIC,0xe1ea49f4846,47040,20,20,0,1,0x38ac3d9b9561,start,, StoreIC,0xe1ea49f484c,47043,21,18,0,1,0x38ac3d9b95a9,end,, LoadIC,0xe1ea49f4ae9,47059,5,73,0,1,0x38ac3d999ec9,has,, LoadIC,0xe1ea49f4b27,47063,6,82,0,1,0x38ac3d999ec9,set,, LoadGlobalIC,0x3dda0e07d6ef,49254,40,24,X,X,0x38ac3d9811a9,process,, StoreIC,0xe1ea49ef9b2,49280,168,21,X,X,0x000000000000,rss,, StoreIC,0xe1ea49ef9c0,49285,169,27,X,X,0x000000000000,heapTotal,, StoreIC,0xe1ea49ef9ce,49289,170,26,X,X,0x000000000000,heapUsed,, StoreIC,0xe1ea49ef9dc,49291,171,26,X,X,0x000000000000,external,, StoreIC,0xe1ea49ef9ea,49294,172,30,X,X,0x000000000000,arrayBuffers,, StoreIC,0x3dda0e07d6fc,49297,40,22,X,X,0x000000000000,warmup,, code-creation,LazyCompile,10,49325,0xe1ea49f6946,44,mark node:internal/perf/usertiming:93:14,0x6a244a7f6d0,~ script-source,68,node:internal/perf/usertiming,'use strict';\n\nconst {\n SafeMap\x2C\n SafeSet\x2C\n SafeArrayIterator\x2C\n SymbolToStringTag\x2C\n} = primordials;\n\nconst { InternalPerformanceEntry } = require('internal/perf/performance_entry');\nconst { now } = require('internal/perf/utils');\nconst { enqueue } = require('internal/perf/observe');\nconst nodeTiming = require('internal/perf/nodetiming');\n\nconst {\n validateNumber\x2C\n validateObject\x2C\n validateString\x2C\n} = require('internal/validators');\n\nconst {\n codes: {\n ERR_INVALID_ARG_VALUE\x2C\n ERR_PERFORMANCE_INVALID_TIMESTAMP\x2C\n ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS\x2C\n }\x2C\n} = require('internal/errors');\n\nconst { structuredClone\x2C lazyDOMException } = require('internal/util');\n\nconst markTimings = new SafeMap();\n\nconst nodeTimingReadOnlyAttributes = new SafeSet(new SafeArrayIterator([\n 'nodeStart'\x2C\n 'v8Start'\x2C\n 'environment'\x2C\n 'loopStart'\x2C\n 'loopExit'\x2C\n 'bootstrapComplete'\x2C\n]));\n\nfunction getMark(name) {\n if (name === undefined) return;\n if (typeof name === 'number') {\n if (name < 0)\n throw new ERR_PERFORMANCE_INVALID_TIMESTAMP(name);\n return name;\n }\n name = `${name}`;\n if (nodeTimingReadOnlyAttributes.has(name))\n return nodeTiming[name];\n const ts = markTimings.get(name);\n if (ts === undefined)\n throw lazyDOMException(`The "${name}" performance mark has not been set`\x2C 'SyntaxError');\n return ts;\n}\n\nclass PerformanceMark extends InternalPerformanceEntry {\n constructor(name\x2C options) {\n name = `${name}`;\n if (nodeTimingReadOnlyAttributes.has(name))\n throw new ERR_INVALID_ARG_VALUE('name'\x2C name);\n options ??= {};\n validateObject(options\x2C 'options');\n const startTime = options.startTime ?? now();\n validateNumber(startTime\x2C 'startTime');\n if (startTime < 0)\n throw new ERR_PERFORMANCE_INVALID_TIMESTAMP(startTime);\n markTimings.set(name\x2C startTime);\n\n let detail = options.detail;\n detail = detail != null ?\n structuredClone(detail) :\n null;\n super(name\x2C 'mark'\x2C startTime\x2C 0\x2C detail);\n }\n\n get [SymbolToStringTag]() {\n return 'PerformanceMark';\n }\n}\n\nclass PerformanceMeasure extends InternalPerformanceEntry {\n constructor(name\x2C start\x2C duration\x2C detail) {\n super(name\x2C 'measure'\x2C start\x2C duration\x2C detail);\n }\n\n get [SymbolToStringTag]() {\n return 'PerformanceMeasure';\n }\n}\n\nfunction mark(name\x2C options = {}) {\n const mark = new PerformanceMark(name\x2C options);\n enqueue(mark);\n return mark;\n}\n\nfunction calculateStartDuration(startOrMeasureOptions\x2C endMark) {\n startOrMeasureOptions ??= 0;\n let start;\n let end;\n let duration;\n let optionsValid = false;\n if (typeof startOrMeasureOptions === 'object') {\n ({ start\x2C end\x2C duration } = startOrMeasureOptions);\n optionsValid = start !== undefined || end !== undefined;\n }\n if (optionsValid) {\n if (endMark !== undefined) {\n throw new ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS(\n 'endMark must not be specified');\n }\n\n if (start === undefined && end === undefined) {\n throw new ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS(\n 'One of options.start or options.end is required');\n }\n if (start !== undefined && end !== undefined && duration !== undefined) {\n throw new ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS(\n 'Must not have options.start\x2C options.end\x2C and ' +\n 'options.duration specified');\n }\n }\n\n if (endMark !== undefined) {\n end = getMark(endMark);\n } else if (optionsValid && end !== undefined) {\n end = getMark(end);\n } else if (optionsValid && start !== undefined && duration !== undefined) {\n end = getMark(start) + getMark(duration);\n } else {\n end = now();\n }\n\n if (typeof startOrMeasureOptions === 'string') {\n start = getMark(startOrMeasureOptions);\n } else if (optionsValid && start !== undefined) {\n start = getMark(start);\n } else if (optionsValid && duration !== undefined && end !== undefined) {\n start = end - getMark(duration);\n } else {\n start = 0;\n }\n\n duration = end - start;\n return { start\x2C duration };\n}\n\nfunction measure(name\x2C startOrMeasureOptions\x2C endMark) {\n validateString(name\x2C 'name');\n const {\n start\x2C\n duration\x2C\n } = calculateStartDuration(startOrMeasureOptions\x2C endMark);\n let detail = startOrMeasureOptions?.detail;\n detail = detail != null ? structuredClone(detail) : null;\n const measure = new PerformanceMeasure(name\x2C start\x2C duration\x2C detail);\n enqueue(measure);\n return measure;\n}\n\nfunction clearMarkTimings(name) {\n if (name !== undefined) {\n name = `${name}`;\n if (nodeTimingReadOnlyAttributes.has(name))\n throw new ERR_INVALID_ARG_VALUE('name'\x2C name);\n markTimings.delete(name);\n return;\n }\n markTimings.clear();\n}\n\nmodule.exports = {\n PerformanceMark\x2C\n PerformanceMeasure\x2C\n clearMarkTimings\x2C\n mark\x2C\n measure\x2C\n};\n code-source-info,0xe1ea49f6946,68,2314,2421,C7O2314C13O2352C26O2352C32O2390C37O2390C41O2407C43O2419,, code-creation,LazyCompile,10,49449,0xe1ea49f7086,190,PerformanceMark node:internal/perf/usertiming:59:14,0x6a244a7f590,~ code-source-info,0xe1ea49f7086,68,1421,1997,C3O1443C8O1465C13O1498C18O1498C25O1515C38O1521C43O1515C44O1566C53O1586C61O1586C66O1652C76O1665C79O1665C83O1676C91O1676C96O1720C97O1734C102O1745C109O1751C114O1745C115O1805C120O1817C125O1817C131O1865C136O1877C141O1909C144O1909C152O1951C161O1985C174O1951C189O1996,, code-creation,LazyCompile,10,49471,0xe1ea49f728e,51,now node:internal/perf/utils:13:13,0x23787e1bb270,~ code-source-info,0xe1ea49f728e,41,255,344,C0O273C3O281C8O281C13O293C14O303C17O307C26O318C29O322C39O314C45O331C47O329C50O342,, code-creation,LazyCompile,10,49503,0xe1ea49f7476,248,hrtime node:internal/process/per_thread:67:18,0x337ca0b065b8,~ code-source-info,0xe1ea49f7476,23,1551,2070,C0O1564C5O1572C10O1572C14O1587C18O1619C28O1619C33O1663C40O1670C45O1687C58O1730C65O1693C70O1687C71O1766C77O1775C83O1779C89O1795C94O1803C97O1793C102O1814C105O1808C109O1838C116O1846C122O1856C125O1850C129O1887C130O1892C134O1903C143O1911C147O1929C154O1935C163O1940C167O1959C181O1967C187O1973C188O1985C197O2000C201O2008C207O2012C213O2028C218O2036C221O2026C233O2047C238O2055C247O2066,, code-creation,LazyCompile,10,49531,0xe1ea49f76e6,67,InternalPerformanceEntry node:internal/perf/performance_entry:69:14,0x6a244a79718,~ script-source,66,node:internal/perf/performance_entry,'use strict';\n\nconst {\n ObjectSetPrototypeOf\x2C\n Symbol\x2C\n} = primordials;\n\nconst {\n codes: {\n ERR_ILLEGAL_CONSTRUCTOR\x2C\n }\n} = require('internal/errors');\n\nconst {\n customInspectSymbol: kInspect\x2C\n} = require('internal/util');\n\nconst { inspect } = require('util');\n\nconst kName = Symbol('kName');\nconst kType = Symbol('kType');\nconst kStart = Symbol('kStart');\nconst kDuration = Symbol('kDuration');\nconst kDetail = Symbol('kDetail');\nconst kBufferNext = Symbol('kBufferNext');\n\nfunction isPerformanceEntry(obj) {\n return obj?.[kName] !== undefined;\n}\n\nclass PerformanceEntry {\n constructor() {\n throw new ERR_ILLEGAL_CONSTRUCTOR();\n }\n\n get name() { return this[kName]; }\n\n get entryType() { return this[kType]; }\n\n get startTime() { return this[kStart]; }\n\n get duration() { return this[kDuration]; }\n\n get detail() { return this[kDetail]; }\n\n [kInspect](depth\x2C options) {\n if (depth < 0) return this;\n\n const opts = {\n ...options\x2C\n depth: options.depth == null ? null : options.depth - 1\n };\n\n return `${this.constructor.name} ${inspect(this.toJSON()\x2C opts)}`;\n }\n\n toJSON() {\n return {\n name: this.name\x2C\n entryType: this.entryType\x2C\n startTime: this.startTime\x2C\n duration: this.duration\x2C\n detail: this.detail\x2C\n };\n }\n}\n\nclass InternalPerformanceEntry {\n constructor(name\x2C type\x2C start\x2C duration\x2C detail) {\n this[kName] = name;\n this[kType] = type;\n this[kStart] = start;\n this[kDuration] = duration;\n this[kDetail] = detail;\n this[kBufferNext] = null;\n }\n}\n\nInternalPerformanceEntry.prototype.constructor = PerformanceEntry;\nObjectSetPrototypeOf(\n InternalPerformanceEntry.prototype\x2C\n PerformanceEntry.prototype);\n\nmodule.exports = {\n InternalPerformanceEntry\x2C\n PerformanceEntry\x2C\n isPerformanceEntry\x2C\n kBufferNext\x2C\n};\n code-source-info,0xe1ea49f76e6,66,1340,1547,C0O1384C2O1389C7O1396C11O1408C13O1413C18O1420C22O1432C24O1437C29O1445C33O1458C35O1463C40O1474C44O1490C46O1495C51O1504C55O1518C57O1523C61O1536C66O1546,, code-creation,LazyCompile,10,49623,0xe1ea49f7e0e,416,enqueue node:internal/perf/observe:329:17,0x6a244a7db38,~ code-source-info,0xe1ea49f7e0e,67,8294,9603,C0O8306C5O8311C11O8342C27O8348C32O8342C33O8431C62O8424C90O8424C93O8449C95O8453C97O8452C101O8466C106O8413C170O8506C175O8523C177O8533C179O8547C184O8565C191O8600C193O8614C198O8635C205O8679C206O8686C207O8715C211O8721C215O8728C217O8741C221O8752C223O8762C228O8775C230O8787C234O8800C236O8812C240O8825C241O8832C242O8846C249O8851C254O8864C258O8875C260O8887C264O8899C266O8911C268O8909C275O8947C278O8965C283O8965C290O8987C295O9005C302O9005C308O9146C318O9230C328O9239C338O9201C344O9280C350O9368C355O9397C365O9339C371O9415C377O9146C383O9467C385O9474C389O9524C391O9536C395O9553C397O9561C401O9574C404O9582C409O9582C415O9602,, code-creation,LazyCompile,10,49649,0xe1ea49f813e,20,isPerformanceEntry node:internal/perf/performance_entry:27:28,0x6a244a79230,~ code-source-info,0xe1ea49f813e,66,510,556,C0O520C9O533C11O532C18O540C19O554,, code-creation,LazyCompile,10,49668,0xe1ea49f826e,79, node:internal/perf/observe:298:17,0x6a244a7da48,~ code-source-info,0xe1ea49f826e,67,7572,7763,C0O7586C2O7596C4O7595C8O7609C13O7619C18O7609C25O7637C26O7644C27O7649C34O7673C36O7672C40O7649C45O7695C50O7704C55O7704C60O7719C65O7732C71O7744C74O7744C78O7762,, code-creation,LazyCompile,10,49685,0xe1ea49f83e6,8,get entryType node:internal/perf/performance_entry:38:16,0x6a244a794b8,~ code-source-info,0xe1ea49f83e6,66,700,726,C0O705C2O717C4O716C7O724,, StoreIC,0xe1ea49f7ee7,49695,348,16,X,X,0x000000000000,count,, StoreIC,0xe1ea49f7ef4,49700,350,17,X,X,0x000000000000,head,, StoreIC,0xe1ea49f7efa,49704,351,17,X,X,0x000000000000,tail,, LoadIC,0xe1ea49f2766,49710,13,26,0,1,0x268a435c18e1,length,, new,MemoryChunk,0x97ddd240000,139264 code-creation,LazyCompile,13,51750,0x7fe6cc054280,1024,Token /home/wincent/code/masochist/next/packages/lexer/lib/Token.js:16:16,0x3dda0e075438,* code-source-info,0x7fe6cc054280,118,1204,1505,C0O1204C48O1241C62O1255C134O1374C243O1401C296O1427C349O1442C363O376I0C375O308I0C409O351I0C414O376I0C494O391I0C539O397I0C544O568I0C609O1504C640O1204,F0O1442,S0x3dda0e075398 new,MemoryChunk,0x37e743940000,262144 new,MemoryChunk,0x2a2833340000,262144 new,MemoryChunk,0x28e75bd80000,262144 new,MemoryChunk,0x3d4064d00000,262144 scavenge,begin,0,54837,1647092308711 scavenge,end,0,55707,1647092308712 code-creation,Function,11,55465,0x7fe6cc054740,120,get /home/wincent/code/masochist/next/packages/lexer/lib/index.js:8:77,0x3dda0e0722b8,^ code-source-info,0x7fe6cc054740,116,364,409,,, code-creation,Function,11,55479,0x7fe6cc054820,300,Token /home/wincent/code/masochist/next/packages/lexer/lib/Token.js:16:16,0x3dda0e075438,^ code-source-info,0x7fe6cc054820,118,1204,1505,,, code-creation,Function,11,55493,0x7fe6cc0549c0,1020,__classPrivateFieldSet /home/wincent/code/masochist/next/packages/lexer/lib/Token.js:2:80,0x3dda0e075398,^ code-source-info,0x7fe6cc0549c0,118,93,599,,, LoadIC,0xe1ea49f1a0b,56159,8,60,0,1,0x38ac3d9b3531,default,, LoadIC,0xe1ea49f1af9,56166,8,111,0,1,0x38ac3d9b3339,default,, new,MemoryChunk,0xc2272d80000,270336 scavenge,begin,0,63942,1647092308717 new,MemoryChunk,0x7af28380000,262144 new,MemoryChunk,0xd18b6600000,262144 scavenge,end,0,64744,1647092308717 LoadIC,0xe1ea49f1c12,61087,3,24,0,1,0x38ac3d9b3339,__esModule,, code-creation,LazyCompile,13,62206,0x7fe6cc054e20,27680,lex /home/wincent/code/masochist/next/packages/lexer/lib/lex.js:7:14,0x3dda0e0738f0,* code-source-info,0x7fe6cc054e20,117,282,21751,C0O282C225O460C256O21352C400O20915C544O20360C688O19161C832O17193C976O15363C1120O14806C1264O14219C1408O12514C1552O12077C1696O10953C1824O11053C1850O11204C1872O10189C2016O9778C2144O9882C2170O9907C2208O9232C2352O8677C2496O8122C2640O7683C2784O7120C2928O4488C3056O4593C3082O1052C3120O4052C3248O4157C3274O1052C3312O3008C3440O3102C3466O1052C3504O2577C3632O2674C3658O1052C3696O1981C3824O2086C3850O1052C3888O1758C4016O1863C4042O1052C4080O1323C4208O1421C4234O1052C4272O931C4400O1027C4426O1052C4464O460C4500O498C4813O555C5606O21163C5616O21191C5626O21219C5648O20608C5658O20622C5668O20636C5678O20650C5688O20664C5698O20679C5708O20693C5718O20707C5728O20810C5755O5071C5767O20053C5777O20067C5787O20081C5797O20095C5807O20109C5817O20124C5827O20138C5837O20152C5847O20255C5874O5071C5886O18854C5896O18868C5906O18882C5916O18896C5926O18910C5936O18925C5946O18939C5956O18953C5966O19056C5993O5071C6005O16886C6015O16900C6025O16914C6035O16928C6045O16942C6055O16957C6065O16971C6075O16985C6085O17088C6112O5071C6124O15056C6134O15070C6144O15084C6154O15098C6164O15112C6174O15127C6184O15141C6194O15155C6204O15258C6231O5071C6243O12325C6253O12353C6263O12381C6285O11798C6295O11812C6305O11826C6315O11840C6325O11854C6335O11869C6345O11972C6372O5071C6384O10921C6429O9480C6439O9495C6449O9509C6459O9523C6469O9537C6479O9551C6489O9656C6552O8925C6562O8939C6572O8953C6582O8967C6592O8981C6602O8996C6612O9010C6622O9024C6632O9127C6659O5071C6671O8370C6681O8384C6691O8398C6701O8412C6711O8426C6721O8441C6731O8455C6741O8469C6751O8572C6778O5071C6790O7933C6800O7947C6810O7961C6820O7975C6830O7989C6840O8004C6850O8018C6872O6704C6903O5581C6913O5596C6923O5610C6933O5624C6943O5638C6984O4794C7052O585C7296O2442C7306O2456C7316O2545C7360O3188C7370O3202C7380O3216C7390O3231C7400O3245C7410O3259C7420O3273C7430O3287C7440O3301C7450O3390C7751O21739C7777O7270C7799O451C7814O460C7847O21352C7920O20915C7965O20360C8010O19161C8058O17767C8206O17877C8211O17767C8219O17193C8267O15363C8315O14806C8363O14219C8411O12514C8459O12077C8507O10953C8555O10189C8603O9778C8651O9232C8699O8677C8747O8122C8795O7683C8843O7120C8891O4488C8939O4275C9087O4370C9092O4275C9100O4052C9148O3647C9296O3754C9301O3647C9309O3422C9457O3529C9462O3422C9470O3008C9518O2792C9666O2890C9671O2792C9679O2577C9727O1981C9775O1758C9823O1539C9971O1640C9976O1539C9984O1323C10032O931C10080O21750C10085O21577C10108O21684C10149O21690C10154O21601C10186O21607C10191O21234C10201O21352C10215O21370C10246O21358C10406O21352C10704O21248C10709O21205C10714O21177C10719O20915C10733O20933C10767O20921C10772O20721C10777O20360C10791O20378C10825O20366C10830O20166C10835O19778C10840O19409C10845O19161C10859O19179C10893O19167C10898O18967C10903O18579C10908O18079C10913O17441C10918O17193C10932O17211C10966O17199C10971O16999C10976O16611C10981O16111C10986O15611C10991O15363C11005O15381C11039O15369C11044O15169C11049O14688C11054O14469C11059O13996C11064O13721C11069O13260C11074O12760C11079O12396C11089O12514C11103O12532C11133O12520C11289O12514C11590O12410C11595O12367C11600O12339C11605O12077C11619O12095C11653O12083C11658O11883C11663O11474C11668O11255C11673O10953C11695O10971C11726O10959C11884O10953C12182O10445C12187O10084C12192O9778C12214O9796C12245O9784C12403O9778C12704O9232C12718O9250C12752O9238C12757O9038C12762O8677C12776O8695C12810O8683C12815O8483C12820O8122C12834O8140C12864O8128C12964O1241I0C12978O1255I0C13056O1374I0C13150O1401I0C13168O1427I0C13211O1442I0C13225O376I1C13237O308I1C13275O351I1C13280O376I1C13360O391I1C13405O397I1C13410O568I1C13514O8128C13559O8122C13860O7370C13865O6910C13870O6395C13875O6052C13880O5652C13885O5269C13890O3422C13904O3440C13938O3481C13943O3647C13957O3665C13991O3706C13996O4052C14018O4070C14049O4058C14208O4052C14506O4275C14520O4293C14554O4322C14559O4488C14581O4506C14612O4494C14770O4488C15068O2577C15090O2595C15121O2583C15279O2577C15577O2792C15591O2810C15625O2842C15630O3008C15652O3026C15683O3014C15841O3008C16142O931C16156O949C16166O979C16170O949C16191O937C16353O931C16651O1323C16673O1341C16704O1329C16862O1323C17160O1539C17174O1557C17208O1592C17213O1758C17235O1776C17266O1764C17424O1758C17725O1981C17747O1999C17778O1987C17936O1981C18234O282C18325O433C18330O282C18661O498C18742O451C18888O21352C18942O20915C18996O20360C19050O19161C19104O17193C19158O15363C19244O12514C19295O12077C19381O10953C19464O9778C19515O9232C19569O8677C19691O8122C19745O3422C19799O3647C19885O4052C19936O4275C20022O4488C20105O2577C20156O2792C20242O3008C20325O931C20408O1323C20459O1539C20545O1758C20628O1981,F0O8128F1O1442I0,S0x3dda0e075438S0x3dda0e075398 scavenge,begin,0,78491,1647092308724 scavenge,end,0,78714,1647092308725 scavenge,begin,0,89326,1647092308730 scavenge,end,0,89540,1647092308730 scavenge,begin,0,96974,1647092308735 scavenge,end,0,97181,1647092308736 scavenge,begin,0,109271,1647092308741 scavenge,end,0,109504,1647092308741 code-creation,LazyCompile,13,83975,0x7fe6cc05c000,29024,lex /home/wincent/code/masochist/next/packages/lexer/lib/lex.js:7:14,0x3dda0e0738f0,* code-source-info,0x7fe6cc05c000,117,282,21751,C0O282C729O433C764O460C896O21352C1040O20915C1184O20360C1328O19161C1472O17193C1616O15363C1760O14806C1904O14219C2048O12514C2192O12077C2336O10953C2448O11053C2473O11204C2512O10189C2656O9778C2768O9882C2793O9907C2832O9232C2976O8677C3120O8122C3264O7683C3408O7120C3552O4488C3664O4593C3689O1052C3728O4052C3840O4157C3865O1052C3904O3008C4016O3102C4041O1052C4080O2577C4192O2674C4217O1052C4256O1981C4368O2086C4393O1052C4432O1758C4544O1863C4569O1052C4608O1323C4720O1421C4745O1052C4784O931C4896O1027C4921O1052C4960O460C4995O498C5260O555C6054O21163C6064O21191C6074O21219C6096O20608C6106O20622C6116O20636C6126O20650C6136O20664C6146O20679C6156O20693C6166O20707C6176O20810C6203O5071C6215O20053C6225O20067C6235O20081C6245O20095C6255O20109C6265O20124C6275O20138C6285O20152C6295O20255C6322O5071C6334O18854C6344O18868C6354O18882C6364O18896C6374O18910C6384O18925C6394O18939C6404O18953C6414O19056C6441O5071C6453O16886C6463O16900C6473O16914C6483O16928C6493O16942C6503O16957C6513O16971C6523O16985C6533O17088C6560O5071C6572O15056C6582O15070C6592O15084C6602O15098C6612O15112C6622O15127C6632O15141C6642O15155C6652O15258C6679O5071C6691O12325C6701O12353C6711O12381C6733O11798C6743O11812C6753O11826C6763O11840C6773O11854C6783O11869C6793O11972C6820O5071C6832O10921C6883O9480C6893O9495C6903O9509C6913O9523C6923O9537C6933O9551C6943O9656C7016O8925C7026O8939C7036O8953C7046O8967C7056O8981C7066O8996C7076O9010C7086O9024C7096O9127C7123O5071C7135O8370C7145O8384C7155O8398C7165O8412C7175O8426C7185O8441C7195O8455C7205O8469C7215O8572C7242O5071C7254O7933C7264O7947C7274O7961C7284O7975C7294O7989C7304O8004C7314O8018C7336O7370C7346O7384C7356O7473C7425O5071C7437O6704C7468O6052C7478O6067C7525O5581C7535O5596C7545O5610C7555O5624C7565O5638C7612O4794C7676O585C7920O2442C7930O2456C7940O2545C7984O3188C7994O3202C8004O3216C8014O3231C8024O3245C8034O3259C8044O3273C8054O3287C8064O3301C8074O3390C8375O21739C8400O7270C8428O451C8443O460C8476O21352C8546O20915C8591O20360C8636O19161C8684O17767C8831O17877C8836O17767C8844O17193C8892O15363C8940O14806C8988O14219C9036O12514C9084O12077C9132O10953C9180O10189C9228O9778C9276O9232C9324O8677C9372O8122C9420O7683C9468O7120C9516O4488C9564O4275C9711O4370C9716O4275C9724O4052C9772O3647C9919O3754C9924O3647C9932O3422C10079O3529C10084O3422C10092O3008C10140O2792C10287O2890C10292O2792C10300O2577C10348O1981C10396O1758C10444O1539C10591O1640C10596O1539C10604O1323C10652O931C10700O21750C10709O21577C10732O21684C10770O21690C10775O21601C10807O21607C10812O21234C10822O21352C10836O21370C10866O21358C11028O21352C11324O21248C11329O21205C11334O21177C11339O20915C11353O20933C11387O20921C11392O20721C11397O20360C11411O20378C11445O20366C11450O20166C11455O19778C11460O19409C11465O19161C11479O19179C11513O19167C11518O18967C11523O18579C11528O18079C11533O17441C11538O17193C11552O17211C11586O17199C11591O16999C11596O16611C11601O16111C11606O15611C11611O15363C11625O15381C11659O15369C11664O15169C11669O14688C11674O14469C11679O13996C11684O13721C11689O13260C11694O12760C11699O12396C11709O12514C11723O12532C11753O12520C11909O12514C12208O12410C12213O12367C12218O12339C12223O12077C12237O12095C12271O12083C12276O11883C12281O11474C12286O11255C12291O10953C12313O10971C12343O10959C12504O10953C12799O10445C12804O10084C12809O9778C12831O9796C12861O9784C13022O9778C13320O9232C13334O9250C13368O9238C13373O9038C13378O8677C13392O8695C13426O8683C13431O8483C13436O8122C13450O8140C13480O8128C13584O1241I0C13598O1255I0C13674O1374I0C13768O1401I0C13784O1427I0C13827O1442I0C13841O376I1C13853O308I1C13890O351I1C13895O376I1C13978O391I1C14023O397I1C14028O568I1C14132O8128C14177O8122C14477O7683C14491O7701C14521O7689C14677O7683C14976O6910C14981O6395C14986O5652C14991O5269C14996O3422C15010O3440C15044O3481C15049O3647C15063O3665C15097O3706C15102O4052C15124O4070C15154O4058C15315O4052C15610O4275C15624O4293C15658O4322C15663O4488C15685O4506C15715O4494C15876O4488C16171O2577C16193O2595C16223O2583C16384O2577C16679O2792C16693O2810C16727O2842C16732O3008C16754O3026C16784O3014C16945O3008C17243O931C17257O949C17267O979C17271O949C17291O937C17456O931C17751O1323C17773O1341C17803O1329C17964O1323C18259O1539C18273O1557C18307O1592C18312O1758C18334O1776C18364O1764C18525O1758C18823O1981C18845O1999C18875O1987C19036O1981C19332O282C19660O498C19734O451C19869O21352C19923O20915C19974O20360C20025O19161C20076O17193C20127O15363C20210O12514C20261O12077C20344O10953C20427O9778C20478O9232C20529O8677C20647O8122C20727O7683C20778O3422C20829O3647C20909O4052C20957O4275C21037O4488C21117O2577C21165O2792C21245O3008C21325O931C21405O1323C21453O1539C21533O1758C21613O1981,F0O8128F1O1442I0,S0x3dda0e075438S0x3dda0e075398 scavenge,begin,0,123367,1647092308748 scavenge,end,0,123586,1647092308748 scavenge,begin,0,132840,1647092308754 scavenge,end,0,133077,1647092308754 scavenge,begin,0,145030,1647092308759 scavenge,end,0,145257,1647092308759 scavenge,begin,0,154152,1647092308765 scavenge,end,0,154405,1647092308765 code-creation,LazyCompile,13,109811,0x7fe6cc063740,30608,lex /home/wincent/code/masochist/next/packages/lexer/lib/lex.js:7:14,0x3dda0e0738f0,* code-source-info,0x7fe6cc063740,117,282,21751,C0O282C825O433C860O460C1024O21352C1168O20915C1312O20360C1456O19161C1600O17193C1744O15363C1888O14806C2032O14219C2176O12514C2320O12077C2464O10953C2576O11053C2601O11204C2624O10189C2768O9778C2880O9882C2905O9907C2944O9232C3088O8677C3232O8122C3376O7683C3520O7120C3664O4488C3776O4593C3801O1052C3840O4052C3952O4157C3977O1052C4016O3008C4128O3102C4153O1052C4192O2577C4304O2674C4329O1052C4368O1981C4480O2086C4505O1052C4544O1758C4656O1863C4681O1052C4720O1323C4832O1421C4857O1052C4896O931C5008O1027C5033O1052C5072O460C5107O498C5179O555C5973O21163C5997O21191C6016O21219C6051O20608C6075O20622C6094O20636C6110O20650C6129O20664C6145O20679C6164O20693C6183O20707C6202O20810C6238O5071C6251O20053C6275O20067C6291O20081C6307O20095C6323O20109C6339O20124C6355O20138C6374O20152C6393O20255C6429O5071C6442O18854C6466O18868C6482O18882C6498O18896C6514O18910C6530O18925C6546O18939C6562O18953C6581O19056C6617O5071C6630O16886C6654O16900C6670O16914C6686O16928C6702O16942C6718O16957C6734O16971C6753O16985C6769O17088C6802O5071C6815O15056C6839O15070C6855O15084C6871O15098C6887O15112C6903O15127C6919O15141C6935O15155C6954O15258C6990O5071C7003O12325C7027O12353C7043O12381C7075O11798C7099O11812C7115O11826C7131O11840C7147O11854C7163O11869C7182O11972C7215O5071C7228O10921C7308O9480C7335O9495C7351O9509C7367O9523C7383O9537C7402O9551C7421O9565C7440O9656C7459O9746C7515O8925C7539O8939C7555O8953C7571O8967C7587O8981C7603O8996C7619O9010C7635O9024C7651O9127C7684O5071C7697O8370C7721O8384C7737O8398C7753O8412C7769O8426C7785O8441C7801O8455C7820O8469C7836O8572C7872O5071C7885O7933C7909O7947C7925O7961C7941O7975C7957O7989C7973O8004C7989O8018C8024O7370C8048O7384C8064O7473C8080O7563C8099O7578C8143O5071C8156O6704C8205O6052C8229O6067C8245O6081C8304O5581C8328O5596C8344O5610C8360O5624C8376O5638C8435O4794C8459O4809C8518O585C8565O600C8592O689C8619O704C8646O719C8673O810C8700O899C8727O1113C8754O1202C8781O1291C8808O1507C8835O1726C8862O1949C8889O2172C8916O2262C8943O2352C8970O2442C8995O2456C9019O2545C9046O2760C9073O2976C9100O3188C9125O3202C9149O3216C9176O3231C9201O3245C9225O3259C9250O3273C9274O3287C9299O3301C9323O3390C9350O3615C9377O3840C9404O3930C9431O4020C9458O4243C9485O4456C9664O21739C9689O7270C9712O451C9731O460C9764O21352C9834O20915C9879O20360C9924O19161C9972O17767C10116O17877C10121O17767C10129O17193C10177O15363C10225O14806C10273O14219C10321O12514C10369O12077C10417O10953C10465O10189C10513O9778C10561O9232C10609O8677C10657O8122C10705O7683C10753O7120C10801O4488C10849O4275C10993O4370C10998O4275C11006O4052C11054O3647C11198O3754C11203O3647C11211O3422C11355O3529C11360O3422C11368O3008C11416O2792C11560O2890C11565O2792C11573O2577C11621O1981C11669O1758C11717O1539C11861O1640C11866O1539C11874O1323C11922O931C11970O21750C11979O21577C12002O21684C12037O21690C12042O21601C12074O21607C12079O21234C12095O21352C12113O21370C12143O21358C12300O21352C12598O21248C12603O21205C12608O21177C12613O20915C12631O20933C12665O20921C12670O20721C12675O20360C12693O20378C12727O20366C12732O20166C12737O19778C12742O19409C12747O19161C12765O19179C12799O19167C12804O18967C12809O18579C12814O18079C12819O17441C12824O17193C12842O17211C12876O17199C12881O16999C12886O16611C12891O16111C12896O15611C12901O15363C12919O15381C12953O15369C12958O15169C12963O14688C12968O14469C12973O13996C12978O13721C12983O13260C12988O12760C12993O12396C13009O12514C13027O12532C13057O12520C13211O12514C13512O12410C13517O12367C13522O12339C13527O12077C13545O12095C13579O12083C13584O11883C13589O11474C13594O11255C13599O10953C13617O979C13625O10971C13655O11005C13664O10959C13820O10953C14118O10445C14123O10084C14128O9778C14154O9796C14184O9834C14193O9784C14349O9778C14651O9232C14669O9250C14703O9238C14708O9038C14713O8677C14731O8695C14765O8683C14770O8483C14775O8122C14793O8140C14823O8128C14927O1241I0C14942O1255I0C15016O1374I0C15110O1401I0C15126O1427I0C15169O1442I0C15183O376I1C15195O308I1C15232O351I1C15237O376I1C15320O391I1C15365O397I1C15370O568I1C15474O8128C15519O8122C15820O7683C15838O7701C15868O7689C16022O7683C16324O6910C16329O6395C16334O5652C16339O5269C16344O4488C16370O4506C16400O4545C16410O4494C16567O4488C16866O4275C16884O4293C16918O4322C16923O4052C16949O4070C16979O4109C16989O4058C17146O4052C17445O3647C17463O3665C17497O3706C17502O3422C17520O3440C17554O3481C17559O3008C17585O3026C17615O3054C17625O3014C17782O3008C18084O2792C18102O2810C18136O2842C18141O2577C18167O2595C18197O2626C18207O2583C18364O2577C18663O1981C18689O1999C18719O2038C18729O1987C18886O1981C19184O1758C19210O1776C19240O1815C19249O1764C19405O1758C19706O1539C19724O1557C19758O1592C19763O1323C19789O1341C19819O1373C19828O1329C19984O1323C20282O931C20300O949C20338O979C20347O937C20503O931C20799O282C21127O585C21137O451C21272O21352C21323O20915C21371O20360C21419O19161C21467O17193C21515O15363C21595O12514C21643O12077C21723O10953C21803O9778C21851O9232C21899O8677C21999O8122C22079O7683C22159O4488C22207O4275C22287O4052C22335O3647C22383O3422C22463O3008C22511O2792C22591O2577C22671O1981C22751O1758C22799O1539C22879O1323C22959O931,F0O8128F1O1442I0,S0x3dda0e075438S0x3dda0e075398 scavenge,begin,0,165522,1647092308770 scavenge,end,0,165759,1647092308770 scavenge,begin,0,167539,1647092308772 scavenge,end,0,167754,1647092308772 code-creation,LazyCompile,10,113093,0xd18b6628d56,100,measure node:internal/perf/usertiming:150:17,0x6a244a7f788,~ code-source-info,0xd18b6628d56,68,4024,4412,C0O4067C8O4067C13O4138C16O4138C22O4111C27O4122C32O4209C39O4230C47O4242C52O4268C55O4268C63O4318C82O4318C88O4375C93O4375C97O4395C99O4410,, code-creation,LazyCompile,10,113147,0xd18b662903e,292,calculateStartDuration node:internal/perf/usertiming:99:32,0x6a244a7f738,~ code-source-info,0xd18b662903e,68,2454,4006,C0O2491C9O2526C11O2539C13O2550C15O2581C17O2590C23O2646C28O2653C33O2658C38O2699C41O2720C47O2741C49O2762C53O2786C57O2821C67O2827C72O2821C73O2925C81O2979C91O2985C96O2979C97O3100C109O3180C119O3288C125O3186C130O3180C131O3342C135O3375C138O3381C145O3408C153O3453C156O3459C163O3482C175O3555C178O3561C186O3578C190O3576C196O3612C201O3618C205O3632C211O3685C214O3693C221O3734C229O3781C232O3789C239O3814C251O3885C254O3899C258O3897C264O3933C266O3951C268O3966C272O3977C279O3986C285O3993C291O4004,, code-creation,LazyCompile,10,113179,0xd18b662937e,118,getMark node:internal/perf/usertiming:42:17,0x6a244a7f280,~ code-source-info,0xd18b662937e,68,913,1349,C0O924C4O948C5O955C6O958C12O994C13O1003C18O1014C25O1020C30O1014C31O1069C33O1081C34O1088C39O1108C44O1141C49O1141C56O1156C63O1173C66O1180C67O1194C72O1206C77O1206C83O1219C85O1245C95O1276C109O1251C114O1245C115O1337C117O1347,, StoreIC,0xd18b6629155,113196,147,12,X,X,0x000000000000,start,, StoreIC,0xd18b662915b,113203,147,19,X,X,0x000000000000,duration,, LoadIC,0xd18b6628d7d,113208,156,37,X,X,0x268a435c1349,detail,, code-creation,LazyCompile,10,113222,0xd18b662950e,42,PerformanceMeasure node:internal/perf/usertiming:84:14,0x6a244a7f630,~ code-source-info,0xd18b662950e,68,2139,2229,C3O2177C10O2217C26O2177C41O2228,, code-creation,LazyCompile,10,113253,0xd18b66296ce,34,queuePending node:internal/perf/observe:105:22,0x6a244a7cbd0,~ code-source-info,0xd18b66296ce,67,2208,2448,C0O2215C6O2230C7O2237C8O2240C12O2250C18O2260C28O2260C33O2447,, code-creation,LazyCompile,10,113293,0xd18b6629916,184,setImmediate node:timers:278:22,0x6a244a6c870,~ script-source,61,node:timers,// Copyright Joyent\x2C Inc. and other Node contributors.\n//\n// Permission is hereby granted\x2C free of charge\x2C to any person obtaining a\n// copy of this software and associated documentation files (the\n// "Software")\x2C to deal in the Software without restriction\x2C including\n// without limitation the rights to use\x2C copy\x2C modify\x2C merge\x2C publish\x2C\n// distribute\x2C sublicense\x2C and/or sell copies of the Software\x2C and to permit\n// persons to whom the Software is furnished to do so\x2C subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED "AS IS"\x2C WITHOUT WARRANTY OF ANY KIND\x2C EXPRESS\n// OR IMPLIED\x2C INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY\x2C FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM\x2C\n// DAMAGES OR OTHER LIABILITY\x2C WHETHER IN AN ACTION OF CONTRACT\x2C TORT OR\n// OTHERWISE\x2C ARISING FROM\x2C OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nconst {\n MathTrunc\x2C\n ObjectCreate\x2C\n ObjectDefineProperty\x2C\n SymbolToPrimitive\n} = primordials;\n\nconst {\n immediateInfo\x2C\n toggleImmediateRef\n} = internalBinding('timers');\nconst L = require('internal/linkedlist');\nconst {\n async_id_symbol\x2C\n Timeout\x2C\n Immediate\x2C\n decRefCount\x2C\n immediateInfoFields: {\n kCount\x2C\n kRefCount\n }\x2C\n kRefed\x2C\n kHasPrimitive\x2C\n getTimerDuration\x2C\n timerListMap\x2C\n timerListQueue\x2C\n immediateQueue\x2C\n active\x2C\n unrefActive\x2C\n insert\n} = require('internal/timers');\nconst {\n promisify: { custom: customPromisify }\x2C\n deprecate\n} = require('internal/util');\nlet debug = require('internal/util/debuglog').debuglog('timer'\x2C (fn) => {\n debug = fn;\n});\nconst { validateCallback } = require('internal/validators');\n\nlet timersPromises;\n\nconst {\n destroyHooksExist\x2C\n // The needed emit*() functions.\n emitDestroy\n} = require('internal/async_hooks');\n\n// This stores all the known timer async ids to allow users to clearTimeout and\n// clearInterval using those ids\x2C to match the spec and the rest of the web\n// platform.\nconst knownTimersById = ObjectCreate(null);\n\n// Remove a timer. Cancels the timeout and resets the relevant timer properties.\nfunction unenroll(item) {\n if (item._destroyed)\n return;\n\n item._destroyed = true;\n\n if (item[kHasPrimitive])\n delete knownTimersById[item[async_id_symbol]];\n\n // Fewer checks may be possible\x2C but these cover everything.\n if (destroyHooksExist() && item[async_id_symbol] !== undefined)\n emitDestroy(item[async_id_symbol]);\n\n L.remove(item);\n\n // We only delete refed lists because unrefed ones are incredibly likely\n // to come from http and be recreated shortly after.\n // TODO: Long-term this could instead be handled by creating an internal\n // clearTimeout that makes it clear that the list should not be deleted.\n // That function could then be used by http and other similar modules.\n if (item[kRefed]) {\n // Compliment truncation during insert().\n const msecs = MathTrunc(item._idleTimeout);\n const list = timerListMap[msecs];\n if (list !== undefined && L.isEmpty(list)) {\n debug('unenroll: list empty');\n timerListQueue.removeAt(list.priorityQueuePosition);\n delete timerListMap[list.msecs];\n }\n\n decRefCount();\n }\n\n // If active is called later\x2C then we want to make sure not to insert again\n item._idleTimeout = -1;\n}\n\n// Make a regular object able to act as a timer by setting some properties.\n// This function does not start the timer\x2C see `active()`.\n// Using existing objects as timers slightly reduces object overhead.\nfunction enroll(item\x2C msecs) {\n msecs = getTimerDuration(msecs\x2C 'msecs');\n\n // If this item was already in a list somewhere\n // then we should unenroll it from that\n if (item._idleNext) unenroll(item);\n\n L.init(item);\n item._idleTimeout = msecs;\n}\n\n\n/**\n * Schedules the execution of a one-time `callback`\n * after `after` milliseconds.\n * @param {Function} callback\n * @param {number} [after]\n * @param {any} [arg1]\n * @param {any} [arg2]\n * @param {any} [arg3]\n * @returns {Timeout}\n */\nfunction setTimeout(callback\x2C after\x2C arg1\x2C arg2\x2C arg3) {\n validateCallback(callback);\n\n let i\x2C args;\n switch (arguments.length) {\n // fast cases\n case 1:\n case 2:\n break;\n case 3:\n args = [arg1];\n break;\n case 4:\n args = [arg1\x2C arg2];\n break;\n default:\n args = [arg1\x2C arg2\x2C arg3];\n for (i = 5; i < arguments.length; i++) {\n // Extend array dynamically\x2C makes .apply run much faster in v6.0.0\n args[i - 2] = arguments[i];\n }\n break;\n }\n\n const timeout = new Timeout(callback\x2C after\x2C args\x2C false\x2C true);\n insert(timeout\x2C timeout._idleTimeout);\n\n return timeout;\n}\n\nObjectDefineProperty(setTimeout\x2C customPromisify\x2C {\n enumerable: true\x2C\n get() {\n if (!timersPromises)\n timersPromises = require('timers/promises');\n return timersPromises.setTimeout;\n }\n});\n\n/**\n * Cancels a timeout.\n * @param {Timeout | string | number} timer\n * @returns {void}\n */\nfunction clearTimeout(timer) {\n if (timer && timer._onTimeout) {\n timer._onTimeout = null;\n unenroll(timer);\n return;\n }\n if (typeof timer === 'number' || typeof timer === 'string') {\n const timerInstance = knownTimersById[timer];\n if (timerInstance !== undefined) {\n timerInstance._onTimeout = null;\n unenroll(timerInstance);\n }\n }\n}\n\n/**\n * Schedules repeated execution of `callback`\n * every `repeat` milliseconds.\n * @param {Function} callback\n * @param {number} [repeat]\n * @param {any} [arg1]\n * @param {any} [arg2]\n * @param {any} [arg3]\n * @returns {Timeout}\n */\nfunction setInterval(callback\x2C repeat\x2C arg1\x2C arg2\x2C arg3) {\n validateCallback(callback);\n\n let i\x2C args;\n switch (arguments.length) {\n // fast cases\n case 1:\n case 2:\n break;\n case 3:\n args = [arg1];\n break;\n case 4:\n args = [arg1\x2C arg2];\n break;\n default:\n args = [arg1\x2C arg2\x2C arg3];\n for (i = 5; i < arguments.length; i++) {\n // Extend array dynamically\x2C makes .apply run much faster in v6.0.0\n args[i - 2] = arguments[i];\n }\n break;\n }\n\n const timeout = new Timeout(callback\x2C repeat\x2C args\x2C true\x2C true);\n insert(timeout\x2C timeout._idleTimeout);\n\n return timeout;\n}\n\n/**\n * Cancels an interval.\n * @param {Timeout | string | number} timer\n * @returns {void}\n */\nfunction clearInterval(timer) {\n // clearTimeout and clearInterval can be used to clear timers created from\n // both setTimeout and setInterval\x2C as specified by HTML Living Standard:\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n clearTimeout(timer);\n}\n\nTimeout.prototype.close = function() {\n clearTimeout(this);\n return this;\n};\n\n/**\n * Coerces a `Timeout` to a primitive.\n * @returns {number}\n */\nTimeout.prototype[SymbolToPrimitive] = function() {\n const id = this[async_id_symbol];\n if (!this[kHasPrimitive]) {\n this[kHasPrimitive] = true;\n knownTimersById[id] = this;\n }\n return id;\n};\n\n/**\n * Schedules the immediate execution of `callback`\n * after I/O events' callbacks.\n * @param {Function} callback\n * @param {any} [arg1]\n * @param {any} [arg2]\n * @param {any} [arg3]\n * @returns {Immediate}\n */\nfunction setImmediate(callback\x2C arg1\x2C arg2\x2C arg3) {\n validateCallback(callback);\n\n let i\x2C args;\n switch (arguments.length) {\n // fast cases\n case 1:\n break;\n case 2:\n args = [arg1];\n break;\n case 3:\n args = [arg1\x2C arg2];\n break;\n default:\n args = [arg1\x2C arg2\x2C arg3];\n for (i = 4; i < arguments.length; i++) {\n // Extend array dynamically\x2C makes .apply run much faster in v6.0.0\n args[i - 1] = arguments[i];\n }\n break;\n }\n\n return new Immediate(callback\x2C args);\n}\n\nObjectDefineProperty(setImmediate\x2C customPromisify\x2C {\n enumerable: true\x2C\n get() {\n if (!timersPromises)\n timersPromises = require('timers/promises');\n return timersPromises.setImmediate;\n }\n});\n\n/**\n * Cancels an immediate.\n * @param {Immediate} immediate\n * @returns {void}\n */\nfunction clearImmediate(immediate) {\n if (!immediate || immediate._destroyed)\n return;\n\n immediateInfo[kCount]--;\n immediate._destroyed = true;\n\n if (immediate[kRefed] && --immediateInfo[kRefCount] === 0)\n toggleImmediateRef(false);\n immediate[kRefed] = null;\n\n if (destroyHooksExist() && immediate[async_id_symbol] !== undefined) {\n emitDestroy(immediate[async_id_symbol]);\n }\n\n immediate._onImmediate = null;\n\n immediateQueue.remove(immediate);\n}\n\nmodule.exports = {\n setTimeout\x2C\n clearTimeout\x2C\n setImmediate\x2C\n clearImmediate\x2C\n setInterval\x2C\n clearInterval\x2C\n _unrefActive: deprecate(\n unrefActive\x2C\n 'timers._unrefActive() is deprecated.' +\n ' Please use timeout.refresh() instead.'\x2C\n 'DEP0127')\x2C\n active: deprecate(\n active\x2C\n 'timers.active() is deprecated. Please use timeout.refresh() instead.'\x2C\n 'DEP0126')\x2C\n unenroll: deprecate(\n unenroll\x2C\n 'timers.unenroll() is deprecated. Please use clearTimeout instead.'\x2C\n 'DEP0096')\x2C\n enroll: deprecate(\n enroll\x2C\n 'timers.enroll() is deprecated. Please use setTimeout instead.'\x2C\n 'DEP0095')\n};\n code-source-info,0xd18b6629916,61,7396,7916,C0O7396C2O7429C7O7429C11O7464C13O7467C15O7493C43O7539C45O7564C54O7572C63O7585C65O7610C74O7618C83O7624C92O7637C94O7663C103O7671C112O7677C121O7683C128O7701C131O7722C135O7710C140O7821C142O7828C148O7844C151O7833C155O7731C160O7696C163O7863C165O7877C178O7884C183O7914,, code-creation,LazyCompile,10,113500,0xd18b662a74e,93,Immediate node:internal/timers:600:14,0x6a244a77630,~ script-source,63,node:internal/timers,'use strict';\n\n// HOW and WHY the timers implementation works the way it does.\n//\n// Timers are crucial to Node.js. Internally\x2C any TCP I/O connection creates a\n// timer so that we can time out of connections. Additionally\x2C many user\n// libraries and applications also use timers. As such there may be a\n// significantly large amount of timeouts scheduled at any given time.\n// Therefore\x2C it is very important that the timers implementation is performant\n// and efficient.\n//\n// Note: It is suggested you first read through the lib/internal/linkedlist.js\n// linked list implementation\x2C since timers depend on it extensively. It can be\n// somewhat counter-intuitive at first\x2C as it is not actually a class. Instead\x2C\n// it is a set of helpers that operate on an existing object.\n//\n// In order to be as performant as possible\x2C the architecture and data\n// structures are designed so that they are optimized to handle the following\n// use cases as efficiently as possible:\n\n// - Adding a new timer. (insert)\n// - Removing an existing timer. (remove)\n// - Handling a timer timing out. (timeout)\n//\n// Whenever possible\x2C the implementation tries to make the complexity of these\n// operations as close to constant-time as possible.\n// (So that performance is not impacted by the number of scheduled timers.)\n//\n// Object maps are kept which contain linked lists keyed by their duration in\n// milliseconds.\n//\n/* eslint-disable node-core/non-ascii-character */\n//\n// \u2554\u2550\u2550\u2550\u2550 > Object Map\n// \u2551\n// \u2560\u2550\u2550\n// \u2551 lists: { '40': { }\x2C '320': { etc } } (keys of millisecond duration)\n// \u255a\u2550\u2550 \u250c\u2500\u2500\u2500\u2500\u2518\n// \u2502\n// \u2554\u2550\u2550 \u2502\n// \u2551 TimersList { _idleNext: { }\x2C _idlePrev: (self) }\n// \u2551 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n// \u2551 \u2554\u2550\u2550 \u2502 ^\n// \u2551 \u2551 { _idleNext: { }\x2C _idlePrev: { }\x2C _onTimeout: (callback) }\n// \u2551 \u2551 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n// \u2551 \u2551 \u2502 ^\n// \u2551 \u2551 { _idleNext: { etc }\x2C _idlePrev: { }\x2C _onTimeout: (callback) }\n// \u2560\u2550\u2550 \u2560\u2550\u2550\n// \u2551 \u2551\n// \u2551 \u255a\u2550\u2550\u2550\u2550 > Actual JavaScript timeouts\n// \u2551\n// \u255a\u2550\u2550\u2550\u2550 > Linked List\n//\n/* eslint-enable node-core/non-ascii-character */\n//\n// With this\x2C virtually constant-time insertion (append)\x2C removal\x2C and timeout\n// is possible in the JavaScript layer. Any one list of timers is able to be\n// sorted by just appending to it because all timers within share the same\n// duration. Therefore\x2C any timer added later will always have been scheduled to\n// timeout later\x2C thus only needing to be appended.\n// Removal from an object-property linked list is also virtually constant-time\n// as can be seen in the lib/internal/linkedlist.js implementation.\n// Timeouts only need to process any timers currently due to expire\x2C which will\n// always be at the beginning of the list for reasons stated above. Any timers\n// after the first one encountered that does not yet need to timeout will also\n// always be due to timeout at a later time.\n//\n// Less-than constant time operations are thus contained in two places:\n// The PriorityQueue \u2014 an efficient binary heap implementation that does all\n// operations in worst-case O(log n) time \u2014 which manages the order of expiring\n// Timeout lists and the object map lookup of a specific list by the duration of\n// timers within (or creation of a new list). However\x2C these operations combined\n// have shown to be trivial in comparison to other timers architectures.\n\nconst {\n MathMax\x2C\n MathTrunc\x2C\n NumberIsFinite\x2C\n NumberMIN_SAFE_INTEGER\x2C\n ObjectCreate\x2C\n ReflectApply\x2C\n Symbol\x2C\n} = primordials;\n\nconst {\n scheduleTimer\x2C\n toggleTimerRef\x2C\n getLibuvNow\x2C\n immediateInfo\x2C\n toggleImmediateRef\n} = internalBinding('timers');\n\nconst {\n getDefaultTriggerAsyncId\x2C\n newAsyncId\x2C\n initHooksExist\x2C\n destroyHooksExist\x2C\n // The needed emit*() functions.\n emitInit\x2C\n emitBefore\x2C\n emitAfter\x2C\n emitDestroy\x2C\n} = require('internal/async_hooks');\n\n// Symbols for storing async id state.\nconst async_id_symbol = Symbol('asyncId');\nconst trigger_async_id_symbol = Symbol('triggerId');\n\nconst kHasPrimitive = Symbol('kHasPrimitive');\n\nconst {\n ERR_OUT_OF_RANGE\n} = require('internal/errors').codes;\nconst {\n validateCallback\x2C\n validateNumber\x2C\n} = require('internal/validators');\n\nconst L = require('internal/linkedlist');\nconst PriorityQueue = require('internal/priority_queue');\n\nconst { inspect } = require('internal/util/inspect');\nlet debug = require('internal/util/debuglog').debuglog('timer'\x2C (fn) => {\n debug = fn;\n});\n\n// *Must* match Environment::ImmediateInfo::Fields in src/env.h.\nconst kCount = 0;\nconst kRefCount = 1;\nconst kHasOutstanding = 2;\n\n// Timeout values > TIMEOUT_MAX are set to 1.\nconst TIMEOUT_MAX = 2 ** 31 - 1;\n\nlet timerListId = NumberMIN_SAFE_INTEGER;\n\nconst kRefed = Symbol('refed');\n\n// Create a single linked list instance only once at startup\nconst immediateQueue = new ImmediateList();\n\nlet nextExpiry = Infinity;\nlet refCount = 0;\n\n// This is a priority queue with a custom sorting function that first compares\n// the expiry times of two lists and if they're the same then compares their\n// individual IDs to determine which list was created first.\nconst timerListQueue = new PriorityQueue(compareTimersLists\x2C setPosition);\n\n// Object map containing linked lists of timers\x2C keyed and sorted by their\n// duration in milliseconds.\n//\n// - key = time in milliseconds\n// - value = linked list\nconst timerListMap = ObjectCreate(null);\n\nfunction initAsyncResource(resource\x2C type) {\n const asyncId = resource[async_id_symbol] = newAsyncId();\n const triggerAsyncId =\n resource[trigger_async_id_symbol] = getDefaultTriggerAsyncId();\n if (initHooksExist())\n emitInit(asyncId\x2C type\x2C triggerAsyncId\x2C resource);\n}\n\n// Timer constructor function.\n// The entire prototype is defined in lib/timers.js\nfunction Timeout(callback\x2C after\x2C args\x2C isRepeat\x2C isRefed) {\n after *= 1; // Coalesce to number or NaN\n if (!(after >= 1 && after <= TIMEOUT_MAX)) {\n if (after > TIMEOUT_MAX) {\n process.emitWarning(`${after} does not fit into` +\n ' a 32-bit signed integer.' +\n '\\nTimeout duration was set to 1.'\x2C\n 'TimeoutOverflowWarning');\n }\n after = 1; // Schedule on next tick\x2C follows browser behavior\n }\n\n this._idleTimeout = after;\n this._idlePrev = this;\n this._idleNext = this;\n this._idleStart = null;\n // This must be set to null first to avoid function tracking\n // on the hidden class\x2C revisit in V8 versions after 6.2\n this._onTimeout = null;\n this._onTimeout = callback;\n this._timerArgs = args;\n this._repeat = isRepeat ? after : null;\n this._destroyed = false;\n\n if (isRefed)\n incRefCount();\n this[kRefed] = isRefed;\n this[kHasPrimitive] = false;\n\n initAsyncResource(this\x2C 'Timeout');\n}\n\n// Make sure the linked list only shows the minimal necessary information.\nTimeout.prototype[inspect.custom] = function(_\x2C options) {\n return inspect(this\x2C {\n ...options\x2C\n // Only inspect one level.\n depth: 0\x2C\n // It should not recurse.\n customInspect: false\n });\n};\n\nTimeout.prototype.refresh = function() {\n if (this[kRefed])\n active(this);\n else\n unrefActive(this);\n\n return this;\n};\n\nTimeout.prototype.unref = function() {\n if (this[kRefed]) {\n this[kRefed] = false;\n if (!this._destroyed)\n decRefCount();\n }\n return this;\n};\n\nTimeout.prototype.ref = function() {\n if (!this[kRefed]) {\n this[kRefed] = true;\n if (!this._destroyed)\n incRefCount();\n }\n return this;\n};\n\nTimeout.prototype.hasRef = function() {\n return this[kRefed];\n};\n\nfunction TimersList(expiry\x2C msecs) {\n this._idleNext = this; // Create the list with the linkedlist properties to\n this._idlePrev = this; // Prevent any unnecessary hidden class changes.\n this.expiry = expiry;\n this.id = timerListId++;\n this.msecs = msecs;\n this.priorityQueuePosition = null;\n}\n\n// Make sure the linked list only shows the minimal necessary information.\nTimersList.prototype[inspect.custom] = function(_\x2C options) {\n return inspect(this\x2C {\n ...options\x2C\n // Only inspect one level.\n depth: 0\x2C\n // It should not recurse.\n customInspect: false\n });\n};\n\n// A linked list for storing `setImmediate()` requests\nfunction ImmediateList() {\n this.head = null;\n this.tail = null;\n}\n\n// Appends an item to the end of the linked list\x2C adjusting the current tail's\n// next pointer and the item's previous pointer where applicable\nImmediateList.prototype.append = function(item) {\n if (this.tail !== null) {\n this.tail._idleNext = item;\n item._idlePrev = this.tail;\n } else {\n this.head = item;\n }\n this.tail = item;\n};\n\n// Removes an item from the linked list\x2C adjusting the pointers of adjacent\n// items and the linked list's head or tail pointers as necessary\nImmediateList.prototype.remove = function(item) {\n if (item._idleNext) {\n item._idleNext._idlePrev = item._idlePrev;\n }\n\n if (item._idlePrev) {\n item._idlePrev._idleNext = item._idleNext;\n }\n\n if (item === this.head)\n this.head = item._idleNext;\n if (item === this.tail)\n this.tail = item._idlePrev;\n\n item._idleNext = null;\n item._idlePrev = null;\n};\n\nfunction incRefCount() {\n if (refCount++ === 0)\n toggleTimerRef(true);\n}\n\nfunction decRefCount() {\n if (--refCount === 0)\n toggleTimerRef(false);\n}\n\n// Schedule or re-schedule a timer.\n// The item must have been enroll()'d first.\nfunction active(item) {\n insertGuarded(item\x2C true);\n}\n\n// Internal APIs that need timeouts should use `unrefActive()` instead of\n// `active()` so that they do not unnecessarily keep the process open.\nfunction unrefActive(item) {\n insertGuarded(item\x2C false);\n}\n\n// The underlying logic for scheduling or re-scheduling a timer.\n//\n// Appends a timer onto the end of an existing timers list\x2C or creates a new\n// list if one does not already exist for the specified timeout duration.\nfunction insertGuarded(item\x2C refed\x2C start) {\n const msecs = item._idleTimeout;\n if (msecs < 0 || msecs === undefined)\n return;\n\n insert(item\x2C msecs\x2C start);\n\n const isDestroyed = item._destroyed;\n if (isDestroyed || !item[async_id_symbol]) {\n item._destroyed = false;\n initAsyncResource(item\x2C 'Timeout');\n }\n\n if (isDestroyed) {\n if (refed)\n incRefCount();\n } else if (refed === !item[kRefed]) {\n if (refed)\n incRefCount();\n else\n decRefCount();\n }\n item[kRefed] = refed;\n}\n\nfunction insert(item\x2C msecs\x2C start = getLibuvNow()) {\n // Truncate so that accuracy of sub-millisecond timers is not assumed.\n msecs = MathTrunc(msecs);\n item._idleStart = start;\n\n // Use an existing list if there is one\x2C otherwise we need to make a new one.\n let list = timerListMap[msecs];\n if (list === undefined) {\n debug('no %d list was found in insert\x2C creating a new one'\x2C msecs);\n const expiry = start + msecs;\n timerListMap[msecs] = list = new TimersList(expiry\x2C msecs);\n timerListQueue.insert(list);\n\n if (nextExpiry > expiry) {\n scheduleTimer(msecs);\n nextExpiry = expiry;\n }\n }\n\n L.append(list\x2C item);\n}\n\nfunction setUnrefTimeout(callback\x2C after) {\n // Type checking identical to setTimeout()\n validateCallback(callback);\n\n const timer = new Timeout(callback\x2C after\x2C undefined\x2C false\x2C false);\n insert(timer\x2C timer._idleTimeout);\n\n return timer;\n}\n\n// Type checking used by timers.enroll() and Socket#setTimeout()\nfunction getTimerDuration(msecs\x2C name) {\n validateNumber(msecs\x2C name);\n if (msecs < 0 || !NumberIsFinite(msecs)) {\n throw new ERR_OUT_OF_RANGE(name\x2C 'a non-negative finite number'\x2C msecs);\n }\n\n // Ensure that msecs fits into signed int32\n if (msecs > TIMEOUT_MAX) {\n process.emitWarning(`${msecs} does not fit into a 32-bit signed integer.` +\n `\\nTimer duration was truncated to ${TIMEOUT_MAX}.`\x2C\n 'TimeoutOverflowWarning');\n return TIMEOUT_MAX;\n }\n\n return msecs;\n}\n\nfunction compareTimersLists(a\x2C b) {\n const expiryDiff = a.expiry - b.expiry;\n if (expiryDiff === 0) {\n if (a.id < b.id)\n return -1;\n if (a.id > b.id)\n return 1;\n }\n return expiryDiff;\n}\n\nfunction setPosition(node\x2C pos) {\n node.priorityQueuePosition = pos;\n}\n\nfunction getTimerCallbacks(runNextTicks) {\n // If an uncaught exception was thrown during execution of immediateQueue\x2C\n // this queue will store all remaining Immediates that need to run upon\n // resolution of all error handling (if process is still alive).\n const outstandingQueue = new ImmediateList();\n\n function processImmediate() {\n const queue = outstandingQueue.head !== null ?\n outstandingQueue : immediateQueue;\n let immediate = queue.head;\n\n // Clear the linked list early in case new `setImmediate()`\n // calls occur while immediate callbacks are executed\n if (queue !== outstandingQueue) {\n queue.head = queue.tail = null;\n immediateInfo[kHasOutstanding] = 1;\n }\n\n let prevImmediate;\n let ranAtLeastOneImmediate = false;\n while (immediate !== null) {\n if (ranAtLeastOneImmediate)\n runNextTicks();\n else\n ranAtLeastOneImmediate = true;\n\n // It's possible for this current Immediate to be cleared while executing\n // the next tick queue above\x2C which means we need to use the previous\n // Immediate's _idleNext which is guaranteed to not have been cleared.\n if (immediate._destroyed) {\n outstandingQueue.head = immediate = prevImmediate._idleNext;\n continue;\n }\n\n immediate._destroyed = true;\n\n immediateInfo[kCount]--;\n if (immediate[kRefed])\n immediateInfo[kRefCount]--;\n immediate[kRefed] = null;\n\n prevImmediate = immediate;\n\n const asyncId = immediate[async_id_symbol];\n emitBefore(asyncId\x2C immediate[trigger_async_id_symbol]\x2C immediate);\n\n try {\n const argv = immediate._argv;\n if (!argv)\n immediate._onImmediate();\n else\n immediate._onImmediate(...argv);\n } finally {\n immediate._onImmediate = null;\n\n if (destroyHooksExist())\n emitDestroy(asyncId);\n\n outstandingQueue.head = immediate = immediate._idleNext;\n }\n\n emitAfter(asyncId);\n }\n\n if (queue === outstandingQueue)\n outstandingQueue.head = null;\n immediateInfo[kHasOutstanding] = 0;\n }\n\n\n function processTimers(now) {\n debug('process timer lists %d'\x2C now);\n nextExpiry = Infinity;\n\n let list;\n let ranAtLeastOneList = false;\n while (list = timerListQueue.peek()) {\n if (list.expiry > now) {\n nextExpiry = list.expiry;\n return refCount > 0 ? nextExpiry : -nextExpiry;\n }\n if (ranAtLeastOneList)\n runNextTicks();\n else\n ranAtLeastOneList = true;\n listOnTimeout(list\x2C now);\n }\n return 0;\n }\n\n function listOnTimeout(list\x2C now) {\n const msecs = list.msecs;\n\n debug('timeout callback %d'\x2C msecs);\n\n let ranAtLeastOneTimer = false;\n let timer;\n while (timer = L.peek(list)) {\n const diff = now - timer._idleStart;\n\n // Check if this loop iteration is too early for the next timer.\n // This happens if there are more timers scheduled for later in the list.\n if (diff < msecs) {\n list.expiry = MathMax(timer._idleStart + msecs\x2C now + 1);\n list.id = timerListId++;\n timerListQueue.percolateDown(1);\n debug('%d list wait because diff is %d'\x2C msecs\x2C diff);\n return;\n }\n\n if (ranAtLeastOneTimer)\n runNextTicks();\n else\n ranAtLeastOneTimer = true;\n\n // The actual logic for when a timeout happens.\n L.remove(timer);\n\n const asyncId = timer[async_id_symbol];\n\n if (!timer._onTimeout) {\n if (!timer._destroyed) {\n timer._destroyed = true;\n\n if (timer[kRefed])\n refCount--;\n\n if (destroyHooksExist())\n emitDestroy(asyncId);\n }\n continue;\n }\n\n emitBefore(asyncId\x2C timer[trigger_async_id_symbol]\x2C timer);\n\n let start;\n if (timer._repeat)\n start = getLibuvNow();\n\n try {\n const args = timer._timerArgs;\n if (args === undefined)\n timer._onTimeout();\n else\n ReflectApply(timer._onTimeout\x2C timer\x2C args);\n } finally {\n if (timer._repeat && timer._idleTimeout !== -1) {\n timer._idleTimeout = timer._repeat;\n insert(timer\x2C timer._idleTimeout\x2C start);\n } else if (!timer._idleNext && !timer._idlePrev && !timer._destroyed) {\n timer._destroyed = true;\n\n if (timer[kRefed])\n refCount--;\n\n if (destroyHooksExist())\n emitDestroy(asyncId);\n }\n }\n\n emitAfter(asyncId);\n }\n\n // If `L.peek(list)` returned nothing\x2C the list was either empty or we have\n // called all of the timer timeouts.\n // As such\x2C we can remove the list from the object map and\n // the PriorityQueue.\n debug('%d list empty'\x2C msecs);\n\n // The current list may have been removed and recreated since the reference\n // to `list` was created. Make sure they're the same instance of the list\n // before destroying.\n if (list === timerListMap[msecs]) {\n delete timerListMap[msecs];\n timerListQueue.shift();\n }\n }\n\n return {\n processImmediate\x2C\n processTimers\n };\n}\n\nclass Immediate {\n constructor(callback\x2C args) {\n this._idleNext = null;\n this._idlePrev = null;\n this._onImmediate = callback;\n this._argv = args;\n this._destroyed = false;\n this[kRefed] = false;\n\n initAsyncResource(this\x2C 'Immediate');\n\n this.ref();\n immediateInfo[kCount]++;\n\n immediateQueue.append(this);\n }\n\n ref() {\n if (this[kRefed] === false) {\n this[kRefed] = true;\n if (immediateInfo[kRefCount]++ === 0)\n toggleImmediateRef(true);\n }\n return this;\n }\n\n unref() {\n if (this[kRefed] === true) {\n this[kRefed] = false;\n if (--immediateInfo[kRefCount] === 0)\n toggleImmediateRef(false);\n }\n return this;\n }\n\n hasRef() {\n return !!this[kRefed];\n }\n}\n\nmodule.exports = {\n TIMEOUT_MAX\x2C\n kTimeout: Symbol('timeout')\x2C // For hiding Timeouts on other internals.\n async_id_symbol\x2C\n trigger_async_id_symbol\x2C\n Timeout\x2C\n Immediate\x2C\n kRefed\x2C\n kHasPrimitive\x2C\n initAsyncResource\x2C\n setUnrefTimeout\x2C\n getTimerDuration\x2C\n immediateQueue\x2C\n getTimerCallbacks\x2C\n immediateInfoFields: {\n kCount\x2C\n kRefCount\x2C\n kHasOutstanding\n }\x2C\n active\x2C\n unrefActive\x2C\n insert\x2C\n timerListMap\x2C\n timerListQueue\x2C\n decRefCount\x2C\n incRefCount\n};\n code-source-info,0xd18b662a74e,63,17293,17604,C0O17316C1O17331C5O17343C6O17358C10O17370C12O17388C16O17404C18O17415C22O17427C23O17443C27O17456C29O17461C33O17469C37O17483C43O17483C48O17531C53O17531C57O17542C64O17556C72O17563C76O17572C81O17587C86O17587C92O17603,, StoreIC,0xd18b662a74f,113834,601,20,X,X,0x000000000000,_idleNext,, StoreIC,0xd18b662a754,113839,602,20,X,X,0x000000000000,_idlePrev,, StoreIC,0xd18b662a75a,113842,603,23,X,X,0x000000000000,_onImmediate,, StoreIC,0xd18b662a760,113845,604,16,X,X,0x000000000000,_argv,, StoreIC,0xd18b662a765,113848,605,21,X,X,0x000000000000,_destroyed,, code-creation,LazyCompile,10,113865,0xd18b662be0e,76,initAsyncResource node:internal/timers:157:27,0x6a244a76a70,~ code-source-info,0xd18b662be0e,63,5425,5677,C0O5462C2O5471C7O5490C10O5490C14O5488C21O5533C23O5542C28O5569C31O5569C35O5567C42O5599C47O5603C52O5625C69O5625C75O5676,, code-creation,LazyCompile,10,113888,0xd18b662bf6e,67,ref node:internal/timers:616:6,0x6a244a77680,~ code-source-info,0xd18b662bf6e,63,17611,17781,C0O17620C2O17629C4O17628C9O17637C14O17656C16O17661C20O17669C24O17683C31O17701C43O17711C48O17714C53O17729C60O17729C64O17765C66O17777,, code-creation,LazyCompile,10,113910,0xd18b662c0e6,41,ImmediateList.append node:internal/timers:269:42,0x6a244a76f30,~ code-source-info,0xd18b662c0e6,63,8454,8613,C0O8474C6O8500C13O8515C17O8549C21O8542C27O8570C29O8580C33O8594C35O8604C40O8612,, StoreIC,0xd18b662c103,113918,274,15,X,X,0x000000000000,head,, StoreIC,0xd18b662c109,113922,276,13,X,X,0x000000000000,tail,, LoadGlobalIC,0x3dda0e07d760,113928,47,24,X,X,0x38ac3d9811a9,process,, StoreIC,0xe1ea49ef9b2,113947,168,21,X,X,0x000000000000,rss,, StoreIC,0xe1ea49ef9c0,113951,169,27,X,X,0x000000000000,heapTotal,, StoreIC,0xe1ea49ef9ce,113953,170,26,X,X,0x000000000000,heapUsed,, StoreIC,0xe1ea49ef9dc,113956,171,26,X,X,0x000000000000,external,, StoreIC,0xe1ea49ef9ea,113958,172,30,X,X,0x000000000000,arrayBuffers,, StoreIC,0x3dda0e07d76d,113961,47,22,X,X,0x000000000000,finish,, LoadGlobalIC,0x3dda0e07d771,113966,48,5,X,X,0x38ac3d9811a9,console,, code-creation,LazyCompile,10,113987,0xd18b662c27e,44,tableize /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:17:18,0x3dda0e0769b8,~ code-source-info,0xd18b662c27e,119,661,955,C0O661C8O688C9O688C11O696C15O703C20O703C26O716C36O717C41O940C43O953,, LoadGlobalIC,0xd18b662c289,113997,19,5,X,X,0x38ac3d9811a9,Object,, code-creation,LazyCompile,10,114020,0xd18b662c4be,216, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:19:34,0xd18b662c1c0,~ code-source-info,0xd18b662c4be,119,725,933,C0O725C25O727C62O734C166O772C167O772C169O784C173O791C178O791C184O805C194O806C199O903C208O916C215O932,, LoadGlobalIC,0xd18b662c567,114032,21,9,X,X,0x38ac3d9811a9,Object,, code-creation,LazyCompile,10,114051,0xd18b662c70e,179, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:21:39,0xd18b662c3a8,~ code-source-info,0xd18b662c70e,119,814,892,C0O814C25O816C62O826C159O851C169O872C173O870C178O891,, code-creation,LazyCompile,10,114067,0xd18b662c8ce,34,mb /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:14:12,0x3dda0e076968,~ code-source-info,0xd18b662c8ce,119,577,643,C0O591C2O608C13O625C21O625C33O641,, LoadIC,0xd18b662c8db,114076,15,39,X,X,0x268a435c15c9,toFixed,, LoadIC,0xd18b662c8db,114084,15,39,X,X,0x268a435c15c9,toFixed,, LoadIC,0xd18b662c8db,114091,15,39,X,X,0x268a435c15c9,toFixed,, LoadIC,0xd18b662c8db,114096,15,39,X,X,0x268a435c15c9,toFixed,, LoadIC,0xd18b662c8db,114099,15,39,X,X,0x268a435c15c9,toFixed,, LoadGlobalIC,0xd18b662c567,114105,21,9,X,X,0x38ac3d9811a9,Object,, LoadIC,0xd18b662c8db,114110,15,39,X,X,0x268a435c15c9,toFixed,, LoadIC,0xd18b662c8db,114113,15,39,X,X,0x268a435c15c9,toFixed,, LoadIC,0xd18b662c8db,114116,15,39,X,X,0x268a435c15c9,toFixed,, LoadIC,0xd18b662c8db,114120,15,39,X,X,0x268a435c15c9,toFixed,, LoadIC,0xd18b662c8db,114126,15,39,0,1,0x268a435c15c9,toFixed,, LoadGlobalIC,0xd18b662c567,114131,21,9,X,X,0x38ac3d9811a9,Object,, LoadIC,0xd18b662c70e,114137,21,39,0,1,0x38ac3d983441,symbol("Symbol.iterator" hash f9fe45a),, LoadIC,0xd18b662c71d,114141,21,39,0,1,0x38ac3d98ffe1,next,, LoadIC,0xd18b662c739,114144,21,41,0,1,0x38ac3d9902f9,done,, LoadIC,0xd18b662c73f,114146,21,41,0,1,0x38ac3d9902f9,value,, LoadIC,0xd18b662c784,114149,21,51,0,1,0x38ac3d98ffe1,return,, KeyedStoreIC,0xd18b662c7bb,114153,22,32,0,1,0x38ac3d9b9f81,heapTotal,, KeyedStoreIC,0xd18b662c7bb,114158,22,32,1,N,0x38ac3d9b9fc9,heapUsed,, code-creation,LazyCompile,10,114280,0xd18b662d0f6,1317,table node:internal/console/constructor:482:8,0x23787e18c598,~ code-source-info,0xd18b662d0f6,30,14540,17915,C0O14540C12O14572C16O14608C28O14608C33O14654C43O14721C47O14733C53O14733C58O14750C59O14756C67O14784C77O14795C87O14793C95O14844C100O14902C104O14902C106O15295C111O15381C119O15381C124O15430C126O15449C128O15456C132O15489C143O15489C150O15530C151O15547C156O15558C158O15574C162O15590C170O15608C174O15608C180O15649C184O15674C188O15697C191O15706C195O15752C199O15759C202O15738C207O15781C221O15829C224O15826C229O15806C235O15781C240O15847C254O15897C257O15901C260O15894C265O15874C271O15847C276O15919C282O15766C287O15729C292O15991C320O15986C351O15978C359O15984C368O16016C380O16041C386O16016C391O16065C403O16092C409O16065C414O16116C420O15962C491O16150C504O16173C518O16182C532O16190C550O16220C564O16251C574O16265C578O16157C583O16282C584O16310C592O16310C597O16342C599O16361C607O16375C613O16425C619O16436C625O16447C629O16447C634O16471C636O16507C640O16530C643O16555C671O16550C702O16550C705O16578C717O16605C723O16578C728O16627C737O16539C808O16651C821O16665C835O16674C853O16687C867O16710C871O16658C876O16719C877O16743C888O16743C893O16787C895O16821C898O16851C906O16851C911O16906C915O16890C920O16940C922O16965C925O16951C930O16995C937O17035C944O17065C947O17086C953O17118C955O17139C957O17169C961O17189C965O17187C971O17241C979O17255C983O17255C989O17299C1017O17292C1048O17292C1051O17317C1053O17324C1061O17361C1063O17366C1067O17382C1073O17400C1079O17431C1083O17431C1090O17485C1092O17488C1099O17497C1105O17530C1107O17533C1118O17557C1123O17544C1127O17542C1131O17281C1202O16915C1207O16881C1213O17607C1221O17607C1226O17643C1234O17643C1239O17666C1243O17693C1255O17718C1259O17693C1264O17736C1272O17736C1277O17790C1289O17818C1293O17790C1298O17833C1306O17833C1311O17891C1316O17911,, code-creation,Eval,10,114378,0xd18b662df6e,5, node:internal/cli_table:1:1,0xd18b662dd88,~ script-source,126,node:internal/cli_table,'use strict';\n\nconst {\n ArrayPrototypeJoin\x2C\n ArrayPrototypeMap\x2C\n MathCeil\x2C\n MathMax\x2C\n MathMaxApply\x2C\n ObjectPrototypeHasOwnProperty\x2C\n StringPrototypeRepeat\x2C\n} = primordials;\n\nconst { getStringWidth } = require('internal/util/inspect');\n\n// The use of Unicode characters below is the only non-comment use of non-ASCII\n// Unicode characters in Node.js built-in modules. If they are ever removed or\n// rewritten with \\u escapes\x2C then a test will need to be (re-)added to Node.js\n// core to verify that Unicode characters work in built-ins.\n// Refs: https://github.com/nodejs/node/issues/10673\nconst tableChars = {\n /* eslint-disable node-core/non-ascii-character */\n middleMiddle: '\u2500'\x2C\n rowMiddle: '\u253c'\x2C\n topRight: '\u2510'\x2C\n topLeft: '\u250c'\x2C\n leftMiddle: '\u251c'\x2C\n topMiddle: '\u252c'\x2C\n bottomRight: '\u2518'\x2C\n bottomLeft: '\u2514'\x2C\n bottomMiddle: '\u2534'\x2C\n rightMiddle: '\u2524'\x2C\n left: '\u2502 '\x2C\n right: ' \u2502'\x2C\n middle: ' \u2502 '\x2C\n /* eslint-enable node-core/non-ascii-character */\n};\n\nconst renderRow = (row\x2C columnWidths) => {\n let out = tableChars.left;\n for (let i = 0; i < row.length; i++) {\n const cell = row[i];\n const len = getStringWidth(cell);\n const needed = (columnWidths[i] - len) / 2;\n // round(needed) + ceil(needed) will always add up to the amount\n // of spaces we need while also left justifying the output.\n out += StringPrototypeRepeat(' '\x2C needed) + cell +\n StringPrototypeRepeat(' '\x2C MathCeil(needed));\n if (i !== row.length - 1)\n out += tableChars.middle;\n }\n out += tableChars.right;\n return out;\n};\n\nconst table = (head\x2C columns) => {\n const rows = [];\n const columnWidths = ArrayPrototypeMap(head\x2C (h) => getStringWidth(h));\n const longestColumn = MathMaxApply(ArrayPrototypeMap(columns\x2C (a) =>\n a.length));\n\n for (let i = 0; i < head.length; i++) {\n const column = columns[i];\n for (let j = 0; j < longestColumn; j++) {\n if (rows[j] === undefined)\n rows[j] = [];\n const value = rows[j][i] =\n ObjectPrototypeHasOwnProperty(column\x2C j) ? column[j] : '';\n const width = columnWidths[i] || 0;\n const counted = getStringWidth(value);\n columnWidths[i] = MathMax(width\x2C counted);\n }\n }\n\n const divider = ArrayPrototypeMap(columnWidths\x2C (i) =>\n StringPrototypeRepeat(tableChars.middleMiddle\x2C i + 2));\n\n let result = tableChars.topLeft +\n ArrayPrototypeJoin(divider\x2C tableChars.topMiddle) +\n tableChars.topRight + '\\n' +\n renderRow(head\x2C columnWidths) + '\\n' +\n tableChars.leftMiddle +\n ArrayPrototypeJoin(divider\x2C tableChars.rowMiddle) +\n tableChars.rightMiddle + '\\n';\n\n for (const row of rows)\n result += `${renderRow(row\x2C columnWidths)}\\n`;\n\n result += tableChars.bottomLeft +\n ArrayPrototypeJoin(divider\x2C tableChars.bottomMiddle) +\n tableChars.bottomRight;\n\n return result;\n};\n\nmodule.exports = table;\n code-source-info,0xd18b662df6e,126,0,2913,C0O0C4O2913,, code-creation,Function,10,114444,0xd18b662e1de,116, node:internal/cli_table:1:1,0xd18b662dee8,~ code-source-info,0xd18b662e1de,126,0,2913,C0O0C35O25C41O47C47O68C53O80C59O91C65O107C71O140C77O208C80O208C85O189C91O615C95O615C97O979C101O979C103O1555C108O2889C110O2904C115O2912,, code-creation,LazyCompile,10,114508,0xd18b662e7e6,121,_inspect node:internal/console/constructor:492:22,0xd18b662cd90,~ code-source-info,0xd18b662e7e6,30,14902,15267,C0O14931C14O15011C17O15011C27O15045C30O15045C35O15058C42O15066C53O15098C60O15108C64O15163C78O15189C80O15188C87O15214C92O15208C108O15238C115O15245C120O15261,, StoreIC,0xd18b662e822,114524,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,114529,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,114532,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,114539,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,114544,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,114547,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,114550,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,114553,157,11,X,X,0x38ac3d981791,TMUX,, code-creation,LazyCompile,10,114608,0xd18b662ebf6,382,inspect node:internal/util/inspect:286:17,0x44edd6d4ea0,~ code-source-info,0xd18b662ebf6,14,8068,10015,C0O8068C2O8119C9O8208C15O8240C18O8262C28O8285C31O8307C41O8326C44O8348C54O8375C57O8397C67O8427C70O8449C80O8480C83O8502C93O8539C96O8561C106O8595C109O8617C119O8643C122O8665C132O8686C135O8708C145O8729C148O8751C159O8780C166O8787C171O8829C178O8836C183O8849C185O8862C190O8891C192O8912C195O8901C199O8945C206O8952C213O8968C218O8997C220O9019C223O9008C227O9076C233O9115C235O9130C241O9149C245O9183C250O9183C255O9220C257O9235C261O9225C266O9270C268O9277C272O9471C279O9516C282O9486C291O9561C296O9588C298O9603C301O9597C307O9633C313O9741C315O9757C319O9245C324O9207C327O9803C333O9811C335O9823C339O9853C345O9899C348O9897C352O9919C358O9967C361O9965C365O9979C376O9986C381O10013,, StoreIC,0xd18b662ebff,114635,293,14,X,X,0x000000000000,stylize,, StoreIC,0xd18b662ec0c,114640,294,39,X,X,0x000000000000,showHidden,, StoreIC,0xd18b662ec19,114643,295,34,X,X,0x000000000000,depth,, StoreIC,0xd18b662ec26,114647,296,35,X,X,0x000000000000,colors,, StoreIC,0xd18b662ec33,114650,297,42,X,X,0x000000000000,customInspect,, StoreIC,0xd18b662ec40,114652,298,38,X,X,0x000000000000,showProxy,, StoreIC,0xd18b662ec4d,114655,299,43,X,X,0x000000000000,maxArrayLength,, StoreIC,0xd18b662ec5a,114658,300,44,X,X,0x000000000000,maxStringLength,, StoreIC,0xd18b662ec67,114661,301,40,X,X,0x000000000000,breakLength,, StoreIC,0xd18b662ec74,114664,302,36,X,X,0x000000000000,compact,, StoreIC,0xd18b662ec81,114666,303,35,X,X,0x000000000000,sorted,, StoreIC,0xd18b662ec8e,114669,304,36,X,X,0x000000000000,getters,, StoreIC,0xd18b662ed45,114681,337,31,X,X,0x000000000000,stylize,, code-creation,LazyCompile,10,114743,0xd18b662f156,460,formatValue node:internal/util/inspect:726:21,0x44edd6d54c0,~ code-source-info,0xd18b662f156,14,21561,24106,C0O21649C14O21726C17O21726C23O21761C26O21788C37O21768C42O21809C43O21816C47O21853C58O21853C64O21877C65O21961C68O22089C73O22118C80O22089C86O22132C88O22171C94O22190C106O22197C111O22235C112O22246C117O22401C123O22442C125O22448C127O22447C131O22474C137O22607C142O22713C148O22734C153O22746C160O22756C165O22902C174O22930C181O22936C185O22989C188O22995C193O23033C195O23022C200O23060C208O23120C223O23060C229O23265C231O23273C236O23296C242O23337C254O23344C259O23380C260O23410C276O23434C281O23445C286O23434C296O23410C302O23464C303O23650C308O23655C313O23655C320O23690C323O23705C329O23737C331O23756C334O23752C339O23750C343O23777C348O23786C353O23786C361O23836C366O23845C371O23845C377O23863C379O23910C384O23919C388O23924C392O23941C397O23950C402O23950C408O23998C418O24020C432O23998C438O24041C439O24049C454O24056C459O24104,, code-creation,LazyCompile,10,114766,0xd18b662f4ce,11,isUndetectableObject node:internal/util/inspect:156:30,0x44edd6d2de0,~ code-source-info,0xd18b662f4ce,14,3085,3135,C0O3117C9O3122C10O3135,, code-creation,LazyCompile,10,114808,0xd18b662f756,364,formatPrimitive node:internal/util/inspect:1382:25,0x44edd6d5830,~ code-source-info,0xd18b662f756,14,45832,46991,C0O45832C9O45853C15O45904C18O45922C23O45935C27O45929C32O45984C37O45997C41O45991C45O46034C52O46047C57O46034C65O46071C70O46088C83O46125C99O46161C105O46169C110O46296C119O46305C121O46303C126O46337C131O46350C136O46368C140O46362C143O46383C146O46344C151O46418C161O46418C167O46443C177O46444C183O46497C194O46514C199O46525C203O46540C207O46514C217O46498C225O46548C228O46558C229O46569C237O46579C245O46576C253O46607C256O46617C257O46624C263O46659C271O46666C276O46690C277O46693C283O46728C291O46735C296O46759C297O46762C303O46798C308O46811C313O46805C318O46831C319O46834C325O46872C334O46879C339O46908C340O46937C347O46947C350O46947C358O46944C363O46989,, LoadIC,0xd18b662f768,114823,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,114827,1393,15,X,X,0x268a435c18e1,length,, code-creation,LazyCompile,10,114871,0xd18b662fba6,359,strEscape node:internal/util/inspect:465:19,0x44edd6d5150,~ code-source-info,0xd18b662fba6,14,13614,15381,C0O13641C5O13689C10O13737C13O13996C21O14000C28O14131C36O14136C43O14179C48O14208C56O14213C65O14266C71O14266C78O14310C81O14338C83O14354C88O14370C93O14421C98O14568C107O14575C114O14586C117O14586C124O14628C127O14635C132O14663C133O14674C140O14681C145O14694C152O14743C161O14700C168O14758C171O14765C176O14793C177O14814C180O14831C182O14858C187O14881C189O14886C191O14886C196O14924C201O14924C207O14963C209O14973C216O15006C223O15030C230O15053C239O15068C244O15084C246O15093C251O15110C253O15120C258O15124C270O15156C272O15169C284O15169C293O15206C298O15210C312O15235C314O15244C318O14900C323O14868C326O15262C328O15271C333O15292C335O15302C338O15302C350O15341C353O15348C358O15379,, LoadIC,0xd18b662fc08,114889,490,11,X,X,0x268a435c18e1,length,, code-creation,LazyCompile,10,114915,0xd18b662fed6,62,addQuotes node:internal/util/inspect:451:19,0x44edd6d50b0,~ code-source-info,0xd18b662fed6,14,13279,13419,C0O13297C2O13308C7O13322C12O13333C22O13340C23O13347C25O13358C30O13372C35O13384C45O13392C46O13399C51O13410C61O13417,, code-creation,LazyCompile,10,114938,0xd18b6630066,82,stylizeWithColor node:internal/util/inspect:521:26,0x44edd6d51a0,~ code-source-info,0xd18b6630066,14,15408,15649,C0O15443C3O15451C10O15457C14O15472C16O15517C19O15525C26O15531C30O15544C32O15575C36O15597C52O15604C65O15622C78O15629C79O15636C81O15647,, StoreIC,0xd18b662e822,114953,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,114957,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,114960,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,114964,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,114968,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,114972,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,114975,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,114979,157,11,X,X,0x38ac3d981791,TMUX,, StoreIC,0xd18b662ec0c,114986,294,39,X,X,0x000000000000,showHidden,, StoreIC,0xd18b662ec33,114989,297,42,X,X,0x000000000000,customInspect,, StoreIC,0xd18b662ec40,114992,298,38,X,X,0x000000000000,showProxy,, StoreIC,0xd18b662ec5a,114995,300,44,X,X,0x000000000000,maxStringLength,, StoreIC,0xd18b662ec74,114997,302,36,X,X,0x000000000000,compact,, StoreIC,0xd18b662ec81,114999,303,35,X,X,0x000000000000,sorted,, StoreIC,0xd18b662ec8e,115002,304,36,X,X,0x000000000000,getters,, LoadIC,0xd18b662f768,115007,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115010,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115013,490,11,X,X,0x268a435c18e1,length,, code-creation,RegExp,3,115031,0x7fe6cc06b4c0,796,[\\x00-\\x1f\\x27\\x5c\\x7f-\\x9f] StoreIC,0xd18b662e822,115043,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115047,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115049,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115053,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115057,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115060,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115062,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115066,157,11,X,X,0x38ac3d981791,TMUX,, StoreIC,0xd18b662ec0c,115073,294,39,X,X,0x000000000000,showHidden,, StoreIC,0xd18b662ec33,115076,297,42,X,X,0x000000000000,customInspect,, StoreIC,0xd18b662ec40,115078,298,38,X,X,0x000000000000,showProxy,, StoreIC,0xd18b662ec5a,115080,300,44,X,X,0x000000000000,maxStringLength,, StoreIC,0xd18b662ec74,115083,302,36,X,X,0x000000000000,compact,, StoreIC,0xd18b662ec81,115085,303,35,X,X,0x000000000000,sorted,, StoreIC,0xd18b662ec8e,115088,304,36,X,X,0x000000000000,getters,, LoadIC,0xd18b662f768,115092,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115095,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115098,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115104,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115107,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115110,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115112,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115116,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115119,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115121,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115124,157,11,X,X,0x38ac3d981791,TMUX,, StoreIC,0xd18b662ec0c,115130,294,39,X,X,0x000000000000,showHidden,, StoreIC,0xd18b662ec33,115136,297,42,X,X,0x000000000000,customInspect,, StoreIC,0xd18b662ec40,115138,298,38,X,X,0x000000000000,showProxy,, StoreIC,0xd18b662ec5a,115140,300,44,X,X,0x000000000000,maxStringLength,, StoreIC,0xd18b662ec74,115143,302,36,X,X,0x000000000000,compact,, StoreIC,0xd18b662ec81,115145,303,35,X,X,0x000000000000,sorted,, StoreIC,0xd18b662ec8e,115148,304,36,X,X,0x000000000000,getters,, LoadIC,0xd18b662f768,115151,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115154,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115158,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115163,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115166,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115168,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115171,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115174,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115177,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115179,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115183,157,11,X,X,0x38ac3d981791,TMUX,, StoreIC,0xd18b662ec0c,115188,294,39,X,X,0x000000000000,showHidden,, StoreIC,0xd18b662ec33,115191,297,42,X,X,0x000000000000,customInspect,, StoreIC,0xd18b662ec40,115193,298,38,X,X,0x000000000000,showProxy,, StoreIC,0xd18b662ec5a,115195,300,44,X,X,0x000000000000,maxStringLength,, StoreIC,0xd18b662ec74,115198,302,36,X,X,0x000000000000,compact,, StoreIC,0xd18b662ec81,115200,303,35,X,X,0x000000000000,sorted,, StoreIC,0xd18b662ec8e,115203,304,36,X,X,0x000000000000,getters,, LoadIC,0xd18b662f768,115207,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115209,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115212,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115217,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115220,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115222,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115225,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115228,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115231,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115234,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115236,157,11,X,X,0x38ac3d981791,TMUX,, StoreIC,0xd18b662ec0c,115241,294,39,X,X,0x000000000000,showHidden,, StoreIC,0xd18b662ec33,115244,297,42,X,X,0x000000000000,customInspect,, StoreIC,0xd18b662ec40,115247,298,38,X,X,0x000000000000,showProxy,, StoreIC,0xd18b662ec5a,115249,300,44,X,X,0x000000000000,maxStringLength,, StoreIC,0xd18b662ec74,115252,302,36,X,X,0x000000000000,compact,, StoreIC,0xd18b662ec81,115254,303,35,X,X,0x000000000000,sorted,, StoreIC,0xd18b662ec8e,115256,304,36,X,X,0x000000000000,getters,, LoadIC,0xd18b662f768,115260,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115262,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115265,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115269,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115272,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115274,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115277,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115280,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115283,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115285,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115289,157,11,X,X,0x38ac3d981791,TMUX,, StoreIC,0xd18b662ec0c,115294,294,39,X,X,0x000000000000,showHidden,, StoreIC,0xd18b662ec33,115297,297,42,X,X,0x000000000000,customInspect,, StoreIC,0xd18b662ec40,115299,298,38,X,X,0x000000000000,showProxy,, StoreIC,0xd18b662ec5a,115302,300,44,X,X,0x000000000000,maxStringLength,, StoreIC,0xd18b662ec74,115304,302,36,X,X,0x000000000000,compact,, StoreIC,0xd18b662ec81,115307,303,35,X,X,0x000000000000,sorted,, StoreIC,0xd18b662ec8e,115309,304,36,X,X,0x000000000000,getters,, LoadIC,0xd18b662f768,115312,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115317,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115320,490,11,X,X,0x268a435c18e1,length,, code-creation,Function,11,115348,0x7fe6cc06b840,3052,inspect node:internal/util/inspect:286:17,0x44edd6d4ea0,^ code-source-info,0x7fe6cc06b840,14,8068,10015,,, code-creation,Function,11,115357,0x7fe6cc06c4a0,172, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-static-lexer.js:8:32,0x3dda0e0701c8,^ code-source-info,0x7fe6cc06c4a0,115,382,427,,, code-creation,Function,11,115365,0x7fe6cc06c5c0,232,__importDefault /home/wincent/code/masochist/next/packages/lexer/lib/index.js:2:66,0x3dda0e072268,^ code-source-info,0x7fe6cc06c5c0,116,79,151,,, code-creation,Function,11,115372,0x7fe6cc06c720,184,mb /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:14:12,0x3dda0e076968,^ code-source-info,0x7fe6cc06c720,119,577,643,,, code-creation,Function,11,115386,0x7fe6cc06c840,1312, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:21:39,0xd18b662c3a8,^ code-source-info,0x7fe6cc06c840,119,814,892,,, StoreIC,0xd18b662e822,115397,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115401,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115403,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115407,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115411,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115415,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115417,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115421,157,11,X,X,0x38ac3d981791,TMUX,, StoreIC,0xd18b662ebff,115430,293,14,0,1,0x38ac3d9bab51,stylize,, LoadIC,0xd18b662ec08,115434,294,39,0,1,0x38ac3d9913d9,showHidden,, StoreIC,0xd18b662ec0c,115438,294,39,0,1,0x38ac3d9bab51,showHidden,, LoadIC,0xd18b662ec15,115440,295,34,0,1,0x38ac3d9913d9,depth,, StoreIC,0xd18b662ec19,115443,295,34,0,1,0x38ac3d9bab51,depth,, LoadIC,0xd18b662ec22,115446,296,35,0,1,0x38ac3d9913d9,colors,, StoreIC,0xd18b662ec26,115449,296,35,0,1,0x38ac3d9bab51,colors,, LoadIC,0xd18b662ec2f,115452,297,42,0,1,0x38ac3d9913d9,customInspect,, StoreIC,0xd18b662ec33,115454,297,42,0,1,0x38ac3d9bab51,customInspect,, LoadIC,0xd18b662ec3c,115457,298,38,0,1,0x38ac3d9913d9,showProxy,, StoreIC,0xd18b662ec40,115460,298,38,0,1,0x38ac3d9bab51,showProxy,, LoadIC,0xd18b662ec49,115463,299,43,0,1,0x38ac3d9913d9,maxArrayLength,, StoreIC,0xd18b662ec4d,115466,299,43,0,1,0x38ac3d9bab51,maxArrayLength,, LoadIC,0xd18b662ec56,115469,300,44,0,1,0x38ac3d9913d9,maxStringLength,, StoreIC,0xd18b662ec5a,115471,300,44,0,1,0x38ac3d9bab51,maxStringLength,, LoadIC,0xd18b662ec63,115475,301,40,0,1,0x38ac3d9913d9,breakLength,, StoreIC,0xd18b662ec67,115478,301,40,0,1,0x38ac3d9bab51,breakLength,, LoadIC,0xd18b662ec70,115480,302,36,0,1,0x38ac3d9913d9,compact,, StoreIC,0xd18b662ec74,115484,302,36,0,1,0x38ac3d9bab51,compact,, LoadIC,0xd18b662ec7d,115486,303,35,0,1,0x38ac3d9913d9,sorted,, StoreIC,0xd18b662ec81,115490,303,35,0,1,0x38ac3d9bab51,sorted,, LoadIC,0xd18b662ec8a,115493,304,36,0,1,0x38ac3d9913d9,getters,, StoreIC,0xd18b662ec8e,115496,304,36,0,1,0x38ac3d9bab51,getters,, LoadIC,0xd18b662ec95,115499,306,17,0,1,0x38ac3d9984a1,length,, LoadIC,0xd18b662ecf7,115503,321,35,0,1,0x38ac3d983441,length,, KeyedLoadIC,0xd18b662ed02,115508,322,28,0,1,0x38ac3d983441,0,, KeyedLoadIC,0xd18b662ed20,115512,329,26,0,1,0x38ac3d9ba689,depth,, KeyedStoreIC,0xd18b662ed23,115517,329,20,0,1,0x38ac3d9bab51,depth,, KeyedLoadIC,0xd18b662ed20,115521,329,26,1,N,0x38ac3d9ba689,maxArrayLength,, KeyedStoreIC,0xd18b662ed23,115525,329,20,1,N,0x38ac3d9bab51,maxArrayLength,, LoadIC,0xd18b662ed3d,115529,337,11,0,1,0x38ac3d9bab51,colors,, StoreIC,0xd18b662ed45,115533,337,31,0,1,0x38ac3d9bab51,stylize,, LoadIC,0xd18b662ed49,115537,338,11,0,1,0x38ac3d9bab51,maxArrayLength,, LoadIC,0xd18b662ed56,115541,339,11,0,1,0x38ac3d9bab51,maxStringLength,, LoadIC,0xd18b662f768,115544,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115547,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115550,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115558,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115562,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115564,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115567,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115570,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115573,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115576,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115579,157,11,X,X,0x38ac3d981791,TMUX,, LoadIC,0xd18b662f768,115585,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115588,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115590,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115596,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115599,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115602,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115604,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115607,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115610,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115612,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115616,157,11,X,X,0x38ac3d981791,TMUX,, LoadIC,0xd18b662f768,115621,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115624,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115626,490,11,X,X,0x268a435c18e1,length,, LoadIC,0xd18b6630069,115630,522,25,0,1,0x38ac3d987da9,styles,, KeyedLoadIC,0xd18b6630070,115633,522,31,0,1,0x38ac3d9836c9,string,, LoadIC,0xd18b6630079,115636,524,27,0,1,0x38ac3d987da9,colors,, KeyedLoadIC,0xd18b6630080,115639,524,33,0,1,0x38ac3d9836c9,green,, KeyedLoadIC,0xd18b663008a,115641,526,29,0,1,0x38ac3d9835f1,0,, KeyedLoadIC,0xd18b66300a7,115644,526,54,0,1,0x38ac3d9835f1,1,, StoreIC,0xd18b662e822,115650,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115653,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115655,500,22,X,X,0x000000000000,breakLength,, KeyedLoadIC,0xe1ea49e4492,115658,301,23,0,1,0x38ac3d98e259,symbol("kColorMode" hash 21da6ba4),, LoadIC,0xe1ea49e449d,115662,303,24,0,1,0x38ac3d9b82d1,isTTY,, LoadIC,0xe1ea49e44a3,115665,304,25,0,1,0x38ac3d9b82d1,getColorDepth,, LoadIC,0xe1ea49e4c4c,115667,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115671,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115674,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115676,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115679,157,11,X,X,0x38ac3d981791,TMUX,, LoadIC,0xe1ea49e44c3,115684,308,34,0,1,0x38ac3d986729,get,, LoadIC,0xd18b662f768,115689,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115693,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115695,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115700,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115703,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115705,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115709,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115712,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115715,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115717,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115721,157,11,X,X,0x38ac3d981791,TMUX,, LoadIC,0xd18b662f768,115725,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115728,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115731,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115735,498,9,X,X,0x000000000000,depth,, LoadGlobalIC,0xd18b662e826,115738,500,22,X,X,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115740,500,22,X,X,0x000000000000,breakLength,, LoadIC,0xe1ea49e4c4c,115743,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115746,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115748,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115751,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115754,157,11,X,X,0x38ac3d981791,TMUX,, LoadIC,0xd18b662f768,115762,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115765,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115767,490,11,X,X,0x268a435c18e1,length,, StoreIC,0xd18b662e822,115773,498,9,0,1,0x38ac3d9ba641,depth,, LoadGlobalIC,0xd18b662e826,115777,500,22,0,1,0x38ac3d9811a9,Infinity,, StoreIC,0xd18b662e829,115780,500,22,0,1,0x38ac3d9ba641,breakLength,, KeyedLoadIC,0xd18b662e836,115783,501,16,0,1,0x38ac3d98e259,symbol("kGetInspectOptions" hash 26a94882),, LoadIC,0xd18b662e83d,115787,501,42,0,1,0x38ac3d98e259,_stdout,, LoadIC,0xe1ea49e4c4c,115790,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115794,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115797,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115799,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115802,157,11,X,X,0x38ac3d981791,TMUX,, LoadIC,0xd18b662f768,115807,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115810,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115813,490,11,X,X,0x268a435c18e1,length,, LoadIC,0xe1ea49e4c4c,115819,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,115822,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,115825,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,115828,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,115831,157,11,X,X,0x38ac3d981791,TMUX,, LoadIC,0xd18b662f768,115835,1385,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662f7c4,115838,1393,15,X,X,0x268a435c18e1,length,, LoadIC,0xd18b662fc08,115840,490,11,X,X,0x268a435c18e1,length,, code-creation,LazyCompile,10,115861,0xd18b6630d7e,27,final node:internal/console/constructor:490:19,0xd18b662cd40,~ code-source-info,0xd18b6630d7e,30,14844,14878,C0O14859C3O14859C12O14863C15O14863C21O14859C26O14878,, code-creation,LazyCompile,10,115927,0xd18b6631066,544,table node:internal/cli_table:55:15,0xd18b662dff0,~ code-source-info,0xd18b6631066,126,1555,2886,C0O1591C3O1618C8O1636C14O1618C20O1693C27O1706C30O1724C36O1706C42O1693C47O1772C49O1784C53O1777C58O1818C60O1825C64O1847C66O1852C68O1852C73O1882C75O1890C80O1922C82O1925C86O1951C88O1955C94O1972C98O1972C110O2021C119O1962C126O2051C128O2063C135O2095C140O2095C145O2124C147O2142C151O2142C156O2140C160O1870C165O1834C168O1793C173O1759C176O2196C181O2214C187O2196C193O2311C198O2322C205O2347C210O2375C214O2386C220O2347C225O2330C231O2414C234O2425C238O2397C244O2434C250O2458C253O2458C258O2441C264O2488C270O2512C273O2523C277O2495C283O2551C288O2579C292O2590C298O2551C303O2534C309O2618C312O2629C316O2601C322O2641C326O2670C352O2663C383O2663C386O2680C388O2693C392O2693C415O2652C486O2730C488O2740C491O2751C498O2776C504O2804C508O2815C514O2776C519O2762C525O2843C529O2854C533O2829C543O2884,, code-creation,LazyCompile,10,115950,0xd18b66317d6,10, node:internal/cli_table:57:48,0xd18b6630e28,~ code-source-info,0xd18b66317d6,126,1642,1666,C0O1649C5O1649C9O1666,, code-creation,LazyCompile,10,115978,0xd18b663190e,137,getStringWidth node:internal/util/inspect:2020:43,0x44edd6d5fd8,~ code-source-info,0xd18b663190e,14,68235,68763,C13O68286C15O68294C19O68324C24O68330C29O68378C31O68389C35O68383C40O68570C45O68570C51O68591C53O68600C58O68618C60O68627C63O68631C68O68650C73O68650C79O68658C87O68659C93O68631C105O68686C107O68707C109O68721C126O68398C131O68365C134O68746C136O68759,, code-creation,LazyCompile,10,115995,0xd18b6631ace,33,stripVTControlCharacters node:internal/util/inspect:2117:34,0x44edd6d6078,~ code-source-info,0xd18b6631ace,14,71848,71920,C0O71858C8O71858C13O71900C20O71908C26O71900C32O71918,, LoadIC,0xd18b6631adb,116003,2120,14,X,X,0x268a435c1349,replace,, LoadIC,0xd18b663192d,116066,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116071,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116074,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116076,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116078,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116080,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116083,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116085,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116091,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116093,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116095,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116098,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116100,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116102,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116105,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631adb,116108,2120,14,X,X,0x268a435c1349,replace,, code-creation,RegExp,3,116146,0x7fe6cc06cdc0,3256,[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1\x2C4}(?:;\\d{0\x2C4})*)?[\\dA-PR-TZcf-ntqry=><~])) LoadIC,0xd18b663192d,116157,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116160,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116164,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116167,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116169,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116172,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116174,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631adb,116177,2120,14,X,X,0x268a435c1349,replace,, LoadIC,0xd18b663192d,116180,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116182,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116185,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116187,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116189,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116191,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116194,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116197,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116199,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116201,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116204,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116206,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116209,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116211,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116213,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116215,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116218,2025,29,X,X,0x268a435c1349,length,, LoadIC,0xd18b6631936,116220,2028,24,X,X,0x268a435c1349,charCodeAt,, LoadIC,0xd18b663192d,116222,2025,29,X,X,0x268a435c1349,length,, code-creation,Function,11,116238,0x7fe6cc06dae0,888,getStringWidth node:internal/util/inspect:2020:43,0x44edd6d5fd8,^ code-source-info,0x7fe6cc06dae0,14,68235,68763,,, code-creation,Function,11,116249,0x7fe6cc06dec0,504,stylizeWithColor node:internal/util/inspect:521:26,0x44edd6d51a0,^ code-source-info,0x7fe6cc06dec0,14,15408,15649,,, code-creation,Function,11,116258,0x7fe6cc06e120,844,value node:internal/console/constructor:300:20,0x23787e18bdb0,^ code-source-info,0x7fe6cc06e120,30,9013,9495,,, code-creation,Function,11,116265,0x7fe6cc06e4e0,136,isUndetectableObject node:internal/util/inspect:156:30,0x44edd6d2de0,^ code-source-info,0x7fe6cc06e4e0,14,3085,3135,,, code-creation,Function,11,116275,0x7fe6cc06e5e0,900,_inspect node:internal/console/constructor:492:22,0xd18b662cd90,^ code-source-info,0x7fe6cc06e5e0,30,14902,15267,,, LoadIC,0xd18b6631adb,116283,2120,14,X,X,0x268a435c1349,replace,, LoadIC,0xd18b663192d,116287,2025,29,0,1,0x268a435c1349,length,, LoadIC,0xd18b6631936,116291,2028,24,0,1,0x268a435c1349,charCodeAt,, LoadIC,0xd18b6631adb,116295,2120,14,X,X,0x268a435c1349,replace,, LoadIC,0xd18b6631adb,116298,2120,14,X,X,0x268a435c1349,replace,, code-creation,LazyCompile,10,116311,0xd18b66326ce,5, node:internal/cli_table:58:65,0xd18b6630e78,~ code-source-info,0xd18b66326ce,126,1733,1752,C0O1746C4O1752,, LoadIC,0xd18b6631adb,116323,2120,14,X,X,0x268a435c1349,replace,, LoadIC,0xd18b6631adb,116327,2120,14,X,X,0x268a435c1349,replace,, LoadIC,0xd18b6631adb,116331,2120,14,X,X,0x268a435c1349,replace,, LoadIC,0xd18b6631adb,116339,2120,14,0,1,0x268a435c2aa1,replace,, LoadIC,0xd18b663192d,116346,2025,29,1,P,0x268a435c18e1,length,, LoadIC,0xd18b6631936,116353,2028,24,1,P,0x268a435c18e1,charCodeAt,, code-creation,LazyCompile,10,116380,0xd18b6632866,27, node:internal/cli_table:74:51,0xd18b6630ec8,~ code-source-info,0xd18b6632866,126,2228,2292,C0O2239C7O2261C10O2272C17O2288C21O2239C26O2292,, code-creation,LazyCompile,10,116413,0xd18b66329a6,158,renderRow node:internal/cli_table:38:19,0xd18b662dfa0,~ code-source-info,0xd18b66329a6,126,979,1538,C0O1016C5O1027C10O1048C12O1059C16O1053C21O1091C23O1094C27O1115C32O1115C37O1156C39O1169C45O1173C48O1180C52O1322C54O1329C60O1329C68O1364C74O1384C82O1411C85O1411C90O1384C95O1371C105O1448C109O1455C112O1440C117O1466C119O1473C122O1484C133O1068C138O1035C141O1498C143O1505C146O1516C157O1536,, LoadIC,0xd18b6631adb,116426,2120,14,1,P,0x268a435c1349,replace,, LoadIC,0xd18b66329b2,116443,40,27,0,1,0x38ac3d983441,length,, KeyedLoadIC,0xd18b66329bd,116447,41,21,0,1,0x38ac3d983441,4,, KeyedLoadIC,0xd18b66329cd,116451,43,33,0,1,0x38ac3d9835f1,4,, LoadIC,0xd18b6632a20,116455,49,25,0,1,0x38ac3d9ba521,middle,, LoadIC,0xd18b6632a38,116459,51,21,0,1,0x38ac3d9ba521,right,, LoadIC,0xd18b66329ab,116463,39,24,0,1,0x38ac3d9ba521,left,, LoadIC,0xe1ea49e4c4c,116479,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,116483,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,116486,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,116489,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,116492,157,11,X,X,0x38ac3d981791,TMUX,, LoadIC,0xe1ea49e9ecf,116499,267,23,X,X,0x268a435c1349,length,, StoreIC,0xe1ea49ea412,116507,515,52,X,X,0x000000000000,target,, StoreIC,0xe1ea49ea418,116510,515,60,X,X,0x000000000000,type,, StoreIC,0xe1ea49ea41e,116512,515,66,X,X,0x000000000000,listener,, LoadIC,0xe1ea49eac00,116518,366,44,X,X,0x268a435c2ae9,length,, KeyedLoadIC,0xe1ea49e367a,116525,1706,22,0,1,0x38ac3d9b82d1,symbol("kHandle" hash 20525adc),, StoreIC,0xe1ea49ec600,116545,471,39,X,X,0x000000000000,count,, code-creation,LazyCompile,10,116593,0xd18b6632de6,318,processTicksAndRejections node:internal/process/task_queues:68:35,0x24d59d73bb20,~ code-source-info,0xd18b6632de6,25,1496,2430,C0O1507C2O1536C7O1544C12O1544C17O1536C19O1577C21O1582C23O1581C27O1606C34O1631C36O1630C46O1606C54O1707C59O1734C65O1766C70O1823C75O1852C110O1882C111O1895C115O1882C119O1901C121O1928C122O1941C128O1950C132O1928C137O1956C139O1983C140O1996C146O2005C152O2014C156O1983C161O2020C163O2047C164O2060C170O2069C176O2078C182O2087C186O2047C191O2093C193O2121C198O2121C215O2188C220O2192C225O2223C230O2223C245O2260C250O2260C256O2290C261O2290C264O2335C269O2325C274O2325C282O2338C285O2338C290O1515C296O2369C301O2369C305O2399C312O2399C317O2429,, code-creation,LazyCompile,10,116621,0xd18b66330be,43,shift node:internal/fixed_queue:108:8,0x23787e185c20,~ code-source-info,0xd18b66330be,28,3954,4180,C0O3981C5O4009C10O4009C15O4031C20O4031C26O4049C32O4148C36O4141C40O4164C42O4176,, code-creation,LazyCompile,10,116639,0xd18b6633206,54,shift node:internal/fixed_queue:80:8,0x23787e185a00,~ code-source-info,0xd18b6633206,28,3300,3510,C0O3331C5O3341C9O3335C13O3354C15O3388C16O3400C17O3410C22O3420C28O3428C32O3465C36O3472C42O3479C44O3477C47O3457C51O3490C53O3506,, StoreIC,0xd18b6633235,116648,85,17,X,X,0x000000000000,bottom,, code-creation,LazyCompile,10,116661,0xd18b663333e,42,emitBeforeScript node:internal/async_hooks:499:26,0x24d59d739f18,~ code-source-info,0xd18b663333e,24,16451,16602,C0O16491C12O16491C17O16547C22O16560C25O16551C31O16574C36O16574C41O16601,, code-creation,LazyCompile,10,116684,0xd18b663348e,180,pushAsyncContext node:internal/async_hooks:529:26,0x24d59d73a0c0,~ code-source-info,0xd18b663348e,24,17095,17640,C0O17150C7O17168C9O17167C13O17185C20O17219C24O17233C26O17244C32O17251C35O17262C40O17278C44O17248C49O17290C54O17297C59O17340C60O17343C65O17354C72O17377C78O17384C83O17400C85O17399C88O17382C92O17422C97O17433C104O17456C107O17460C113O17467C118O17483C120O17482C123O17465C127O17503C134O17521C142O17534C146O17540C153O17556C158O17575C162O17588C169O17604C174O17621C179O17639,, LoadIC,0xd18b66334b6,116700,532,48,X,X,0x38ac3d983009,length,, code-creation,LazyCompile,10,116716,0xd18b6633696,46,afterWriteTick node:internal/streams/writable:482:24,0x6a244a63928,~ code-source-info,0xd18b6633696,56,15092,15208,C0O15095C5O15103C10O15110C15O15117C20O15127C21O15152C25O15162C40O15169C45O15206,, code-creation,LazyCompile,10,116741,0xd18b66337ee,104,afterWrite node:internal/streams/writable:487:20,0x6a244a63978,~ code-source-info,0xd18b66337ee,56,15229,15585,C0O15285C7O15303C14O15322C20O15329C25O15348C30O15361C32O15382C33O15398C37O15418C45O15418C50O15455C60O15455C65O15466C71O15481C75O15489C78O15440C81O15512C87O15529C90O15529C94O15556C97O15556C103O15584,, code-creation,LazyCompile,10,116758,0xd18b663397e,35,get node:internal/streams/duplex:94:8,0x6a244a4a4e0,~ code-source-info,0xd18b663397e,48,3274,3483,C0O3294C6O3339C12O3379C13O3392C14O3419C19O3434C25O3452C30O3467C34O3477,, code-creation,LazyCompile,10,116778,0xd18b6633abe,87, node:internal/console/constructor:339:10,0x23787e18c040,~ code-source-info,0xd18b6633abe,30,10154,10972,C0O10371C7O10388C9O10384C17O10416C26O10435C31O10448C35O10476C40O10491C46O10887C54O10887C61O10910C66O10934C79O10934C86O10971,, StoreIC,0xe1ea49ea412,116792,515,52,X,X,0x000000000000,target,, StoreIC,0xe1ea49ea418,116795,515,60,X,X,0x000000000000,type,, StoreIC,0xe1ea49ea41e,116798,515,66,X,X,0x000000000000,listener,, code-creation,LazyCompile,10,116818,0xd18b6633c16,85,finishMaybe node:internal/streams/writable:727:21,0x6a244a63c50,~ code-source-info,0xd18b6633c16,56,21275,21567,C0O21301C3O21305C9O21330C12O21330C17O21370C23O21380C31O21389C37O21416C43O21431C47O21441C51O21461C54O21469C68O21469C75O21525C78O21525C84O21566,, code-creation,LazyCompile,10,116836,0xd18b6633da6,73,needFinish node:internal/streams/writable:650:20,0x6a244a63b60,~ code-source-info,0xd18b6633da6,56,19361,19652,C0O19387C6O19413C12O19444C18O19451C23O19477C30O19504C35O19513C41O19520C46O19546C53O19575C60O19603C67O19636C72O19650,, code-creation,LazyCompile,10,116847,0xd18b6633ede,13,destroyHooksExist node:internal/async_hooks:476:27,0x24d59d739e28,~ code-source-info,0xd18b6633ede,24,15900,15935,C0O15907C5O15923C8O15914C12O15933,, code-creation,LazyCompile,10,116860,0xd18b6633fce,32,emitAfterScript node:internal/async_hooks:507:25,0x24d59d739f68,~ code-source-info,0xd18b6633fce,24,16629,16725,C0O16643C5O16656C8O16647C14O16669C19O16669C23O16698C26O16698C31O16724,, code-creation,LazyCompile,10,116885,0xd18b6634136,167,popAsyncContext node:internal/async_hooks:543:25,0x24d59d73a110,~ code-source-info,0xd18b6634136,24,17729,18316,C0O17763C7O17781C9O17780C13O17798C14O17814C19O17821C20O17834C21O17838C24O17842C31O17865C36O17881C38O17880C44O17900C49O17982C54O17989C58O18015C59O18038C61O18050C65O18057C72O18073C77O18094C80O18105C87O18123C90O18120C93O18092C97O18136C104O18152C109O18171C112O18182C119O18200C122O18209C125O18197C128O18169C132O18217C137O18243C142O18243C146O18252C153O18270C158O18284C162O18296C163O18310C166O18314,, code-creation,LazyCompile,10,116899,0xd18b6634316,13,enabledHooksExist node:internal/async_hooks:464:27,0x24d59d739d18,~ code-source-info,0xd18b6634316,24,15723,15756,C0O15730C5O15746C8O15737C12O15754,, code-creation,LazyCompile,10,116964,0xd18b6634546,439,processPromiseRejections node:internal/process/promises:203:34,0x24d59d73eeb8,~ script-source,26,node:internal/process/promises,'use strict';\n\nconst {\n ArrayPrototypePush\x2C\n ArrayPrototypeShift\x2C\n Error\x2C\n ObjectDefineProperty\x2C\n SafeWeakMap\x2C\n} = primordials;\n\nconst {\n tickInfo\x2C\n promiseRejectEvents: {\n kPromiseRejectWithNoHandler\x2C\n kPromiseHandlerAddedAfterReject\x2C\n kPromiseResolveAfterResolved\x2C\n kPromiseRejectAfterResolved\n }\x2C\n setPromiseRejectCallback\n} = internalBinding('task_queue');\n\nconst {\n noSideEffectsToString\x2C\n triggerUncaughtException\n} = internalBinding('errors');\n\nconst {\n pushAsyncContext\x2C\n popAsyncContext\x2C\n} = require('internal/async_hooks');\nconst async_hooks = require('async_hooks');\nconst { isErrorStackTraceLimitWritable } = require('internal/errors');\n\n// *Must* match Environment::TickInfo::Fields in src/env.h.\nconst kHasRejectionToWarn = 1;\n\nconst maybeUnhandledPromises = new SafeWeakMap();\nconst pendingUnhandledRejections = [];\nconst asyncHandledRejections = [];\nlet lastPromiseId = 0;\n\n// --unhandled-rejections=none:\n// Emit 'unhandledRejection'\x2C but do not emit any warning.\nconst kIgnoreUnhandledRejections = 0;\n\n// --unhandled-rejections=warn:\n// Emit 'unhandledRejection'\x2C then emit 'UnhandledPromiseRejectionWarning'.\nconst kAlwaysWarnUnhandledRejections = 1;\n\n// --unhandled-rejections=strict:\n// Emit 'uncaughtException'. If it's not handled\x2C print the error to stderr\n// and exit the process.\n// Otherwise\x2C emit 'unhandledRejection'. If 'unhandledRejection' is not\n// handled\x2C emit 'UnhandledPromiseRejectionWarning'.\nconst kStrictUnhandledRejections = 2;\n\n// --unhandled-rejections=throw:\n// Emit 'unhandledRejection'\x2C if it's unhandled\x2C emit\n// 'uncaughtException'. If it's not handled\x2C print the error to stderr\n// and exit the process.\nconst kThrowUnhandledRejections = 3;\n\n// --unhandled-rejections=warn-with-error-code:\n// Emit 'unhandledRejection'\x2C if it's unhandled\x2C emit\n// 'UnhandledPromiseRejectionWarning'\x2C then set process exit code to 1.\n\nconst kWarnWithErrorCodeUnhandledRejections = 4;\n\nlet unhandledRejectionsMode;\n\nfunction setHasRejectionToWarn(value) {\n tickInfo[kHasRejectionToWarn] = value ? 1 : 0;\n}\n\nfunction hasRejectionToWarn() {\n return tickInfo[kHasRejectionToWarn] === 1;\n}\n\nfunction getUnhandledRejectionsMode() {\n const { getOptionValue } = require('internal/options');\n switch (getOptionValue('--unhandled-rejections')) {\n case 'none':\n return kIgnoreUnhandledRejections;\n case 'warn':\n return kAlwaysWarnUnhandledRejections;\n case 'strict':\n return kStrictUnhandledRejections;\n case 'throw':\n return kThrowUnhandledRejections;\n case 'warn-with-error-code':\n return kWarnWithErrorCodeUnhandledRejections;\n default:\n return kThrowUnhandledRejections;\n }\n}\n\nfunction promiseRejectHandler(type\x2C promise\x2C reason) {\n if (unhandledRejectionsMode === undefined) {\n unhandledRejectionsMode = getUnhandledRejectionsMode();\n }\n switch (type) {\n case kPromiseRejectWithNoHandler:\n unhandledRejection(promise\x2C reason);\n break;\n case kPromiseHandlerAddedAfterReject:\n handledRejection(promise);\n break;\n case kPromiseResolveAfterResolved:\n resolveError('resolve'\x2C promise\x2C reason);\n break;\n case kPromiseRejectAfterResolved:\n resolveError('reject'\x2C promise\x2C reason);\n break;\n }\n}\n\nfunction resolveError(type\x2C promise\x2C reason) {\n // We have to wrap this in a next tick. Otherwise the error could be caught by\n // the executed promise.\n process.nextTick(() => {\n process.emit('multipleResolves'\x2C type\x2C promise\x2C reason);\n });\n}\n\nfunction unhandledRejection(promise\x2C reason) {\n const asyncId = async_hooks.executionAsyncId();\n const triggerAsyncId = async_hooks.triggerAsyncId();\n const resource = promise;\n\n const emit = (reason\x2C promise\x2C promiseInfo) => {\n try {\n pushAsyncContext(asyncId\x2C triggerAsyncId\x2C resource);\n if (promiseInfo.domain) {\n return promiseInfo.domain.emit('error'\x2C reason);\n }\n return process.emit('unhandledRejection'\x2C reason\x2C promise);\n } finally {\n popAsyncContext(asyncId);\n }\n };\n\n maybeUnhandledPromises.set(promise\x2C {\n reason\x2C\n uid: ++lastPromiseId\x2C\n warned: false\x2C\n domain: process.domain\x2C\n emit\n });\n // This causes the promise to be referenced at least for one tick.\n ArrayPrototypePush(pendingUnhandledRejections\x2C promise);\n setHasRejectionToWarn(true);\n}\n\nfunction handledRejection(promise) {\n const promiseInfo = maybeUnhandledPromises.get(promise);\n if (promiseInfo !== undefined) {\n maybeUnhandledPromises.delete(promise);\n if (promiseInfo.warned) {\n const { uid } = promiseInfo;\n // Generate the warning object early to get a good stack trace.\n // eslint-disable-next-line no-restricted-syntax\n const warning = new Error('Promise rejection was handled ' +\n `asynchronously (rejection id: ${uid})`);\n warning.name = 'PromiseRejectionHandledWarning';\n warning.id = uid;\n ArrayPrototypePush(asyncHandledRejections\x2C { promise\x2C warning });\n setHasRejectionToWarn(true);\n return;\n }\n }\n if (maybeUnhandledPromises.size === 0 && asyncHandledRejections.length === 0)\n setHasRejectionToWarn(false);\n}\n\nconst unhandledRejectionErrName = 'UnhandledPromiseRejectionWarning';\nfunction emitUnhandledRejectionWarning(uid\x2C reason) {\n const warning = getErrorWithoutStack(\n unhandledRejectionErrName\x2C\n 'Unhandled promise rejection. This error originated either by ' +\n 'throwing inside of an async function without a catch block\x2C ' +\n 'or by rejecting a promise which was not handled with .catch(). ' +\n 'To terminate the node process on unhandled promise ' +\n 'rejection\x2C use the CLI flag `--unhandled-rejections=strict` (see ' +\n 'https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). ' +\n `(rejection id: ${uid})`\n );\n try {\n if (reason instanceof Error) {\n warning.stack = reason.stack;\n process.emitWarning(reason.stack\x2C unhandledRejectionErrName);\n } else {\n process.emitWarning(\n noSideEffectsToString(reason)\x2C unhandledRejectionErrName);\n }\n } catch {}\n\n process.emitWarning(warning);\n}\n\n// If this method returns true\x2C we've executed user code or triggered\n// a warning to be emitted which requires the microtask and next tick\n// queues to be drained again.\nfunction processPromiseRejections() {\n let maybeScheduledTicksOrMicrotasks = asyncHandledRejections.length > 0;\n\n while (asyncHandledRejections.length > 0) {\n const { promise\x2C warning } = ArrayPrototypeShift(asyncHandledRejections);\n if (!process.emit('rejectionHandled'\x2C promise)) {\n process.emitWarning(warning);\n }\n }\n\n let len = pendingUnhandledRejections.length;\n while (len--) {\n const promise = ArrayPrototypeShift(pendingUnhandledRejections);\n const promiseInfo = maybeUnhandledPromises.get(promise);\n if (promiseInfo === undefined) {\n continue;\n }\n promiseInfo.warned = true;\n const { reason\x2C uid\x2C emit } = promiseInfo;\n\n switch (unhandledRejectionsMode) {\n case kStrictUnhandledRejections: {\n const err = reason instanceof Error ?\n reason : generateUnhandledRejectionError(reason);\n triggerUncaughtException(err\x2C true /* fromPromise */);\n const handled = emit(reason\x2C promise\x2C promiseInfo);\n if (!handled) emitUnhandledRejectionWarning(uid\x2C reason);\n break;\n }\n case kIgnoreUnhandledRejections: {\n emit(reason\x2C promise\x2C promiseInfo);\n break;\n }\n case kAlwaysWarnUnhandledRejections: {\n emit(reason\x2C promise\x2C promiseInfo);\n emitUnhandledRejectionWarning(uid\x2C reason);\n break;\n }\n case kThrowUnhandledRejections: {\n const handled = emit(reason\x2C promise\x2C promiseInfo);\n if (!handled) {\n const err = reason instanceof Error ?\n reason : generateUnhandledRejectionError(reason);\n triggerUncaughtException(err\x2C true /* fromPromise */);\n }\n break;\n }\n case kWarnWithErrorCodeUnhandledRejections: {\n const handled = emit(reason\x2C promise\x2C promiseInfo);\n if (!handled) {\n emitUnhandledRejectionWarning(uid\x2C reason);\n process.exitCode = 1;\n }\n break;\n }\n }\n maybeScheduledTicksOrMicrotasks = true;\n }\n return maybeScheduledTicksOrMicrotasks ||\n pendingUnhandledRejections.length !== 0;\n}\n\nfunction getErrorWithoutStack(name\x2C message) {\n // Reset the stack to prevent any overhead.\n const tmp = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n // eslint-disable-next-line no-restricted-syntax\n const err = new Error(message);\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = tmp;\n ObjectDefineProperty(err\x2C 'name'\x2C {\n value: name\x2C\n enumerable: false\x2C\n writable: true\x2C\n configurable: true\x2C\n });\n return err;\n}\n\nfunction generateUnhandledRejectionError(reason) {\n const message =\n 'This error originated either by ' +\n 'throwing inside of an async function without a catch block\x2C ' +\n 'or by rejecting a promise which was not handled with .catch().' +\n ' The promise rejected with the reason ' +\n `"${noSideEffectsToString(reason)}".`;\n\n const err = getErrorWithoutStack('UnhandledPromiseRejection'\x2C message);\n err.code = 'ERR_UNHANDLED_REJECTION';\n return err;\n}\n\nfunction listenForRejections() {\n setPromiseRejectCallback(promiseRejectHandler);\n}\nmodule.exports = {\n hasRejectionToWarn\x2C\n setHasRejectionToWarn\x2C\n listenForRejections\x2C\n processPromiseRejections\x2C\n};\n code-source-info,0xd18b6634546,26,6333,8378,C0O6378C5O6401C11O6408C15O6453C20O6446C26O6453C31O6493C38O6513C41O6493C46O6472C51O6481C56O6542C59O6555C68O6555C76O6598C79O6606C84O6606C89O6416C92O6651C97O6678C102O6698C112O6698C114O6724C121O6744C124O6724C129O6797C134O6820C139O6820C145O6838C147O6877C149O6897C150O6916C154O6936C159O6944C164O6949C169O6976C176O7022C185O7381C194O7489C203O7653C212O7985C221O7072C223O7090C225O7079C237O7117C242O7166C250O7166C255O7245C264O7245C270O7289C272O7303C275O7303C280O7355C282O7419C291O7419C296O7463C298O7531C307O7531C312O7575C315O7575C320O7627C322O7706C331O7706C337O7750C339O7788C341O7806C343O7795C355O7835C360O7886C368O7886C373O7959C375O8050C384O8050C390O8094C392O8120C395O8120C400O8174C405O8191C409O8214C411O8239C413O6688C419O8285C425O8336C428O8363C434O8370C438O8376,, code-creation,LazyCompile,10,117150,0xd18b6635256,25,setHasRejectionToWarn node:internal/process/promises:71:31,0x24d59d73e4c8,~ code-source-info,0xd18b6635256,26,2001,2061,C0O2013C7O2022C12O2045C19O2043C24O2060,, code-creation,LazyCompile,10,117202,0xd18b6635466,388,processImmediate node:internal/timers:421:28,0x6a244a77500,~ code-source-info,0xd18b6635466,63,12482,14258,C0O12505C5O12522C13O12544C21O12563C24O12605C29O12738C31O12752C33O12748C38O12778C40O12802C46O12789C50O12816C61O12830C66O12847C70O12867C72O12915C74O12943C78O12961C82O12997C85O12997C90O13032C92O13317C98O13339C103O13389C108O13361C112O13408C114O13433C115O13454C119O13469C130O13483C138O13490C142O13500C146O13514C148O13513C153O13531C164O13545C172O13555C176O13565C180O13575C184O13583C188O13598C191O13648C195O13658C197O13657C201O13682C212O13712C214O13711C224O13682C232O13794C237O13809C239O13840C244O13840C250O13889C261O13889C277O13938C279O13961C283O13978C290O13982C295O14013C302O14013C306O14044C311O14090C316O14066C331O14116C338O14116C342O12926C348O14147C350O14161C352O14157C357O14185C363O14207C367O14219C378O14233C382O14250C387O14257,, StoreIC,0xd18b66354d9,117220,449,28,X,X,0x000000000000,_destroyed,, LoadIC,0xd18b66334b6,117228,532,48,X,X,0x38ac3d983009,length,, code-creation,LazyCompile,10,117248,0xd18b6635806,181, node:internal/perf/observe:108:16,0xd18b6629620,~ code-source-info,0xd18b6635806,67,2273,2444,C0O2285C4O2295C10O2325C17O2335C20O2344C25O2344C30O2325C35O2359C40O2368C45O2368C49O2403C73O2392C101O2392C104O2419C106O2427C108O2426C112O2437C116O2381C180O2443,, StoreIC,0x3dda0e054725,117262,271,22,X,X,0x000000000000,_iterator,, LoadIC,0x3dda0e054859,117270,274,24,P,P,0x38ac3d9bad49,_iterator,, code-creation,LazyCompile,10,117285,0xd18b6635a9e,39, node:internal/perf/observe:307:14,0x6a244a7da98,~ code-source-info,0xd18b6635a9e,67,7778,7887,C0O7787C2O7792C4O7791C10O7807C13O7841C18O7841C25O7803C31O7802C38O7886,, code-creation,LazyCompile,10,117299,0xd18b6635bb6,22,takeRecords node:internal/perf/observe:288:14,0x6a244a7d960,~ code-source-info,0xd18b6635bb6,67,7398,7479,C0O7420C2O7425C4O7424C8O7439C10O7444C15O7453C19O7463C21O7475,, code-creation,LazyCompile,10,117321,0xd18b6635d16,26,PerformanceObserverEntryList node:internal/perf/observe:155:14,0x6a244a7d620,~ code-source-info,0xd18b6635d16,67,3497,3718,C0O3513C2O3518C7O3529C10O3548C15O3529C20O3527C25O3717,, code-creation,LazyCompile,10,117340,0xd18b6635eb6,55, /home/wincent/code/masochist/next/packages/benchmark/lib/benchmark-lexer.js:34:54,0x3dda0e07d448,~ code-source-info,0xd18b6635eb6,119,1217,1335,C0O1238C4O1246C9O1256C14O1256C20O1268C24O1271C29O1246C34O1291C39O1304C44O1316C49O1316C54O1334,, LoadGlobalIC,0xd18b6635eb6,117349,35,9,X,X,0x38ac3d9811a9,console,, code-creation,LazyCompile,10,117361,0xd18b6635fee,18,getEntries node:internal/perf/observe:163:13,0x6a244a7d670,~ code-source-info,0xd18b6635fee,67,3732,3787,C0O3741C7O3773C9O3772C13O3748C17O3783,, code-creation,LazyCompile,10,117372,0xd18b66360fe,8,get duration node:internal/perf/performance_entry:42:15,0x6a244a79598,~ code-source-info,0xd18b66360fe,66,786,816,C0O791C2O803C4O802C7O814,, LoadIC,0xe1ea49e4c4c,117382,109,11,X,X,0x38ac3d981791,FORCE_COLOR,, LoadIC,0xe1ea49e4cc2,117387,127,11,X,X,0x38ac3d981791,NODE_DISABLE_COLORS,, LoadIC,0xe1ea49e4ccb,117390,129,11,X,X,0x38ac3d981791,NO_COLOR,, LoadIC,0xe1ea49e4cd4,117393,133,11,X,X,0x38ac3d981791,TERM,, LoadIC,0xe1ea49e4d80,117397,157,11,X,X,0x38ac3d981791,TMUX,, code-creation,LazyCompile,10,117416,0xd18b6636236,35,formatNumber node:internal/util/inspect:1373:22,0x44edd6d5790,~ code-source-info,0xd18b6636236,14,45576,45732,C0O45669C2O45679C8O45679C24O45711C29O45676C34O45730,, KeyedLoadIC,0xd18b6630070,117428,522,31,1,N,0x38ac3d9836c9,number,, KeyedLoadIC,0xd18b6630080,117432,524,33,1,N,0x38ac3d9836c9,yellow,, LoadIC,0xe1ea49e9ecf,117437,267,23,X,X,0x268a435c1349,length,, LoadIC,0xe1ea49eac00,117442,366,44,X,X,0x268a435c2aa1,length,, StoreIC,0xe1ea49ec60d,117459,473,48,X,X,0x000000000000,cb,, StoreIC,0xe1ea49ec613,117463,473,52,X,X,0x000000000000,stream,, StoreIC,0xe1ea49ec619,117465,473,60,X,X,0x000000000000,state,, code-creation,LazyCompile,10,117489,0xd18b663638e,33,clearMarks node:internal/perf/performance:69:20,0x1ce311dc38a0,~ code-source-info,0xd18b663638e,70,1448,1578,C0O1459C4O1489C9O1513C14O1513C18O1539C26O1539C32O1577,, code-creation,LazyCompile,10,117508,0xd18b66364be,78,clearMarkTimings node:internal/perf/usertiming:163:26,0x6a244a7f7f0,~ code-source-info,0xd18b66364be,68,4439,4669,C0O4450C4O4480C9O4502C14O4535C19O4535C26O4552C39O4558C44O4552C45O4603C50O4615C55O4621C60O4633C61O4640C62O4647C67O4659C72O4659C77O4668,, code-creation,LazyCompile,10,117541,0xd18b66366de,146,clearEntriesFromBuffer node:internal/perf/observe:374:32,0x6a244a7db88,~ code-source-info,0xd18b66366de,67,9636,10296,C0O9657C2O9667C4O9676C9O9694C16O9729C18O9738C23O9759C30O9803C31O9810C32O9817C36O9847C39O9847C43O9872C44O9879C45O9898C47O9917C49O9937C51O9966C56O9978C60O10032C67O10037C72O10055C81O10083C86O10103C88O10123C92O10150C94O10170C96O10175C101O10196C103O10195C106O10188C110O10214C115O9994C117O10002C119O10001C123O9942C126O10229C128O10241C132O10251C134O10263C138O10273C140O10286C145O10295,, code-creation,LazyCompile,10,117559,0xd18b66368ae,17,resetBuffer node:internal/perf/observe:487:21,0x6a244a7dd80,~ code-source-info,0xd18b66368ae,67,12419,12495,C0O12432C1O12444C5O12454C6O12466C10O12476C11O12489C16O12494,, StoreIC,0xd18b663557d,117567,468,32,X,X,0x000000000000,_onImmediate,, KeyedLoadIC,0xe1ea49eeeed,117575,461,27,0,1,0x38ac3d9831b9,2,, LoadIC,0xd18b66334b6,117585,532,48,X,X,0x38ac3d983009,length,, StoreIC,0xe1ea49ea412,117595,515,52,X,X,0x000000000000,target,, StoreIC,0xe1ea49ea418,117598,515,60,X,X,0x000000000000,type,, StoreIC,0xe1ea49ea41e,117600,515,66,X,X,0x000000000000,listener,, delete,MemoryChunk,0x24d59d700000 delete,MemoryChunk,0x44edd6c0000 delete,MemoryChunk,0x23787e180000 delete,MemoryChunk,0x6a244a40000 delete,MemoryChunk,0x1ce311dc0000 delete,MemoryChunk,0x3edb62ac0000 delete,MemoryChunk,0x5a267800000 delete,MemoryChunk,0x3b7545f40000 delete,MemoryChunk,0x4725cf80000 delete,MemoryChunk,0x2ba068cc0000 delete,MemoryChunk,0x337ca0b00000 delete,MemoryChunk,0xe1ea49c0000 delete,MemoryChunk,0x3dda0e040000 delete,MemoryChunk,0x7af28380000 delete,MemoryChunk,0xd18b6600000 delete,MemoryChunk,0x7fe6cc000000 delete,MemoryChunk,0x7fe6cc040000 delete,MemoryChunk,0x22e007ec0000 delete,MemoryChunk,0x38ac3d980000 delete,LargeObjectChunk,0x97ddd240000 delete,MemoryChunk,0x97ddd240000 delete,LargeObjectChunk,0xc2272d80000 delete,MemoryChunk,0xc2272d80000 delete,MemoryChunk,0x1e9ac2880000 delete,MemoryChunk,0x14bb92d00000 delete,MemoryChunk,0xbf511c40000 delete,MemoryChunk,0x9a24af80000 delete,MemoryChunk,0x37e743940000 delete,MemoryChunk,0x2a2833340000 delete,MemoryChunk,0x28e75bd80000 delete,MemoryChunk,0x3d4064d00000 delete,MemoryChunk,0x268a435c0000